actor BattleLord : ZBaseActor 19108
{
  obituary "%o was destroyed by the Battle Lord."
  health 4800
  radius 40
  height 106
  mass 5000
  speed 12
  seesound "lord/sight"
  attacksound "chaingun/shoot"
  painsound "lord/pain"
  deathsound "lord/death"
  activesound "lord/active"
  MONSTER
  +FLOORCLIP
  scale 1.0
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.3
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.8
  damagefactor "RocketExplosion", 0.8
  damagefactor "ShellExplosion", 0.9
  damagefactor "Fire", 0.5
  damagefactor "BulletFlame", 0.84
  painchance 32
  painchance "MicrowaveBlast", 256
  +BOSS
  minmissilechance 1
  Species "BattleLords"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  states
  {
  Spawn:
    BOS2 A 0
    "####" "#" 0 Thing_ChangeTID(0,1001)
    BOS2 AA 10 A_Look
    loop
  See:
    BOS2 A 1
    "####" "#" 0
    BOS2 AABB 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("BattleLordStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    BOS2 CCDD 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("BattleLordStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    loop
  Missile:
    "####" "#" 0 A_Jump(128,"Grenade")
    "####" "#" 0 A_JumpIfCloser(180,"Stomp")
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 40, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("40mmSpawnLeft", 36, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3 A_CPosRefire
    "####" "#" 0 A_Jump(64,"See")
    goto Missile+1
  Grenade:  
    "####" "#" 0 A_JumpIfCloser(400,"Missile")
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",32,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    goto See
  Stomp:
    BOS2 A 5 A_FaceTarget
    "####" "#" 0 A_Recoil(-5)
    BOS2 B 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("BattlelordStomp",10,0,0,0)
    BOS2 AA 7
    Goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    BOS2 I 3
    BOS2 I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    BOS2 O 3
    BOS2 O 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    BOS2 I 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    BOS2 I 20 A_PlayVoiceSoundPitch("Death")
    BOS2 J 10
    BOS2 K 10 A_NoBlocking
    BOS2 LM 10
    BOS2 N 1 {A_BossDeath; A_SpawnItemEx("DeadBattleLord", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER);}
    TNT1 A -1
    stop
  Wound.Ice:
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    TNT1 A 1
    stop
  Death.BossDeath:
    "####" "#" 0 A_BossDeath
    TNT1 A 1
    Stop
  Death.RocketHeadshot:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3OS2 I 40 A_NoBlocking
    3OS2 J 10
    3OS2 K 10
    3OS2 LM 10
    3OS2 N 1 {A_BossDeath; A_SpawnItemEx("DeadBattleLordBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL);}
    stop
  }
}

actor BattleLordSentry : BattleLord 19109
{
  obituary "%o was destroyed by the Battle Lord Sentry."
  health 1300
  radius 30
  height 74
  mass 1000
  scale 0.7
  damagefactor "Shrinker", 1.0
  damagefactor "Explosion", 0.65
  damagefactor "RocketExplosion", 0.65
  damagefactor "ShellExplosion", 0.80
  Painchance "Shrinker", 256
  painchance 64
  painchance "BootStun", 256
  states
  {
  Spawn:
    BOS2 A 0
    "####" "#" 0 Thing_ChangeTID(0,1003)
    BOS2 AA 10 A_Look
    loop
  See:
    BOS2 A 1
    "####" "#" 0
    BOS2 AABB 4 A_ChaseD3D
    BOS2 CCDD 4 A_ChaseD3D
    loop
  Missile:
    "####" "#" 0 A_Jump(128,"Grenade")
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 30, 25, random[RIDMONSTERAT](-9, 9), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    BOS2 F 1 bright A_FaceTarget
    BOS2 E 3 A_CPosRefire
    "####" "#" 0 A_Jump(64,"See")
    goto Missile+1
  Grenade:  
    "####" "#" 0 A_JumpIfCloser(400,"Missile")
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",22,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",22,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    BOS2 G 15 A_FaceTarget
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_PlaySound("rpg/shoot", CHAN_WEAPON, 3, 0, ATTN_NORM)
    "####" "#" 0 A_CustomMissile("BattleLordAttack",22,16,0,2,32)
    BOS2 H 15 BRIGHT A_CustomMissile("MuzzleFlashSmall",32,16,0)
    goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    BOS2 I 3
    BOS2 I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    BOS2 O 3
    BOS2 O 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    BOS2 I 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    BOS2 I 20 A_PlayVoiceSoundPitch("Death")
    BOS2 J 10
    BOS2 K 10 A_NoBlocking
    BOS2 LM 10
    BOS2 N 1 {A_BossDeath; A_SpawnItemEx("DeadBattleLordSentry", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER);}
    TNT1 A -1
    stop
  Pain.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    BOS2 I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    BOS2 I 2 {A_SetScale(ScaleX - 0.04, ScaleY - 0.04); A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE);}
    "####" "#" 0 A_JumpIf(ScaleX > 0.2 && ScaleY > 0.2, "Shrink")
    "####" "#" 0 A_Shrink
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    stop
  Wound.Ice:
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    TNT1 A 1
    stop
  Deathceiling:
   "####" "#" 0 A_Die
    TNT1 A 1
    stop
  Death.BossDeath:
    "####" "#" 0 A_BossDeath
    TNT1 A 1
    Stop
  Death.Headshot:
  Death.RocketHeadshot:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3OS2 I 40 A_NoBlocking
    3OS2 J 10
    3OS2 K 10
    3OS2 LM 10
    3OS2 N 1 {A_BossDeath; A_SpawnItemEx("DeadBattleLordSentryBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL);}
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    BOS2 N 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    BOS2 M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    BOS2 L 7 A_AdjustTics(1.0,1.0)
    BOS2 K 7 A_AdjustTics(1.0,1.0)
    BOS2 J 7 A_AdjustTics(1.0,1.0)
    BOS2 I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor BattleLordAttack : ZMissile
{
  +FOILINVUL
  Radius 11
  Height 8
  Speed 20
  Damage (50)
  Projectile
  DeathSound "rpg/blowup"
  scale 0.75
  decal DukeScorch
  DamageType "Explosion"
  SeeSound "pipeLord/bounce"
  gravity 0.6
  -NOGRAVITY
  +HEXENBOUNCE
  reactiontime 30
  -THRUSPECIES
  Species "none"
  +CANBOUNCEWATER
  States
  {
  Spawn:
    BS2X A 1 bright A_CustomMissile("OldschoolRocketSmokeTrail3", 0, 0, 0, 2, 0)
    BS2X B 1 bright
    BS2X C 1 bright A_CustomMissile("OldschoolRocketSmokeTrail3", 0, 0, 0, 2, 0)
    BS2X D 1 bright
    "####" "#" 0 A_Countdown
    loop
  Death:
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 180))
    TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    "####" "#" 0 A_CustomMissile ("RPGExplosion", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    "####" "#" 0 A_SpawnItem("BigRicoChet")
    "####" "#" 0 A_SPawnItem("ExplosionAirDisplacementEffect")
    "####" "#" 0 A_PlaySound("rpg/blowup")
    "####" "#" 0 A_PlayWeaponSound("rpg/blowup")
    "####" "#" 0 Radius_Quake(2, 8, 0, 12, 0)
    TNT1 A 2
    "####" "#" 0 A_Explode(50,180)
    TNT1 A 10
    stop
  }
}

ACTOR BattleLordStep
{
  Height 1
  Radius 1
  Speed 10
  Damage 0
  DeathSound "BattleLord/Step"
  Projectile
  +BLOODLESSIMPACT 
  +CLIENTSIDEONLY
  States
  {
  Spawn:
    TNT1 A 1 
    Stop
  Death:
    TNT1 A 1 
    Stop
  }
}

ACTOR BattlelordStomp
{
  Radius 12
  Height 8
  Scale 0.5
  +MISSILE
  Speed 15
  Damage 50
  renderstyle translucent
  alpha 0.8
  DamageType BossStomp
  Gravity 1.0
  -NOGRAVITY
  +EXTREMEDEATH
  +NOTELEPORT
  +THRUACTORS
  Obituary "%o was stepped by a Battlelord."
  HitObituary "%o was stepped by a Battlelord."
  States
  {
  Spawn:
    TNT1 A 1
    "####" "#" 0 ThrustThingZ(0, -35, 0, 0)
    TNT1 A 10
    Stop
  Death:
    "####" "#" 0 A_PlaySound("BattleLord/Step", 1)
    EXPL AAAA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](10, 12))
    "####" "#" 0 Radius_Quake(4, 15, 0, 25, 0)
    "####" "#" 0 Radius_Quake(2, 15, 0, 45, 0)
    "####" "#" 0 A_Explode
    SM8K BDFHJLNPRTVXZ 1
    Stop
  }
}

actor DeadBattleLord : DeadDukeNukemLarge 19110
{
  Radius 55
  Height 45
  scale 1.0
  States
  {
  Spawn:
    BOS2 N -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadBattleLord", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    BOS2 N 5 A_GenericFreezeDeath
    BOS2 N 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadBattleLordBehead : DeadBattleLord
{
  States
  {
  Spawn:
    3OS2 N -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadBattleLordBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    3OS2 N 5 A_GenericFreezeDeath
    3OS2 N 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadBattleLordSentry : DeadDukeNukemLargeP 19111
{
  Radius 30
  Height 40
  scale 0.7
  States
  {
  Spawn:
    BOS2 N -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadBattleLordSentry", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    BOS2 N 5 A_GenericFreezeDeath
    BOS2 N 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadBattleLordSentryBehead : DeadBattleLordBehead
{
  Radius 30
  Height 40
  scale 0.7
  States
  {
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadBattleLordSentryBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  }
}