Actor HEMHeresiarch 30318
{
//$Category Monsters/HEM
//$Sprite HIERA1
//$Title "Heresiarch"
Monster
Health 16666
Height 110
Radius 40
Mass 1000
Scale 2.0
Speed 8
FloatSpeed 8
FastSpeed 16
BloodColor Blue
Painchance 32
Painchance "Legendary", 256
Painchance "Crush", 256
Painchance "Melee", 256
Painchance "Explosion", 256
Painchance "NuclearFire", 256
PainChance "BFG10K", 256
Painchance "SatanGuard", 0
Meleerange 80
MeleeThreshold 166
+BOSS
+BOSSDEATH
+NOICEDEATH
+DONTMORPH
+DONTBLAST
+NoFear
-FRIGHTENED
+NOTARGET
+NOINFIGHTING
+DontRip
+Float
+NoGravity
+FULLVOLACTIVE
+NEVERRESPAWN
+FASTMELEE
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+DONTHARMSPECIES
+DONTHURTSPECIES
+DONTHARMCLASS
+TELESTOMP
+NOTELEFRAG
+NOTIMEFREEZE
+AMBUSH
Species "SatanGuard"
Damagetype "SatanGuard"
Damagefactor "Acid", 0.05
Damagefactor "Fire", 0.0
Damagefactor "Poison", 0.0
Damagefactor "PoisonCloud", 0.0
Damagefactor "Crush", 0.1
Damagefactor "Electric", 0.001
Damagefactor "Disintegrate", 0.001
Damagefactor "Explosion", 0.1
Damagefactor "NuclearFire", 0.01
DamageFactor "CustomSpray", 0.0
DamageFactor "BFG9500Ball", 0.0
DamageFactor "DrainLife", 0.0
DamageFactor "Extreme", 0.0
DamageFactor "Ice", 0.0
DamageFactor "FreezerBurn", 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 "Players", 0.02
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 "PlayerHellfire", 0.1
DamageFactor "PlayerDevBall", 0.02
DamageFactor "PlayerDevBall2", 0.02
DamageFactor "PlayerDevTracer", 0.02
DamageFactor "PlayerDTBFGRailgunSlug", 0.02
DamageFactor "PlayerNemesisPlasma", 0.01
DamageFactor "Legendary", 0.015
DamageFactor "LegendaryPlayer", 0.015
DamageFactor "SuperWeapon", 0.0
DamageFactor "LegendaryGuruPlayer", 0.015
Damagefactor "Melee", 0.05
DamageFactor 0.35
//No infighting
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Moloch", 0.0
Damagefactor "Exos", 0.0
Damagefactor "ZombieDev", 0.0
DamageFactor "Terminator", 0.0
Damagefactor "AdvancedImp", 0.0
DamageFactor "Legendary1", 0.0
DamageFactor "LegendaryGuru", 0.0
Damagefactor "UltimateLegendary", 0.0
Damagefactor "Nobles", 0.0
Damagefactor "VileFires", 0.0
Damagefactor "Shadow", 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
DropItem "BossLifeEssence", 256, 250
DropItem "NemesisArmorBonusMax", 256, 65
SeeSound "LOH/see"
ActiveSound "LOH/idle"
PainSound "duke/pain"
DeathSound "LOH/death"
MeleeSound "imp/melee"
Obituary "%o was sent to the deepest abyss of hell by the Heresiarch."
HitObituary "%o was mauled to bits by the Hersiarch."
Tag "\c[a0]Heresiarch\c-"
var int user_music;
var int user_currenthp;
var int user_lcounter;
var int user_tmax;
var int user_summonprobability;
var int user_rage;
var int user_speed;
var int user_startspeed;
var int user_Mcounter;
var int user_spamcounter;
States
	{
	Spawn:
		HIER A 1
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_summonprobability",0)
		TNT1 A 0 A_SetUserVar("user_rage",0)
		TNT1 A 0 A_SetUserVar("user_Mcounter",0)
		TNT1 A 0 A_SetUserVar("user_spamcounter",0)
		TNT1 A 0 A_SetUserVar("user_startspeed",ACS_NamedExecuteWithResult("Hem_GetCurrentSpeed"))
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_GiveInventory("IsAnHEMHeresiarch",1)
		Goto SpawnLoop
	SpawnLoop:
		HIER A 10 A_Look
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"TelederpAfraid")
		Loop
	Idle:
		TNT1 A 0
		TNT1 A 0 A_SetDamageType("SatanGuard")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,1)
		TNT1 A 0 A_SetUserVar("user_rage",0)
		TNT1 A 0 A_SetUserVar("user_spamcounter",0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpeed",0,user_startspeed)
		Goto Idle1
	Idle1:
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto IdleLoop1
	IdleLoop1:
		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 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		HIER AA 9 A_Look
		TNT1 A 0 A_Jump(96,2)
		TNT1 A 0 A_SetAngle(angle+22.5)
		HIER AA 9 A_Look
		TNT1 A 0 A_SetAngle(angle+22.5)
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"TelederpAfraid")
		TNT1 A 0 A_Jump(8,"Idle2")
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		loop
	Idle2:
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto IdleLoop2
	IdleLoop2:
		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 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		HIER AA 9 A_Look
		TNT1 A 0 A_Jump(96,2)
		TNT1 A 0 A_SetAngle(angle-22.5)
		HIER AA 9 A_Look
		TNT1 A 0 A_SetAngle(angle-22.5)
		TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"TelederpAfraid")
		TNT1 A 0 A_Jump(8,"Idle1")
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle1")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_SetDamageType("SatanGuard")
		TNT1 A 0 A_JumpIf(user_rage == 1,"Rage")
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.25),"Rage")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,1)
		Goto SeeLoop
	SeeLoop:
		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 HealThing(random(1,2))
		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,96)
		TNT1 A 0 A_SetUserVar("user_music",1)
		HIER AA 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER AA 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER BB 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER BB 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER CC 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER CC 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER DD 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		HIER DD 2 A_Chase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		TNT1 A 0 A_Jump(128,4)
		TNT1 AAA 0 A_FastChase
		TNT1 A 0
		Loop
	Rage:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,1)
		TNT1 A 0 A_JumpIf(user_rage == 1,"RageLoop")
		TNT1 A 0 A_SetUserVar("user_rage",1)
		TNT1 A 0 A_GiveInventory("InRage")
		TNT1 A 0 A_SetUserVar("user_speed",user_startspeed*2)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpeed",0,user_speed)
		TNT1 A 0 A_ChangeFlag(ALWAYSFAST,1)
		TNT1 A 0 A_GiveInventory("LegDoomguyQuadDamagePowerUp",1)
		TNT1 A 0 A_GiveInventory("RingOfRegenerationQuiet",1)
		Goto RageLoop
	RageLoop:
		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 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER AAAA 1 A_FastChase
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER AAAA 1 A_FastChase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER BBBB 1 A_FastChase
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER BBBB 1 A_FastChase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER CCCC 1 A_FastChase
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER CCCC 1 A_FastChase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER DDDD 1 A_FastChase
		TNT1 A 0 A_JumpIfInTargetLOS("RageMissileStart",360,JLOSF_DEADNOJUMP,1000)
		HIER DDDD 1 A_FastChase
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		Loop
	Melee:
		TNT1 A 0
		TNT1 A 0 A_SetDamageType("SatanGuard")
		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_GiveToTarget("LessDamage",1)
		TNT1 A 0 A_GiveToTarget("HemHideweapon2",1)
		TNT1 A 0 A_Jump(64,"Missile")
		HIER EEEEFFFGG 1 A_FaceTarget
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_InstakillCVAR") == 0,"NotInstakillMelee1")
		TNT1 A 0 A_CustomMeleeAttack(10000000,"imp/melee","None","Melee")
		Goto Melee2
	NotInstakillMelee1:
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		TNT1 A 0 A_GiveToTarget("HemTakeAmmo",1)
		TNT1 A 0 A_CustomMeleeAttack(random(1,500),"imp/melee","None","Melee")
		TNT1 A 0 A_RadiusGive("DamageThroughInvulnerability",150,RGF_PLAYERS,1)
	Melee2:
		HIER FFFEEEE 1 A_JumpIfCloser(70,"AltMelee")
		GoTo See
	AltMelee:
		HIER HHHHIIIJJ 1 A_FaceTarget
		TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("Hem_InstakillCVAR") == 0,"NotInstakillMelee2")
		TNT1 A 0 A_CustomMeleeAttack(10000000,"imp/melee","None","Melee")
		GoTo AltMelee2
	NotInstakillMelee2:
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		TNT1 A 0 A_GiveToTarget("HemTakeAmmo",1)
		TNT1 A 0 A_CustomMeleeAttack(random(1,500),"imp/melee","None","Melee")
		TNT1 A 0 A_RadiusGive("DamageThroughInvulnerability",150,RGF_PLAYERS,1)
	AltMelee2:
		HIER IIIHHHH 1 A_JumpIfCloser(70,"Melee")
		GoTo See
	Missile:
		TNT1 A 0
		TNT1 A 0 A_SetDamageType("SatanGuard")
		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_JumpIf(user_rage == 1,"RageMissile")
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_JumpIf(user_Mcounter > 6,"NightmareSummonSpam")
		TNT1 A 0 A_FaceTarget
		Goto Missile2
	Missile2:
		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)
		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)
		TNT1 A 0 A_JumpIf(user_summonprobability > 20,"Missile4")
		TNT1 A 0 A_SetUserVar("user_summonprobability",user_summonprobability+1)
		Goto Missile4
	Missile4:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Telederp","Nemesis")
		TNT1 A 0
		Goto Normal
	Normal:
		TNT1 A 0
		Goto CloserAttack
	CloserAttack:
		HIER EEE 1 A_FaceTarget
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto CloserAttackLoop
	CloserAttackLoop:
		HIER EEE 1 Bright A_FaceTarget
		TNT1 AAA 0 A_CustomMissile("HeresiarchRedBall",84,30,random(-8,8),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		TNT1 A 0 A_JumpIf(user_lcounter > 11,"CloserAttackEnd")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	CloserAttackEnd:
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"CloserAttackEnd2")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		TNT1 A 0 A_GiveToTarget("HemTakeAmmo",1)
		TNT1 A 0 A_JumpIfTargetInLOS("FarRange",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
		Goto CloserAttackEnd2
	CloserAttackEnd2:
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.05),"Telederp")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		Goto See
	NearRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"PurpleBalls","PurpleBalls","BlueFire","CloserAttack","CometSpray")
		TNT1 A 0
		Goto Normal
	LongRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"PurpleBalls","BlueFire","PurpleCombo","BlueCombo","RedCombo","Impale","CometSpray","CometSpray")
		TNT1 A 0
		Goto Normal
	FarRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"PurpleCombo","PurpleCombo","RedCombo","HadesShock","Impale","CometSpray")
		TNT1 A 0
		Goto Normal
	VeryFarRange:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"Nemesis","Nemesis","Nemesis","Laser","Laser","HadesShock","Impale")
		TNT1 A 0
		Goto Normal
	RageMissileStart:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		HIER EEEEE 1 A_FaceTarget(45)
	RageMissile:
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_JumpIfCloser(250,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Blast(BF_DONTWARN,225,200,30,"ShadowSmokeGen3","Overlord/resurrecthit")
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_Jump(160,"RageMissile3")
		TNT1 A 0 A_JumpIfTargetInLOS("RageMissile2",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,1000,0)
		Goto RageMissile3
	RageMissile2:
		TNT1 A 0 A_GiveToTarget("InvulnerableCheck",1)
		TNT1 A 0
		TNT1 A 0 A_JumpIfInTargetInventory("InvulnerableCheckLabel",1,"RageMissile3")
		TNT1 A 0 A_GiveToTarget("LessDamage",1)
		TNT1 A 0 A_GiveToTarget("HemHideweapon",1)
	RageMissile3:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,"RedCombo","PurpleCombo","BlueCombo","CometSpray","HadesShock","Impale","Impale","Laser","Nemesis","Nemesis")
		TNT1 A 0
		Goto Rage
	Summon:
		TNT1 A 0
		TNT1 A 0 A_Jump(user_summonprobability*2+(user_rage*15),"NightmareSummon")
		TNT1 A 0
		TNT1 A 0 A_Jump(user_summonprobability*5+(user_rage*15),"DoomShadowsSummon")
		TNT1 A 0
		TNT1 A 0 A_Jump(user_summonprobability*8+(user_rage*15),"SummonCasters")
		TNT1 A 0
		TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.05),"Telederp")
		TNT1 A 0
		Goto See
	PurpleBalls:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto PurpleBallsLoop
	PurpleBallsLoop:
		HIER EEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAA 0 A_CustomMissile("HeresiarchPurpleBall",84,30,random(-7,7),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_JumpIf(user_lcounter > 6,"PurpleBallsEnd")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	PurpleBallsEnd:
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"PurpleBallsEnd2")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		Goto PurpleBallsEnd2
	PurpleBallsEnd2:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	BlueFire:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 7 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	BlueFireLoop:
		HIER EEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAA 0 A_CustomMissile("HeresiarchBlueBall",84,30,random(-7,7),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_JumpIf(user_lcounter > 6,"BlueFireEnd")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		loop
	BlueFireEnd:
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"BlueFireEnd2")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		Goto BlueFireEnd2
	BlueFireEnd2:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
   RedCombo:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAA 0 A_CustomMissile("HeresiarchHadesBall",84,30,random(-7,7),CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		HIER EEEFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",60,-18,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",45,-14,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",20,-8,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",15,-4,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",0,0,0,CMF_TRACKOWNER)
		HIER H 5 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER HHH 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchHadesBall",80,-18,0,CMF_TRACKOWNER)
		HIER HHHIIII 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER JJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",60,18,0,CMF_TRACKOWNER)
		HIER JJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",45,14,0,CMF_TRACKOWNER)
		HIER JJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",20,8,0,CMF_TRACKOWNER)
		HIER JJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",15,4,0,CMF_TRACKOWNER)
		HIER JJJ 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchRedBall",0,0,0,CMF_TRACKOWNER)
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"RedComboEnd")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		Goto RedComboEnd
	RedComboEnd:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	PurpleCombo:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall2",84,30,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall2",84,30,-2,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall2",84,30,2,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		HIER EEEEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall2",84,30,0,CMF_TRACKOWNER)
		HIER EEFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall3",60,-18,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall3",45,-14,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall3",20,-8,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall3",15,-4,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchPurpleBall3",0,0,0,CMF_TRACKOWNER)
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"PurpleComboEnd")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		Goto PurpleComboEnd
	PurpleComboEnd:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
   BlueCombo:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 8 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEE 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",84,30,0,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("HeresiarchComet",84,30,-2,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		TNT1 A 0 A_CustomMissile("HeresiarchComet",84,30,2,CMF_TRACKOWNER|CMF_OFFSETPITCH,frandom(-2.0,2.0))
		HIER EEFFFF 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",60,-18,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",45,-14,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",20,-8,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",15,-4,0,CMF_TRACKOWNER)
		HIER GGG 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchBlueBall",0,0,0,CMF_TRACKOWNER)
		TNT1 A 0
		TNT1 A 0 A_MonsterRefire(0,"BlueComboEnd")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		Goto BlueComboEnd
	BlueComboEnd:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	TelederpAfraid:
		TNT1 A 0
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_ChangeFlag(NoFear,0)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
		TNT1 A 0 A_JumpIf(user_summonprobability > 20,"Telederp")
		TNT1 A 0 A_SetUserVar("user_summonprobability",user_summonprobability+1)
		Goto Telederp
	Telederp:
		TNT1 A 0
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_UnSetShootable
		HIER K 15
		TNT1 A 0 A_ChangeFlag(LOOKALLAROUND,1)
		TNT1 A 0 A_SetUserVar("user_lcounter",0)
		TNT1 A 0 A_SetUserVar(user_tmax,17+random(-10,1))
		HIER K 4 Bright
		TNT1 A 0 A_PlaySound("Heresiarch/Teleport",0,1.0,0,ATTN_NONE)
		TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62)
		HIER KKKKKKKKKK 1 Bright A_FadeOut(0.1,0)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,1)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,1)
		TNT1 A 0 A_CheckFlag(FRIGHTENED,"RunAway")
		Goto TelederpLoop
	TelederpLoop:
		HIER AA 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER AA 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER BB 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER BB 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER CC 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER CC 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER DD 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER DD 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER AA 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER AA 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER BB 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER BB 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER CC 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER CC 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER DD 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		HIER DD 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
		TNT1 A 0 A_GiveInventory("SummonInTelederp",1)
		TNT1 A 0 HealThing(2)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_Jump(8,"TelederpEnd")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		TNT1 A 0 A_JumpIf(user_lcounter > user_tmax,"TelederpEnd")
		loop
	RunAway:
		HIER AAAA 1 A_Chase("","",CHF_NOPLAYACTIVE)
		HIER BBBB 1 A_Chase("","",CHF_NOPLAYACTIVE)
		HIER CCCC 1 A_Chase("","",CHF_NOPLAYACTIVE)
		HIER DDDD 1 A_Chase("","",CHF_NOPLAYACTIVE)
		TNT1 A 0 A_GiveInventory("SummonInTelederpAfraid",1)
		TNT1 A 0 HealThing(20+random(0,10)+(user_rage*10))
		TNT1 A 0 A_JumpIf(user_currenthp <= (ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")*1.15),"TelederpEnd")
		Loop
	TelederpEnd:
		HIER K 5 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_PlaySound("Heresiarch/Teleport",0,1.0,0,ATTN_NONE)
		TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62)
		TNT1 A 0 A_Facetarget
		HIER KKKKKKKKKK 1 Bright A_FadeIn(0.1)
		HIER KK 5 A_Facetarget
		TNT1 A 0 A_JumpIf(user_rage == 1,"ExitTelederp")
		TNT1 A 0 A_CheckFlag(FRIGHTENED,"TelederpEnd2")
		Goto ExitTelederp
	TelederpEnd2:
		TNT1 A 0 A_ClearSoundTarget //A_ClearTarget
		Goto ExitTelederp
	ExitTelederp:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NoFear,1)
		TNT1 A 0 A_ChangeFlag(FRIGHTENED,0)
		TNT1 A 0 A_ChangeFlag(LOOKALLAROUND,0)
		TNT1 A 0 A_ChangeFlag(ThruSpecies,0)
		TNT1 A 0 A_ChangeFlag(NOBLOCKMAP,0)
		TNT1 A 0 A_SetShootable
		TNT1 A 0 A_UnSetInvulnerable
		Goto See
	HadesShock:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(QUICKTORETALIATE,0)
		TNT1 A 0 A_GiveToTarget("AlreadyTargeted",1)
		HIER KKKLLMM 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HeresiarchTargeter",22,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		HIE2 O 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HeresiarchTargeter",22,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		HIE2 O 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("HeresiarchTargeter",22,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 A 0 A_UnSetInvulnerable
	VileChargeLoop:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Tic",105,"CheckLOS")
		TNT1 A 0 A_VileTarget("DShadowHadesAttack")
	CheckLOS1:
		HIE2 O 1 Bright A_FaceTarget
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfInventory("Tic",210,"CheckLOS")
		TNT1 A 0 A_JumpIfTargetInLos("VileChargeLoop",360)
		Loop
	CheckLOS:
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_JumpIfTargetInLos("VileExplode",360)
		HIER M 4
		GoTo Summon
	VileExplode:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetInvulnerable
		HIE2 N 3 Bright A_VileTarget("HeresiarchHadesExplode")
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIE2 O 4 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	Impale:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEE 1 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 1 A_VileTarget("ImpaleSpawn")
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 1 A_VileTarget("ImpaleSpawn")
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEEEEEEEEEEEEEE 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER E 1 A_VileTarget("ImpaleSpawn")
		HIER E 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		HIER E 5
		GoTo Summon
	DoomShadowsSummon:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomShadowSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIE2 O 8 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER M 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	NightmareSummonSpam:
		TNT1 A 0
		TNT1 A 0 A_SetUserVar("user_Mcounter",0)
		TNT1 A 0 A_JumpIf(user_spamcounter > 5,"Missile2")
		TNT1 A 0 A_SetUserVar("user_spamcounter",user_spamcounter+1)
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetInvulnerable
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("NightmareSummonerSpam",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER O 8 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER M 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	NightmareSummon:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SetInvulnerable
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("NightmareSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("NightmareSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("NightmareSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER O 8 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER M 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	SummonCasters:
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomCasterSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomCasterSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomCasterSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER OOOooOONN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("DoomCasterSummoner",60,0,random(-8,8),CMF_AIMDIRECTION|CMF_TRACKOWNER)
		HIER O 8 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER M 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_UnSetInvulnerable
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		GoTo See
	Laser:
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		HIER OOOOOOO 2 Bright A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	LaserChargeLoop:
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIE2 N 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"LaserFire")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	LaserFire:
		TNT1 A 0 A_MonsterRefire(0,"LaserFire2")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
	LaserFire2:
		TNT1 A 0 A_UnSetInvulnerable
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare3",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("BlueFlareGigantic",0,0,60)
		HIER NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("HeresiarchLaserBeam",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare3",0,0,60)
		HIER O 5 Bright
		HIER MLK 5
		GoTo Summon
	CometSpray:
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER NNNN 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,0,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,10,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,20,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,30,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,40,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,50,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,-10,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,-20,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,-30,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,-40,CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchComet",60,0,-50,CMF_TRACKOWNER)
		HIER OO 5 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER M 5 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_MonsterRefire(0,"CometSprayEnd")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
	CometSprayEnd:
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	TrailSpray:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER EEEEEEEFFFFFFF 1 A_FaceTarget(45)
		TNT1 A 0 A_MonsterRefire(0,"TrailSpray2")
		TNT1 A 0 A_GiveToTarget("DizzyMode",1)
		TNT1 A 0 A_GiveToTarget("HemHideweapon",1)
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		TNT1 A 0 A_GiveToTarget("HemTakeAmmo",1)
	TrailSpray2:
		TNT1 A 0 A_SetInvulnerable
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIER GGGGG 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_GiveInventory("HeresiarchTrailAttack",1)
		TNT1 A 0 A_UnSetInvulnerable
		GoTo Summon
	Nemesis:
		HIER KLM 5 A_FaceTarget
		TNT1 A 0 A_SetInvulnerable
		HIE2 OOOOOOO 2 Bright A_SpawnItemEx("RedFlareGigantic",0,0,60)
		TNT1 A 0 Radius_Quake(8,60,0,20,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
	NemesisChargeLoop:
		HIE2 NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		HIE2 N 1 Bright A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("RedFlareGigantic",0,0,60)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"NemesisFire")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	NemesisFire:
		TNT1 A 0 A_MonsterRefire(0,"NemesisFire2")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
	NemesisFire2:
		TNT1 A 0 A_UnSetInvulnerable
		HIE2 NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterNemesisPlasmaSpread",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("RedFlareGigantic",0,0,60)
		HIE2 NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterNemesisPlasmaSpread",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("RedFlareGigantic",0,0,60)
		HIE2 NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterNemesisPlasmaSpread",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("RedFlareGigantic",0,0,60)
		HIE2 NN 1 Bright A_SpawnItemEx("OverlordFlameSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_FaceTarget
		TNT1 A 0 A_CustomMissile("MonsterNemesisPlasmaSpread",80,0,0,CMF_TRACKOWNER|CMF_CHECKTARGETDEAD)
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare4",0,0,60)
		HIE2 O 5 Bright
		HIER MLK 5
		GoTo Summon
	Pain.Crush:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		TNT1 A 0 A_Jump(128,"Telederp","TelederpAfraid")
		TNT1 A 0
		Goto See
	Pain.LegendaryGuruPlayer:
	Pain.Legendary:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		TNT1 A 0 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
		TNT1 A 0 A_GiveInventory("MonsterInvulnerable",1)
		TNT1 A 0 A_GiveInventory("InfightingCheck",1)
		TNT1 A 0 A_GiveInventory("MonsterAvoid",1)
		TNT1 A 0 A_CheckFlag(NOINFIGHTING,2)
		TNT1 A 0 A_Jump(256,"Nemesis")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 500,"TelederpAfraid")
		Goto See
	Pain.Melee:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		HIER P 1 A_ChangeFlag(NOPAIN,1)
		HIER P 6
		HIER P 1 A_Pain
		HIER P 6
		HIER FFFLL 4 A_FaceTarget
		HIER MM 4 A_FaceTarget
		"####" "#" 0 A_GiveToTarget("Vulnerability",1)
		"####" "#" 0 A_SetDamageType("None")
		"####" "#" 0 A_Explode(10000000,100,0,0,100)
		"####" "#" 0 A_SetDamageType("SatanGuard")
		"####" "#" 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) <= 0,2)
		"####" "#" 1 HealThing(((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))*0.75)+1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		Goto See
	Pain.Mine:
		TNT1 A 0
		TNT1 A 0 A_UnSetShootable
		TNT1 A 0 A_GiveInventory("HeresiarchTrailAttack",1)
		Goto Telederp
	Pain.NuclearFire:
		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_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		Goto Telederp
	Pain.Explosion:
		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_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		Goto Pain
	Pain:
		TNT1 A 0
		HIER P 1 A_ChangeFlag(NOPAIN,1)
		TNT1 A 0 A_ChangeFlag(FRIENDLY,0)
		TNT1 A 0 ACS_NamedExecuteAlways("Hem_SetSpecies",0,2)
		HIER P 6
		HIER P 1 A_Pain
		HIER P 6 A_JumpIfCloser(500,"TrailSpray")
		HIER FFFLL 4 A_FaceTarget(45)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 100,"TelederpAfraid")
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 10,"Telederp")
		TNT1 A 0 A_JumpIf(user_rage == 1,"Rage")
		HIER MM 4 A_FaceTarget
		TNT1 A 0 A_Recoil(-10)
	FastChase:
		TNT1 A 0 A_MonsterRefire(0,"FastChaseLoop")
		TNT1 A 0 A_GiveToTarget("Vulnerability",1)
	FastChaseLoop:
		HIER M 1 A_FaceTarget
		TNT1 A 0 A_Recoil(-10)
		TNT1 A 0 A_JumpIfTargetInLOS("Melee",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,81,0)
		TNT1 A 0 A_JumpIfTargetInLOS("CloserAttack",90,JLOSF_DEADNOJUMP|JLOSF_TARGETLOS,500,0)
		TNT1 A 0 A_Jump(192,"FastChaseLoop")
		GoTo See
	Death:
		HIER Q 5 Bright
		TNT1 A 0 A_NoGravity
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		HIER QQ 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		HIER QQ 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		HIER QQ 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER Q 1 Bright A_CustomMissile("Kaboom24",random(38,100), random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER QQ 1 Bright A_CustomMissile("Kaboom25",random(38,100), random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_PlaySound("DoomShadowDeathXPL")
		HIER QQ 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		HIER Q 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_StopSound(5)
		TNT1 A 0 A_StopSound(6)
		TNT1 A 0 A_StopSound(7)
		HIER R 5 Bright A_ScreamAndUnblock
		TNT1 A 0 A_Explode(50,900)
		TNT1 A 0 A_KillChildren
		TNT1 A 0 A_PlaySound("DoomWraithSpawn",5,1.0,0,ATTN_NONE)
		TNT1 A 0 A_PlaySound("Heresiarch/ExplodeDeath",6,1.0,0,ATTN_NONE)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",7,1.0,0,ATTN_NONE)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchWraith",35,0,-160,CMF_AIMDIRECTION)
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare1",0,0,64)
		HIER R 6 Bright
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare2",0,0,64)
		HIER R 6 Bright
		TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare3",0,0,64)
		HIER R 4 Bright
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,200,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,240,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,260,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,300,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,320,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,200,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,240,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,260,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,300,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,320,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,200,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,240,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,260,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,300,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,320,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,200,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,240,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,260,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,300,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,320,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,20,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,60,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,80,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,120,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,140,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,180,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,200,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,240,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,260,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,300,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,320,CMF_AIMDIRECTION)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("HeresiarchResRadius",10,0,random(0,360),CMF_AIMDIRECTION)
		HIER RRRRRRRRRR 1 A_SpawnItemEx("BlueFire4",random(15,-15),random(15,-15),random(50,65),random(2,-2),random(2,-2),random(3,7),random(0,360),128)
		TNT1 AAA 0 A_CustomMissile("Kaboom27",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 AAAAA 0 A_CustomMissile("Kaboom26",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 AAAAA 0 A_CustomMissile("Kaboom12",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 AAAA 0 A_CustomMissile("SmokeFX",random(38,100),random(-5,5),random(0,360),2,random(0,360))
		TNT1 A 0 A_Gravity
		TNT1 A 0 A_RemoveChildren
		HIER STUVW 7
		TNT1 A 0 A_Jump(256,1,4,4,7,7,7)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("Nemesis",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_Jump(256,8)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("NemesisMegaSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_Jump(256,5)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("DemonicChalice",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("SkullOfPower",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("SpreadRune",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("HadesCrystalBundle",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("AcidWorm",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("UltraSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,32)
		TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("PartialKakuhou",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,64)
		TNT1 A 0 A_SpawnItemEx("ShadowCastOrb",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
		TNT1 A 0 A_BossDeath
		TNT1 A 0 A_KillMaster
		HIER X 63000 CanRaise
		Stop
	}
}

Actor IsAnHEMHeresiarch : Inventory { Inventory.MaxAmount 1 }
Actor InRage : Inventory { Inventory.MaxAmount 1 }

Actor HeresiarchLaserBeam : TrueLegendaryLaserBeam
{
Damage (random(250,500))
+DontHurtSpecies
+DontHarmSpecies
Species ""
Species "SatanGuard"
DamageType ""
DamageType "SatanGuard"
}

Actor HeresiarchWraith : DoomWraith
{
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
DamageType ""
DamageType "SatanGuard"
Obituary "The Heresiarch got his revenge on %o."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6)
		TNT1 AAAAA 1 Bright
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT AAAAA 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0)
		DWRT BBBBB 1 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(100,240,0,0)
	Death:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_ScaleVelocity(0.3)
		TNT1 A 0 Bright A_ChangeFlag(HEXENBOUNCE,1)
		TNT1 A 0 Bright A_UnSetSolid
		TNT1 A 0 Bright A_Scream
		TNT1 A 0 Bright A_SpawnItemEx("Kaboom12",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 AAAAAA 0 Bright A_SpawnItemEx("Kaboom10",0,0,0,random(-5,5),random(-5,5),random(-5,5),random(0,360))
		TNT1 A 0 Bright A_Explode(200,480,0)
		DWRT HIJKLMMMMMM 4 Bright A_FadeOut(0.1,1)
		Stop
	}
}

Actor NightmareSummonerSpam : ExileCaster
{
Speed 30
+THRUACTORS
+NOTIMEFREEZE
var int user_chance;
var int user_lcount;
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("NemesisPlasmaFly",CHAN_VOICE,1.0,1)
		TNT1 A 0 Bright A_SetUserVar("user_chance",0)
		TNT1 A 0 Bright A_SetUserVar("user_lcount",0)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Goto SpawnLoop
	SpawnLoop:
		TNT1 A 1 Bright A_Weave(user_lcount,user_lcount,2.0,1.0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("Nightmare",0,0,0,velx*0.9,vely*0.9,(velz+random(-3,3))*0.9,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,user_chance)
		TNT1 AA 1 Bright A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),128)
		TNT1 A 1 Bright A_Weave(user_lcount,user_lcount,2.0,1.0)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("Nightmare",0,0,0,velx*0.9,vely*0.9,(velz+random(-3,3))*0.9,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,user_chance)
		TNT1 AA 1 Bright A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),128)
		TNT1 A 0 Bright A_JumpIf(user_lcount > 100,2)
		TNT1 A 0 Bright A_SetUserVar("user_lcount",user_lcount+1)
		TNT1 A 0 Bright A_JumpIf(user_chance > 255,"SpawnLoop")
		TNT1 A 0 Bright A_SetUserVar("user_chance",user_chance+1)
		Loop
	Death:
		TNT1 A 0 Bright
		TNT1 AAA 0 Bright A_StopSound(CHAN_VOICE)
		TNT1 A 0 Bright A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAAA 1 Bright A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("Nightmare",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 AA 1 Bright A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright
		Stop
	}
}

Actor NightmareSummoner : ExileCaster
{
Height 56
Radius 18
Speed 30
+THRUACTORS
+NOTIMEFREEZE
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("BlueFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAAAAA 1 A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),128)
		TNT1 A 0 A_SpawnItemEx("Nightmare",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		TNT1 AA 1 A_SpawnItemEx("BlueFire",random(-2,2),random(-2,2),random(4,9),random(-3,3),random(-3,3),random(3,8),random(0,360),128)
		TNT1 A 1
		Stop
	}
}

Actor DoomCasterSummoner : ExileCaster
{
Height 64
Radius 24
Speed 30
+NOTIMEFREEZE
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 A 5
	Death:
		TNT1 A 0
		TNT1 A 2 A_SpawnItemEx("PHellionSmokeSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("DoomCaster~",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor DoomShadowSummoner : ShadeMissile
{
Projectile
Height 56
Radius 17
Speed 18
Scale 1.4
Renderstyle Translucent
Alpha 0.8
Damage (0)
+NOTIMEFREEZE
+RIPPER
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
DamageType ""
Damagetype "SatanGuard"
States
	{
	Spawn:
		NBAL A 1
		NBAL BABA 1 Bright A_SpawnItemEx("ShadePuffX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		NBAL AB 1 A_SpawnItemEx("ShadePuffX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_Jump(30,"Death")
		Goto Spawn+1
	Crash:
	XDeath:
	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("HadesVortexFX",0,0,0)
		TNT1 A 0 A_ScaleVelocity(0.0)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_SpawnItemEx("RedParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AAA 0 A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		NBAL HIJKLM 3 Bright A_FadeOut(0.1,0)
		TNT1 A 16
		TNT1 A 1 A_SpawnItemEx("Doom Shadow~",0,0,0,0,0,0,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor HeresiDeathFlare1 : BaseFlare
{
Scale 3.5
Alpha 1.0
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		L2NR A 6 Bright
		L2NR A 1 Bright A_FadeOut(0.04,1)
		Wait
	}
}

Actor HeresiDeathFlare2 : BaseFlare
{
Scale 3.5
Alpha 1.0
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		L2NP A 6 Bright
		L2NP A 1 Bright A_FadeOut(0.04,1)
		Wait
	}
}

Actor HeresiDeathFlare3 : BaseFlare
{
Scale 3.5
Alpha 1.0
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		L2NB A 6 Bright
		L2NB A 1 Bright A_FadeOut(0.04,1)
		Wait
	}
}

Actor HeresiDeathFlare4 : BaseFlare
{
Scale 3.5
Alpha 1.0
+NOTIMEFREEZE
States
	{
	Spawn:
		TNT1 A 0 Bright
		L2NR A 6 Bright
		L2NR A 1 Bright A_FadeOut(0.04,1)
		Wait
	}
}

Actor HeresiarchTargeter : DShadowTargeter
{
+NOTIMEFREEZE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
Obituary "%o couldn't fool the Hersiarch."
States
	{
	VileCharge:
		TNT1 A 0 A_JumpIfInventory("Tic",105,"VileAttack")
		TNT1 A 1 A_FaceTarget
		TNT1 A 0 A_VileTarget("DShadowHadesAttack")
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfTargetInLos("VileCharge",360)
		Goto Death
	VileAttack:
		TNT1 A 0 A_JumpIfTargetInLos("VileExplode",360)
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 1
		GoTo Death
	VileExplode:
		TNT1 A 0
		TNT1 A 1 A_VileTarget("DShadowHadesExplode")
		TNT1 A 0 A_TakeFromTarget("AlreadyTargeted",1)
		TNT1 A 1 A_FaceTarget
		GoTo Death
	}
}

Actor HeresiarchHadesExplode : DShadowHadesExplode
{
+NOTIMEFREEZE
+DONTHURTSPECIES
+DONTHARMSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
Obituary "%o was consumed into the Hades."
States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("SoulRazeLaugh2",1,1.0,0)
		TNT1 A 0 A_PlaySound("SoulRazeLaugh3",2,1.0,0)
		TNT1 A 0 A_Explode(270,500,0,0)
		TNT1 AAAAA 0 A_SpawnItemEx("Kaboom12Spawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 AAAAAAA 0 A_SpawnItemEx("HadesFireSpawner",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx("SoulRazeSprite",0,0,-9999,0,0,0,0,SXF_NOCHECKPOSITION)
		TNT1 A 1
		Stop
	}
}

Actor HadesVortexFX
{
Renderstyle Add
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
States
	{
	Spawn:
		GRBA MLKJIA 3 BRIGHT
		GRBA A 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA A 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA B 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA B 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA C 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA C 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA D 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA D 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA E 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA E 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA F 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA F 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA G 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA G 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA H 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA H 1 Bright A_CustomMissile("Kaboom10",0,0,random(0,360),2,random(0,360))
		TNT1 A 0 A_SpawnItemEx("HadesElectroSmoke",0,0,0,random(-8,8),random(-8,8),random(-8,8),random(0,360),SXF_NOCHECKPOSITION)
		GRBA IJKLM 3 Bright A_FadeOut(0.1,0)
		GRBA M 2 Bright A_FadeOut(0.1,1)
		Wait
	}
}

Actor ImpaleSpawn
{
Projectile
Height 16
Radius 8
Speed 0
Damage (0)
+RIPPER
+NOTIMEFREEZE
+FLOORHUGGER
+NOEXPLODEFLOOR
+NODAMAGETHRUST
+FORCERADIUSDMG
+THRUSPECIES
+DONTHURTSPECIES
+DONTHARMSPECIES
Species "SatanGuard"
Damagetype "SatanGuard"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_CustomMissile("Kaboom6",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 Bright A_SpawnItem("BlueSpike2")
		TNT1 A 0 Bright A_PlaySound("weapons/diasht",0,1.5,0)
		//TNT1 A 0 Bright A_Explode(20,500,0,0)
		TNT1 A 0 Bright A_RadiusGive("DamageThroughInvulnerability",150,RGF_PLAYERS,1)
		TNT1 A 1 Bright
		TNT1 AAA 0 A_SpawnItemEx("Kaboom23",0,0,0,random(-2,2),random(-2,2),random(3,11),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright
		TNT1 AAA 0 A_SpawnItemEx("Kaboom23",0,0,0,random(-2,2),random(-2,2),random(3,11),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright
		TNT1 AAA 0 A_SpawnItemEx("Kaboom23",0,0,0,random(-2,2),random(-2,2),random(3,11),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 Bright
		Stop
	}
}

Actor BlueSpike2 : BlueSpike
{
Scale 5.5
+NOTIMEFREEZE
+NOINTERACTION
States
	{
	Spawn:
		TNT1 A 0
		STRD ABC 3 Bright
		STRD D 6 Bright
		STRD EFGHIJ 3 Bright
		Stop
	}
}

ACTOR ShadePuffX
{   
Radius 3
Height 3
Scale 1.2
RENDERSTYLE Translucent
Alpha 0.65
+DROPOFF
+NOGRAVITY
+THRUACTORS
+NOBLOCKMAP
+DONTSPLASH
+NOTELEPORT
+NOTIMEFREEZE
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
+NONETID
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 A 1 Bright
		NBAL CDEFG 3 Bright A_FadeOut(0.1,0)
		NBAL G 3 Bright A_FadeOut(0.1,1)
		Wait
	Toaster:
		TNT1 A 1 Bright
		Stop
	}
}

Actor HeresiarchPurpleBall : ShadeMissile2
{
Speed 32
FastSpeed 38
Damage 13
-SeekerMissile
+NOTIMEFREEZE
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchPurpleBall2 : HeresiarchPurpleBall
{
+SeekerMissile
}

Actor HeresiarchPurpleBall3 : PurpleFireShot
{
+NOTIMEFREEZE
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchRedBall : ShadeMissile
{
Speed 32
FastSpeed 38
Damage (12*random(4,8))
+HexenBounce
+StrifeDamage
-SeekerMissile
+DONTHARMSPECIES
+DONTHURTSPECIES
Bouncefactor 1.2
Bouncecount 3
WallBounceFactor 1.2
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchHadesBall : HadesTracer
{
Speed 35
FastSpeed 38
Damage (12*random(5,8))
-StrifeDamage
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchBlueBall : PaladinBall
{
Speed 38
FastSpeed 42
+DONTHARMSPECIES
+DONTHURTSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchComet : PaladinComet
{
Damage(random(80,90))
+DONTHARMSPECIES
+DONTHURTSPECIES
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor HeresiarchTrailAttack : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,5,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,10,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,15,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,20,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,25,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,30,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,35,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,50,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,55,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,75,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,80,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,85,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-5,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-10,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-15,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-20,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-25,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-30,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-35,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-45,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-50,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-55,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-60,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-75,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-80,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchTrail",0,0,-85,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1 A_CustomMissile("HeresiarchTrail",0,0,-90,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		Stop
	}
}


Actor HeresiarchTrail : PaladinTrail
{
Damage (25*random(1,4))
+NOTIMEFREEZE
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("BlueSpike",0,0,0,0,0,0,0,SXF_ABSOLUTEPOSITION)
		TNT1 A 0 Bright A_Jump(120,"Weave","Slither")
		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,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		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,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		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,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		TNT1 A 0 Bright
		Loop
	Weave:
		SBFR A 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		SBFR B 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		SBFR C 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_BishopMissileWeave
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		TNT1 A 0 Bright
		Loop
	Slither:
		SBFR A 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CStaffMissileSlither
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		SBFR B 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CStaffMissileSlither
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		SBFR C 1 Bright A_SpawnItemEx("PaladinTrailTail",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
		TNT1 A 0 Bright A_CStaffMissileSlither
		TNT1 A 0 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,40,0,360,2)
		TNT1 A 0 Bright A_Jump(256,2)
		TNT1 A 0 Bright A_Explode(random(50,60),80)
		TNT1 A 0 Bright
		Loop
	}
}

Actor Nightmare : Nightshade
{
Health 320
BloodColor DarkBlue
+NOFEAR
-COUNTKILL
+NOFEAR
+DONTBLAST
+NOINFIGHTING
Species ""
Species "AdvancedImp"
Species "SatanGuard"
DamageType ""
DamageType "SatanGuard"
Damagefactor "BFG", 0.8
Damagefactor "BFGSuper", 0.5
Damagefactor "BFGRail", 0.2
Damagefactor "UBDTR", 0.3
Damagefactor "Cyber10k", 0.3
Damagefactor "CerEnergyBall", 0.3
Damagefactor "DTRPlayer", 0.6
//No Infighting
Damagefactor "SatanGuard", 0.0
Damagefactor "AdvancedImp", 0.0
Damagefactor "CurseComet", 0.0
DropItem "LifeEssence", 64
DropItem "HEMArmorBonusMax18", 64
SeeSound "Nightmare/See"
PainSound "Nightmare/Pain"
DeathSound "Nightmare/Death"
ActiveSound "Nightmare/Active"
Obituary "%o was tortured by %p Nightmares."
var int user_lcounter;
States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_SetUserVar("user_lcounter",10)
		Goto Spawnloop
	Spawnloop:
		NTMR A 1 A_Look
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		loop
	See.Invisible:
		TNT1 AAAA 0 A_Chase("","")
		TNT1 A 0 A_GiveInventory("Tic",1)
		TNT1 A 0 A_JumpIfInventory("Tic",105,"FadeIn")
		TNT1 A 1 A_Chase("","")
		Loop
	See:
		TNT1 A 0 A_JumpIfInventory("ShadeInvisible",1,"See.Invisible")
		NTMR A 0 A_SetTranslucent(0.75,0)
		Goto SeeLoop
	SeeLoop:
		NTMR A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR A 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		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("IsAnHEMHeresiarch",1,"WrongTarget")
		TNT1 A 0 A_JumpIf(user_lcounter < 1,"Vanish")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter-1)
		TNT1 A 0 A_JumpIfInventory("ShadeInvisible",1,"FadeInM1")
		TNT1 A 0 A_Jump(60,"GoInvisible")
		TNT1 A 0 A_SetTranslucent(1.0,0)
		Goto Normal
	Normal:
		NTMR E 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR E 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR E 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR E 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR F 1 A_FaceTarget
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue",0,0,35)
		NTMR FFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ImpureLaser",32,0,0,CMF_TRACKOWNER)
		NTMR FFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ImpureLaser",32,0,0,CMF_TRACKOWNER)
		NTMR FFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ImpureLaser",32,0,0,CMF_TRACKOWNER)
		NTMR FFF 1 Bright A_FaceTarget
		TNT1 A 0 A_CustomMissile("ImpureLaser",32,0,0,CMF_TRACKOWNER)
		NTMR E 5
		NTMR B 4 A_SetTranslucent(0.87,0)
		GoTo See
	GoInvisible:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("ShadeInvisible",1,"See.Invisible")
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue2",0,0,35)
		NTMR E 6 Bright 
		TNT1 A 0 A_SetTranslucent(0.0,0)
		TNT1 A 0 A_UnSetSolid
		TNT1 A 0 A_ChangeFlag(Invulnerable,1)
		TNT1 A 0 A_ChangeFlag(Shootable,0)
		TNT1 A 0 A_ChangeFlag(NoPain,1)
		TNT1 A 0 A_ScaleVelocity(10.0)
		TNT1 A 0 A_GiveInventory("ShadeInvisible",1)
		GoTo See.Invisible
	FadeIn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue2",0,0,35)
		NTMR E 6 Bright 
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		TNT1 A 0 A_ChangeFlag(Shootable,1)
		TNT1 A 0 A_ChangeFlag(Invulnerable,0)
		TNT1 A 0 A_ScaleVelocity(1.0)
		TNT1 A 0 A_TakeInventory("ShadeInvisible",1)
		TNT1 A 0 A_TakeInventory("Tic",999)
		GoTo See
	FadeInM1:
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue2",0,0,35)
		NTMR E 6 Bright 
		TNT1 A 0 A_SetSolid
		TNT1 A 0 A_ChangeFlag(NoPain,0)
		TNT1 A 0 A_ChangeFlag(Shootable,1)
		TNT1 A 0 A_ChangeFlag(Invulnerable,0)
		TNT1 A 0 A_ScaleVelocity(1.0)
		TNT1 A 0 A_TakeInventory("ShadeInvisible",1)
		TNT1 A 0 A_TakeInventory("Tic",999)
		GoTo Normal
	Pain:
		TNT1 A 0 A_SetTranslucent(1.0,0)
		NTMR G 2
		NTMR G 2 A_Pain
		Goto See
	Vanish:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		NTMR G 2 A_FadeOut(0.1,1)
		Wait
	Death:
		NTMR H 4 A_SetTranslucent(1.0,0)
		TNT1 A 0 A_SpawnItemEx("BlueFlare2",0,0,32)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,40,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,100,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,160,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,220,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,280,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("HeresiarchResRadius",10,0,340,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		NTMR IIIIII 1 Bright A_SpawnItemEx("BlueFire2",random(3,-3),random(3,-3),random(7,18),random(2,-2),random(2,-2),random(2,5),random(0,360),128)
		TNT1 A 0 A_SpawnItemEx("ShadowSmokeGenBlue2",0,0,35)
		NTMR I 2 A_SetTranslucent(0.9,0)
		TNT1 A 0 A_Scream
		NTMR J 4 A_SetTranslucent(0.8,0)
		TNT1 A 0 A_Fall
		NTMR KLMNOP 4 A_FadeOut(0.1,0)
		NTMR P 2 A_FadeOut(0.1,1)
		Wait
	}
}

Actor ImpureLaser : FastProjectile
{
Speed 500
Height 3
Radius 3
Scale 0.35
Renderstyle Add
Missiletype "ImpureLaserTrail"
MissileHeight 8
Damage (random(1,8)*2)
+PierceArmor
+ThruSpecies
+DONTHARMSPECIES
+DONTHURTSPECIES
Species "SatanGuard"
Damagetype "SatanGuard"
SeeSound "monsters/newfireshoot"
DeathSound "monsters/newfireexplode"
States
	{
	Spawn:
		SATC ABC 1 Bright
		Loop
	Crash:
	Death:
		TNT1 A 0 Bright
		SATC DEFG 3 Bright A_FadeOut(0.1,0)
		SATC G 1 Bright A_FadeOut(0.2,1)
		Wait
	XDeath:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 AAA 0 Bright A_CustomMissile("Kaboom6",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 Bright A_CustomMissile("SmokeFX4",0,0,random(0,360),2,random(0,360))
		TNT1 AAA 0 Bright A_SpawnItemEx("PaladinBTrail2",0,0,0,random(20,-20),random(20,-20),random(20,-20),random(0,360))
		SATC DEFG 3 Bright A_FadeOut(0.1,0)
		SATC G 1 Bright A_FadeOut(0.2,1)
		Wait
	}
}

Actor ImpureLaserTrail
{
Scale 0.35
Height 1
Radius 1
Renderstyle Add
+NOINTERACTION
States
	{
	Spawn:
		SATC ABC 3 Bright 
		SATC DDEEFFG 1 Bright A_FadeOut(0.1,0)
		SATC G 1 Bright A_FadeOut(0.1,1)
		Wait
	}
}

Actor HeresTeleportFXSpawner : ShadowSmokeGen
{
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SpawnItemEx("RedLightningFX",0,0,0)
		TNT1 A 0 Bright A_SpawnItemEx("HeresiDeathFlare1",0,0,0)
		TNT1 A 0 Bright A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 Bright A_SpawnItemEx("HadesBallTrailSpawner",random(-125,125),random(-125,125),random(-125,125),random(-25,25),random(-25,25),random(-25,25),random(0,360))
		TNT1 A 1 Bright
		Stop
	Toaster:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_SpawnItemEx("HadesBallTrailSpawner",random(-125,125),random(-125,125),random(-125,125),random(-25,25),random(-25,25),random(-25,25),random(0,360))
		Stop
	}
}

ACTOR HeresiarchResRadius
{
PROJECTILE
Radius 8
Height 4
Speed 25
+NOCLIP
+NORADIUSDMG
+FLOORHUGGER
+INVULNERABLE
States
	{
	Spawn:
		TNT1 A 1 Bright
		TNT1 A 0 Bright A_Jump(256,1,2,3,4,5,6,7,8,9,10)
		TNT1 AAAAAAAAAA 0 Bright
		TNT1 AAAAAAAAAA 2 Bright A_VileChase
		Goto Death
	Heal:
		TNT1 A 1 Bright
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

Actor MonsterNemesisPlasmaSpread : NemesisPlasmaSpread
{
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_PlaySound("NemesisPlasmaFly",CHAN_VOICE,1.0,1)
		TNT1 A 0 Bright A_SetUserVar("user_chance",0)
		TNT1 A 0 Bright A_SetUserVar("user_lcount",0)
		HEFX A 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-A",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		HEFX B 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-B",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		HEFX A 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-A",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		HEFX B 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-B",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		HEFX A 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-A",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		HEFX B 1 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-B",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		Goto Spawnloop
	Spawnloop:
		HEFX A 1 Bright A_Weave(user_lcount,user_lcount,2.0+(user_lcount*0.1),1.0+(user_lcount*0.1))
		TNT1 A 0 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-A",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("MonsterNemesisPlasmaSeek",0,0,0,velx*0.5,vely*0.5,(velz+random(-3,3))*0.5,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,128+user_chance)
		TNT1 A 0 Bright A_SpawnItemEx("MonsterNemesisPlasmaSpray",0,0,0,velx*0.9,vely*0.9,(velz+random(-3,3))*0.9,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,128+user_chance)
		TNT1 A 0 Bright A_JumpIf(user_lcount < 5,3)
		TNT1 A 0 Bright A_Jump(96,2)
		TNT1 A 0 Bright A_CustomMissile("MonsterFastNemesisPlasmaSpray",0,0,random(0,359),CMF_AIMDIRECTION | CMF_TRACKOWNER,random(-45,45))
		HEFX B 1 Bright A_Weave(user_lcount,user_lcount,2.0+(user_lcount*0.1),1.0+(user_lcount*0.1))
		TNT1 A 0 Bright A_SpawnItemEx("NemesisPlasmaTrailFX-B",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 Bright A_SpawnItemEx("MonsterNemesisPlasmaSeek",0,0,0,velx*0.5,vely*0.5,(velz+random(-3,3))*0.5,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,128+user_chance)
		TNT1 A 0 Bright A_SpawnItemEx("MonsterNemesisPlasmaSpray",0,0,0,velx*0.9,vely*0.9,(velz+random(-3,3))*0.9,angle+random(-11,11),SXF_TRANSFERPITCH | SXF_SETMASTER,128+user_chance)
		TNT1 A 0 Bright A_JumpIf(user_lcount < 5,3)
		TNT1 A 0 Bright A_Jump(96,2)
		TNT1 A 0 Bright A_CustomMissile("MonsterFastNemesisPlasmaSpray",0,0,random(0,359),CMF_AIMDIRECTION | CMF_TRACKOWNER,random(-45,45))
		TNT1 A 0 Bright A_JumpIf(user_lcount > 100,2)
		TNT1 A 0 Bright A_SetUserVar("user_lcount",user_lcount+1)
		TNT1 A 0 Bright A_JumpIf(user_chance > 96,"SpawnLoop")
		TNT1 A 0 Bright A_SetUserVar("user_chance",user_chance+15)
		Loop
	}
}

Actor MonsterNemesisPlasmaSeek : NemesisPlasmaSeek
{
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor MonsterNemesisPlasmaSpray : NemesisPlasmaSpray
{
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
}

Actor MonsterFastNemesisPlasmaSpray : FastNemesisPlasmaSpray
{
Species ""
Species "SatanGuard"
Damagetype ""
Damagetype "SatanGuard"
States
	{
	Spawn:
		TNT1 A 1 Bright A_SpawnItemEx("MonsterFastNemesisPlasmaSprayProjectileAttack",0,0,0,velx*0.9,vely*0.9,velz*0.9,angle+frandom(-0.5,0.5),SXF_NOCHECKPOSITION|SXF_SETMASTER,160)
		TNT1 A 0 Bright A_CountDown
		Loop
	}
}

ACTOR MonsterFastNemesisPlasmaSprayProjectileAttack
{
+ISMONSTER
-COUNTKILL
+THRUACTORS
+NOGRAVITY
+DROPOFF
+DONTSPLASH
+NOTELEPORT
+NONSHOOTABLE
+LOOKALLAROUND
+QUICKTORETALIATE
+NOTARGET
-FRIENDLY
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 AAAAA 1 Bright A_LookEx(LOF_NOSOUNDCHECK|LOF_NOSEESOUND,0,1250,0,360,"Attack")
		Goto Death
	Attack:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_FaceTarget
		TNT1 A 1 Bright A_GiveToTarget("NemesisAttack",1)
		Goto Death
	Death:
		TNT1 A 1 Bright
		Stop
	}
}

Actor DamnedSphereSpawner
{
PROJECTILE
Height 2
Radius 2
Speed 6
+DONTSPLASH
+NOTIMEFREEZE
+THRUACTORS
+FLOORHUGGER
+NOEXPLODEFLOOR
+SERVERSIDEONLY
States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Damned sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		Stop
	}
}

Actor WeaknessSphereSpawner : DamnedSphereSpawner
{
States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Weakness sphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,0)
		Stop
	}
}

Actor FallenSummoner : DamnedSphereSpawner
{
Height 48
Radius 24
States
	{
	Spawn:
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
		TNT1 A 1 A_SpawnItemEx("ShadowSmokeGen3",0,0,8,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 1 A_SpawnItemEx("Fallen",0,0,8,0,0,6,0,SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		Stop
	}
}

Actor DoomCaster~ : DoomCaster
{
Monster
+NOFEAR
+NOTARGET
+NOINFIGHTING
Species ""
Species "SatanGuard"
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Moloch", 0.0
Damagefactor "AdvancedImp", 0.0
DropItem ""
DropItem "BossLifeEssence", 32
DropItem "BossArmorBonusMax", 32
DropItem "DemonAmmoBox", 64, 32
DropItem "NewShell", 64, 12
DropItem "BulletMag", 64, 12
DropItem "UltraSphere", 16
States
	{
	Idle:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto IdleLoop
	IdleLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 2 Bright A_Wander
		DCST A 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 2 Bright A_Wander
		DCST B 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 2 Bright A_Wander
		DCST C 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 2 Bright A_Wander
		DCST D 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SetAngle(angle+22.5)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"ShieldsPain")
		TNT1 A 0 A_JumpIfInventory("VanishTimer",656,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle2")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	Idle2:
		TNT1 A 0 A_SetUserVar("user_lcounter",1)
		Goto IdleLoop2
	IdleLoop2:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 2 Bright A_Wander
		DCST A 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 2 Bright A_Wander
		DCST B 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 2 Bright A_Wander
		DCST C 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 2 Bright A_Wander
		DCST D 1 Bright A_Look
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SetAngle(angle-22.5)
		TNT1 A 0 A_JumpIf((user_currenthp - ACS_NamedExecuteWithResult("Hem_GetCurrentHealth")) > 50,"ShieldsPain")
		TNT1 A 0 A_JumpIfInventory("VanishTimer",656,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		TNT1 A 0 A_JumpIf(user_lcounter > 8,"Idle")
		TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
		Loop
	See:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(REFLECTIVE,0)
		Goto SeeLoop
	SeeLoop:
		TNT1 A 0 HealThing(1)
		TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST AAAA 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST BBBB 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_SpawnItemEx("HoofStep2",0,0,2,0,0,-20)
		DCST CCCC 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		DCST DDDD 1 Bright A_Chase
		TNT1 A 0 A_SpawnItemEx("PaladinWalkFire",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_CLIENTSIDE)
		TNT1 A 0 A_JumpIfInventory("VanishTimer",656,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_ChangeFlag(NOPAIN,0)
		TNT1 A 0 A_ChangeFlag(REFLECTIVE,0)
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnHEMHeresiarch", 1,"WrongTarget")
		TNT1 A 0 A_JumpIfCloser(300,"Normal")
		TNT1 A 0 A_JumpIfCloser(600,"PowerShot")
		TNT1 A 0 A_JumpIfCloser(1200,"PowerSpread")
		Goto Normal
	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
	Vanish:
		TNT1 A 0
		DCST Q 2 A_FadeOut(0.1,1)
		Wait
	}
}

Actor "Doom Shadow~" : "Doom Shadow"
{
Monster
+NOFEAR
+NOTARGET
+NOINFIGHTING
+DONTBLAST
Species ""
Species "SatanGuard"
DamageFactor "SatanGuard", 0.0
DamageFactor "AbyssalSatyr", 0.0
Damagefactor "Moloch", 0.0
Damagefactor "AdvancedImp", 0.0
DropItem ""
DropItem "BossLifeEssence", 32
DropItem "HEMArmorBonusMax15", 32
DropItem "HadesCrystalBundle", 32
DropItem "NewShell", 64, 12
DropItem "BulletMag", 64, 12
Tag "Doom Shadow"
States
	{
	Idle:
		DSHD A 1 A_Look
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail",0,0,0,random(6,-6),random(6,-6),random(6,-6),random(0,360),SXF_NOCHECKPOSITION)
		TNT1 A 0 A_JumpIfInventory("VanishTimer",10500,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		Loop
	See:
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD B 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD B 1 A_FastChase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		TNT1 A 0 A_JumpIfInventory("VanishTimer",10500,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD C 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		TNT1 A 0 A_JumpIfInventory("VanishTimer",10500,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD D 1 A_FastChase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD D 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		TNT1 A 0 A_JumpIfInventory("VanishTimer",10500,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		DSHD E 1 A_Chase
		TNT1 A 0 A_SpawnItemEx("DoomShadowTrail2",0,0,0,random(3,-5),random(5,-5),random(3,-3),random(0,360))
		TNT1 A 0 A_JumpIfInventory("VanishTimer",10500,"Vanish")
		TNT1 A 0 A_GiveInventory("VanishTimer",1)
		Loop
	Missile:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("Tic",999999)
		TNT1 A 0 A_JumpIfInTargetInventory("IsAnHEMHeresiarch",1,"WrongTarget")
		TNT1 A 0 A_Jump(60,"DoomWraith")
		TNT1 A 0 A_Jump(55,"VileAttack")
		TNT1 A 0 A_Jump(35,"ShadowCall")
		Goto MissileLoop
	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
	Vanish:
		TNT1 A 0
		DSHD H 2 A_FadeOut(0.1,1)
		Wait
	}
}

Actor SummonInTelederp : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_CustomMissile("DamnedSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_Jump(180,2)
		TNT1 A 0 A_CustomMissile("FallenSummoner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_JumpIfInventory("InRage",1,"RageSummon")
		TNT1 A 1
		Stop
	RageSummon:
		TNT1 A 0
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_CustomMissile("WeaknessSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_CustomMissile("DamnedSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_CustomMissile("FallenSummoner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 1
		Stop
	}
}

Actor SummonInTelederpAfraid : CustomInventory
{
-COUNTITEM
+INVENTORY.QUIET
+INVENTORY.UNDROPPABLE
+INVENTORY.ALWAYSPICKUP
+INVENTORY.AUTOACTIVATE
Inventory.Amount 1
Inventory.MaxAmount 0
States
	{
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_Jump(160,2)
		TNT1 A 0 A_CustomMissile("WeaknessSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_Jump(180,2)
		TNT1 A 0 A_CustomMissile("FallenSummoner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_JumpIfInventory("InRage",1,"RageSummon")
		TNT1 A 1
		Stop
	RageSummon:
		TNT1 A 0
		TNT1 A 0 A_Jump(160,4)
		TNT1 A 0 A_CustomMissile("WeaknessSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("DamnedSphereSpawner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0 A_CustomMissile("FallenSummoner",62,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER)
		TNT1 A 0
		Stop
	}
}