ACTOR DeathLord
{
  MONSTER
  Health 8666
  Radius 28
  Height 70
  Mass 1000
  Speed 16
  ReactionTime 17
  BloodColor Orange
  BloodType "NewBloodOrange"
  MinMissileChance 100//160
  MeleeRange 100
  Painchance 40
  Painthreshold 300
  Painchance "Crush", 256
  Painchance "Mine", 256
  Painchance "Explosion", 256
  PainChance "NuclearFire", 256
  Painchance "SatanGuard", 0
  +BOSS
  +NOFEAR
  +CANTSEEK
  +BOSSDEATH
  +NOICEDEATH
  +NEVERRESPAWN
  +FORCERADIUSDMG
  +NORADIUSDMG
  +DONTRIP
  +DONTMORPH
  +DONTBLAST
  +TELESTOMP
  +NOTELEFRAG
  //+NOTIMEFREEZE
  +FLOORCLIP
  +NOTARGET
  +NOINFIGHTING
  +FASTMELEE
  +MISSILEMORE
  +MISSILEEVENMORE
  +QUICKTORETALIATE
  +DONTHARMSPECIES
  Species "HEMBoss"
  Damagefactor "Acid", 3.35
  Damagefactor "Fire", 0.001
  DamageFactor "Ice", 0.001
  Damagefactor "Poison", 0.001
  Damagefactor "PoisonCloud", 0.001
  Damagefactor "Crush", 0.1
  Damagefactor "Electric", 0.001
  Damagefactor "Disintegrate", 0.001
  Damagefactor "NuclearFire", 0.5
  Damagefactor "Explosion", 0.25
  Damagefactor "Mine", 0.25
  DamageFactor "Extreme", 0.0
  DamageFactor "PDTPuff", 0.0
  DamageFactor "Player", 0.001
  DamageFactor "PyroShot", 0.001
  DamageFactor "PlayerPyro", 0.001
  DamageFactor "PlayerBHole", 0.025
  DamageFactor "PlayerDBFG", 0.015
  DamageFactor "PlayerDBFG2", 0.015
  DamageFactor "BFG9500Ball", 0.5
  DamageFactor "BFGSplash", 0.5
  DamageFactor "UpBFG9500Ball", 0.5
  DamageFactor "UpBFGSplash", 0.15
  DamageFactor "PDTBFG", 0.03
  DamageFactor "PDTBFGTracer", 0.03
  DamageFactor "PlayerDevBall", 0.02
  DamageFactor "PlayerDevBall2", 0.02
  DamageFactor "Players", 0.02
  DamageFactor "PlayerDevTracer", 0.02
  DamageFactor "DBFG2", 0.015
  DamageFactor "DBFG10K2", 0.015
  DamageFactor "DBFGSplash2", 0.015
  DamageFactor "PlayerDBFG2", 0.65
  DamageFactor "PlayerDBFG10K2", 0.65
  DamageFactor "PlayerDBFGSplash2", 0.65
  DamageFactor "Legendary", 0.015
  DamageFactor "LegendaryPlayer", 0.015
  DamageFactor "PlayerHellfire", 0.1
  DamageFactor "SuperWeapon", 0.0
  DamageFactor "LegendaryGuruPlayer", 0.015
  DamageFactor "PlayerNemesisPlasma", 0.3
  DamageFactor 0.5
  //No infighting
  DamageFactor "SatanGuard", 0.0
  DamageFactor "AbyssalSatyr", 0.0
  Damagefactor "Moloch", 0.0
  Damagefactor "Exos", 0.0
  Damagefactor "ZombieDev", 0.0
  DamageFactor "Legendary1", 0.0
  DamageFactor "LegendaryGuru", 0.0
  Damagefactor "UltimateLegendary", 0.0
  Damagefactor "Terminator", 0.0
  Damagefactor "Nobles", 0.0
  Damagefactor "UBDTR", 0.0
  Damagefactor "VileFires", 0.0
  Damagefactor "DarkBruiserBFG10K", 0.0
  Damagefactor "DarkBruiserRailgunSlug", 0.0
  DamageFactor "Cyber10K", 0.0
  DamageFactor "DemolisherEx", 0.0
  DamageFactor "DarkDemoEx", 0.0
  DamageFactor "CerChainguns", 0.0
  DamageFactor "Commander", 0.0
  DamageFactor "Baby15K", 0.0
  DamageFactor "CerEnergyBall", 0.0
  DamageFactor "LegMind", 0.0
  DamageFactor "BeheComet", 0.0
  DamageFactor "NobleComet", 0.0
  DamageFactor "CacoComet", 0.0
  DamageFactor "CadaverRocket", 0.0
  DamageFactor "Hell", 0.0
  DamageFactor "HellComet", 0.0
  DamageFactor "HFCyber", 0.0
  DamageFactor "HFCyb3r", 0.0
  DropItem "BossLifeEssence" 256 175
  DropItem "NemesisArmorBonus64" 256
  DropItem "UltraSphere" 128
  DropItem "DemonicChalice" 96
  DropItem "SkullofPower" 96
  DropItem "DemonAmmoBox" 196 200
  DropItem "NewCellPack" 196
  SeeSound "DeathLord/sight"
  ActiveSound "DeathLord/active"
  PainSound "DeathLord/pain"
  DeathSound "DeathLord/death"
  Obituary "%o delivered %hself as a sacrifice to the Death Lord."
  Tag "\c[k7]Death Lord\c-"
  var int user_amount;
  var int user_music;
  var int user_currenthp;
  var int user_missile;
  var int user_rage;
  var int user_speed;
  var int user_loopm;
  States
  {
  Spawn:
	LMDA A 1
	TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	TNT1 A 0 A_SetUserVar("user_rage",0)
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
  SpawnLoop:
	LMDA A 10 A_Look
	TNT1 A 0 A_JumpIf(user_currenthp > ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"),"Idle")
	Loop
  Idle:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
  IdleLoop:
	TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
	TNT1 A 0 A_Look
	LMDA AA 4 A_Wander
	TNT1 A 0 A_Look
	LMDA BB 4 A_Wander
	TNT1 A 0 A_PlaySound("DeathLord/Step")
	TNT1 A 0 A_Look
	LMDA CC 4 A_Wander
	TNT1 A 0 A_Look
	LMDA DD 4 A_Wander
	TNT1 A 0 A_PlaySound("DeathLord/Step")
	Loop
  See:
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_SetUserVar("user_currenthp",ACS_NamedExecuteWithResult("Hem_GetCurrentHealth"))
  SeeLoop:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
	TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,750)
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_StopSound(1)
	LMDA AABB 3 A_Chase
	TNT1 A 0 A_PlaySound("DeathLord/Step")
	LMDA CCDD 3 A_Chase
	TNT1 A 0 A_PlaySound("DeathLord/Step")
	Loop
  Missile:
	TNT1 A 0 A_Jump(256,"ExplosiveMinigun","DemonTechShotgun","Pyrocannon","HellfireGauss","BFG10k","HellstormBFG","RapidShotgun","EmpoweredRapidShotgun")
  ExplosiveMinigun:
	LMDA EEEEEEEEEE 1 A_FaceTarget(45)
  ExplosiveMinigunLoop:
    TNT1 A 0 A_PlaySound("sentient/fire",1)
	TNT1 A 0 A_CustomMissile("TerminatorExplosiveTracer",62,21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	TNT1 A 0 A_CustomMissile("TerminatorExplosiveTracer",62,-21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	LMDA F 3 Bright A_FaceTarget
    TNT1 A 0 A_PlaySound("sentient/fire",1)
	TNT1 A 0 A_CustomMissile("TerminatorExplosiveTracer",62,21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	TNT1 A 0 A_CustomMissile("TerminatorExplosiveTracer",62,-21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	LMDA G 3 Bright A_FaceTarget
	TNT1 A 0 A_MonsterRefire(128,"See")
	Loop
  DemonTechShotgun:
	TNT1 A 0 A_PlaySound("DTShotgun/Pickup",1)
	LMDA EEEEEEEEEE 2 A_FaceTarget(45)
  DemonTechShotgunLoop:
    TNT1 A 0 A_PlaySound("Weapons/ErasusFire",1)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,0,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,2,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,-2,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,3,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,-3,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,4,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,-4,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,5,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,21,-5,CMF_TRACKOWNER)
	LMDA F 4 Bright A_FaceTarget
    TNT1 A 0 A_PlaySound("Weapons/ErasusFire",1)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,0,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,2,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,-2,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,3,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,-3,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,4,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,-4,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,5,CMF_TRACKOWNER)
	TNT1 A 0 A_CustomMissile("RedZDemonTechProjectile2",62,-21,-5,CMF_TRACKOWNER)
	LMDA G 4 Bright A_FaceTarget
	TNT1 A 0 A_MonsterRefire(128,"See")
	Loop
  BFG10k:
    TNT1 A 0 A_PlaySound("weapons/charge15k",1)
	LMDA EEEEEEEEEE 2 A_FaceTarget(45)
  BFG10kLoop:
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire",1)
	TNT1 A 0 A_CustomMissile("Cardinal10K",62,21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	TNT1 A 0 A_CustomMissile("Cardinal10K",62,-21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	LMDA F 5 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/bfg15kfire",1)
	TNT1 A 0 A_CustomMissile("Cardinal10K",62,21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	TNT1 A 0 A_CustomMissile("Cardinal10K",62,-21,frandom(-5,5),CMF_OFFSETPITCH,frandom(-2,2))
	LMDA G 5 Bright A_FaceTarget
	TNT1 A 0 A_MonsterRefire(128,"See")
	Loop
  PyroCannon:
	TNT1 A 0 A_PlaySound("DeathLord/Attack",2)
	LMDA IIIIIIIIII 3 A_FaceTarget(45)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",1)
	LMDA J 10 Bright A_CustomMissile("PyroShot",49)
	LMDA I 20
	Goto See
  HellfireGauss:
	LMDA IIIIIIIIII 2 A_FaceTarget(45)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/HFGaussFire",1)
	LMDA J 3 Bright A_CustomMissile("HFGaussProjectile",49,0,random(-4,4))
	LMDA I 10
	Goto See
  HellstormBFG:
	TNT1 A 0 A_PlaySound("weapons/Hcharge10k",1)
	LMDA IIIIIIIIII 2 A_FaceTarget(45)
	TNT1 A 0 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 6 A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/Hbfg10kfire",1)
	LMDA J 4 Bright A_CustomMissile("HSBFG10kShotDeathlord",49,0,random(-4,4))
	LMDA I 10 A_PlaySound("weapons/Hbfg10kcooldown",1)
	Goto See
  RapidShotgun:
    TNT1 A 0 A_PlaySound("HeavyChaingun/Sart",1)
    LMDA EEEEEEEEEE 2 A_FaceTarget(45)
  RapidShotgunLoop:
	TNT1 AA 0 A_PlaySound("weapons/12gaugefire",1)
	TNT1 AAAAA 0 A_CustomMissile("MonsterTracer2",60,-21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 AAAAA 0 A_CustomMissile("MonsterTracer2",60,21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_CustomBulletAttack(15,12.2,14,Random(5,15))
	LMDA FF 2 A_FaceTarget
	TNT1 AA 0 A_PlaySound("weapons/12gaugefire",1)
	TNT1 AAAAA 0 A_CustomMissile("MonsterTracer2",60,-21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 AAAAA 0 A_CustomMissile("MonsterTracer2",60,21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 A 0 A_CustomBulletAttack(15,12.2,14,Random(5,15))
	LMDA GG 2 A_FaceTarget
	TNT1 A 0 A_MonsterRefire(128,"See")
	Loop
  EmpoweredRapidShotgun:
    TNT1 A 0 A_PlaySound("HeavyChaingun/Sart",1)
	TNT1 A 0 A_PlaySound("DeathLord/Attack",2)
  EmpoweredRapidShotgunWait:
    TNT1 A 0 A_JumpIf(user_missile >= 10, "EmpoweredRapidShotgunLoop")
	TNT1 A 0 A_SpawnItem("EmpoweredSmokeSpawner")
	LMDA E 2 A_FaceTarget(45)
	TNT1 A 0 A_SetUserVar(user_missile,user_missile+1)
	Loop
  EmpoweredRapidShotgunLoop:
	TNT1 AA 0 A_PlaySound("weapons/12gaugefire",1)
	TNT1 AAAAA 0 A_CustomMissile("MinigunnerExplosiveTracer",60,-21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 AAAAA 0 A_CustomMissile("MinigunnerExplosiveTracer",60,21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	LMDA FF 2 A_FaceTarget
	TNT1 AA 0 A_PlaySound("weapons/12gaugefire",1)
	TNT1 AAAAA 0 A_CustomMissile("MinigunnerExplosiveTracer",60,-21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	TNT1 AAAAA 0 A_CustomMissile("MinigunnerExplosiveTracer",60,21,Random(-13,13),CMF_OFFSETPITCH,frandom(-4,4))
	LMDA GG 2 A_FaceTarget
	TNT1 A 0 A_MonsterRefire(128,"See")
	Loop
  Pain:
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_SetUserVar(user_missile,0)
	LMDA H 10 A_Pain
	Goto See
  Death:
	LMDA K 10
	TNT1 A 0 A_ScreamAndUnblock
	LMDA LMN 10
	TNT1 AAAAAAAA 0 A_SpawnItemEx("HFLavaMist",0,0,random(20,80),random(-8,8),random(-8,8),random(0,8))
	LMDA O 10
	TNT1 AAAAAAAA 0 A_SpawnItemEx("HFLavaMist",0,0,random(20,65),random(-8,8),random(-8,8),random(0,8))
	LMDA P 10
	TNT1 AAAAAAAA 0 A_SpawnItemEx("HFLavaMist",0,0,random(20,50),random(-8,8),random(-8,8),random(0,8))
	LMDA Q 10
	TNT1 AAA 0 A_SpawnItemEx("OrangeGibbedGenerator",random(-10,10),random(-10,10),random(0,10))
	TNT1 A 0 A_SpawnItemEx("NemesisArmorSphere",0,0,8,random(1,8),0,2,random(0,360),0,160)
	TNT1 A 0 A_SpawnItemEx("NemesisArmor",0,0,8,random(1,8),0,2,random(0,360),0,160)
	TNT1 A 0 A_SpawnItemEx("NemesisSphere",0,0,8,random(1,8),0,2,random(0,360),0,160)
	TNT1 A 0 A_SpawnItemEx("DoomsphereDust",0,0,8,random(1,8),0,2,random(0,360),0,32)
	TNT1 A 0 A_SpawnItemEx("TerminatorItem",0,0,8,random(1,8),0,2,random(0,360),0,252)
	TNT1 A 0 A_SpawnItemEx("BigGas",0,0,8,random(0,8),0,2,random(0,360),0,32)
	TNT1 A 0 A_SpawnItemEx("PyroCannon",0,0,8,random(1,8),0,2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("ExplosiveRifle",0,0,8,random(1,8),0,2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("BFG10k ",0,0,8,random(1,8),0,2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("Explosive Minigun",0,0,8,random(0,8),0,2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("Demon Tech Shotgun",0,0,8,random(1,8),0,2,random(0,360),0,0)
	TNT1 A 0 A_SpawnItemEx("RapidShotgun",0,0,8,random(1,8),0,2,random(0,360),0,0)
	LMDA RSTU 10
  EndDrop:
	TNT1 A 0 A_BossDeath
	TNT1 A 0 A_KillMaster
	LMDA V -1
	Stop
	}
}

ACTOR EmpoweredSmoke : AHellionSmoke
{
-NOTIMEFREEZE
States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
    QMKE ABCDEFGHIJKL 2 Bright A_FadeOut
    Stop
  Toaster:
    TNT1 A 0
    Stop
  }
}

ACTOR EmpoweredSmokeSpawner : RedParticleSpawner
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(CallAcs("LCAEffectCheck"),"Toaster")
    TNT1 AAA 0 A_SpawnItemEx("EmpoweredSmoke",random(36,-36),random(36,-36),random(12,80),0,0,random(1,3),0,128,0)
    TNT1 A 1
    Stop
  Toaster:
    TNT1 A 0
	Stop		
  }
}