Actor Overlord 30316
{
//$Category Monsters/HEM
//$Sprite OVERA1
//$Title "Overlord"
Monster
Health 12666
Height 135
Radius 84
Mass 1000
Speed 8
FloatSpeed 8
Scale 1.5
BloodColor Blue
MeleeRange 100
MeleeThreshold 168 
MeleeDamage 300
Painchance 80
Painchance "Crush", 256
Painchance "Mine", 256
PainChance "Explosion", 200
Painchance "NuclearFire", 200
MinMissileChance 64
+BOSS
+NOFEAR
+BOSSDEATH
+NOICEDEATH
+DONTMORPH
+DONTBLAST
+NORADIUSDMG
+NOTELEFRAG
+NOTIMEFREEZE
+TELESTOMP
+NOTARGET
+NOINFIGHTING
+MISSILEMORE
+MISSILEEVENMORE
+FLOORCLIP
+FLOAT
+NOGRAVITY
+DONTFALL
+NEVERRESPAWN
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "Cacodemon"
Species "Redeemer"
Species "SatanGuard"
DamageType "SatanGuard"
Damagefactor "Acid", 0.05
Damagefactor "Fire", 0.0
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Electric", 0.001
Damagefactor "Disintegrate", 0.001
Damagefactor "Explosion", 0.2
DamageFactor "Ice", 0.0
DamageFactor "FreezerBurn", 0.0
DamageFactor "CustomSpray", 0.0
DamageFactor "BFG9500Ball", 0.0
DamageFactor "Extreme", 0.0
DamageFactor "PDTBFG", 0.03
DamageFactor "PDTBFGTracer", 0.03
DamageFactor "PyroShot", 0.0
DamageFactor "PDTPuff", 0.0
DamageFactor "BFGSplash", 0.0
DamageFactor "BFGSpray", 0.0
DamageFactor "DBFG10K", 0.015
DamageFactor "DBFG10K2", 0.015
DamageFactor "DBFG", 0.015
DamageFactor "DBFG2", 0.015
DamageFactor "Player", 0.0
DamageFactor "PlayerPyro", 0.0
DamageFactor "PlayerBHole", 0.05
DamageFactor "PlayerDBFG", 0.015
DamageFactor "PlayerDBFG2", 0.015
DamageFactor "PlayerDBFG10K", 0.015
DamageFactor "PlayerDBFG10K2", 0.015
DamageFactor "Players", 0.02
DamageFactor "PlayerDevBall", 0.02
DamageFactor "PlayerDevBall2", 0.02
DamageFactor "PlayerDevTracer", 0.02
DamageFactor "PlayerHellfire", 0.1
DamageFactor "PlayerDTBFGRailgunSlug", 0.02
DamageFactor "Legendary", 0.015
DamageFactor "LegendaryPlayer", 0.015
DamageFactor "SuperWeapon", 0.0
DamageFactor "LegendaryGuruPlayer", 0.015
//No infighting
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Moloch", 0.0
Damagefactor "Exos", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "ZombieDev", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
Damagefactor "UltimateLegendary", 0.0
Damagefactor "Nobles", 0.0
DamageFactor "HellComet", 0.0
DamageFactor "Terminator", 0.0
Damagefactor "DarkBruiserBFG10K", 0.0
DamageFactor "Cybers", 0.0
DamageFactor "Hell", 0.0
DamageFactor "Commander", 0.0
DamageFactor "Baby15K", 0.0
DamageFactor "Cyber10K", 0.0
DamageFactor "DemolisherEx", 0.0
DamageFactor "DarkDemoEx", 0.0
DamageFactor "CerChainguns", 0.0
DamageFactor "CerEnergyBall", 0.0
DamageFactor "LegMind", 0.0
DamageFactor "BeheComet", 0.0
DamageFactor "UBDTR", 0.0
DamageFactor "NobleComet", 0.0
DamageFactor "CacoComet", 0.0
DamageFactor "CadaverRocket", 0.0
DamageFactor "HellComet", 0.0
DamageFactor "HFCyber", 0.0
DamageFactor 0.35
DropItem "BossLifeEssence", 256, 200
DropItem "HEMBossArmorBonusMax55", 256
DropItem "AcidWorm", 128, 1
DropItem "UltraSphere", 128, 1
DropItem "SkullofPower", 128, 1
DropItem "DemonicChalice", 96, 1
DropItem "SpreadRune", 96, 1
DropItem "HemLifeRune", 180
DropItem "NemesisSphere", 96, 1
DropItem "VileStaff", 96, 1
SeeSound "Corruptor/Sight"
PainSound "Corruptor/Pain"
DeathSound "Corruptor/Death"
ActiveSound "Corruptor/Active"
MeleeSound "caco/melee"
Obituary "%o was turned into dust by the Overlord."
HitObituary "The Overlord ate %o for lunch."
Tag "\c[g6]Overlord\c-"
var int user_missile;
var int user_music;
var int user_currenthp;
var int user_healcount;
var int user_RestHealCounter;
var int user_ammoss;
var int user_lcounter;
var int user_Mcounter;
var int user_pcounter;
States
	{
	Spawn:
		OVER A 1
		TNT1 A 0 A_GiveInventory("IsAnHEMOverlord",1)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_healcount",0)
		TNT1 A 0 A_SetUserVar("user_RestHealCounter",0)
		TNT1 A 0 A_SetUserVar("user_ammoss",0)
		TNT1 A 0 A_SetUserVar("user_Mcounter",0)
		TNT1 A 0 A_SetUserVar("user_pcounter",0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		Goto SpawnLoop
	SpawnLoop:
		OVER A 10 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_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_SetUserVar("user_ammoss",0)
		Goto IdleLoop
	IdleLoop:
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCCC 2 A_Wander
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"SummonFake")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		OVER C 2 A_Look
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCCC 2 A_Wander
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"SummonFake")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		OVER C 2 A_Look
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCCC 2 A_Wander
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"SummonFake")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		OVER C 2 A_Look
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCC 2 A_Wander
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"SummonFake")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		OVER CC 2 A_Look
		OVER A 2 A_Look
		OVER B 3 A_Look
		OVER C 30 A_Look
		TNT1 A 0 A_Jump(192,2)
		TNT1 A 0 A_PlaySound("Corruptor/Active")
		TNT1 A 0 A_SetAngle(Angle-30)
		OVER A 60 A_Look
		TNT1 A 0 A_SetAngle(Angle+30)
		OVER C 5 A_Look
		TNT1 A 0 A_SetAngle(Angle+30)
		OVER C 60 A_Look
		TNT1 A 0 A_SetAngle(Angle-30)
		OVER C 10 A_Look
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		Goto SeeLoop
	SeeLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIf(user_music == 1,3)
		TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,93)
		TNT1 A 0 A_SetUserVar("user_music",1)
		OVER AAAA 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport1",360,JLOSF_DEADNOJUMP,1000)
		OVER BBBB 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport1",360,JLOSF_DEADNOJUMP,1000)
		OVER CCCC 1 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"PainResurrect")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAA 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport1",360,JLOSF_DEADNOJUMP,1000)
		OVER BBBB 1 A_Chase
		TNT1 A 0 A_JumpIfInTargetLOS("Teleport1",360,JLOSF_DEADNOJUMP,1000)
		OVER CCCC 1 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"PainResurrect")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		Loop
	Melee:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		OVER DDDDDEEEE 1 Bright A_FaceTarget
		OVER F 1 A_MeleeAttack
		OVER FFFEEED 1 Bright A_FaceTarget
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(1)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SetUserVar("user_pcounter",0)
		TNT1 A 0 A_JumpIf(user_Mcounter > 6,"SummonSoulSpam")
		Goto Missile2
	Missile2:
		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("CloseRange",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.70),"Missile3")
		Goto Missile4
	Missile3:
		TNT1 A 0 A_SetUserVar("user_Mcounter",user_Mcounter+1)
		Goto Missile4
	Missile4:
		TNT1 A 0 A_Jump(256,"SummonImpure","Normal")
		Goto Normal
	Normal:
		OVER DDDDEEEE 1 Bright A_FaceTarget
		OVER FF 1 Bright A_Monsterrefire(0,"NormalEnd")
		TNT1 A 0 A_GiveToTarget("Vulnerability")
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
	NormalEnd:
		OVER EDD 5
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(128,"NearRange","LongRange","FarRange")
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo see
	FarRange:
		TNT1 A 0 A_Jump(256,"CometBlast","CometSpread","CurseComets","HomingComets","HomingComets")
		Goto Normal
	LongRange:
		TNT1 A 0 A_Jump(256,"CometBlast","CometSpread","CurseComets","HomingComets")
		Goto Normal
	NearRange:
		TNT1 A 0 A_Jump(256,"FireSpread","FireBlast","FireBlast","CometBlast","CometBlast","CurseComets","HomingComets")
		Goto Normal
	CloseRange:
		TNT1 A 0 A_Jump(256,"Normal","Normal","Normal","FireSpread","FireBlast","FireBlast","CometBlast","CurseComets","HomingComets")
		Goto Normal
	FireBlast:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER GGGGGHHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER III 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AAAAAAAAAAAAA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER HGEDD 3 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		GoTo See
	FireSpread:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER GGGGGHHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER HGEDD 3 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64,"NearRange","LongRange","FarRange")
		GoTo See
	Pain.Mine:
	Rage:
		TNT1 A 0
		TNT1 A 0 A_SetInvulnerable
		OVER D 1 Bright A_FaceTarget
		OVER D 1 Bright A_SetUserVar("user_missile",0)
		TNT1 A 0 A_Stop
		OVER DDDDDDD 1 Bright A_FadeOut(0.028,0)
		OVER EEEE 2 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetTranslucent(0.8,0)
		OVER DDDD 2 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
	Raging:
		TNT1 A 0 A_JumpIf(user_missile > 55,"RagingEnd")	 
		TNT1 A 0 A_SetUserVar("user_missile",user_missile+1)
		TNT1 AA 0 Bright A_CustomMissile("LegNobleBall3Small",0,0,random(0,359),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		OVER D 4 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		Loop
	RagingEnd:
		OVER DDDDDDD 1 A_FadeIn(0.028)
		OVER D 1 A_SetTranslucent(1)
		OVER D 1 A_UnSetInvulnerable
		TNT1 A 0
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		TNT1 A 0 
		GoTo See
	CometBlast:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER DDDEEGGGGGGHHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER III 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-10,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-20,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-30,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-40,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-50,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-60,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-70,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-80,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,-90,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,10,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,20,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,30,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,40,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,50,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,60,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,70,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,80,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,90,CMF_TRACKOWNER)
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64,"NearRange","LongRange","FarRange")
		GoTo See
	CometSpread:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER DDDEEGGGGGGHHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER IIII 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("PaladinComet",67,0,frandom(-2.0,2.0),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64,"NearRange","LongRange","FarRange")
		GoTo See
	HomingComets:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER DDDDDEEGGGGGGHHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 AA 0 A_CustomMissile("OverlordComet",67,0,random(-10,10),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(-10,10))
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64,"NearRange","LongRange","FarRange")
		GoTo See
	CurseComets:
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER DDDEEGGGGHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_CustomMissile("CurseComet",67,0,random(-10,10),CMF_TRACKOWNER|CMF_OFFSETPITCH,random(-4,4))
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64,"NearRange","LongRange","FarRange")
		GoTo See
	SummonSoulSpam:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_Mcounter",0)
		TNT1 A 0 A_JumpIf(user_ammoss > 5,"Missile2")
		TNT1 A 0 A_SetUserVar("user_ammoss",user_ammoss+1)
	SummonSoulSpam2:
		TNT1 A 0
		TNT1 A 0 A_GiveToTarget("SlowDownMode",1)
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetInvulnerable
		OVER DDDDD 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER EEFF 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER FFFF 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER JJJJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER KK 5 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
	SummonSoulSpamLoop:
		TNT1 A 0 A_CustomMissile("ImpureSoulSpawner",68,0,user_lcounter*10,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_GiveInventory("OverlordSpawnAmmount3",1)
		OVER K 1 Bright
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIfInventory("OverlordSpawnAmmount3",40,2)
		TNT1 A 0 A_JumpIf(user_lcounter < 35 ,"SummonSoulSpamLoop")
		OVER K 6 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER JED 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Teleport1
	SummonSoul:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetInvulnerable
		OVER DDDDD 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER EEGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER GGGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER HHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER IIIIII 1 Bright A_PainAttack("ImpureSoul~")
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		TNT1 A 0
		GoTo See
	SummonImpure:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("OverlordSpawnAmmount2",20,"Pain.Crush")
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetInvulnerable
		OVER DDDDD 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER EEGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER GGGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER HHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_PainAttack("ImpureElemental~")
		TNT1 A 0 A_GiveInventory("OverlordSpawnAmmount2",1)
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Teleport1
	SummonFake:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("OverlordSpawnAmmount1",2,"Pain.Crush")
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SetUserVar("user_pcounter",0)
		OVER DDDDD 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER EEGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER GGGG 1 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER HHHHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER II 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_PainAttack("FakeOverlord")
		TNT1 A 0 A_GiveInventory("OverlordSpawnAmmount1",1)
		OVER HGEDD 5 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Teleport1
	Teleport1:
		TNT1 A 0
		OVER A 1 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,1)
		TNT1 AAAA 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER AAAAAAAAAA 1 A_FadeOut(0.1,0)
		TNT1 A 2
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
		TNT1 A 2 A_PlayWeaponSound("boss/teleport")
		TNT1 AAAA 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_Facetarget
		OVER AAAAAAAAAA 1 A_FadeIn(0.1)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,0)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		OVER A 1 A_SetShootable
		Goto See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount1",1)
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount2",5)
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount3",10)
		OVER L 7 A_Pain
		TNT1 A 0 A_JumpIf(user_RestHealCounter >= 1,"PainResurrect")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.05),"RestoreHealCounter")
		TNT1 A 0 A_JumpIf(user_pcounter > 1,"SummonFake")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"PainResurrect")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_Jump(64-(user_healcount*2),"Rage")
		TNT1 A 0 A_Jump(10+(user_healcount*2),"SummonFake")
		Goto Pain.Crush
	PainAvoid:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		OVER J 7 A_Pain
		Goto Pain.Crush
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_Jump(128,"Teleport1")
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		Goto See
	RestoreHealCounter:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_healcount",10)
		TNT1 A 0 A_SetUserVar("user_RestHealCounter",1)
		Goto Teleport1
	PainResurrect:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_pcounter",user_pcounter+1)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER D 3 Bright
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER D 3 Bright A_Pain	
		OVER DDDD 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 Radius_Quake(10,80,0,24,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER H 3 Bright A_PlaySound("redeemer/see")
		TNT1 A 0 A_JumpIf(user_healcount > 24,"PainResurrectNoInc")
		TNT1 A 0 A_SetUserVar("user_healcount",user_healcount+1)
	PainResurrectNoInc:
		TNT1 A 0 HealThing((1000+random(1,40))-(user_healcount*40))
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.50),"PainResurrectSoulAttack1")
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrection")
		TNT1 A 0 Bright A_RadiusGive("Health",1250,RGF_MONSTERS,100)
		Goto PainResurrectSoulAttackEnd1
	PainResurrectSoulAttack1:
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrection2")
	PainResurrectSoulAttackEnd1:
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.10),"PainResurrectEnd")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.50),"PainResurrectSoulAttack2")
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrection3")
		Goto PainResurrectSoulAttackEnd2
	PainResurrectSoulAttack2:
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrection4")
	PainResurrectSoulAttackEnd2:
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)	
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.15),"PainResurrectEnd")
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrectionAct")
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.20),"PainResurrectEnd")
		TNT1 A 0 Bright A_GiveInventory("OverlordMassResurrectionAct")
	PainResurrectEnd: 
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_SpawnItem("OverlordResurrectSFX",0,0,0,0)
		OVER H 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		OVER D 3 Bright A_SpawnItem("OverlordFlameSpawner",0,0,0,0)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_JumpIf(user_healcount < 3,2)
		TNT1 A 0 A_JumpIfTargetInLOS("SummonSoulSpam2",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,1000,0)
		TNT1 A 0
		Goto Teleport1
	Death:
		TNT1 A 0
		OVER M 6 Bright A_Scream
		OVER N 3 Bright
		TNT1 A 0 A_PlaySound("comet/explosion",CHAN_BODY,1.0,0)
		TNT1 AAAAAAAAA 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,67,0,0,0,0,128)
		TNT1 A 0 A_Explode(450,600)
		TNT1 AAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("Debris",0,0,67,Random(8,-8),Random(8,-8),Random(8,12),0,128)
		TNT1 AAAAAA 0 A_CustomMissile("SmokeFX3",67,0,random(0,360),2,random(0,360))
		TNT1 AAAAAAAAAA 0 A_CustomMissile("Kaboom27",67,0,random(0,360),2,random(0,360))
		OVER O 3 Bright A_NoBlocking
		TNT1 A 0 A_KillChildren
		TNT1 A 0 A_Jump(256,"ImpureElementalSummon","LegRedeemerSummon","LegendaryTormentorSummon")
	ImpureElementalSummon:
		OVER P 1 Bright
		TNT1 A 0 A_SpawnItem("ImpureElemental")
		GoTo Explosion
	LegRedeemerSummon:
		OVER P 1 Bright
		TNT1 A 0 A_SpawnItem("LegendaryRedeemer")
		GoTo Explosion
	LegendaryTormentorSummon:
		OVER P 1 Bright
		TNT1 A 0 A_SpawnItem("LegendaryTormentor")	
	Explosion:
		OVER PQRSTUV 3 Bright A_FadeOut(0.1,1)
		TNT1 A 3 A_KillMaster
		TNT1 A 1 A_BossDeath
		Stop
	}
}

Actor IsAnHEMOverlord : Inventory { Inventory.MaxAmount 1 }

ACTOR OverlordFlameSpawner : LRedFlameSpawner~ { Scale 3.25 }

ACTOR OverlordResurrectSFX : RedParticleSpawner
{
+NOINTERACTION
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AA 0 Bright A_SpawnItemEx("OverlordLightning",random(40,-40),random(40,-40),random(60,100),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 AA 0 Bright A_SpawnItemEx("OverlordLightning2",random(40,-40),random(40,-40),random(60,100),0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR OverlordLightning : DTBFGLightningRed
{
Scale 0.52
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0 Bright
		//TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 0 Bright A_CheckSight("Toaster")
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72)
		HBL1 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL2 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL3 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		HBL4 ABCDEFGHIJKLMNOPQR 0 Bright A_Jump(256,"Death")
		Goto Death
	Death:
		"####" "#" 1 Bright
		Stop
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR OverlordLightning2 : OverlordLightning { Scale 0.46 }

ACTOR OverlordMassResurrectionEffect
{
PROJECTILE
Height 6
Radius 6
Speed 25
Scale 0.5
RenderStyle Add
Alpha 0.5
Reactiontime 18
Damage (0)
+FLOORHUGGER
+NOEXPLODEFLOOR
+DONTBLAST
+NOCLIP
States
	{
	Spawn:
		TNT1 A 10 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4)
		TNT1 AAA 1 Bright
		TNT1 A 0 Bright
		Goto Move
	Move:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Overlord/resurrectwave",CHAN_BODY,1.0,1)
		Goto MoveLoop
	MoveLoop:
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,200,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_Blast(0,225,200,30,"ShadowSmokeGen3","Overlord/resurrecthit")
		TNT1 A 0 Bright A_GiveToTarget("HemHideweapon2",1)
		SEMR A 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		SEMR B 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		SEMR C 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright A_RadiusGive("OverlordMassResurrectionAct2",256,RGF_MONSTERS|RGF_CORPSES,1)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSound(CHAN_BODY)
		TNT1 A 1 Bright
		Stop
	}
}

ACTOR OverlordMassResurrectionEffect2
{
PROJECTILE
Height 6
Radius 6
Speed 25
Scale 0.5
RenderStyle Add
Alpha 0.5
Reactiontime 18
Damage (0)
+FLOORHUGGER
+NOEXPLODEFLOOR
+DONTBLAST
+NOCLIP
States
	{
	Spawn:
		TNT1 A 10 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4)
		TNT1 AAA 1 Bright
		TNT1 A 0 Bright
		Goto Move
	Move:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("Overlord/resurrectwave",CHAN_BODY,1.0,1)
		Goto MoveLoop
	MoveLoop:
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,200,0,360,2)
		TNT1 A 0 Bright A_Jump(256,3)
		TNT1 A 0 Bright A_Blast(0,225,200,30,"ShadowSmokeGen3","Overlord/resurrecthit")
		TNT1 A 0 Bright A_PainAttack("ImpureSoul~")
		SEMR A 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		SEMR B 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Weave(3,0,1.0,0.0)
		SEMR C 1 Bright A_SpawnItemEx("SMRETrail",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_Countdown
		TNT1 A 0 Bright A_RadiusGive("Health",256,RGF_MONSTERS,50)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSound(CHAN_BODY)
		TNT1 A 1 Bright
		Stop
	}
}

Actor OverlordMassResurrection : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,210,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,330,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,360,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}

Actor OverlordMassResurrection2 : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,210,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,330,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,360,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}

Actor OverlordMassResurrection3 : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,15,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,105,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,135,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,165,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,195,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,255,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,285,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,315,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 Bright A_CustomMissile("OverlordMassResurrectionEffect",10,0,345,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}

Actor OverlordMassResurrection4 : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,15,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,105,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,135,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,165,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,195,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,225,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,255,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,285,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,315,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 Bright A_CustomMissile("OverlordMassResurrectionEffect2",10,0,345,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}

Actor OverlordMassResurrectionAct : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,10,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,70,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,110,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,120,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,130,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,140,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,150,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,170,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,180,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,190,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,200,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,210,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,230,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,240,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,250,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,260,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,270,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,290,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,300,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,310,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,320,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,330,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 Bright A_CustomMissile("SentientMassResurrection",10,0,350,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 Bright A_CustomMissile("SentientMassResurrection",10,0,360,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}

Actor OverlordMassResurrectionAct2 : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("OverlordMassResurrectionAct2Check",1,"Nop")
		TNT1 A 0 A_JumpIfInventory("IsAnPlayer",1,"Nop")
		TNT1 A 0
		TNT1 A 0 A_GiveInventory("OverlordMassResurrectionAct2Check",1)
		TNT1 A 1 ACS_NamedExecuteAlways("Hem_OverlordResurrect",0)
		Stop
	Nop:
		TNT1 A 1
		Fail
	}
}

Actor OverlordMassResurrectionAct2Check : Inventory { Inventory.MaxAmount 1 }

Actor OverlordComet : RuffianComet
{
+FORCERADIUSDMG
Species ""
Species "SatanGuard"
DamageType ""
DamageType "SatanGuard"
}

Actor FakeOverlord : Overlord
{
Health 2666
RenderStyle Translucent
Alpha 0.8
-BOSS
-AMBUSH
-BOSSDEATH
DropItem ""
DropItem "BossLifeEssence", 196
DropItem "BossArmorBonusMax", 196
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		Goto SpawnLoop
	SpawnLoop:
		OVER A 10 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_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(0.8,0)
		Goto IdleLoop
	IdleLoop:
		TNT1 A 0 HealThing(7)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCCC 2 A_Wander
		OVER C 2 A_Look
		OVER AAAABBBBCCC 2 A_Wander
		OVER C 2 A_Look
		OVER AAAABBBBCCC 2 A_Wander
		OVER C 2 A_Look
		OVER AAAABBBBCC 2 A_Wander
		OVER CC 2 A_Look
		OVER A 2 A_Look
		OVER B 3 A_Look
		OVER C 30 A_Look
		TNT1 A 0 A_Jump(250,2)
		TNT1 A 0 A_PlaySound("Corruptor/Active")
		TNT1 A 0 A_SetAngle(Angle-30)
		OVER A 60 A_Look
		TNT1 A 0 A_SetAngle(Angle+30)
		OVER C 5 A_Look
		TNT1 A 0 A_SetAngle(Angle+30)
		OVER C 60 A_Look
		TNT1 A 0 A_SetAngle(Angle-30)
		OVER C 10 A_Look
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(0.8,0)
		Goto SeeLoop
   SeeLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		OVER AAAABBBBCCCC 1 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		OVER AAAABBBBCCCC 1 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"PainAvoid")
		Loop
	WrongTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnHEMOverlord",1,"WrongTarget")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnsetInvulnerable
		TNT1 A 0 A_SetTranslucent(0.8,0)
		TNT1 A 0 A_Stop
		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("CloseRange",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
		TNT1 A 0 A_Jump(256,"SummonSoul","Normal")
		Goto Normal
	Normal:
		OVER DDDDEEEE 1 Bright A_FaceTarget
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER FF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",67,0,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		OVER EDD 5
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Pain.Crush")
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	Pain:
		TNT1 A 0
		TNT1 A 0 A_SetTranslucent(0.8,0)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		OVER L 7 A_Pain
		Goto See
	PainAvoid:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		OVER J 7 A_Pain
		Goto Pain.Crush
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		Goto See
	Death:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount1",1,0,AAPTR_MASTER)
		TNT1 A 0 A_SetTranslucent(0.8,0)
		OVER M 6 Bright A_Scream
		OVER N 3 Bright
		TNT1 A 0 A_PlaySound("comet/explosion",CHAN_BODY,1.0,0)
		TNT1 AAAAAAAAA 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,67,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAAA 0 A_CustomMissile("SmokeFX3",67,0,random(0,360),2,random(0,360))
		TNT1 AAAAAAAAAA 0 A_CustomMissile("Kaboom27",67,0,random(0,360),2,random(0,360))
		OVER O 3 Bright A_Fall
		OVER PQRSTU 3 Bright
		OVER V 1 Bright A_FadeOut(0.1,1)
		Wait
	}
}

Actor ImpureSoulSpawner : ExileCaster
{
Height 56
Radius 16
+THRUACTORS
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 AAA 5
	Death:
		TNT1 A 1
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,5,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		TNT1 A 1 A_SpawnItemEx("ImpureSoul~",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
		Stop
	}
}

Actor ImpureElemental~ : ImpureElemental
{
+NOFEAR
+NOTARGET
+NOINFIGHTING
+DONTBLAST
-COUNTKILL
DropItem ""
DropItem "NewShell", 96, 12
DropItem "BulletMag" 96, 12
DropItem "BossLifeEssence", 96
DropItem "HEMBossArmorBonusMax37", 96
var int user_lcounter;
States
	{
	Spawn:
		IMCC A 10 Bright A_Look
		TNT1 A 0 Bright A_JumpIfInventory("Tic",210,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	Idle:
		IMCC A 10 Bright A_Look
		TNT1 A 0 Bright HealThing(2)
		TNT1 A 0 Bright A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 Bright A_JumpIfInventory("Tic",210,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	See:
		IMCC AAAAAAA 1 Bright A_Chase
		IMCC AAAAAAA 1 Bright A_Chase
		IMCC AAAAAAA 1 Bright A_Chase
		IMCC AAAAAAA 1 Bright A_Chase
		IMCC AAAAAAA 1 Bright A_Chase
		TNT1 A 0 Bright HealThing(random(1,2))
		TNT1 A 0 Bright A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 Bright A_JumpIfInventory("Tic",210,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	WrongTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnHEMOverlord",1,"WrongTarget")
		Goto Super::Missile
	Souls:
		IMCC EF 5 Bright
		IMCC G 3 Bright A_FaceTarget
		TNT1 A 0 A_Jump(32,"LegLostSoul")
		TNT1 A 0 A_PainAttack("ImpureSoul~")
		IMCC EF 3 Bright
		GoTo See
	Dual:
		IMCC EF 5 Bright
		IMCC G 3 Bright A_FaceTarget
		TNT1 A 0 A_DualPainAttack("ImpureSoul~")
		IMCC EF 3 Bright
		TNT1 A 0 A_Jump(128,"RapidFire","Comet")
		TNT1 A 0 A_Jump(89,"Rapid")
		GoTo See
	Rapid:
		IMCC EF 5 Bright
		IMCC G 3 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("ImpureSoul~")
		IMCC G 5 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("ImpureSoul~")
		IMCC G 5 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("ImpureSoul~")
		IMCC G 5 Bright A_FaceTarget
		TNT1 A 0 A_PainAttack("ImpureSoul~")
		IMCC EF 3 Bright
		TNT1 A 0 A_Jump(128,"RapidFire","Comet")
		GoTo See
	Vanish:
		TNT1 A 0 Bright
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount2",1,0,AAPTR_MASTER)
		IMCC A 2 Bright A_FadeOut(0.1,1)
		Wait
	XDeath:
	Death:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount2",1,0,AAPTR_MASTER)
		IMCC I 6 Bright A_Scream
		IMCC J 3 Bright A_Fall
		TNT1 A 0 A_PlaySound("comet/explosion",CHAN_BODY,1.0,0)
		TNT1 AAAA 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_Explode(70,198)
		TNT1 AAAAAA 0 A_SpawnItemEx("Debris",0,0,32,Random(8,-8),Random(8,-8),Random(8,12),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",32,0,random(0,360),2,random(0,360))
		TNT1 AAAAAA 0 A_CustomMissile("Kaboom27",32,0,random(0,360),2,random(0,360))
		IMCC KL 3 Bright
		IMCC MNOP 2 Bright
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,1)
		TNT1 A 0 A_TakeInventory("Tic",999999)
		Goto Fall
	Fall:
		IMCC Q 1 A_CheckFloor("Land")
		TNT1 A 0 A_JumpIfInventory("Tic",525,"Land")
		TNT1 A 0 A_GiveInventory("Tic",1)
		Loop
	Land:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_ChangeFlag(CORPSE,1)
		IMCC RSTU 3
		TNT1 A 0 A_ChangeFlag(SOLID,0)
		TNT1 A 0 A_ChangeFlag(THRUACTORS,0)
		TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
		IMCC V 525
		Goto Fade
	Fade:
		IMCC V 5 A_FadeOut(0.1,1)
		Loop
	}
}

Actor ImpureSoul~ : ImpureSoul
{
+NOFEAR
+NOTARGET
+NOINFIGHTING
+DONTBLAST
-COUNTKILL
DropItem ""
DropItem "NewShell", 16, 12
DropItem "BulletMag" 16, 12
DropItem "LifeEssence", 16
DropItem "ArmorBonusMax", 16
States
	{
	Spawn:
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		//TNT1 A 0 Bright HealThing(1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",700,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	Idle:
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		ISUL A 1 Bright A_Look
		//TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64)
		TNT1 A 0 Bright HealThing(1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",700,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	See:
		ISUL A 1 Bright A_Chase
		TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ISUL A 1 Bright A_Chase
		TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		ISUL A 1 Bright A_Chase
		TNT1 A 0 Bright A_Explode(3,65,0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFire3",random(-5,-9),random(-3,3),random(10,45),random(-1,1),random(-1,1),random(-1,1),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright HealThing(1)
		TNT1 A 0 Bright A_JumpIfInventory("Tic",700,"Vanish")
		TNT1 A 0 Bright A_GiveInventory("Tic",1)
		Loop
	WrongTarget:
		TNT1 A 0
		TNT1 A 0 A_ClearTarget
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		Goto See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnHEMOverlord",1,"WrongTarget")
		Goto Super::Missile
	Vanish:
		TNT1 A 0 Bright
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount3",1,0,AAPTR_MASTER)
		ISUL A 2 Bright A_FadeOut(0.1,1)
		Wait
	Death:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("OverlordSpawnAmmount3",1,0,AAPTR_MASTER)
		TNT1 A 0 A_SetTranslucent(0.75,1)
		ISUL C 4 Bright A_NoGravity
		TNT1 A 0 A_PlaySound("weapons/rocklx",0,1.0,0)
		ISUL D 4 Bright A_Scream
		TNT1 A 0 A_Explode(20,92)
		TNT1 AA 0 A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE) 
		TNT1 AAAA 0 A_CustomMissile("SmokeFX2",15,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("Kaboom23",15,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,15,random(-4,4),random(-4,4),random(4,8),0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,0)
		ISUL E 3 Bright
		ISUL F 2 Bright A_Fall
		ISUL G 4
		ISUL H 4
		TNT1 A 1
		Stop
	}
}

Actor OverlordSpawnAmmount1 : Inventory { Inventory.MaxAmount 2 }
Actor OverlordSpawnAmmount2 : Inventory { Inventory.MaxAmount 20 }
Actor OverlordSpawnAmmount3 : Inventory { Inventory.MaxAmount 40 }