Actor DoomCaster
{
Monster
Health 2500
Height 64
Radius 24
Speed 6
Mass 1000
Painchance 128
Painchance "SatanGuard", 0
MeleeDamage 25
MeleeRange 48
MeleeThreshold 72
+NoFear
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+FASTMELEE
+QUICKTORETALIATE
+NOTARGET
+DONTBLAST
+DONTHARMSPECIES
-BOSSDEATH
Species "Nobles"
Species "SatanGuard"
Damagetype "SatanGuard"
Damagefactor "Acid", 0.1
Damagefactor "Fire", 0.0
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.01
Damagefactor "Disintegrate", 0.01
DamageFactor "BFGSplash", 0.25
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.25
DamageFactor "PlayerDevBall2", 0.25
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "AfritComet", 0.1
DamageFactor "Legendary", 0.1
DamageFactor "LegendaryPlayer", 0.3
DamageFactor 0.6
//No Infighting
DamageFactor "SatanGuard", 0.0
Damagefactor "Nightshade", 0.0
DamageFactor "CadaverRocket", 0.0
Damagefactor "CurseComet", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 0.0
DamageFactor "NobleComet", 0.0
DropItem "NemesisHealthBonusMax", 200, 16
DropItem "NemesisArmorBonus16", 200
DropItem "DemonAmmoBox", 180, 200
DropItem "HEMDroppedSoulSphere", 140
DropItem "HemSpeedRune", 48, 1
DropItem "ArmorSphere", 48, 1
SeeSound "monster/ar2sit" 
ActiveSound "superbaron/act"
PainSound "superbaron/pain"
DeathSound "monster/ar2dth"
MeleeSound "imp/melee"
Obituary "%o was obliterated by a Doom Caster."
HitObituary "%o was teared by a Doom Caster."
Tag "\c[s9]DoomCaster\c-"
var int user_currenthp;
var int user_lcounter;
var int user_loopc;
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	SpawnLoop:
		DCST A 10 Bright A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Idle")
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	IdleLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 2 Bright A_Wander
		DCST A 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 2 Bright A_Wander
		DCST B 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 2 Bright A_Wander
		DCST C 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 2 Bright A_Wander
		DCST D 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SetAngle(angle+22.5)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	Idle2:
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	IdleLoop2:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 2 Bright A_Wander
		DCST A 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 2 Bright A_Wander
		DCST B 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 2 Bright A_Wander
		DCST C 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 2 Bright A_Wander
		DCST D 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SetAngle(angle-22.5)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(REFLECTIVE,0)
	SeeLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Loop
	Melee:
		DCST EF 4 Bright A_FaceTarget
		DCST G 4 Bright A_CustomComboAttack("DCstBall",32,15,"Imp/Melee","SatanGuard")
		DCST FE 4 Bright A_FaceTarget
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(REFLECTIVE,0)
		TNT1 A 0 A_JumpIfCloser(300,"Normal")
		TNT1 A 0 A_JumpIfCloser(600,"PowerShot")
		TNT1 A 0 A_JumpIfCloser(1200,"PowerSpread")
		Goto Normal
	Normal:
		DCST EEEEFFFFG 1 Bright A_FaceTarget
		DCST G 1 Bright A_CustomMissile("DCstHomer",34,0,0,CMF_TRACKOWNER)
		DCST GFE 4 Bright
		TNT1 AAAA 0 A_CustomMissile("DCstBall",34,0,random(-15,15),CMF_TRACKOWNER)
		DCST IIIIJJJJK 1 Bright A_faceTarget
		DCST K 1 Bright A_CustomMissile("DCstHomer",34,0,0,CMF_TRACKOWNER)
		TNT1 AAAA 0 A_CustomMissile("DCstBall",34,0,random(-15,15),CMF_TRACKOWNER)
		DCST KJI 4 Bright
		GoTo See
	PowerShot:
		DCST MMMMMMNNNNOO 1 Bright A_FaceTarget
		DCST O 1 Bright A_CustomMissile("DCstPowerShot",35,0,0,CMF_TRACKOWNER)
		DCST OONMM 3 Bright
		GoTo See
	PowerSPREAD:
		DCST MMMMMMNNNNOO 1 Bright A_FaceTarget
		DCST OO 1 Bright A_CustomMissile("DCstHomer",35,0,0,CMF_TRACKOWNER)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("DCstBall",34,0,random(-35,35),CMF_TRACKOWNER)
		DCST OONMM 3 Bright
		GoTo See
	ShieldsPain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		DCST Q 8 Bright A_Pain
	Shields:
		DCS2 M 25 Bright
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,125,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,125,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,125,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,125,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,125,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,175,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,175,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,175,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,175,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,175,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,275,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,275,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,275,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,275,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,275,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,325,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,325,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,325,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,325,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,325,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner2",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,25)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner3",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,35)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner4",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,45)
		TNT1 A 0 A_CustomMissile("DCstShieldSpawner5",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER,55)
		DCS2 M 33 Bright A_FaceTarget
		DCS2 M 1 Bright A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		DCS2 M 1 Bright HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.5)+1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		DCS2 M 29 Bright A_FaceTarget
		DCS2 M 1 Bright
		DCS2 NNNNO 1 Bright A_FaceTarget
		TNT1 A 0 Bright A_Blast(BF_DONTWARN|BF_NOIMPACTDAMAGE,225,250,30)
		TNT1 A 0 Bright A_Explode(220,250,XF_NOTMISSILE,0)
		DCS2 O 1 Bright A_CustomMissile("DCstPurpleComet",35,0)
		TNT1 A 0 Bright A_CustomMissile("DCstPurpleComet",35,0,-25)
		TNT1 A 0 Bright A_CustomMissile("DCstPurpleComet",35,0,25)
		DCS2 ONMM 3 Bright A_FaceTarget
		TNT1 A 0 A_Jump(128,"Missile")
		Goto See
	Rush:
		DCST A 15 Bright
		TNT1 A 0 A_SetUserVar("user_loopc", 0)
	RLoop:
		TNT1 A 0 A_SetUserVar("user_loopC", user_loopc + 1)
		DCST A 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		DCST A 0 Bright A_Jump(250,2)
		DCST A 0 Bright A_CustomMissile("NightmareSummoner",60,0,random(0,360),CMF_ABSOLUTEANGLE|CMF_ABSOLUTEPITCH,random(-70,70))
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST A 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST A 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST B 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST B 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST B 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST C 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST C 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST C 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST D 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST D 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 Bright A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,128)
		DCST D 1 Bright A_Chase("","")
		DCST A 0 Bright A_Chase("","")
		TNT1 A 0 A_JumpIf(USER_LOOPc > 9, 1)
		Loop
		TNT1 A 0 A_Jump(200,"See")
		DCST AAA 0 Bright A_CustomMissile("NightmareSummoner",60,0,random(0,360),CMF_ABSOLUTEANGLE|CMF_ABSOLUTEPITCH,random(-70,70))
		Goto See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 1000,"ShieldsPain")
		TNT1 A 0 A_Jump(20,"ShieldsPain")
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_Jump(64,"Rush")
		DCST Q 8 Bright A_Pain
		GoTo See
	Death: 
		DCST R 8 Bright
		DCST S 7 Bright A_Scream 
		TNT1 AAAAAAAA 0 A_SpawnItemEx("RedParticleSpawner",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAA 0 A_SpawnItemEx("PurpleParticleSpawner",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 A_SpawnItemEx("BlueParticleSpawner",0,0,40,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST U 5 Bright A_Fall 
		DCST VW 5 Bright
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",Random(30,60),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		DCST X 4 Bright A_CustomMissile("DCstSoul",86,0,0,CMF_AIMDIRECTION,90)
	Fade:
		DCST Z 1 Bright A_Fadeout(0.1,1)
		Loop
	}
}

ACTOR DCstSoul : FamineSoul
{   
Scale 1
States
	{
	Spawn:
		TNT1 A 0 Bright
		DCSZ ABCD 4 Bright
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR DCstBall : BaronBall
{
Scale 1
Speed 16
FastSpeed 20
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "SatanGuard"
Damagetype "SatanGuard"
States
	{
	Spawn:
		DCSY ABC 1 Bright A_SpawnItemEx("DCstBallTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Loop
	Death:
		DCSY D 3 Bright
		TNT1 A 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		DCSY EFGH 3 Bright
		Stop
	}
}

ACTOR DCstBallTrail : MissileTrail
{
Scale 0.78
Renderstyle Add
Damage(0)
+CLIENTSIDEONLY
+NOINTERACTION
Species ""
Damagetype ""
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		DCSY ABCD 2 Bright A_FadeOut(0.1,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
    }
}

Actor DCstPurpleComet : ASComet
{
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor DCstHomer : HadesTracer
{
Speed 35
FastSpeed 38
Damage (random(35,45))
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
-StrifeDamage
Species "SatanGuard"
Damagetype "SatanGuard"
}

Actor DCstShieldSpawner
{
Projectile
Height 1
Radius 1
Speed 75
+Noclip
States
	{
	Spawn:
		TNT1 AAAAAAAAAA 0 Bright
		GoTo Death
	Death:
		TNT1 A 1 Bright A_SpawnItemEx("DCstShield",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		Stop
	}
}

Actor DCstShieldSpawner2 : DCstShieldSpawner
{
States
	{
    Spawn:
		TNT1 AAAAAA 0 Bright
		GoTo Death
	}
}

Actor DCstShieldSpawner3 : DCstShieldSpawner
{
 States
	{
	Spawn:
		TNT1 AAAA 0 Bright
		GoTo Death
	}
}

Actor DCstShieldSpawner4 : DCstShieldSpawner
{
States
	{
	Spawn:
		TNT1 AA 0 Bright
		GoTo Death
	}
}

Actor DCstShieldSpawner5 : DCstShieldSpawner
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		GoTo Death
	}
}

Actor DCstShield
{
Height 55
Radius 55
Mass 0x7FFFFFFF
Scale 3.5
Renderstyle Add
Alpha 1.0
Reactiontime 16
-COUNTKILL
+NoGravity
+Solid
+Shootable
+NOTARGET
+NODAMAGE
+NOBLOOD
+Invulnerable
+REFLECTIVE
+FORCEXYBILLBOARD
//+RELATIVETOFLOOR
+ThruSpecies
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species "SatanGuard"
DamageType "SatanGuard"
DeathSound "Monster/hadsit"
Tag "DoomCaster Shield"
States
	{
    Spawn:
		ENRS A 2 Bright
		//TNT1 AA 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS B 2 Bright
		//TNT1 AA 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_CountDown
		Loop
	Death:
		ENRS A 2 Bright
		TNT1 A 0 Bright A_ScreamAndUnblock
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_CustomMissile("Kaboom25",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 A 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,17,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("ASCometDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright //A_SpawnItemEx("DCstShieldAttack",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor DCstShieldAttack
{
Health 1000
Height 20
Radius 10
Mass 2500
Speed 33
FastSpeed 33
FloatSpeed 33
Scale 3.5
Renderstyle Add
Alpha 1.0
MeleeRange 20
MeleeThreshold 1280
+ISMONSTER
-COUNTKILL
+FLOAT
+NOGRAVITY
+DONTFALL
+DROPOFF
-FLOORCLIP
+SHOOTABLE
+NOTELEPORT
+NOTARGET
+NOINFIGHTING
+NOICEDEATH
+NOBLOOD
+NOPAIN
+THRUSPECIES
+LOOKALLAROUND
+MISSILEMORE
+MissileEvenMore
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
+FORCEXYBILLBOARD
Species "SatanGuard"
Damagetype "SatanGuard"
DamageFactor "SatanGuard", 0.0
ActiveSound "dcspark0"
DeathSound ""
Obituary "%o was obliterated by a Doom Caster."
HitObituary "%o was obliterated by a Doom Caster."
Tag "DoomCaster Shield"
var int user_lcounter;
States
	{
    Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_GiveInventory("Tic",50+random(-10,10))
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,"SpawnLoop")
		ENRS AAAAA 1 Bright
	SpawnLoop:
		ENRS A 1 Bright A_Look
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS A 1 Bright A_Look
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS B 1 Bright A_Look
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS B 1 Bright A_Look
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_TakeInventory("Tic",1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",1,2)
		TNT1 A 0 Bright A_Jump(256,"Kill")
		TNT1 A 0 Bright
		Loop
	See:
		ENRS A 1 Bright A_Chase("Melee","")
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS A 1 Bright A_Chase("Melee","")
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS B 1 Bright A_Chase("Melee","")
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS B 1 Bright A_Chase("Melee","Missile")
		TNT1 A 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_TakeInventory("Tic",1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",1,2)
		TNT1 A 0 Bright A_Jump(256,"Kill")
		TNT1 A 0 Bright
		Loop
	Missile:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright A_SkullAttack(33)
		ENRS AABB 1 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS AABB 1 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS AABB 1 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		ENRS AABB 1 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_TakeInventory("Tic",1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",1,2)
		TNT1 A 0 Bright A_Jump(256,"Kill")
		TNT1 A 0 Bright
		Goto See
	Melee:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 0 Bright
		ENRS A 2 Bright A_CustomMeleeAttack(Random(0,2),"Monster/hadsit","","SatanGuard")
		Goto Kill
	Kill:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Die
		Goto Death
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ScreamAndUnblock
		TNT1 AAAAAAAA 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAAA 0 Bright A_CustomMissile("Kaboom25",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AAAAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,17,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ENRS ABABABABABABABABABAB 2 A_FadeOut(0.1,1)
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ScreamAndUnblock
		TNT1 A 0 Bright A_ChangeFlag(DONTFALL,0)
		TNT1 AAAAAAAA 0 Bright A_CustomMissile("HemKaboom8",17,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAAA 0 Bright A_CustomMissile("Kaboom25",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AAAAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 Bright A_SpawnItemEx("PurpleParticleSpawner",0,0,17,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ENRS ABABABABABABABABABAB 2 A_FadeOut(0.2,1)
		Stop
	}
}

Actor DCstPowerShot : FastProjectile
{
Projectile
Height 27
Radius 27
Scale 0.6
Speed 75
Renderstyle Translucent
Alpha 0.85
Damage (random(45,50))
+SeekerMissile
+ScreenSeeker
+DONTHURTSPECIES
+DONTHARMSPECIES
+DONTHARMCLASS
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
DeathSound "DCPSXpl"
SeeSound "DCPSSht"
States
	{
	Spawn:
		MCRG EE 1 Bright A_SpawnItemEx("DCPSTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("DCPSTrail2A",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_PlaySound("DCPSWizz",0,1.0,0)
		TNT1 A 0 Bright A_SeekerMissile(5,11)
		MCRG FF 1 Bright A_SpawnItemEx("DCPSTrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("DCPSTrail2B",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SeekerMissile(5,11)
		Loop
	Death:
		MCRG F 1 Bright
		TNT1 A 0 Bright A_SpawnItemEx("DCPSDeath",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAA 0 Bright A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAA 0 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 1 Bright
		Stop
	}
}

Actor DCPSDeath
{
Scale 3.5
Renderstyle Add
Alpha 1.0
+CLIENTSIDEONLY
+NOINTERACTION
States
	{
	Spawn:
		ZZZY HI 4 Bright
		ZZZY JJJJKKKLLLL 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

ACTOR DCPSTrail
{
Gravity 0.0
Scale 0.6
Renderstyle Add
Alpha 1.0
+CLIENTSIDEONLY
+NOINTERACTION
+FORCEXYBILLBOARD
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		XXYZ A 1 Bright A_FadeOut(0.1,1)
		Goto Spawn+2
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor DCPSTrail2A : DCPSTrail
{
Scale 0.5
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		MCRG E 1 Bright A_FadeOut(0.1,1)
		Goto Spawn+2
	}
}

Actor DCPSTrail2b : DCPSTrail
{
Scale 0.5
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		MCRG F 1 Bright A_FadeOut(0.1,1)
		Goto Spawn+2
	}
}