ACTOR SandSpirit : HellKnight 7016
{ 
Health 1500
PainChance 50
PainChance "SoulToxic", 20
PainChance "FatFlamer", 20
PainChance "FiendFire", 20
MeleeDamage 15
DropItem "BossLifeEssence" 250
DropItem "BossArmorBonusMax" 250
DropItem "MegaSphere" 10 1
DropItem "ExtraArmor" 50 
DamageFactor "NobleComet", 0.0
Scale 1.1
Species "Nobles"
BloodColor "Burlywood"
+MISSILEMORE
+FASTMELEE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NOTARGET
-BOSSDEATH
Obituary "%o was buried alive by a Sand Spirit." 
HitObituary "%o was ripped to bloody chunks by a Sand Spirit."
SeeSound "monster/ar2sit" 
ActiveSound "superbaron/act"
PainSound "superbaron/pain"
DeathSound "monster/ar2dth"
MeleeSound "imp/melee"
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,128)
		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,128)
		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,128)
		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,128)
		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 	
		SOHS O 0 A_CustomMissile("SandComet", 32, 0, random(8, -8))
		SOHS O 0 A_CustomMissile("SandComet", 32, 0, random(7, -7))
		SOHS O 0 A_CustomMissile("SandComet", 32, 0, random(6, -6))
		SOHS O 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:
        SOHS O 0 A_PlaySound("sandstorm/start")
        SOHS OM 8 Bright A_FaceTarget 	
		SOHS N 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 
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 -1
	    Stop
        } 
}

ACTOR SandSoul : FamineSoul
{   
  Scale 1
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 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,128,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
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    ABAL AB 1 A_FadeOut(0.25)
    Goto Spawn+3
    }
}

ACTOR ArchonFastBall : GuardianTracer
{
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"
RenderStyle Translucent
Alpha 0.85
Decal BaronScorch
Speed 18
FastSpeed 22
Damage 8
-SEEKERMISSILE
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
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    TNT1 A 1
    HATC ABCD 2 Bright A_FadeOut
    Stop
    }
}

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

ACTOR SandComet : Comet
{
Radius 10
Height 10
Speed 28
FastSpeed 32
Damage 22
Scale 0.85
DamageType "NobleComet"
ExplosionDamage 80
ExplosionRadius 105
PROJECTILE
Decal "Scorch"
SeeSound "comet/launch"
DeathSound "comet/explosion"
MissileType SandCometTail
MissileHeight 0
States
{
Spawn:
SAND AAABBBCCC 1 Bright A_MissileAttack
Loop
Death:
TNT1 A 0
TNT1 A 0 A_Explode
TNT1 A 0 A_SetTranslucent(0.75,1)
TNT1 A 0 A_SpawnItemEx("BrownParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
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)
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)
Stop
}
}

ACTOR SandSpiritBall : CyNobleBall
{
States
{
Spawn:
    SBAL AB 1 Bright A_SpawnItemEx("SandSpiritBallTrail",0,0,0,0,0,0,0,128,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
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    SBAL AB 1 A_FadeOut(0.25)
    Goto Spawn+3
    }
}

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

ACTOR BrownParticleSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 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
    Stop
  }
}

ACTOR EnergyProjectileSparkBrown : EnergyProjectileSparkRed
{
BounceFactor 0.6
Gravity 0.2
States
{
Spawn:
GSKG A 2 Bright A_FadeOut(0.08)
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,128)
Loop
Death:
TNT1 A 0 Bright A_Explode
TNT1 A 0 A_SpawnItemEx("BrownParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
SCMT DE 3 Bright
TNT1 A 0 A_SpawnItemEx("SSCometDeath",0,0,0,0,0,0,0,128,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
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)
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)
Stop
}
}

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

ACTOR SandStormWind
{
  Radius 8
  Height 8
  Speed 20
  Damage 4
  Projectile
  +DOOMBOUNCE
  +SEEKERMISSILE
  +BOUNCEONACTORS
  BounceCount 4
  RenderStyle Translucent
  DamageType "NobleComet"
  Alpha 0.4 
  States
  {
  Spawn:
    SFX7 A 0
    SFX7 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
{
  Speed 20
  Projectile
  radius 4
  height 4
  Damage 2
  +Ripper
  +DoomBounce
  +SeekerMissile
  BounceCount 2
  ReactionTime 720
  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))
    Loop
  Dearh:
    TNT1 A 0
    TNT1 A 2 A_StopSoundEx("SoundSlot7")
    Stop
  }
}

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

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

Actor HornetSummoner
{
 Height 8
 Radius 25
 Speed 30
 Damage (0)
 +RippeR
 +BloodlessImpact
  States
   {
    Spawn:
	 TNT1 A 5
	Death:
	 TNT1 A 0
	 TNT1 A 0 A_SpawnItemEx("BigSandClouds",0,0,0,0,0,0,0,128)
	 TNT1 A 2
	 TNT1 A 0 A_SpawnItemEx("DesertHornet")
	 Stop
   }
}