ACTOR SandSpirit : HellKnight 16559
{ 
//$Category Monsters/LCA
//$Sprite SOHIA1C1
//$Title "Sand Spirit"
Monster
Health 1500
Scale 1.1
BloodColor "Burlywood"
PainChance 50
PainChance "SoulToxic", 20
PainChance "FatFlamer", 20
PainChance "FiendFire", 20
MeleeDamage 15
-BOSSDEATH
+NOTARGET
+FASTMELEE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "Nobles"
DamageFactor "NobleComet", 0.0
DropItem "BossLifeEssence", 250
DropItem "BossArmorBonusMax", 250
DropItem "MegaSphere", 10, 1
DropItem "ExtraArmor", 50
SeeSound "monster/ar2sit" 
ActiveSound "superbaron/act"
MeleeSound "baron/melee"
PainSound "superbaron/pain"
DeathSound "monster/ar2dth"
Obituary "%o was buried alive by a Sand Spirit." 
HitObituary "%o was ripped to bloody chunks by a Sand Spirit."
States 
	{
	Spawn:
		SOHS A 7 Bright A_Look
		SOHS A 7 Bright A_Look
		SOHI A 7 Bright A_Look
		SOHI A 7 Bright A_Look
		Loop 
	See:
		SOHS AA 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("SandWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		SOHS BB 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("SandWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		SOHS CC 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("SandWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		SOHS DD 3 Bright A_Chase
		TNT1 A 0 Bright A_SpawnItem("HoofStep",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("SandWalkFire",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Loop
	Missile:  
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 Bright A_Jump(128,"SandComet","TrippleSandComet","SandStorm","BigSandStorm")
		//TNT1 A 0 Bright A_Jump(256,"SandSummoning")
	Normal:
		SOHS EF 6 Bright A_FaceTarget 
		SOHS G 1 Bright A_CustomMissile("SandSpiritBall", 32, 0, 0)		
		TNT1 A 0 A_CustomMissile("SandSpiritBall", 32, 0, -5)
		SOHS G 4 Bright A_CustomMissile("SandSpiritBall", 32, 0, 5)
		SOHS IJ 6 Bright A_FaceTarget 
		SOHS K 1 Bright A_CustomMissile("SandSpiritBall", 32, 0, 0)		
		TNT1 A 0 A_CustomMissile("SandSpiritBall", 32, 0, -5)
		SOHS K 4 Bright A_CustomMissile("SandSpiritBall", 32, 0, 5)		
		TNT1 A 0 Bright A_Jump(147,"TrippleSandComet")
		Goto See
	TrippleSandComet:
		SOHS MN 7 Bright A_FaceTarget 
		SOHS O 1 Bright A_Custommissile("SSComet",32,0,0)
		TNT1 A 0 Bright A_Custommissile("SSComet",32,0,6)
		SOHS O 6 Bright A_Custommissile("SSComet",32,0,-6)
		TNT1 A 0 Bright A_Jump(87,"SandComet")
		Goto See
	SandComet:
		SOHS MN 8 Bright A_FaceTarget 	
		TNT1 A 0 A_CustomMissile("SandComet",32,0,random(8,-8))
		TNT1 A 0 A_CustomMissile("SandComet",32,0,random(7,-7))
		TNT1 A 0 A_CustomMissile("SandComet",32,0,random(6,-6))
		TNT1 A 0 A_CustomMissile("SandComet",32,0,random(5,-8))
		SOHS O 6 Bright A_CustomMissile("SandComet",32,0,random(4,-7))
		TNT1 A 0 Bright A_Jump(88,"SandStorm")
		Goto See
	SandStorm:
		TNT1 A 0 A_PlaySound("sandstorm/start")
		SOHS OM 8 Bright A_FaceTarget 	
		TNT1 A 0 A_CustomMissile("SandStormWind",10,15,0)
		SOHS N 6 Bright A_CustomMissile("SandStormWind",10,-15,0)
		TNT1 A 0 Bright A_Jump(88,"BigSandStorm")
		Goto See
	BigSandStorm:
        SOHS MN 8 Bright A_FaceTarget 	
		SOHS O 6 Bright A_CustomMissile("BigSandStorm",32,0,0)
		Goto See		
	Melee:
		SOHS EF 8 Bright A_FaceTarget 
		SOHS G 8 Bright A_MeleeAttack	
		Goto See
	Pain:
		SOHS Q 10 Bright A_Pain 
		Goto See
	XDeath:
	Death:
		SOHS R 8 Bright
		SOHS S 7 Bright A_Scream 
		TNT1 AAA 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,40,0,0,0,0,128)
		SOHS U 5 Bright A_Fall 
		SOHS VW 5 Bright
		TNT1 AAAA 0 A_CustomMissile("SmokeFX", Random(30,60), 0, random(0,360), 2, random(0,360))
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("SandClouds",0,0,20,Random(8,-8),Random(8,-8),Random(6,-6))
		SOHS X 4 Bright A_CustomMissile("SandSoul",86,0,0,2,90)
		SOHS Z 4 Bright
		TNT1 A 63000 CanRaise
		Stop
	Raise: 
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		SOHS ZYXWVUTSR 5 Bright
		Goto See
	} 
}

ACTOR SandSoul : FamineSoul
{
Scale 1
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SASP ABCD 4 Bright
		Stop 
	}
}

ACTOR SBall : BaronBall
{
Speed 16
FastSpeed 20
States
	{
	Spawn:
		ABAL AB 1 Bright A_SpawnItemEx("SABallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 A_CustomMissile("Kaboom10", 0, 0, random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("SandClouds",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		ABAL CDE 3 Bright
		Stop
	}
}

ACTOR SABallTrail : BFG9500Trail
{
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		ABAL AB 1 A_FadeOut(0.25,1)
		Goto Spawn+3
	}
}

ACTOR ArchonFastBall : GuardianTracer
{
Speed 18
FastSpeed 22
RenderStyle Translucent
Alpha 0.85
Decal "BaronScorch"
Damage 8
-SEEKERMISSILE
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"

States
	{
	Spawn:
		HATC ABC 1 Bright A_CustomMissile("ArchonFBTrail",Random(-1,1),Random(-1,1))
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,128)
		TNT1 AAA 0 A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 AA 0 A_SpawnItemEx("SandClouds",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		HATC DEFG 3 Bright
		Stop
    }
}

ACTOR ArchonFBTrail : MissileTrail
{
Scale 1
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		HATC ABCD 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR SandWalkFire
{
Speed 0
Scale 1.4
RenderStyle Add
Alpha 0.75
+MISSILE
+DROPOFF
+RANDOMIZE
+NOBLOCKMAP
+NOTELEPORT
+THRUACTORS
+DONTSPLASH
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 10 Bright
		SRTF ABC 3 Bright
		TNT1 A 0 Bright A_Jump(191,3)
		TNT1 A 0 Bright A_CustomMissile("SandWalkFire", 0, 24, 0)
		TNT1 A 0 Bright A_CustomMissile("SandWalkFire", 0, -24, 0)
		SRTF DEFGHIJKLMNO 3 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR SandComet : Comet
{
PROJECTILE
Height 10
Radius 10
Speed 28
FastSpeed 32
Scale 0.85
Decal "Scorch"
MissileType "SandCometTail"
MissileHeight 0
Damage 22
ExplosionDamage 80
ExplosionRadius 105
DamageType "NobleComet"
SeeSound "comet/launch"
DeathSound "comet/explosion"
States
	{
	Spawn:
		SAND AAABBBCCC 1 Bright A_MissileAttack
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_Explode(random(40,80),105)
		TNT1 A 0 A_SetTranslucent(0.75,1)
		TNT1 A 0 A_SpawnItemEx("BrownParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAAAA 0 A_SpawnItemEx("SandClouds",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		SAND D 3 Bright A_SpawnItemEx("SandCometDeathGlow",0,0,0,0,0,0,0,128,0)
		SAND E 3 Bright A_SpawnItemEx("SandCometDeath",0,0,0,0,0,0,0,128,0)
		Stop
	}
}

ACTOR SandCometTail : CometTail
{
Alpha 0.3
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SBTR ABCDEFGHI 1 Bright
		Stop
	}
}

ACTOR SandCometDeath : CometDeath
{
Projectile
RenderStyle Add
Alpha 0.7
+NOCLIP
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAA 0 A_CustomMissile("SandKaboom",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		SAND FGHI 3 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR SandCometDeathGlow : CometDeathGlow
{
Scale 2.0
Alpha 0.6
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		SBTR ABCDEFGHI 3 Bright
		Stop
	}
}

ACTOR SandKaboom : Kaboom3
{
Speed 2
Scale 0.9
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LSND AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR SandSpiritBall : CyNobleBall
{
States
	{
	Spawn:
		SBAL AB 1 Bright A_SpawnItemEx("SandSpiritBallTrail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BrownParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		TNT1 AAA 0 A_CustomMissile("BrownKaboom7", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAA 0 A_SpawnItemEx("SandClouds",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		SBAL CDE 3 Bright
		Stop
	}
}

ACTOR SandSpiritBallTrail : CyNobleBallTrail
{
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		SBAL AB 1 A_FadeOut(0.25,1)
		Goto Spawn+3
	}
}

ACTOR BrownKaboom7 : Kaboom7
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LSND AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR BrownParticleSpawner : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 A_SpawnItemEx("SSSG1",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("SSSG2",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("SSSG3",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("SSSG4",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("SSSG5",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 0 A_SpawnItemEx("SSSG6",0,0,0,Random(4,-4),Random(4,-4),Random(4,-4),0,128)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR EnergyProjectileSparkBrown : EnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
States
	{
	Spawn:
		GSKG A 2 Bright A_FadeOut(0.08,1)
		Loop
	}
}

ACTOR SSSG1 : EnergyProjectileSparkBrown { Scale 0.06 }
ACTOR SSSG2 : EnergyProjectileSparkBrown
{
Speed 1
Scale 0.05
}

ACTOR SSSG3 : EnergyProjectileSparkBrown
{
Speed 2
Scale 0.04
}

ACTOR SSSG4 : EnergyProjectileSparkBrown
{
Speed 3
Scale 0.03
}

ACTOR SSSG5 : EnergyProjectileSparkBrown
{
Speed 4
Scale 0.02
}

ACTOR SSSG6 : EnergyProjectileSparkBrown
{
Speed 5
Scale 0.01
}

ACTOR SSComet : Comet
{
Scale 0.85
States
	{
	Spawn:
		SCMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("SSCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Death:
		TNT1 A 0 Bright A_Explode
		TNT1 A 0 A_SpawnItemEx("BrownParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		SCMT DE 3 Bright
		TNT1 A 1 A_SpawnItemEx("SSCometDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR SSCometTail : CometTail
{
Scale 0.9
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 2 Bright
		SCMT DEFGHI 2 Bright
		Stop
	}
}

ACTOR SSCometDeath : CometDeath
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAA 0 A_CustomMissile("SandKaboom4", 0, 0, random(0,360), 2, random(0,360))	
		TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
		TNT1 AAAAA 0 A_SpawnItemEx("SandClouds",0,0,10,Random(4,-4),Random(4,-4),Random(4,-2))
		SCMT JKLMN 3 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR SandKaboom4 : Kaboom4
{
Speed 2
Scale 0.85
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		LSND AABBCDEFGHIJKLM 1 Bright A_FadeOut(0.05,1)
		Stop
	}
}

ACTOR SandClouds : DaedabusChemSpray
{ 
Scale 0.6
Speed 14
Species "Nobles"
DamageType "NobleComet"
States 
	{ 
	Spawn:
		TNT1 A 0
        SGAS ABCDEFGDFEG 3 A_Explode(2,68)
		Goto Death
    Death: 
		SGAS CCBBAA 1 A_FadeOut(0.15,1)
		Stop 
	} 
}

ACTOR SandStormWind
{
Projectile
Height 8
Radius 8
Speed 20
RenderStyle Translucent
Alpha 0.4 
Reactiontime 128
BounceCount 4
Damage 4
+DOOMBOUNCE
+SEEKERMISSILE
+BOUNCEONACTORS
DamageType "NobleComet"
States
	{
	Spawn:
		TNT1 A 0 A_CountDown
		TNT1 A 0 A_PlaySoundEx("sandstorm/loop","SoundSlot7",1)
		SFX7 ABC 3 A_SeekerMissile(30,30,SMF_LOOK)
		TNT1 AAAAAAAAA 0 A_SpawnItemEx("SandClouds",0,0,20,Random(8,-8),Random(8,-8),Random(6,-6))
		TNT1 AAAAAAAAA 0 A_SpawnItemEx("SandClouds",0,0,-20,Random(-8,8),Random(-8,8),Random(-6,6))
		Loop
	Death:
		SFX7 G 0
		SFX7 G 0 A_StopSoundEx("SoundSlot7")
		SFX7 GFED 4
		Stop
	}
}

Actor BigSandStorm
{
Projectile
height 4
radius 4
Speed 20  
BounceCount 2
ReactionTime 720
Damage 2
+Ripper
+DoomBounce
+SeekerMissile
DamageType "NobleComet"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CountDown
		TNT1 A 0 A_PlaySoundEx("sandstorm/loop","SoundSlot7",1)
		TNT1 A 0 A_SeekerMissile(30,30,SMF_LOOK)
		TNT1 A 0 A_Explode(5,128,0)
		TNT1 A 2 A_SpawnItemEx("BigSandClouds",0,0,0,random(-4,4),random(-4,4),random(-2,2),0,SXF_SETMASTER,32)
		Loop
	Dearh:
		TNT1 A 0
		TNT1 A 2 A_StopSoundEx("SoundSlot7")
		Stop
	}
}

ACTOR BigSandClouds : SandClouds
{ 
Speed 14
Scale 1.75
Species "Nobles"
DamageType "NobleComet"
}

ACTOR SummoningSandClouds2 : BigSandClouds
{ 
Speed 0
+FLOAT
+NOGRAVITY
-HEXENBOUNCE
+STANDSTILL
States 
	{  
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySoundEx("sandstorm/loop","SoundSlot7",1)
		SGAS ABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEGABCDEFGDFEG 3 A_Explode(2,68)
		Goto Death
	Death:
		SGAS CCBBAA 1 A_FadeOut(0.15,1)
		Stop
	} 
}

Actor HornetSummoner
{
Height 8
Radius 25
Speed 30
Damage (0)
+RIPPER
+BLOODLESSIMPACT
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BigSandClouds",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 A 2
		TNT1 A 1 A_SpawnItemEx("DesertHornet")
		Stop
	}
}