ACTOR HellPaladin 30332
{
MONSTER
Health 3666
Height 70
Radius 24
Mass 1000
Speed 12
YScale 1.3
XScale 1.15
Bloodcolor "Blue"
Painchance "SatanGuard", 0
Painchance 11 //WHY 64
MeleeRange 70
Meleedamage 45
+NOFEAR
+BOSSDEATH
+DONTBLAST
+DONTMORPH
+DONTRIP
+NOTARGET
+FLOORCLIP
+FASTMELEE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
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 "AfritComet", 0.1
DamageFactor "PDTBFG", 0.25
DamageFactor "PDTBFGTracer", 0.25
DamageFactor "PlayerDevBall", 0.125
DamageFactor "PlayerDevBall2", 0.125
DamageFactor "PlayerDevTracer", 0.125
DamageFactor "Legendary", 0.1
DamageFactor "LegendaryPlayer", 0.3
DamageFactor 0.45
//No Infighting
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Heterodox", 0.0
Damagefactor "Damned", 0.0
DamageFactor "NobleComet", 0.0
Damagefactor "CurseComet", 0.0
DropItem "BossLifeEssence", 200, 25
DropItem "HEMBossArmorBonusMax35", 200
DropItem "DemonAmmoBox", 180, 200
DropItem "LifeSphere", 80
DropItem "HemLifeRune", 48, 1
DropItem "SuperArmorSphere", 48, 1
SeeSound "paladin/sight"
ActiveSound "paladin/active"
MeleeSound "imp/melee"
PainSound "paladin/pain"
DeathSound "paladin/death"
Obituary "%o was burnt from %p worthless existence by a Hell Paladin."
HitObituary "%o was blown away by the fists of a Hell Paladin."
Tag "\c[x5]Hell Paladin\c-"
var int user_currenthp;
States
	{
	Spawn: 
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	SpawnLoop:
		TNT1 A 0
		SATG AAAAAAAAAAAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		TNT1 A 0 A_Look
		SATI AAAAAAAAAAAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		TNT1 A 0 A_Look
		SATG AAAAAAAAAAAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		TNT1 A 0 A_Look
		SATI AAAAAAAAAAAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,64)
		TNT1 A 0 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_GiveInventory("ResetMonsterReflectInvul",1)
	IdleLoop:
		TNT1 A 0
		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)
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
        SATG AAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		SATG AAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
        SATG BBB 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		SATG BBB 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
        TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		SATG CCC 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		SATG CCC 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		SATG DDD 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		SATG DDD 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Wander
		TNT1 A 0 A_Look
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 5,"Pain.Crush")
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_GiveInventory("ResetMonsterReflectInvul",1)
	SeeLoop:
		TNT1 A 0
		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)
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
        SATG AAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		SATG AAA 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
        SATG BBB 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		SATG BBB 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
        TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		SATG CCC 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		SATG CCC 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		SATG DDD 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
		SATG DDD 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_Chase
        Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("ResetMonsterReflectInvul",1)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Rage")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_JumpIfTargetInLOS("VeryFarRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1500)
		TNT1 A 0 A_JumpIfTargetInLOS("FarRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,1000)
		TNT1 A 0 A_JumpIfTargetInLOS("LongRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,800)
		TNT1 A 0 A_JumpIfTargetInLOS("NearRange",90,JLOSF_CLOSENOJUMP|JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,0,500)
		TNT1 A 0 A_JumpIfTargetInLOS("CloserAttack",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
		Goto Shield
	VeryFarRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"HomingComets","HomingComets","RFLv2")
		TNT1 A 0
	FarRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Spread","Spread","Spread","HomingComets")
		TNT1 A 0
	LongRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Spread","Spread","FireBlast","Comet","Comet")
		TNT1 A 0
	NearRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Spread","FireBlast","FireBlast","Comet")
		TNT1 A 0
	CloserAttack:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Normal","Normal","FireBlast")
		TNT1 A 0
	Normal:
		TNT1 A 0
        SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG FFFFFF 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG GGG 1 Bright A_CustomMissile("PaladinBall",32,0,random(5,-5))
		SATG GG 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        SATG IIIIII 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG JJJJJJ 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG KKK 1 Bright A_CustomMissile("PaladinBall",32,0,random(5,-5))		
		SATG KK 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        Goto See
	Rage:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
        TNT1 A 0 A_Jump(255,"Spread","FireBlast","Comet","HomingComets","RFLv2","Normal")
		Goto Shield
	RFLv2:
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG NNNNNN 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
        Goto See
	Spread:
        SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG NNNNNN 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG O 1 Bright A_CustomMissile("PaladinBall",32,0,random(8,-8))
		TNT1 AAAAAAAAAA 0 A_CustomMissile("PaladinBall",32,0,random(8,-8))
		SATG OOOOO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		Goto See
	Comet:
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG NNNNNN 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG OO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_Custommissile("PaladinComet",32,0,0)
		TNT1 A 0 A_FaceTarget
        SATG OO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_Custommissile("PaladinComet",32,0,0)
		TNT1 A 0 A_FaceTarget
        SATG OO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_Custommissile("PaladinComet",32,0,0)
		SATG OOOOO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        Goto See
	HomingComets:
        SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG O 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG N 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG N 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG N 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG N 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HomingComet",65,24,0,2)
		TNT1 A 0 A_CustomMissile("HomingComet",65,-24,0,2)
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG M 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HomingComet",75,24,0,2)
		TNT1 A 0 A_CustomMissile("HomingComet",75,-24,0,2)
        Goto See
	Shield:
        TNT1 A 0
		TNT1 A 0 A_GiveInventory("SetMonsterReflectInvul",1)
        SATG MMMMMM 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG NNNNNN 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG OO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_TakeInventory("Tic",999999)
	ShieldLoop:
		TNT1 A 0
		SATG O 1 Bright A_SpawnItemEx("BlueShieldFX",random(30,-30),random(30,-30),random(10,70),0,0,0,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_SpawnItemEx("BlueShieldFX",random(30,-30),random(30,-30),random(10,70),0,0,0,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_SpawnItemEx("BlueShieldFX",random(30,-30),random(30,-30),random(10,70),0,0,0,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_SpawnItemEx("BlueShieldFX",random(30,-30),random(30,-30),random(10,70),0,0,0,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		SATG O 1 Bright A_SpawnItemEx("BlueShieldFX",random(30,-30),random(30,-30),random(10,70),0,0,0,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HPBlueFire2Spawner")
		TNT1 AAA 0 Bright A_CustomMissile("PaladinTrail",0,0,random(0,360),CMF_AIMDIRECTION)
		TNT1 A 0 A_JumpIfInventory("Tic",21,"ShieldEnd")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	ShieldEnd:
		TNT1 A 0
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) < 0,2)
		TNT1 A 0 HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.75)+1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_GiveInventory("ResetMonsterReflectInvul",1)
		SATG ONMM 3 Bright
		GoTo See
	FireBlast:
		SATG MMMMMM 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG NNNNNN 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
        SATG OO 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,5,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,10,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,15,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,25,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,30,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,35,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-5,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-10,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-15,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-25,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-30,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-35,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("PaladinTrail",0,0,-40,CMF_AIMDIRECTION)
		SATG ONMM 3 Bright
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"Shield")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Pain.Crush")
		GoTo See
	Melee:
		TNT1 A 0 A_FaceTarget(45)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget(45)
		SATG E 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_GiveToTarget("HeterodoxCurse")
		TNT1 A 0 A_FaceTarget
		SATG FFFF 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_FaceTarget
		SATG GGGGG 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("PaladinMeleeAttack",30,0,0)
        SATG FFFF 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_FaceTarget
		SATG EEEE 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 1000,"Shield")
		Goto See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_Pain
		//TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		TNT1 A 0 A_JumpIfCloser(300,"PainMissile")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 1000,"Shield")
		TNT1 A 0 A_Jump(32,"Shield")
        SATG QQQQQQQQQQ 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		Goto See
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_Pain
		//TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	PainMissile:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		SATG QQQQQQQQQQ 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		SATG QQQQQQQQQQ 1 Bright A_SpawnItemEx("HPBlueFire2Spawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        Goto Missile
	Death:
		TNT1 A 0
        SATG Q 3 Bright A_Scream
		SATG QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ 2 Bright A_CustomMissile("Kaboom66",random(20,80),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_SpawnItemEx("BlueFlare3",0,0,48)
		TNT1 AAAAAA 0 A_CustomMissile("Kaboom66",random(20,80),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
        TNT1 AAAAAA 0 A_CustomMissile("SmokeFX",random(40,80),0,random(0,360),CMF_AIMDIRECTION,random(0,360))
    	TNT1 A 0 A_CustomMissile("NightmareSummoner",47,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("NightmareSummoner",47,0,75,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("NightmareSummoner",47,0,-75,CMF_AIMDIRECTION)
		SATG RSTUV 6
		SATG W 7 A_Fall
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_KillMaster
    	SATG "X" 4
		SATG "Y" 4
		SATG "Z" 525
        "####" "#" 5 A_FadeOut(0.1,1)
	    Wait
	}
}

Actor HPBlueFire2Spawner : RedParticleSpawner
{
Height 70
Radius 1
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 1 Bright A_SpawnItemEx("BlueFire2",random(-20,20),random(-20,20),random(10,68),random(-2,2),random(-2,2),random(6,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR PaladinWalkFire
{
Scale 1.8
Height 8
Radius 4
Speed 0
RenderStyle Add
Alpha 0.75
MaxStepHeight 4
Damage (0)
+MISSILE
+DROPOFF
+NOTARGET
-NOGRAVITY
+NOBLOCKMAP
+NOTELEPORT
+THRUACTORS
+DONTSPLASH
+MOVEWITHSECTOR
+NOEXPLODEFLOOR
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 5 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		BRTF ABC 3 Bright
		TNT1 A 0 Bright A_Jump(191,3)
		TNT1 A 0 Bright A_CustomMissile("PaladinWalkFire",0,24,0,CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("PaladinWalkFire",0,-24,0,CMF_TRACKOWNER)
		BRTF DEFGHIJKLMNOO 3 Bright A_FadeOut(0.08,1)
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
    }
}

Actor PaladinBall : BaronBall
{
Projectile
Height 8
Radius 8
Speed 20
FastSpeed 24
Scale 0.72
Renderstyle Add
Damage 8
+THRUSPECIES
+DONTHARMSPECIES
Damagetype "SatanGuard"
States
	{
	Spawn:
		SATC AAABBB 1 Bright A_SpawnItemEx("PaladinBTrail",random(3,-3),random(3,-3),random(3,-3),random(1,-1),random(1,-1),random(1,-1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Crush:
	Death:
		SATC K 5 Bright
		SATC LMNOPQRSTUVWX 2 Bright A_FadeOut(0.015,1)
		Stop
	XDeath:
		SATC K 5 Bright
		TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom6",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))
		TNT1 AAA 0 A_SpawnItemEx("PaladinBTrail2",0,0,0,random(20,-20),random(20,-20),random(20,-20),random(0,360),SXF_CLIENTSIDE,0)
		SATC LMNOPQRSTUVWX 2 Bright A_FadeOut(0.015,1)
		Stop
	}
}

Actor PaladinBTrail : BlueFire
{
Scale 0.25
+NONETID
}

Actor PaladinBTrail2 : PaladinBTrail { Scale 0.11 }

Actor BlueCometDeathGlow : CometDeathGlow
{
Scale 2.0
Alpha 0.6
States
	{
	Spawn:
		STFR ABCDEFGHI 3 Bright
		Stop
	}
}

Actor BlueCometDeath : CometDeath
{
States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom23",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		HPCM FGHI 3 Bright A_FadeOut(0.1,1)
		TNT1 A 1
		Stop
	}
}

Actor HEMHomingCometBase
{
PROJECTILE
Height 10
Radius 10
Speed 25
FastSpeed 30
Scale 0.85
Reactiontime 14
Damage 1
+SEEKERMISSILE
+THRUSPECIES
+DONTHARMSPECIES
SeeSound "comet/launch"
DeathSound "comet/explosion"
States
	{
    Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(135,"Homing")
		TNT1 A 1 Bright A_Jump(256,"Normal")
		Loop
	Normal:
		TNT1 A 0 Bright A_Jump(20,"Homing")
		HPCM AAABBBCCCAAABBBCCC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	Homing:
		HPCM AABB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_Jump(256,"Travel")
		Loop
	Travel:
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM AA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM AB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM CC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM DD 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM DA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM AA 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM BB 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(Damage*random(1,8),Damage*16,0,0)
		TNT1 A 0 Bright A_SetTranslucent(0.75,1)
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		HPCM D 3 Bright A_SpawnItemEx("BlueCometDeathGlow",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		HPCM E 3 Bright A_SpawnItemEx("BlueCometDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Stop
	}
}


Actor HomingComet : HEMHomingCometBase
{
Reactiontime 27
Damage 5
Damagetype "SatanGuard"
States
	{
    Spawn:
		TNT1 A 0 Bright
		HPCM AAABBBCCCAAABBBCCC 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 AAA 0 Bright A_Jump(256,"Travel")
		Loop
	Travel:
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM A 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM A 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM A 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM B 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM B 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM B 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM C 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM C 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_SeekerMissile(6,9)
		HPCM C 1 Bright A_SpawnItemEx("BlueCometTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_Countdown
		Loop
	}
}

Actor BlueCometTail
{
Height 1
Radius 1
RenderStyle Add
Alpha 0.3
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		STFR ABCDEFGHI 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor PaladinComet : Comet
{
Projectile
Speed 35
Damage 5
ExplosionDamage 64
ExplosionRadius 112
+ThruSpecies
+DONTHARMSPECIES
Damagetype ""
Damagetype "SatanGuard"
States
	{
	Spawn:
		BCMT AAAABBBBCCCC 1 Bright A_SpawnItemEx("SPCometTail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		Loop
	XDeath:
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		BCMT DE 3 Bright
		TNT1 A 1 Bright A_SpawnItemEx("SPCometDeath",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		Stop
	}
}

ACTOR SPCometTail
{
Height 1
Radius 1
Scale 1.15
RenderStyle Add
Alpha 0.3
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		BCMT DEFGHI 2 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR SPCometDeath : CometDeath
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAA 0 Bright A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom23",0,0,random(0,360),2,random(0,360))	
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX2",0,0,random(0,360),2,random(0,360))
		BCMT JJJKKKLLMMNN 1 Bright A_FadeOut(0.065,1)
		Stop
	}
}

Actor BlueShieldFX
{
Scale 1.1
Renderstyle Add
+NOGRAVITY
+NOBLOCKMAP
+THRUACTORS
+NOTELEPORT
+NONSHOOTABLE
States
	{
	Spawn:
		TNT1 A 0 Bright
		SAFX CDEFGH 3 Bright
		Stop
	}
}

Actor BlueSpike
{
Scale 3.5
Renderstyle Add
+FloorHugger
+NOBLOCKMAP
+THRUACTORS
+NOTELEPORT
+NONSHOOTABLE
States
	{
	Spawn:
		TNT1 A 0 Bright
		STRD ABC 3 Bright
		STRD D 15 Bright
		STRD EFGHIJ 3 Bright
		Stop
	}
}

Actor PaladinTrail
{
Projectile
Height 10
Radius 10
Speed 20
Scale 0.5
Reactiontime 27
Damage (20*random(1,4))
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
+DONTBLAST
+FLOORHUGGER
+NODAMAGETHRUST
+FORCERADIUSDMG
+DONTHARMSPECIES
+THRUSPECIES
Damagetype "SatanGuard"
SeeSound "PaladinTrailSpawn"
DeathSound "PaladinTrailDeath"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_DEFAULT, AAPTR_TARGET, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_SpawnItemEx("BlueSpike",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION,0)
		Goto Travel
	Travel:
		SBFR AAA 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,30,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(10,60,0)
		SBFR BBB 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,30,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(10,60,0)
		SBFR CCC 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,30,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		TNT1 A 0 Bright A_Explode(10,60,0)
		TNT1 A 0 Bright A_CountDown
		Loop
	Crash:
	Death:
		TNT1 A 0 Bright
		STRD K 3 Bright A_FadeOut(0.1,0)
		STRD LMNO 3 Bright A_FadeOut(0.1,1)
		Stop
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_RearrangePointers(AAPTR_MASTER, AAPTR_DEFAULT, AAPTR_DEFAULT)
		STRD K 3 Bright A_FadeOut(0.1,0)
		TNT1 A 0 Bright A_Explode(34,98,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom23",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))	
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX2",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		STRD LMNO 3 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor PaladinTrailTail
{
Height 10
Radius 10
Speed 0
Scale 0.5
Renderstyle Add
Alpha 0.78
+FloorHugger
+NOBLOCKMAP
+THRUACTORS
+NOTELEPORT
+NONSHOOTABLE
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		SBFR AABBCCCCCCC 1 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor PaladinMeleeAttack
{
Projectile
Height 6
Radius 3
Speed 35
Renderstyle Add
Damage (8*random(6,8))
+ThruSpecies
+DONTHARMSPECIES
Species "SatanGuard"
Damagetype "SatanGuard"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 2 Bright
		Stop
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Explode(30,100,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_CustomMissile("Kaboom6",0,0,random(0,360),2,random(0,360))
		TNT1 AA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 Bright A_SpawnItemEx("PaladinBTrail",0,0,0,random(20,-20),random(20,-20),random(20,-20),random(0,360),SXF_CLIENTSIDE,0)
		SATC A 1 A_PlaySound("monster/psodeath",0,1.0,0)
		SATC DEFGGG 3 A_FadeOut(0.1,1)
		Stop
	}
}