Actor ActuallyGoodHeresiarch replaces HEMHeresiarch
{
  Monster
  Health 16666
  Height 110
  Radius 40
  Mass 1000
  Scale 2.0
  Speed 8
  FloatSpeed 16
  FastSpeed 16
  BloodColor Blue
  MinMissileChance 64//160
  Meleerange 80
  MeleeThreshold 166
  Painchance 40
  Painchance "Legendary", 256
  Painchance "LegendaryGuruPlayer", 256
  Painchance "Crush", 256
  Painchance "Melee", 256
  Painchance "Explosion", 256
  Painchance "NuclearFire", 256
  PainChance "BFG10K", 256
  PainChance "PlayerDBFG2", 256
  PainChance "PlayerDBFG210K", 256
  PainChance "PlayerDBFG10K2", 256
  PainChance "DBFG210K", 256
  PainChance "DBFG2Splash", 256
  PainChance "DBFG2", 256
  PainChance "DBFG", 256
  PainChance "PlayerDBFG", 256
  PainChance "DBFG10K2", 256
  Painchance "SatanGuard", 0
  +BOSS
  +NOFEAR
  +BOSSDEATH
  +NOICEDEATH
  +NOTIMEFREEZE
  +DONTMORPH
  +DONTBLAST
  +NORADIUSDMG
  -FRIGHTENED
  +NOTARGET
  +NOINFIGHTING
  +DONTRIP
  +DONTFALL
  +TELESTOMP
  +NOTELEFRAG
  +FLOAT
  +NOGRAVITY
  +FULLVOLACTIVE
  +NEVERRESPAWN
  +SEEINVISIBLE
  +FASTMELEE
  +MISSILEMORE
  +MISSILEEVENMORE
  +QUICKTORETALIATE
  +DONTHARMSPECIES
  Species "SatanGuard"
  Damagetype "SatanGuard"
  Damagefactor "Melee", 0.05
  Damagefactor "Crush", 0.1
  Damagefactor "Acid", 0.05
  DamageFactor "Ice", 0.0
  Damagefactor "Fire", 0.0
  Damagefactor "Poison", 0.0
  Damagefactor "PoisonCloud", 0.0
  Damagefactor "Electric", 0.001
  Damagefactor "Disintegrate", 0.001
  DamageFactor "DrainLife", 0.0
  DamageFactor "Extreme", 0.0
  DamageFactor "Player", 0.0
  DamageFactor "Players", 0.02
  DamageFactor "PyroShot", 0.0
  DamageFactor "PlayerPyro", 0.0
  DamageFactor "PDTPuff", 0.0
  Damagefactor "Explosion", 0.1
  Damagefactor "NuclearFire", 0.01
  DamageFactor "BFG9500Ball", 0.25
  DamageFactor "BFGSplash", 0.25
  DamageFactor "UpBFG9500Ball", 0.25
  DamageFactor "UpBFGSplash", 0.15
  DamageFactor "PDTBFG", 0.03
  DamageFactor "PDTBFGTracer", 0.03
  DamageFactor "PlayerDevBall", 0.02
  DamageFactor "PlayerDevBall2", 0.02
  DamageFactor "PlayerDevTracer", 0.02
  DamageFactor "PlayerDBFG2", 0.65
  DamageFactor "PlayerDBFG10K2", 0.65
  DamageFactor "PlayerDBFGSplash2", 0.65
  DamageFactor "PlayerBHole", 0.05
  DamageFactor "PlayerNemesisPlasma", 0.01
  DamageFactor "Legendary", 0.015
  DamageFactor "LegendaryPlayer", 0.015
  DamageFactor "PlayerHellfire", 0.1
  DamageFactor "SuperWeapon", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.015
  DamageFactor 0.4
  //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 "SoulToxic", 0.0
  DamageFactor "Cacolich", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "HellComet", 0.0
  DamageFactor "HFCyber", 0.0
  DamageFactor "DBFG10K", 0
  DamageFactor "PlayerDBFG10K", 0
  DamageFactor "PlayerDBFG2", 0
  DamageFactor "DBFG210K", 0
  DamageFactor "PlayerDBFG210K", 0
  DamageFactor "PlayerDBFG", 0
  DamageFactor "DBFG2Splash", 0
  DamageFactor "DBFG2", 0
  DamageFactor "DBFG", 0
  DamageFactor "PlayerDBFG", 0
  DamageFactor "DBFG10K2",0
  DropItem "BossLifeEssence", 256, 250
  DropItem "NemesisArmorBonus64", 256
  SeeSound "LOH/see"
  ActiveSound "LOH/idle"
  PainSound "Heresiarch/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 Heresiarch."
  Tag "\c[a0]Heresiarch\c-"
  var int user_music;
  var int user_lcounter;
  var int user_rage;
  var int user_spamcounter;
  States
  {
  Spawn:
	HIER A 10 A_Look
	Loop
  Idle:
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_Jump(10,"Teleport")
	TNT1 A 0 A_Look
	HIER AA 4 A_Wander
	TNT1 A 0 A_Look
	HIER BB 4 A_Wander
	TNT1 A 0 A_Jump(10,"Teleport")
	TNT1 A 0 A_Look
	HIER CC 4 A_Wander
	TNT1 A 0 A_Look
	HIER DD 4 A_Wander
	Loop
  See:
	//TNT1 A 0 A_JumpIf(user_rage == 1,"Rage")
	//TNT1 A 0 A_JumpIfHealthLower((ACS_NamedExecuteWithResult("Hem_SpawnHealth")*0.2),"Rage")
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_JumpIf(user_music == 1,4)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,813)
	TNT1 A 0 ACS_NamedExecuteAlways("HeresiarchSky",0)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_Jump(30,"Teleport","Telederp")
    TNT1 A 0 A_JumpIf((z - floorz) < 77,2)
    TNT1 A 0 A_Jump(256,2)
    TNT1 A 0 ThrustThingZ(0,random(50,80),0,0)
    HIER AA 2 A_Chase("Melee","Missile",CHF_FASTCHASE)
    TNT1 A 0 A_Stop
    HIER AA 2 A_Chase("","",CHF_FASTCHASE)
    TNT1 A 0 A_JumpIf((z - floorz) < 77,2)
    TNT1 A 0 A_Jump(256,2)
    TNT1 A 0 ThrustThingZ(0,random(50,80),0,0)
    HIER BB 2 A_Chase("Melee","Missile",CHF_FASTCHASE)
    TNT1 A 0 A_Stop
    HIER BB 2 A_Chase("","",CHF_FASTCHASE)
	TNT1 A 0 A_Jump(30,"Teleport","Telederp")
    TNT1 A 0 A_JumpIf((z - floorz) < 77,2)
    TNT1 A 0 A_Jump(256,2)
    TNT1 A 0 ThrustThingZ(0,random(50,80),0,0)
    HIER CC 2 A_Chase("Melee","Missile",CHF_FASTCHASE)
    TNT1 A 0 A_Stop
    HIER CC 2 A_Chase("","",CHF_FASTCHASE)
    TNT1 A 0 A_JumpIf((z - floorz) < 155,2)
    TNT1 A 0 A_Jump(256,2)
    TNT1 A 0 ThrustThingZ(0,random(50,80),0,0)
    HIER DD 2 A_Chase("Melee","Missile",CHF_FASTCHASE)
    TNT1 A 0 A_Stop
    HIER DD 2 A_Chase("","",CHF_FASTCHASE)
    Loop
  TelederpAfraid:
	TNT1 A 0 A_ChangeFlag(NOFEAR,0)
	TNT1 A 0 A_ChangeFlag(FRIGHTENED,1)
  Telederp:
	HIER K 15 A_UnSetShootable
	//TNT1 A 0 A_ChangeFlag(NOCLIP,1)
	TNT1 A 0 A_SetUserVar("user_lcounter",0)
	HIER K 4 Bright
	TNT1 A 0 A_PlaySound("Heresiarch/Teleport",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	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")
  TelederpLoop:
	HIER AA 0 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
	HIER A 1 A_Chase("TelederpEnd","",CHF_NIGHTMAREFAST|CHF_NOPLAYACTIVE)
	TNT1 A 0 A_Jump(2,"TelederpEnd")
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	TNT1 A 0 A_JumpIf(user_lcounter > 160,"TelederpEnd")
	Loop
  RunAway:
	HIER AAAA 1 A_Chase("","",CHF_NOPLAYACTIVE)
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	TNT1 A 0 A_JumpIf(user_lcounter > 20,"TelederpEnd")
	Loop
  TelederpEnd:
	HIER K 5 A_PlaySound("Heresiarch/Teleport",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_Facetarget
	HIER KKKKKKKKKK 1 Bright A_FadeIn(0.1)
	HIER KK 5 A_Facetarget
	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_ChangeFlag(NODAMAGE,0)
	//TNT1 A 0 A_ChangeFlag(NOCLIP,0)
	TNT1 A 0 A_SetShootable
	Goto See
  Teleport:
	HIER K 1 A_UnSetShootable
	//TNT1 A 0 A_ChangeFlag(NOCLIP,1)
	TNT1 A 0 A_ChangeFlag(NODAMAGE,1)
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	HIER K 4 Bright
	TNT1 A 0 A_PlaySound("Heresiarch/Teleport",6,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HIER KKKKKKKKKK 1 Bright A_FadeOut(0.1,0)
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
	TNT1 A 2 A_PlaySound("Heresiarch/Teleport",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SpawnItemEx("HeresTeleportFXSpawner",0,0,62,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	TNT1 A 0 A_LookEx(LOF_NOJUMP|LOF_NOSEESOUND,0,1250,0,360,1)
	TNT1 A 0 A_Facetarget
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_Facetarget(45)
	HIER K 1 Bright A_FadeIn(0.1)
	TNT1 A 0 A_SetTranslucent(1,0)
	HIER KKKKKKKKKK 1 A_Facetarget(45)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_ChangeFlag(NODAMAGE,0)
	//TNT1 A 0 A_ChangeFlag(NOCLIP,0)
	TNT1 A 0 A_SetShootable
	Goto See
  Melee:
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_Jump(64,"Missile")
	HIER EEEEFFFGG 1 A_FaceTarget
	TNT1 A 0 A_CustomMeleeAttack(random(200,500),"imp/melee","None","Melee")
  Melee2:
	HIER FFFEEEE 1 A_JumpIfCloser(70,"AltMelee")
	Goto See
  AltMelee:
	HIER HHHHIIIJJ 1 A_FaceTarget
	TNT1 A 0 A_CustomMeleeAttack(random(200,500),"imp/melee","None","Melee")
  AltMelee2:
	HIER IIIHHHH 1 A_JumpIfCloser(70,"Melee")
	Goto See
  Missile:
	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_Jump(200,/*"BouncyArcradComets","ArcradBFG",*/"DarkMatter","DoomCasterShot","MoreDarkMatter")
	TNT1 A 0 A_Jump(150,"Laser")
	Goto Nemesis
  DarkMatter:
	HIER EF 4 A_FaceTarget
	HIER GGGG 2 A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIER HI 4 A_FaceTarget
	HIER JJJJ 2 A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
  DarkMatter2:
	HIER KLM 3 A_FaceTarget
	HIE3 O 3 Bright A_FaceTarget
	HIE3 NNNNNNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 Bright A_FaceTarget
	HIE3 NNNNNNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIER O 3 Bright
	HIER MLK 3
	Goto See
  MoreDarkMatter:
	HIER KLM 4 A_FaceTarget
	HIE3 O 4 Bright A_FaceTarget
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatterHoming",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 Bright A_FaceTarget
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatterHoming",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 Bright A_FaceTarget
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatterHoming",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 Bright A_FaceTarget
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatter",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	HIE3 NNNN 1 Bright A_CustomMissile("HeresiarchDarkMatterHoming",60,0,random(-8,8),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 Bright A_FaceTarget
	HIER O 3 Bright
	HIER MLK 3
	Goto See
  DoomCasterShot:
	HIER EF 4 A_FaceTarget
	HIER GG 0 A_CustomMissile("DCstPowerShot",80,0,random(-20,20))
	HIER G 4 A_CustomMissile("DCstPowerShot",80,0,0)
	HIER HI 4 A_FaceTarget
	HIER GG 0 A_CustomMissile("DCstPowerShot",80,0,random(-20,20))
	HIER G 4 A_CustomMissile("DCstPowerShot",80,0,0)
	HIER EF 4 A_FaceTarget
	HIER GG 0 A_CustomMissile("DCstPowerShot",80,0,random(-20,20))
	HIER G 4 A_CustomMissile("DCstPowerShot",80,0,0)
	HIER HI 4 A_FaceTarget
	HIER GG 0 A_CustomMissile("DCstPowerShot",80,0,random(-20,20))
	HIER G 4 A_CustomMissile("DCstPowerShot",80,0,0)
	Goto See
  Laser:
	HIER KLM 5 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_PlaySound("LOH/See",7,1.0,0,ATTN_NONE)
	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",0)
  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 > 10,"LaserFire")
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	Loop
  LaserFire:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_SetUserVar("user_lcounter",0)
	TNT1 A 0 A_JumpIf(user_lcounter > 6,"LaserEnd")
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	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)
	Goto LaserFire+2
  LaserEnd:
	HIER O 5 Bright
	HIER MLK 5
	Goto See
  Nemesis:
	HIER KLM 5 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_PlaySound("Heresiarch/Attack",5,1.0,0,ATTN_NONE)
	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",0)
  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 > 15,"NemesisFire")
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	Loop
  NemesisFire:
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	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_PlaySound("NemesisAltFire",6,1.0,0,ATTN_NONE)
	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 See
  Pain.Crush:
	Goto Teleport
  Pain.LegendaryGuruPlayer:
  Pain.Legendary:
  Pain.PlayerNemesisPlasma:
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	Goto Nemesis
  Pain.Melee:
	HIER P 1 A_ChangeFlag(NOPAIN,1)
	HIER P 6
	HIER P 1 A_Pain
	HIER P 6
	HIER KKKLL 4 A_FaceTarget
	HIER MM 4 A_FaceTarget
	TNT1 A 0 A_SetDamageType("None")
	TNT1 A 0 A_Explode(10000000,100,0,0,100)
	TNT1 A 0 A_SetDamageType("SatanGuard")
	Goto See
  Pain.Mine:
  Pain.NuclearFire:
  Pain.Explosion:
	Goto TelederpAfraid
  Pain:
	TNT1 A 0 A_Jump(60,"Telederp","Teleport","TelederpAfraid")
	HIER P 1 A_ChangeFlag(NOPAIN,1)
	HIER P 1 A_Pain
	HIER P 6
	Goto See
  Death:
	HIER P 5 Bright
	TNT1 A 0 A_LowGravity
	TNT1 A 0 A_Stop
	TNT1 A 0 A_PlaySound("Heresiarch/Death1",7,1.0,0,ATTN_NONE)
	TNT1 A 0 A_SetUserVar("user_lcounter",0)
	TNT1 A 0 A_JumpIf(user_lcounter > 12,"DeathContinue")
	TNT1 A 0 A_SetUserVar("user_lcounter",user_lcounter+1)
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",1)
	HIER P 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",3)
	HIER P 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	HIER PP 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",4)
	HIER P 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	HIER PP 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",5)
	HIER P 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",6)
	HIER P 1 Bright A_CustomMissile("Kaboom25",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	HIER PP 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",7)
	HIER P 1 Bright A_CustomMissile("Kaboom24",random(38,100), random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",1)
	HIER PP 1 Bright A_CustomMissile("Kaboom25",random(38,100), random(-5,5),random(0,360),2,random(0,360))
	TNT1 A 0 A_PlaySound("DoomShadowDeathXPL",3)
	HIER PP 1 Bright A_CustomMissile("Kaboom24",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	HIER P 1 Bright A_CustomMissile("Kaboom23",random(38,100),random(-5,5),random(0,360),2,random(0,360))
	Goto Death+5
  DeathContinue:
	TNT1 A 0 A_SpawnItemEx("HeresiarchDeathBlueLaserSpawner",0,0,0)
	TNT1 A 0 A_SpawnItemEx("HeresiarchDeathKaboomEffectSpawner",0,0,0)
	TNT1 A 0 A_PlaySound("Heresiarch/Death2",7,1.0,0,ATTN_NONE)
	HIER Q 5 Bright A_ScreamAndUnblock
	TNT1 A 0 A_Explode(50,900,0)
	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_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 Q 6 Bright
	TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare2",0,0,64,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HIER R 6 Bright
	TNT1 A 0 A_SpawnItemEx("HeresiDeathFlare3",0,0,64,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	HIER R 4 Bright
	TNT1 A 0 A_CustomMissile("HeresiarchDeathResurrect",0,0,0,CMF_AIMDIRECTION|CMF_TRACKOWNER,90)
	TNT1 A 0 A_SpawnItemEx("HEMHeresiarchDeathFX",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	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),SXF_CLIENTSIDE|SXF_NOCHECKPOSITION,0)
	//TNT1 AAA 0 A_CustomMissile("Kaboom27",random(38,100),random(-5,5),random(0,360),CMF_AIMDIRECTION,random(0,360))
	//TNT1 AAAAA 0 A_CustomMissile("Kaboom26",random(38,100),random(-5,5),random(0,360),CMF_AIMDIRECTION,random(0,360))
	//TNT1 AAAAA 0 A_CustomMissile("Kaboom12",random(38,100),random(-5,5),random(0,360),CMF_AIMDIRECTION,random(0,360))
	//TNT1 AAAA 0 A_CustomMissile("SmokeFX",random(38,100),random(-5,5),random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 A 0 A_Gravity
	TNT1 A 0 A_ChangeFlag(DONTFALL,0)
	TNT1 A 0 A_RemoveChildren
	HIER STUVW 7
	TNT1 A 0 ACS_NamedExecuteAlways("ResetSky",0)
	TNT1 A 0 A_SpawnItemEx("Nemesis",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	TNT1 A 0 A_SpawnItemEx("NemesisMegaSphere",0,0,8,random(0,8),random(0,8),2,random(0,360),0,128)
	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("SpreadRuneItem",0,0,8,random(0,8),random(0,8),2,random(0,360),0,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("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_SpawnItemEx("NemesisArmorSphere",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 -1
	Stop
  }
}


ACTOR HeresiarchDarkMatter : PainLordDarkMatter
{
  Speed 70
  Damagetype "SatanGuard"
  +NOTIMEFREEZE
  States
  {
  Death:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PainLord/Explode1",7)
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,Random(20,40),Random(4,-4),Random(4,-4),Random(4,8),0,128)
	TNT1 AAA 0 A_CustomMissile("BlueKaboom", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_SpawnItemEx("PainLordDeathExplosionSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_SpawnItemEx("HeresiarchShadowVaporSpawner",0,0,0,0,0,0,0,32)
	TNT1 A 0 A_Explode(130,200,1)
	TNT1 A 15 Radius_Quake(5,15,0,20,0)
	Stop
  }
}


ACTOR HeresiarchDarkMatterHoming : HeresiarchDarkMatter
{
  +SEEKERMISSILE
  States
  {
  Spawn:
	TNT1 A 0 A_SeekerMissile(5,5)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB AA 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB A 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB BB 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB B 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	TNT1 A 0 A_SeekerMissile(5,5)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB CC 0 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	DMGB C 1 Bright A_SpawnItemEx("DarkMatterSpark",0,0,0,random(-1,1),random(-1,1),random(-1,1),0,32,0)
	Loop
  }
}

ACTOR HeresiarchShadowVaporSpawner : ShadowVaporSpawnerDust
{
  +NOTIMEFREEZE
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("HeresiarchShadowVapor",0,0,0,random(4,-4),random(4,-4),random(4,-4),random(0,359),32)
	PLAY A 2
	PLAY BCDEF 4
	Stop
  }
}

ACTOR HeresiarchShadowVapor : ShadowVaporDust
{
  DamageType "SatanGuard"
  Species "SatanGuard"
}













actor HeresiarchDeathBlueLaserSpawner
{
  +NOINTERACTION
  +NOTIMEFREEZE
  var int user_loop;
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SetUserVar("user_loop",0)
	TNT1 A 0 A_JumpIf(user_loop > 35,"Death")
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 4 A_SpawnItemEx("HeresiarchDeathSpark",frandom(-20,20),frandom(-20,20),frandom(0,100))
    Goto Spawn+1
  Death:
	TNT1 A 1
	Stop
  }
}

ACTOR HeresiarchDeathBlueLaser
{
  +FORCEXYBILLBOARD
  +NOINTERACTION
  +CLIENTSIDEONLY
  +NOTIMEFREEZE
  RenderStyle Add
  Alpha 0.9
  Scale 1.0
  States
  {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(4,"SpawnParticle")
    HRDT A 1 Bright A_FadeOut(0.05)
    Loop
  SpawnParticle:
	TNT1 A 0 A_SpawnItemEx("HeresiarchDeathSpark",frandom(3,-3),frandom(3,-3),frandom(3,-3))
	Goto Spawn
  }
}


actor HeresiarchDeathKaboomEffectSpawner
{
  +NOINTERACTION
  +NOTIMEFREEZE
  var int user_loop;
  States
  {
  Spawn:
	TNT1 A 0 NoDelay A_SetUserVar("user_loop",0)
	TNT1 A 0 A_JumpIf(user_loop > 130,"Death")
	TNT1 A 0 A_SetUserVar("user_loop",user_loop+1)
	TNT1 A 0 A_SpawnItemEx("HeresiarchDeathSpark",frandom(3,-3),frandom(3,-3),frandom(3,-3))
    TNT1 AAAA 0 A_SpawnItemEx("HeresiarchDeathFlame",random(-20,20),random(-20,20),random(0,100),frandom(-10,10),frandom(-10,10),random(5,45),random(0,360))
    TNT1 AA 0 A_SpawnItemEx("HeresiarchDeathKaboomEffect",random(-20,20),random(-20,20),random(0,100),frandom(-10,10),frandom(-10,10),random(5,30),random(0,360))
    TNT1 A 1 A_SpawnItemEx("HeresiarchDeathBlueLaser",0,0,0,frandom(-2,2),frandom(-2,2),40)
    Goto Spawn+1
  Death:
	TNT1 A 1
	Stop
  }
}

Actor HeresiarchDeathKaboomEffect : Kaboom
{
  +NOINTERACTION
  +NOTIMEFREEZE
  Scale 1.3
  States
  {
  Spawn:
	TNT1 A 0
	FXPB ABCDEFGHIJKLM 3 Bright A_FadeOut(0.05,1)
	Stop
  }
}

Actor HeresiarchDeathSpark
{
  +NOTIMEFREEZE
  +NOINTERACTION
  +CLIENTSIDEONLY
  Scale 0.08
  Alpha 1
  Renderstyle Add
  States
  {
  Spawn:
	TNT1 A 0
	SPKB A 1 A_ChangeVelocity(frandom(0.8,-0.8),frandom(0.8,-0.8),frandom(0.8,-0.8),0)
	TNT1 A 0 A_FadeOut(0.003)
	Loop
  }
}


ACTOR HeresiarchDeathFlame
{
+CLIENTSIDEONLY
+NOINTERACTION
+FORCEXYBILLBOARD
+NOTIMEFREEZE
RenderStyle Add
Scale 1.1
States
{
Spawn:
    TNT1 A 0
    BMKE ABCDEFGHIJKL 4 Bright A_FadeOut(0.05)
    Stop
}
}