
//=====================================================================================
//=====================================================================================


//=====================================================================================
//=====================================================================================
actor Azazel
{
    Health 1200
    Radius 22
    Height 64
    Speed 12
    PainChance 20
    Mass 1500
    MONSTER 
    +FLOORCLIP
    +MISSILEEVENMORE
    +MISSILEMORE
    +NORADIUSDMG
    MinMissileChance 20
    SeeSound "diablo2/goatman/sight"
    PainSound "diablo2/goatman/pain"
    DeathSound "Goat/death"
    ActiveSound "diablo2/goatman/idle"
    MeleeSound "baron/melee"
    Obituary "%o was slaughtered by Azazel"
    MeleeDamage 8
	DamageFactor "Fire", 0 //Don't get hurt by our own fire projectiles -- Hax Murderer
    States
    {
    Spawn:
        AZEW A 5 A_Look
        Loop
    See:
        AZEW AABBCCDD 3 A_Chase
        Loop
    Missile:
	  TNT1 A 0 A_Jump(64,"MDoubleSerie")
	  TNT1 A 0 A_Jump(128,"MRightHand")
    MLeftHand:
	  TNT1 A 0 A_PlaySound("Goat/Attack")
	  AZEA D 4 A_FaceTarget
	  AZEA E 4 A_FaceTarget
	  AZEA F 7 A_CustomMissile("SatyrLordMissile1",32,-5,0)
	  Goto see
    MRightHand:
	  TNT1 A 0 A_PlaySound("Goat/Attack")
	  AZEA A 4 A_FaceTarget
	  AZEA B 4 A_FaceTarget
	  AZEA C 7 A_CustomMissile("SatyrLordMissile2",32,5,0)
	  Goto see	
    MDoubleSerie:
	  TNT1 A 0 A_PlaySoundEx("missile1charge","SoundSlot5")
	  TNT1 A 0 A_FaceTarget
	  AZEA D 5 A_SpawnItemEx("SatyrLordMissileDual1Fake",10,-20,60,0,0,0,32)
	  AZEA E 5 A_SpawnItemEx("SatyrLordMissileDual1Fake",10,-9,46,0,0,0,32)
	  AZEA F 6 A_SpawnItemEx("SatyrLordMissileDual1Fake",10,4,28,0,0,0,32)
	  TNT1 A 0 A_PlaySoundEx("missile2charge","SoundSlot6")
	  TNT1 A 0 A_FaceTarget
	  AZEA A 5 A_SpawnItemEx("SatyrLordMissileDual2Fake",10,20,60,0,0,0,32)
	  AZEA B 5 A_SpawnItemEx("SatyrLordMissileDual2Fake",10,9,46,0,0,0,32)
	  AZEA C 6 A_SpawnItemEx("SatyrLordMissileDual2Fake",10,-4,28,0,0,0,32)
	  TNT1 A 0 A_PlaySound("Goat/Attack")
	  TNT1 A 0 A_FaceTarget
	  AZEA D 5 A_CustomMissile("SatyrLordMissileDual1Real",60,-20,0)
	  AZEA E 5 A_CustomMissile("SatyrLordMissileDual1Real",46,-9,0)
	  AZEA F 6 A_CustomMissile("SatyrLordMissileDual1Real",28,4,0)
	  TNT1 A 0 A_PlaySound("Goat/Attack")
	  TNT1 A 0 A_FaceTarget
	  AZEA A 5 A_CustomMissile("SatyrLordMissileDual2Real",60,20,0)
	  AZEA B 5 A_CustomMissile("SatyrLordMissileDual2Real",46,9,0)
	  AZEA C 6 A_CustomMissile("SatyrLordMissileDual2Real",28,-4,0)
	  Goto see  
    Melee:
	  TNT1 A 0 A_Jump(128,"Melee2")
	  TNT1 A 0 A_PlaySound("Goat/Attack")
        AZEA AB 7 A_FaceTarget
        AZEA C 7 A_MeleeAttack
	  Goto See
    Melee2:
	  TNT1 A 0 A_PlaySound("Goat/Attack")
        AZEA DE 7 A_FaceTarget
        AZEA F 7 A_MeleeAttack
        Goto See
    Pain:
        AZEP A 2
        AZEP A 2 A_Pain
	  TNT1 A 0 HealThing(random(10,180))
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,0)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,45)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,-45)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,90)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,-90)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,135)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,-135)
	  AZEP A 1 A_CustomMissile("SLGroundFire",0,0,180)
	  AZEP A 4
        Goto See
   Death: 
	   TNT1 A 0
	   TNT1 A 0 A_GiveToTarget("AzazelKillXP", 1)
   Death.NoXP:
   Death.SentryTurret:
        AZED A 5
        AZED B 5 A_Scream
        AZED C 5
        AZED D 4 A_Fall
        AZED E 4
        AZED F 3
        AZED G 1
		TNT1 A 0 A_SpawnItemEx("AzazelLoot", 0, 32, 0, 0, 0, 0, 0, 0, 0)
		//Remove ourselves after 60 seconds
		AZED G 2100
		AZED G 0 ACS_ExecuteAlways(501, 0)
    }
}


//*************************************************
//*************************************************
actor SLGroundFire
{
	Projectile
	Speed 7
	Damage 2
	//+RIPPER
	Scale 0.4
	+FLOORHUGGER
	SeeSound "groundfirestart"
	RenderStyle Add
	Alpha 0.9
	DamageType "Fire"
	Decal Scorch
	States
	{
	Spawn:
		FX03 B 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 C 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 D 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 E 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 F 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 G 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 H 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 I 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 J 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 K 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 L 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 M 1
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 N 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 O 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 P 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 Q 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 R 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 S 1  
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 T 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 U 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 V 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 W 1 
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 X 1 A_SpawnItemEx("SLGFXtraSpawner",0,0,0,0,0,0,0)
		//TNT1 A 0 A_Explode(64,64,0)
		FX03 Y 1 
		//TNT1 A 0 A_Explode(64,64,0)
		Loop
	Death:
		TNT1 A 1
		Stop
	}
}

Actor SLGFXtraSpawner
{
	+NOCLIP
	RenderStyle None
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		TNT1 A 0
		PLAY A 1 A_SpawnItemEx("SLGFXtra",0,0,0,random(3,-3),random(3,-3),random(3,-3),0)
		Stop
	}
}

Actor SLGFXtra
{
	Projectile
	Damage 0
	+NOCLIP
	+CLIENTSIDEONLY
	Speed 0
	Radius 1
	+DONTBLAST
	Height 1
	Scale 0.09
	RenderStyle Add
	States
	{
	Spawn:
		STAR P 3 Bright
		STAR P 0 A_Jump(128,1)
		Loop
		STAR P 3 Bright
		STAR P 1 Bright A_FadeOut
		Wait
	Death:
		NULL A 1
		Stop
	}
}

//*************************************************
//*************************************************
Actor SatyrLordMissile1
{
	Projectile
	Radius 8
	Height 16
	Speed 12
	Damage 19
	Scale 0.65
	+SHOOTABLE
	-NOBLOCKMAP
	+NOBLOOD
	Health 5
	RenderStyle Add
	SeeSound "redballbsee"
	DeathSound "redballbdeth"
	Translation "192:207=172:191"
	Decal PlasmaScorchLower
	States
	{
	Spawn:
		ANFB AAA 1 Bright A_CustomMissile("SLM1Trail",random(-5,5),random(8,-8),0)
		ANFB BBB 1 Bright A_CustomMissile("SLM1Trail",random(-5,5),random(8,-8),0)
		ANFB CCC 1 Bright A_CustomMissile("SLM1Trail",random(-5,5),random(8,-8),0)
		Loop
	Death:
		ANFB DEFG 3 Bright
		Stop
	}
}


Actor SLM1Trail
{
	Projectile
	-NOGRAVITY
	Gravity 0.4
	+NOCLIP
	+CLIENTSIDEONLY
	Damage 0
	RenderStyle Add
	Alpha 0.8
	Scale 0.5
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 ThrustThingZ(0,random(-3,8),0,1)
		SHTR ABCDDE 3 Bright
		SHTR F 1 Bright A_FadeOut(0.1)
		Wait
	}
}




//*************************************************
//*************************************************
Actor SatyrLordMissile2
{
	Speed 14
	damage 14
	scale 0.35
	radius 6
	height 12
	RENDERSTYLE ADD
	Alpha 0.75
	PROJECTILE
	//+SEEKERMISSILE
	Health 5
	+SHOOTABLE
	-NOBLOCKMAP
	+NOBLOOD
	seesound "whiteballbsee"
	deathsound "whiteballbdeth"
	states
	{
	Spawn:
		PSMM A 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM A 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM B 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM B 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM C 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM C 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)

		PSMM D 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM E 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		PSMM F 2 Bright A_SeekerMissile(25,10)
		TNT1 A 0 A_CustomMissile("SLM2Trail",0,0,0)
		goto Spawn+12
	Death:
		PSMM GGHHIIJJKKLLMM 2 Bright A_FadeOut(0.05)
		stop
	}
}


Actor SLM2Trail
{
	Projectile
	+NOCLIP
	+CLIENTSIDEONLY
	Damage 0
	RenderStyle Add
	Alpha 0.45
	Scale 0.9
	States
	{
	Spawn:
		TNT1 A 2
		PUF2 BDFHJLNPRTVXZ 1
		PUF3 B 1 A_FadeOut(0.2)
		Wait
	}
}

//*************************************************
//*************************************************
Actor SatyrLordMissileDual1Fake
{
	Projectile
	Speed 0
	+CLIENTSIDEONLY
	Scale 0.34
	RenderStyle Add
	SeeSound "waitingballsspawn"
	States
	{
	Spawn:
		MSP2 ABCD 2
		MSP2 ABCD 2
		MSP2 ABCD 2
		MSP2 ABCD 2
		Stop
	Death:
		TNT1 A 1
		Stop
	}
}
Actor SatyrLordMissileDual1Real
{
	Projectile
	Speed 14
	Scale 0.34
	RenderStyle Add
	Damage 16
	Radius 6
	height 12
	+SHOOTABLE
	-NOBLOCKMAP
	+NOBLOOD
	Health 5
	SeeSound "redballssee"
	DeathSound "redballsdeth"
	Decal DoomImpScorch
	States
	{
	Spawn:
		MSP2 A 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 A 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 B 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 B 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 C 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 C 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 D 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		MSP2 D 1 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		TNT1 AA 0 A_CustomMissile("SLMD1RTrail",random(-5,5),random(8,-8),0)
		Loop
	Death:
		MSP1 GHIJKLMNO 2
		Stop
	}
}

Actor SLMD1RTrail
{
	Projectile
	-NOGRAVITY
	Gravity 0.4
	+CLIENTSIDEONLY
	+NOCLIP
	Damage 0
	RenderStyle Add
	Alpha 0.8
	Scale 0.3
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 ThrustThingZ(0,random(-3,5),0,1)
		SHTR ABCDDE 3 Bright
		SHTR F 1 Bright A_FadeOut(0.1)
		Wait
	}
}
//*************************************************

Actor SatyrLordMissileDual2Fake
{
	Projectile
	Speed 0
	Scale 0.8
	RenderStyle Add
	+CLIENTSIDEONLY
	Alpha 0.75
	SeeSound "waitingballsspawn"
	Translation "112:127=80:111"
	States
	{
	Spawn:
		CSSF DEDE 2 Bright
		CSSF DEDE 2 Bright
		CSSF DEDE 2 Bright
		CSSF DEDE 2 Bright
		Stop
	Death:
		TNT1 A 1
		Stop
	}
}
Actor SatyrLordMissileDual2Real
{
	Projectile
	Speed 12
	Radius 6
	Damage 12
	Scale 0.8
	RenderStyle Add
	Alpha 0.75
	//+SeekerMissile
	+SHOOTABLE
	-NOBLOCKMAP
	+NOBLOOD
	Health 5
	Translation "112:127=80:111"
	SeeSound "whiteballssee"
	DeathSound "whiteballsdeth"
	height 12
	Decal PlasmaScorchLower
	States
	{
	Spawn:
		CSSF D 1 Bright A_SeekerMissile(10,10)
		TNT1 AAA 0 A_CustomMissile("SLMD2RTrail",random(5,-5),random(5,-5),0)
		CSSF D 1 Bright A_SeekerMissile(10,10)
		TNT1 AAA 0 A_CustomMissile("SLMD2RTrail",random(5,-5),random(5,-5),0)
		CSSF E 1 Bright A_SeekerMissile(10,10)
		TNT1 AAA 0 A_CustomMissile("SLMD2RTrail",random(5,-5),random(5,-5),0)
		CSSF E 1 Bright A_SeekerMissile(10,10)
		TNT1 AAA 0 A_CustomMissile("SLMD2RTrail",random(5,-5),random(5,-5),0)
		Loop
	Death:
		CSSF GHI 4 Bright 
		CSSF I 1 Bright A_FadeOut
		Wait
	}
}

Actor SLMD2RTrail
{
	Projectile
	Speed 0
	Damage 0
	+CLIENTSIDEONLY
	+NOCLIP
	RenderStyle Add
	Alpha 0.5
	Scale 0.25
	States
	{
	Spawn:
		PUF2 BCDEFGHIJKL 1 
		PUF2 L 1 A_FadeOut(0.2)
		Wait
	}
}
