Actor "Doom Shadow"
{
Monster
Health 1200
Height 56
Radius 17
Mass 1200
Speed 8
Bloodcolor "Green"
Renderstyle Translucent
Alpha 0.8
Painchance "Mine", 10
Painchance "AdvancedImp", 0
Painchance "Shadow", 0
Painchance 40
+FLOORCLIP
+NoTarget
+MissileMore
+MissileEvenMore
+QuickToRetaliate
+ThruSpecies
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
Species "AdvancedImp"
Damagetype "AdvancedImp"
Damagefactor "Acid", 0.4
Damagefactor "Fire", 0.4
//No Infighting
Damagefactor "Shadow", 0.0
Damagefactor "AdvancedImp", 0.0
Damagefactor "Catharsi15k", 0.0
Damagefactor "Catharsi10K", 0.0
Damagefactor "HellionFire", 0.0
Damagefactor "Nightshade", 0.0
DropItem "BossLifeEssence", 180
DropItem "NemesisArmorBonusMax", 180, 26
DropItem "HadesCrystalBundle", 180
DropItem "ShadowCastOrb", 16, 1
SeeSound "Poe/Sight"
ActiveSound "Poe/active"
PainSound "Poe/pain"
DeathSound "Poe/death"
Obituary "%o was devastated by a Doom Shadow."

States
   {
	Spawn:
		DSHD A 1 A_Look
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail",0,0,0,random(6,-6),random(6,-6),random(6,-6),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		Loop
	Idle:
		DSHD A 1 A_Look
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail",0,0,0,random(6,-6),random(6,-6),random(6,-6),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		Loop
	Pain:
		TNT1 A 0
		DSHD H 5 A_Pain
		Goto See
	See:
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD B 1 A_FastChase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD D 1 A_FastChase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_Jump(60,"DoomWraith")
		TNT1 A 0 A_Jump(55,"VileAttack")
		TNT1 A 0 A_Jump(35,"ShadowCall")
		Goto MissileLoop
	MissileLoop:
		DSHD FFFFF 1 A_FaceTarget
		DSHD G 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ShadeMissile",32,0,0,CMF_TRACKOWNER)
		DSHD G 3 Bright A_FaceTarget
		TNT1 A 0 A_Jump(15,"See")
		TNT1 A 0 A_Jump(19,"ShadowCall")
		DSHD F 1 A_SpidRefire
		Loop
	DoomWraith:
		DSHD FFFFFFF 1 A_FaceTarget
		DSHD G 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("DoomWraith2",32,0,0,CMF_TRACKOWNER)
		DSHD G 3 Bright A_Recoil(20)
		DSHD H 7
		GoTo See
	VileAttack:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DSHD FFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,0,SXF_TRANSFERPOINTERS | SXF_SETMASTER)
		DSHD F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,0,SXF_TRANSFERPOINTERS | SXF_SETMASTER)
		DSHD F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("DShadowTargeter",22,0,0,0,0,0,0,SXF_TRANSFERPOINTERS | SXF_SETMASTER)
	VileChargeLoop:
		TNT1 A 0 A_JumpIfInventory("Tic",105,"VileChargeEnd")
		DSHD F 1 A_FaceTarget
		TNT1 A 0 A_VileTarget("DShadowHadesAttack")
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfTargetInLos("VileChargeLoop",360)
		TNT1 A 0
		GoTo See
	VileChargeEnd:
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_JumpIfTargetInLos("VileExplode",360)
		DSHD G 4
		GoTo See
	VileExplode:
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		DSHD G 3 A_VileTarget("DShadowHadesExplode")
		DSHD G 4 A_FaceTarget
		GoTo See
	ShadowCall:
		DSHD E 35
		TNT1 A 0 A_SpawnItemEx("ShadowMinion",0,45,0,0,0,0,0,SXF_TRANSFERPOINTERS | SXF_SETMASTER | SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("ShadowMinion",0,-45,0,0,0,0,0,SXF_TRANSFERPOINTERS | SXF_SETMASTER | SXF_NOCHECKPOSITION)
		GoTo See
	Death:
		DSHD H 30 A_Scream
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",CHAN_AUTO,1.0,0)
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",CHAN_AUTO,1.0,0)
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",CHAN_AUTO,1.0,0)
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",CHAN_AUTO,1.0,0)
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",CHAN_AUTO,1.0,0)
		DSHD HH 1 Bright A_CustomMissile("Kaboom12",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DSHD HH 1 Bright A_CustomMissile("Kaboom12",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom12",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AA 0 A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DSHD HH 1 Bright A_CustomMissile("Kaboom10",Random(10,50),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_PlaySound("DoomWraithSpawn",CHAN_AUTO,1.0,0)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",CHAN_AUTO,1.0,0)
		TNT1 AA 0 A_SpawnItemEx("GreenGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 AA 0 A_SpawnItemEx("BlackGibbedGenerator",0,0,0,0,0,0,0,128,0)
		TNT1 AAAAAA 0 A_CustomMissile("SmokeFX",Random(30,60),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("BigRedBloodCloud",Random(30,60),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAAA 0 A_CustomMissile("RedBloodCloud",Random(30,60),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,0,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,45,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,-45,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,90,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,-90,CMF_AIMDIRECTION |CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,135,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,-135,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DoomWraith",35,0,180,CMF_AIMDIRECTION | CMF_TRACKOWNER)
		DSHD N 4 Bright A_Fall
		DSHD MOPQR 4 Bright
		DSHD S 4 Bright
		TNT1 A 0 A_KillChildren
		DSHD T 525
		TNT1 A 0 A_RemoveChildren
		DSHD T 5 A_FadeOut(0.1,1)
		Wait
	}
}

Actor DoomShadowTrail
{
Renderstyle Translucent
Alpha 0.6
+ClientSideOnly
+NoInteraction
States
	{
	Spawn:
		DSHD A 4
		DSHD A 1 A_FadeOut(0.125,1)
		Wait
	}
}

Actor DoomShadowTrail2
{
Renderstyle Translucent
Alpha 0.6
+MISSILE
+DROPOFF
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+THRUACTORS
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 0 Bright A_Jump(256,"Spawn1","Spawn2","Spawn3","Spawn4")
	Spawn1:
		DSHD CDEB 4
		DSHD B 1 A_FadeOut(0.125,1)
		Wait
	Spawn2:
		DSHD BCDE 4
		DSHD E 1 A_FadeOut(0.125,1)
		Wait
	Spawn3:
		DSHD EBCD 4
		DSHD D 1 A_FadeOut(0.125,1)
		Wait
	Spawn4:
		DSHD DEBC 4
		DSHD C 1 A_FadeOut(0.125,1)
		Wait
	}
}

Actor DSHadowTargeter
{
Health 50
Height 5
Radius 5
Speed 1
Mass 5555
+ISMONSTER
-COUNTKILL
+LOOKALLAROUND
+QUICKTORETALIATE
+INVULNERABLE
+NONSHOOTABLE
+NORADIUSDMG
+NOTARGET
+NOPAIN
+NOCLIP
Species "AdvancedImp"
Damagetype "AdvancedImp"
Obituary "%o couldn't fool the Doom Shadow."
Tag "Shadow"
States
	{
	Spawn:
		TNT1 A 0 A_GiveInventory("Tic",3)
		TNT1 A 0 A_JumpIfInventory("Tic",70,"Death")
		TNT1 AAA 1 A_Chase("","")
		TNT1 A 1 A_LookEx(0,0,0,0,360,"Missile")
		Loop
	See:
	Missile:
		TNT1 A 0 A_JumpIfInTargetInventory("AlreadyTargeted",1,"ClearTarget")
		TNT1 AA 1 A_FaceTarget
		Goto VileStart
	VileStart:
		TNT1 A 0 A_GiveToTarget("AlreadyTargeted",1)
		TNT1 A 0 A_TakeInventory("Tic",500)
		Goto VileCharge
	VileCharge:
		TNT1 A 0 A_JumpIfInventory("Tic",105,"VileAttack")
		TNT1 A 1 A_FaceTarget
		TNT1 A 0 A_VileTarget("DShadowHadesAttack2")
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfTargetInLos("VileCharge",360)
		Goto Death
	VileAttack:
		TNT1 A 0 A_JumpIfTargetInLos("VileExplode",360)
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 1
		GoTo Death
	VileExplode:
		TNT1 A 0
		TNT1 A 1 A_VileTarget("DShadowHadesExplode2")
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 1 A_FaceTarget
		GoTo Death
	Death:
		TNT1 A 0
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 1
		Stop
	ClearTarget:
		TNT1 A 1
		TNT1 A 0 A_ClearTarget
		GoTo Spawn
	}
}

Actor DShadowHadesAttack : RedParticleSpawner
{
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("HadesSoulSpawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AA 0 A_SpawnItemEx("Kaboom10Spawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawnItemEx("HadesFire",random(-20,20),random(-20,20),random(-45,45),0,0,0,random(0,360),SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor HadesSoul : DoomShadowTrail
{
Alpha 1.0
Scale 0.8
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_Jump(60,"WithSound")
		DSOL ABCD 3 Bright A_SpawnItemEx("Kaboom10",0,0,0)
		DSOL D 1 Bright A_FadeOut(0.1,1)
		Wait
	WithSound:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_Jump(10,"WithSound1")
		TNT1 A 0 Bright A_PlaySound("SoulRazeSouls",CHAN_AUTO,1.0,0)
		DSOL ABCD 3 Bright A_SpawnItemEx("Kaboom10",0,0,0)
		DSOL D 1 Bright A_FadeOut(0.1,1)
		Wait
	WithSound1:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("SoulRazeLaugh1",CHAN_AUTO,1.0,0)
		DSOL ABCD 3 Bright A_SpawnItemEx("Kaboom10",0,0,0)
		DSOL D 1 Bright A_FadeOut(0.1,1)
		Wait
	}
}

Actor HadesFire : OrangeFire
{
Scale 0.3
States
	{
	Spawn:
		FRR1 ABCDEFGHIJKL 2 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor DSHadowHadesExplode
{
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+DontHurtSpecies
+DontHarmSpecies
Species "AdvancedImp"
Damagetype "AdvancedImp"
Obituary "%o was consumed into the Hades."
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SoulRazeLaugh2",1,1.0,0)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",2,1.0,0)
		TNT1 A 0 A_Explode(50,500,0,0,5)
		TNT1 AAAAA 0 A_SpawnItemEx("Kaboom12Spawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesFireSpawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1 A_SpawnItemEx("SoulRazeSprite",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor Kaboom10Spawner
{
PROJECTILE
height 8
radius 1
speed 0
-SOLID
States
	{
	Spawn:
	Death:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("Kaboom10",random(-10,10),random(-20,20),0,0,0,random(0,2),random(0,360),SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor Kaboom12Spawner : Kaboom10Spawner
{
States
	{
	Spawn:
	Death:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("Kaboom12",Random(-20,20),Random(-30,30),0,random(-2,2),random(-2,2),random(10,20),random(0,360),SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor HadesFireSpawner : Kaboom10Spawner
{
States
	{
	Spawn:
	Death:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_SpawnItemEx("HadesFire",Random(-10,10),Random(-10,10),0,random(-8,8),random(-8,8),random(20,40),random(0,360),SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor HadesSoulSpawner : Kaboom10Spawner
{
States
	{
	Spawn:
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	Normal:
		TNT1 A 1 Bright A_SpawnItemEx("HadesSoul",random(-20,20),random(-20,20),0,0,0,random(2,7),random(0,360),SXF_NOCHECKPOSITION)
		Stop
	Toaster:
		TNT1 A 1 Bright A_Jump(18,"BackToSpawn")
		Stop
	BackToSpawn:
		TNT1 A 1 Bright
		GoTo Normal
	}
}

Actor SoulRazeSprite : RedParticleSpawner
{
Scale 1.3
Renderstyle Translucent
Alpha 1.0
States
	{
	Spawn:
		PLSH A 3 Bright
		PLSH BC 2 Bright
		PLSH DEEFFFFFFFF 2 A_FadeOut(0.1,1)
		Stop
	}
}

Actor DShadowHadesAttack2 : RedParticleSpawner
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",random(-45,45),random(-45,45),random(-65,15),0,0,0,random(0,360),SXF_NOCHECKPOSITION)
		TNT1 AA 0 A_SpawnItemEx("SHadesTrail1",random(-45,45),random(-45,45),random(-65,15),0,0,0,random(0,360),SXF_NOCHECKPOSITION)
		TNT1 AA 0 A_SpawnItemEx("SHadesTrail2",random(-45,45),random(-45,45),random(-65,15),0,0,0,random(0,360),SXF_NOCHECKPOSITION)
		TNT1 A 1
		Stop
	}
}

Actor HadesElectroSmoke : RedParticleSpawner
{
Scale 1.0
Renderstyle Add
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	Normal:
		HEFX CDEFGHHHHHH 3 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright A_Jump(18,"BackToSpawn")
		Stop
	BackToSpawn:
		TNT1 A 1 Bright
		GoTo Normal
	}
}

Actor DShadowHadesExplode2
{
+NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+DONTSPLASH
+DontHurtSpecies
+DontHarmSpecies
Species "AdvancedImp"
Damagetype "AdvancedImp"
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("HadesChargeRelease",0,1.0,0)
		TNT1 A 0 A_SpawnItemEx("HadesChargeShock",0,0,random(-45,5),0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_Explode(15,100,0)
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-15,15),random(-15,15),random(-55,15),random(0,360))
		TNT1 A 1
		Stop
	}
}

Actor HadesChargeShock : HadesElectroSmoke
{
Scale 1.3
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("RedFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HAT2 RSTUV 2 Bright
		HAT2 VWWWXXXXXXX 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor DoomWraith
{
Projectile
Height 5
Radius 5
Speed 15
Gravity 0.2
BounceCount 10
Damage (0)
+DOOMBOUNCE
-Floorclip
+Ripper
-NoGravity
+BloodlessImpact
+NoExplodeFloor
//+NOTELESTOMP
+DontHurtSpecies
+DontHarmSpecies
Species "AdvancedImp"
Damagetype "AdvancedImp"
Obituary "A Doom Shadow got his revenge on %o."
States
	{
	Spawn:
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		GoTo Death
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ScaleVelocity(0.3)
		TNT1 A 0 Bright A_ChangeFlag(DOOMBOUNCE,0)
		TNT1 A 0 Bright A_ChangeFlag(HEXENBOUNCE,1)
		TNT1 A 0 Bright A_UnSetSolid
		TNT1 A 0 Bright A_Scream
		TNT1 A 0 Bright A_SpawnItemEx("Kaboom12",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE,0)
		TNT1 AAAAAA 0 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Explode(20,160,0)
		DWRT HIJKLMMMMMM 4 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor DoomWraith2 : DoomWraith
{
Height 10
Radius 10
Damage (3*random(1,8))
+ThruSpecies
+EXTREMEDEATH
DeathSound "harvester/scream"
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_PlaySound("DoomWraithSpawn",CHAN_AUTO,1.0,0)
		Goto Normal
	Normal:
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Explode(10,80,0)
		GoTo Death
	}
}

ACTOR ShadowMinion
{
Monster
Health 80
Height 56
Radius 17
Mass 100
Speed 5
Alpha 0.7
RenderStyle Translucent
PainChance 200
Painchance "Shadow", 0
Painchance "AdvancedImp", 0
MissileType "ShadeMissile"
+FLOORCLIP
+NOTARGET
+NOINFIGHTING
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "AdvancedImp"
Damagetype "AdvancedImp"
//No Infighting
Damagefactor "Shadow", 0.0
Damagefactor "AdvancedImp", 0.0
DropItem "LifeEssence", 180, 8
DropItem "ArmorBonusMax", 180, 8
DropItem "HadesCrystal", 180, 5
PainSound "Shadow/pain"
DeathSound "Shadow/death"
ActiveSound "Shadow/active"
Obituary "%o was assassinated by Doom Shadow's Minions."
Tag "Shadow Minion"
States
	{
	Spawn:
		SHDW E 10 A_Look
		Loop
	Idle:
		SHDW EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 10 A_Look
		TNT1 A 0 A_JumpIfInventory("Tic",10,"Vanish")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	See:
		SHDW A 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostA",0,0,0,CMF_AIMDIRECTION)
		SHDW A 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostA",0,0,0,CMF_AIMDIRECTION)
		SHDW A 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostA",0,0,0,CMF_AIMDIRECTION)
		SHDW B 1 A_Chase
		TNT1 B 0 A_CustomMissile("ShadowGhostB",0,0,0,CMF_AIMDIRECTION)
		SHDW B 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostB",0,0,0,CMF_AIMDIRECTION)
		SHDW B 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostB",0,0,0,CMF_AIMDIRECTION)
		SHDW C 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostC",0,0,0,CMF_AIMDIRECTION)
		SHDW C 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostC",0,0,0,CMF_AIMDIRECTION)
		SHDW C 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostC",0,0,0,CMF_AIMDIRECTION)
		SHDW D 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostD",0,0,0,CMF_AIMDIRECTION)
		SHDW D 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostD",0,0,0,CMF_AIMDIRECTION)
		SHDW D 1 A_Chase
		TNT1 A 0 A_CustomMissile("ShadowGhostD",0,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_JumpIfInventory("Tic",10,"Vanish")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",10,"Vanish")
		TNT1 A 0 A_GiveInventory("Tic",1)
		SHDW E 30 A_FaceTarget
	MissileLoop:
		SHDW F 5
		SHDW G 5 BRIGHT A_MissileAttack
		SHDW F 5
		SHDW E 20
		SHDW E 1 A_SpidRefire
		Loop
	Pain:
		SHDW H 4
		SHDW H 4 A_Pain
		Goto See
	Vanish:
		TNT1 A 0
		SHDW H 2 A_FadeOut(0.1,1)
		Wait
	Death:
		TNT1 A 0
		SHDW I 6 A_Scream
		SHDW J 5
		SHDW K 5 A_CustomMissile("Shadowtorso",0,0,0,CMF_AIMDIRECTION)
		SHDW L 5 A_Fall
		SHDW MNOP 6 
		SHDW P 525
		SHDW P 5 A_FadeOut(0.1,1)
		Wait
	XDeath:
		SHDX A 8
		SHDX B 6 A_XScream
		SHDX C 6 
		SHDX D 6 A_Fall
 		SHDX EFG 6
		SHDX G 525
		SHDX G 5 A_FadeOut(0.1,1)
		Wait
	}
}

ACTOR ShadowGhostA
{
Height 56
Radius 4
Mass 75
Speed 0
RenderStyle "Translucent"
Alpha 0.3
Damage (0)
+NOINTERACTION
+CLIENTSIDEONLY
States
	{
	Spawn:
		TNT1 A 1
		SHDW A 10
		Stop
	}
}

ACTOR ShadowGhostB : ShadowGhostA
{
States
	{
	Spawn:
		TNT1 A 1
		SHDW B 10
		Stop
	}
}

ACTOR ShadowGhostC : ShadowGhostA
{
States
	{
	Spawn:
		TNT1 A 1
		SHDW C 10
		Stop
	}
}

ACTOR ShadowGhostD : ShadowGhostA
{
States
	{
	Spawn:
		TNT1 A 1
		SHDW D 10
		Stop
	}
}

ACTOR Shadowtorso
{
Height 15
Radius 12
Mass 5000
Speed 1
RenderStyle "Translucent"
Alpha 0.7
+Doombounce
States
	{
	Spawn:
		SHDW QRS 5
		SHDW T 5 A_Fall
		SHDW U 5
		SHDW V 525
		SHDW V 5 A_FadeOut(0.1,1)
		Wait
	}
}

Actor ShadowSlaveSpawner : ExileCaster
{
Height 56
Radius 16
Speed 20
+THRUACTORS
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("ShadowSlave",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
   }
}

Actor ShadowSlaveSpawner2 : ShadowSlaveSpawner
{
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("ShadowSlave2",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor ShadowSlave : "Doom Shadow"
{
Monster
Health 2200
Height 56
Radius 16
Speed 12
FastSpeed 14
BloodColor Purple
Renderstyle Translucent
Alpha 0.8
MaxStepHeight 80
MeleeRange 64
Painchance "PlayerPhase", 0
Painchance "Player", 0
Painchance "Players", 0
+FRIENDLY
-COUNTKILL
+NOFEAR
+SlidesOnWalls
+DropOFF
+LookAllAround
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
+DontHarmClass
Species ""
Species "Player"
Damagetype ""
Damagetype "PlayerPhase"
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDTBFGRailgunSlug", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "LegendaryPlayer", 0.3
DamageFactor 0.75
//No Infighting
Damagefactor "PlayerPhase", 0.0
Damagefactor "Player", 0.0
Damagefactor "Players", 0.0
Damagefactor "Explosion", 0.0
Damagefactor "AbyssalSatyr", 0.0
DamageFactor "SatanGuard", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DropItem "BossLifeEssence", 256
DropItem "HEMBossArmorBonusMax30", 256
DropItem "HadesCrystalBundle", 196
DropItem "ShadowCastOrb", 24, 1
DropItem "PartialKakuhou", 180, 7
SeeSound "Shadowslave/See"
ActiveSound "Shadowslave/Active"
//MeleeSound "imp/melee"
PainSound "Shadowslave/Pain"
DeathSound "Shadowslave/Death"
Tag "Summoned Shadow Slave"
var int user_lcounter;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_lcounter",100)
		Goto Spawnloop
	Spawnloop:
		SSLV A 10 A_Look
		Loop
	Idle:
		SSLV BC 3 A_Wander
		TNT1 A 0 A_Look
		SSLV DE 3 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Kill")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	See:
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_TakeInventory("HomingShotCount",3)
		SSLV B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost1",0,0,0)
		SSLV B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost1",0,0,0)
		SSLV B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost1",0,0,0)
		SSLV B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost1",0,0,0)
		SSLV C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost2",0,0,0)
		SSLV C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost2",0,0,0)
		SSLV C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost2",0,0,0)
		SSLV C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost2",0,0,0)
		SSLV D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost3",0,0,0)
		SSLV D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost3",0,0,0)
		SSLV D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost3",0,0,0)
		SSLV D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost3",0,0,0)
		SSLV E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost4",0,0,0)
		SSLV E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost4",0,0,0)
		SSLV E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost4",0,0,0)
		SSLV E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSlaveGhost4",0,0,0)
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Kill")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		Loop
	Melee:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_UnSetInvulnerable
		SSLV F 5 A_FaceTarget
		SSLV G 4 A_FaceTarget
		TNT1 A 0 A_CustomMeleeAttack(random(2,4)*10,"imp/melee","None","Melee")
		SSLV F 4
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_Jump(128,"RipperSpread","RipperSpread","RipperHoming","RipperHoming","RipperHoming","RipperHoming","Rush")
		SSLV F 4 A_FaceTarget
		SSLV G 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ShadeMissile2",32,6,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ShadeMissile2",32,-6,0,CMF_TRACKOWNER)
		SSLV F 3
		GoTo See
	RipperSpread:
		TNT1 A 0
		TNT1 A 0 A_UnSetInvulnerable
		SSLV F 6 A_FaceTarget
		SSLV G 4 A_FaceTarget
		TNT1 A 0 A_CustomMissile("PhaseBallFriendly",32,0,-15,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PhaseBallFriendly",32,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PhaseBallFriendly",32,0,15,CMF_TRACKOWNER)
		SSLV F 4
		GoTo See
	RipperHoming:
		TNT1 A 0
		TNT1 A 0 A_UnSetInvulnerable
		SSLV F 4 A_FaceTarget
		SSLV G 4 A_FaceTarget
		TNT1 A 0 A_CustomMissile("RipperHomingFriendly",32,0,0,CMF_TRACKOWNER)
		GoTo See
	Rush:
		TNT1 A 0
		SSLV B 5 A_FaceTarget
		TNT1 A 0 A_TakeInventory("Tic",999999)
		Goto Rushing
	Rushing:
		SSL2 B 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost1",0,0,0)
		SSL2 B 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost1",0,0,0)
		SSL2 C 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost2",0,0,0)
		SSL2 C 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost2",0,0,0)
		SSL2 D 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost3",0,0,0)
		SSL2 D 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost3",0,0,0)
		SSL2 E 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost4",0,0,0)
		SSL2 E 1 A_Chase("","",CHF_NIGHTMAREFAST)
		TNT1 A 0 A_Chase("","")
		TNT1 A 0 A_CustomMissile("RushPulse",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_SpawnItemEx("RushGhost4",0,0,0)
		TNT1 A 0 A_GiveInventory("Tic",8)
		TNT1 A 0 A_JumpIfInventory("Tic",280,"RushEnd")
		Loop
	RushEnd:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		SSLV A 4
		GoTo See
	Pain:
		TNT1 A 0
		SSLV H 5 A_Pain
		GoTo See
	Kill:
		TNT1 A 0
		TNT1 A 0 A_Die
		Goto Death
	XDeath:
	Death:
		TNT1 A 0
		SSLV I 6 A_Scream
		SSLV J 5
		SSLV K 5 A_CustomMissile("Shadowtorso",0,0,0,2)
		SSLV L 5 A_Fall
		SSLV M 5
		SSLV M 5 A_FadeOut(0.1,1)
		Wait
	}
}

Actor ShadowSlave2 : ShadowSlave
{
Health 2000
MeleeRange 68
MeleeDamage 25
States
	{
	Missile:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999)
		TNT1 A 0 A_ChangeFlag(Invulnerable,0)
		TNT1 A 0 a_Jump(90,"Rush")
		TNT1 A 0 A_Jump(60,"RipperSpread","RipperHoming")
		SSLV F 4 A_FaceTarget
		SSLV G 2 A_FaceTarget
		TNT1 A 0 A_CustomMissile("ShadeMissile2",32,6,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("ShadeMissile2",32,-6,0,CMF_TRACKOWNER)
		SSLV F 3
		GoTo See
	Melee:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999)
		TNT1 A 0 A_UnSetInvulnerable
		SSLV F 2 A_FaceTarget
		SSLV G 2 A_FaceTarget
		TNT1 A 0 A_CustomMeleeAttack(random(2,4)*10,"imp/melee","None","Melee")
		SSLV F 2
		GoTo See
	}
}

Actor ShadeMissile2 : ShadeMissile
{
-STRIFEDAMAGE
Damage 8
Species ""
Species "Player"
Damagetype ""
Damagetype "PlayerPhase"
States
	{
	Spawn:
		PBAL AA 1 bright A_SpawnItemEx("ShadePuff2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 bright A_Seekermissile(5,7)
		PBAL AA 1 bright A_SpawnItemEx("ShadePuff2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 bright A_Seekermissile(5,7)
		PBAL BB 1 bright A_SpawnItemEx("ShadePuff2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 bright A_Seekermissile(5,7)
		PBAL BB 1 bright A_SpawnItemEx("ShadePuff2",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 bright A_Seekermissile(5,7)  
		Loop
	Death:
		TNT1 A 0
		PBAL HIJKLM 3 bright A_FadeOut(0.1,1)
		Stop
	Crash:
	XDeath:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 A_CustomMissile("Kaboom8",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		PBAL HIJKLM 3 bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor ShadePuff2 : ShadePuff
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		PHTR ABCDEFF 3 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor PhaseBallFriendly : PhaseImpBall
{
Speed 20
Species ""
Species "Player"
Damagetype ""
Damagetype "PlayerPhase"
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
-SeekerMissile
}

Actor RipperHomingFriendly : PhaseImpBall
{
Species ""
Species "Player"
Damagetype ""
DamageType "PlayerPhase"
+ThruSpecies
+DontHurtSpecies
+DontHarmSpecies
}

Actor RushPulse
{
Projectile
Height 1
Radius 1
Speed 0
+NoDamageThrust
+FORCERADIUSDMG
+BLOODLESSIMPACT
+DontHurtSpecies
+DontHarmSpecies
+Thruspecies
Species "Player"
DamageType "PlayerPhase"
States
	{
	Spawn:
		TNT1 A 1 Bright
	Death:
		TNT1 A 0 Bright
		TNT1 A 1 Bright A_Explode(20,120,0,0)
		Stop
	}
}

Actor ShadowSlaveGhost1 : ShadowGhostA
{
Alpha 0.5
States
	{
	Spawn:
		TNT1 A 1
		SSLV BBBBB 2 A_FadeOut(0.1,1)
		Stop
	}
}

Actor ShadowSlaveGhost2 : ShadowGhostA
{
Alpha 0.5
States
	{
	Spawn:
		TNT1 A 1
		SSLV CCCCC 2 A_FadeOut(0.1,1)
		Stop
	}
}

Actor ShadowSlaveGhost3 : ShadowGhostA
{
Alpha 0.5
States
	{
	Spawn:
		TNT1 A 1
		SSLV DDDDD 2 A_FadeOut(0.1,1)
		Stop
	}
}

Actor ShadowSlaveGhost4 : ShadowGhostA
{
Alpha 0.5
States
	{
	Spawn:
		TNT1 A 1
		SSLV EEEEE 2 A_FadeOut(0.1,1)
		Stop
	}
}

Actor RushGhost1
{
Height 56
Radius 1
Scale 1.1
Renderstyle Add
Alpha 0.5
+Nointeraction
+ClientsideOnly
States
	{
	Spawn:
		TNT1 A 1
		SSL3 B 2 A_FadeOut(0.125,1)
		Wait
	}
}

Actor RushGhost2 : RushGhost1
{
States
	{
	Spawn:
		TNT1 A 1
		SSL3 C 2 A_FadeOut(0.125,1)
		Wait
	}
}

Actor RushGhost3 : RushGhost1
{
States
	{
	Spawn:
		TNT1 A 1
		SSL3 D 2 A_FadeOut(0.125,1)
		Wait
	}
}

Actor RushGhost4 : RushGhost1
{
States
	{
	Spawn:
		TNT1 A 1
		SSL3 E 2 A_FadeOut(0.125,1)
		Wait
	}
}