Actor BattleLordOfHell : BaronOfHell
{
//Creator: Complex Doom CF 3.0 team
//Origin: Complex Doom CF 3.0 Aprilfools
//Sprite: HLGD
//Title: "Battlelord of Hell"
Scale 1.2
Health 2000
PainChance 8
Speed 12
Species "Nobles"
DamageFactor "NobleComet", 0.0
DamageFactor "Hell", 0.0 
DamageFactor "Legendary", 0.5
DamageFactor "BFGSplash", 0.25
DamageFactor "PDTBFG", 0.2
DamageFactor "PDTBFGTracer", 0.2
DamageFactor 0.55
MaxStepHeight 32
MaxDropOffHeight 32
RadiusDamageFactor 0.66
MeleeDamage 36
MeleeRange 125
DropItem "BossLifeEssence" 200
DropItem "BossArmorBonusMax" 200
DropItem "ExtraArmor" 80
SeeSound "battlelord/see"
PainSound "battlelord/pain"
DeathSound "battlelord/death"
ActiveSound "baron/active"
Obituary "%o was fried by a Battlelord of Hell."
HitObituary "%o was beaten to death by a Battlelord of Hell."
Tag "\cmBattlelord \cgof Hell\c-"
+DONTHARMSPECIES
+QUICKTORETALIATE
+MISSILEMORE
+MISSILEEVENMORE
var int user_script;
var int user_charge;
States 
{ 
 Spawn: 
	HLGD A 10 A_Look 
	Loop 
 See: 
    HLGD A 0 A_PlaySound("hellboss/step")
	HLGD AABB 3 A_Chase
	HLGD C 0 A_PlaySound("hellboss/step")
	HLGD CCDD 3 A_Chase 
	Loop
 Missile:
    HLGD F 0 A_JumpIfCloser(1000,2)
    HLGD F 0 A_Jump(256,2)
	HLGD F 0 A_Jump(64,"Charge")
    HLGD F 0 A_Jump(127,"Seeker","SpiritBomb","Spread")
 Normal:
	HLGD EEEE 8 A_FaceTarget
	HLGD F 0 A_CustomMissile("BattleLordBall",40,-12,0)
	HLGD F 0 A_CustomMissile("BattleLordBall2",32,-12,0)
	HLGD F 0 A_CustomMissile("BattleLordBall3",40,12,0)
	HLGD F 8 Bright A_CustomMissile("BattleLordBall4",32,12,0)
	HLGD EEE 3 A_FaceTarget
	HLGD E 0 A_Jump(40,"See","Seeker","Spread")
	HLGD E 0 A_MonsterRefire(190,"See")
	Goto Normal+4
 Seeker:
 	HLGD EE 8 A_FaceTarget
	HLGD F 8 Bright A_CustomMissile("BattleLordSeekBall",36,-16,0) 
	HLGD E 8 A_FaceTarget
	HLGD F 8 Bright A_CustomMissile("BattleLordSeekBall",36,-16,0) 
    HLGD E 8 A_FaceTarget
	HLGD F 8 Bright A_CustomMissile("BattleLordSeekBall",36,-16,0) 
	HLGD E 8 A_FaceTarget
	HLGD F 8 Bright A_CustomMissile("BattleLordSeekBall",36,-16,0) 
	HLGD F 0 A_Jump(127,"Spread")
    Goto See
 Spread:
 	HLGD EE 8 A_FaceTarget
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,16) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-16) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,12) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-12) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,8) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-8) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,4) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-4) 
	HLGD F 8 Bright A_CustomMissile("BattleLordSoulBall",36,-16,0) 
	HLGD EE 8 A_FaceTarget
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,16) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-16) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,12) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-12) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,8) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-8) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,4) 
	HLGD F 0 A_CustomMissile("BattleLordSoulBall",36,-16,-4) 
	HLGD F 8 Bright A_CustomMissile("BattleLordSoulBall",36,-16,0) 
	HLGD EE 8 A_FaceTarget
	HLGD F 0 A_Jump(127,"SpiritBomb")
    Goto See
 SpiritBomb:
    HLGD E 0 A_PlaySound("battlelord/see")
  	HLGD EEEE 8 A_FaceTarget
	HLGD F 14 Bright A_CustomMissile("NobleBattleLordSpiritBomb",36,-16,0) 
	HLGD EEEE 8 A_FaceTarget 
    Goto See
 Charge:
    HLGD E 2 A_JumpIfCloser(1000,1)
	Goto Missile
  	HLGD EEE 8 A_FaceTarget
	TNT1 A 0 A_ChangeFlag("DROPOFF",TRUE)
	HLGD E 0 A_SetUserVar("user_charge",0)
	HLGD E 0 A_PlayWeaponSound("InfernalEmperor/Hammer")
	HLGD E 0 A_Recoil(-100)
 ChargeGoing:  
    HLGD E 0 A_JumpIf(user_charge >= 12,"ChargeEnd")	 
    HLGD E 0 A_SetUserVar("user_charge",user_charge+1)
	HLGD E 0 A_CustomMissile("BattleLordChargeDamage",24,0,0,CMF_AIMDIRECTION)
	HLGD E 1 A_SpawnItemEx("BattleLordOfHellGhost",0,0,0,0,0,0,0,128)
	Loop
 ChargeEnd:
	HLGD A 8
	HLGD F 0 A_Jump(88,"Missile")
    Goto See
 Melee:
	HLGD AA 4 A_FaceTarget
	HLGD E 0 A_PlayWeaponSound("InfernalEmperor/Hammer")
	HLGD E 4 A_MeleeAttack
	HLGD EE 7 A_FaceTarget
	Goto See
 Pain: 
    TNT1 A 0
	TNT1 A 0 A_Jump(127,"PainMissile")
	HLGD G 3 
	HLGD G 3 A_Pain 
	Goto See 
 PainMissile:
	HLGD G 3 
	HLGD G 3 A_Pain 
	Goto Missile	
 Death: 
    HLGD H 2 A_ScreamAndUnblock
 	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	//TNT1 AAA 0 A_CustomMissile("BigBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	HLGD IIIJJJ 2
 	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	//TNT1 AAA 0 A_CustomMissile("BigBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	HLGD KKKLLL 2
 	TNT1 AA 0 A_SpawnItemEx("GibbedGenerator",Random(10,-10),Random(10,-10),Random(20,60),0,0,0,0,128,0)
	//TNT1 AAA 0 A_CustomMissile("BigBloodCloud", random(10,80), 0, random(0,360), 2, random(0,360))
	HLGD MMMMM 2
    HLGD N 4 A_SpawnItem("BodyCrash",0,0,0,0)
	TNT1 A 0 A_BossDeath
    HLGD N -1
    Stop 
}
}

Actor BattleLordChargeDamage
{
Projectile
Speed 0
Damage 0
+NOCLIP
+FORCERADIUSDMG
DamageType "NobleComet"
States
{
  Spawn:
	TNT1 A 0 
	TNT1 A 0 A_Explode(16,384)
    Stop
  }
} 

ACTOR BattleLordOfHellGhost
{
Scale 2.15
RENDERSTYLE Translucent
Alpha 0.75
+NOGRAVITY
+CLIENTSIDEONLY
+DONTSPLASH
+NOINTERACTION
+NOCLIP
States
{
Spawn:
   HLGD E 2 A_FadeOut(0.18)
   Loop
}
}

Actor BattleLordBall
{
Radius 13
Height 8
Speed 38
Damage 8
PROJECTILE
RENDERSTYLE ADD
ALPHA 0.67
SeeSound "battlelord/shot"
DeathSound "battlelord/shothit"
Decal PlasmaScorchLower
DamageType "NobleComet"
Scale 1.5
States
{ 
  Spawn:
    TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB A 1 Bright A_Weave(3,3,2.0,1.)
	HGFB A 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB B 1 Bright A_Weave(3,3,1.5,1.5)	
	HGFB B 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB C 1 Bright A_Weave(3,3,1.5,1.5)
	HGFB C 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB D 1 Bright A_Weave(3,3,1.5,1.5)
	HGFB D 1 Bright A_Weave(3,3,1.5,1.5)
	Loop
  Fly:
    TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB A 1 Bright A_Weave(3,3,1.5,1.5)
	HGFB A 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB B 1 Bright A_Weave(3,3,1.5,1.5)	
	HGFB B 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB C 1 Bright A_Weave(3,3,1.5,1.5)
	HGFB C 1 Bright A_Weave(3,3,1.5,1.5)
	TNT1 A 0 A_SpawnItemEx("BattleLordBallTrail",0,0,0,0,0,0,0,128)
	HGFB D 1 Bright A_Weave(3,3,1.5,1.5)
	HGFB D 1 Bright A_Weave(3,3,1.5,1.5)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 1, 0, 0, 0, 0, 128)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))	
	HGFB EFGH 4 Bright
	Stop
    }
}

Actor BattleLordBall2 : BattleLordBall
{
States
{
  Spawn:
	TNT1 AAAAAA 0 A_Weave(3,3,1.5,1.5)
	Goto Fly
}
}

Actor BattleLordBall3 : BattleLordBall
{
States
{
  Spawn:
	TNT1 AAAAAAAAAAAA 0 A_Weave(3,3,1.5,1.5)
	Goto Fly
}
}

Actor BattleLordBall4 : BattleLordBall
{
States
{
  Spawn:
	TNT1 AAAAAAAAAAAAAAAAAA 0 A_Weave(3,3,1.5,1.5)
	Goto Fly
}
}

Actor BattleLordBallTrail : BFG9500Trail
{
Alpha 0.9
Scale 1.1
States
{
  Spawn:
	TNT1 A 1
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
    HGFB ABCD 1 Bright A_FadeOut(0.05)
	Goto Spawn+1
    }
}

Actor BattleLordSeekBall
{
Projectile
Radius 8
Height 6
Speed 58
Damage 10
RENDERSTYLE ADD
Scale 1.25
Alpha 0.67
Seesound "legsoul/attack2"
DeathSound "weapons/firex3"
+SEEKERMISSILE
DamageType "NobleComet"
States
{
  Spawn:
	LSA2 A 0 A_SeekerMissile(15,0)
	LSA2 ABCD 2 Bright A_SpawnItemEx("BattleLordSeekBallTrail",0,0,2,0,0,0,0,128,0)
	Loop
  Death: 
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 1, 0, 0, 0, 0, 128)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))
	TNT1 A 0 A_Explode(16,32,0)
	LSA2 EFG 4 Bright
	Stop
 }
}

ACTOR BattleLordSeekBallTrail : BFG9500Trail
{
Scale 1.15
Alpha 0.67
+NOTIMEFREEZE
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    LSA2 ABCDABCD 2 A_FadeOut(0.1)
	Stop
    }
}

ACTOR BattleLordSoulBall
{
Radius 8
Height 6
Scale 1.0
Speed 35
FastSpeed 16
Damage 10
PROJECTILE
Renderstyle Translucent
Alpha 0.55
SeeSound "devil/scream"
DeathSound "imp/shotx"
Decal DoomImpScorch
States
{
  Spawn:
	TNT1 A 0 A_CStaffMissileSlither
	SHBA A 1 Bright A_SpawnItemEx("BattleLordSoulBallTrail", 0, 0, 1, 0, 0, 0, 180, 128)
	TNT1 A 0 A_CStaffMissileSlither
	SHBA B 1 Bright A_SpawnItemEx("BattleLordSoulBallTrail", 0, 0, 1, 0, 0, 0, 180, 128)
	Loop
  Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 1, 0, 0, 0, 0, 128)  
	TNT1 AAA 0 A_CustomMissile("SmokeFX4", 0, 0, random(0,360), 2, random(0,360))		
	SHBA CDEFGHIJKL 2 Bright
	Stop
    }
}

ACTOR BattleLordSoulBallTrail : BFG9500Trail
{
Scale 1.8
States
{
Spawn:
    TNT1 A 0
    TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "Toaster")
	TNT1 A 1
    SBTR ABCDEFG 4 Bright A_FadeOut(0.5)
    Stop
    }
}

Actor NobleBattleLordSpiritBomb : BattleLordSpiritBomb { DamageType "NobleComet" }