actor Overlord : ZBaseActor 19133
{
  health 5000
  radius 40
  height 100
  mass 5000
  speed 12
  obituary "%o was destroyed by the Overlord."
  seesound "overlord/sight"
  deathsound "overlord/death"
  activesound "overlord/roam"
  painsound "overlord/pain"
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.1
  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
  MONSTER
  +FLOORCLIP
  scale 1.0
  +BOSS
  minmissilechance 1
  Species "Overlords"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  Accuracy 18
  states
  {
  Spawn:
    DNET A 0
    "####" "#" 0 Thing_ChangeTID(0,1001)
    DNET AA 10 A_Look
    Loop
  See:
    DNET A 1
    "####" "#" 0
    DNET AABB 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("OverLordStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    DNET CCDD 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("OverLordStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    loop
  Missile:
    "####" "#" 0 A_JumpIfCloser(180,"Stomp")
    DNET EF 8 A_FaceTarget
    DNET G 9 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",100,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 100, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",100,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 100, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",100,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 100, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",100,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 100, 16, 0)
    DNET G 7 A_FaceTarget
    goto see
  Stomp:
    DNET A 5 A_FaceTarget
    "####" "#" 0 A_Recoil(-5)
    DNET D 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("OverLordStomp",10,0,0,0)
    DNET AA 7
    Goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    DNET I 3
    DNET I 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain2:
    DNET S 3
    DNET S 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain.MicrowaveBlast:
    DNET I 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    DNET I 10 A_PlayVoiceSoundPitch("Death")
    DNET J 8 A_NoBlocking
    DNET KLMNOPQ 8
    DNET R 1 {A_BossDeath; A_SpawnItemEx("DeadOverlord", 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
  }
}

actor OverlordSentry : Overlord 19134
{
  obituary "%o was destroyed by the Overlord Sentry."
  health 1500
  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
  Accuracy 16
  states
  {
  Spawn:
    DNET A 0
    "####" "#" 0 Thing_ChangeTID(0,1003)
    DNET AA 10 A_Look
    Loop
  See:
    DNET A 1
    "####" "#" 0
    DNET AABB 4 A_ChaseD3D
    DNET CCDD 4 A_ChaseD3D
    loop
  Missile:
    DNET EF 8 A_FaceTarget
    DNET G 9 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",75,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 75, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",75,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 75, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",75,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 75, 16, 0)
    DNET G 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",48,16,0)
    "####" "#" 0 A_CustomMissile("OverlordAttack",75,-16,0)
    DNET H 5 bright A_CustomMissile("OverlordAttack", 75, 16, 0)
    DNET G 7 A_FaceTarget
    goto see
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    DNET I 3
    DNET I 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain2:
    DNET S 3
    DNET S 3 A_PlayVoiceSoundPitch("Pain")
    Goto See
  Pain.MicrowaveBlast:
    DNET I 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    DNET I 10 A_PlayVoiceSoundPitch("Death")
    DNET J 8 A_NoBlocking
    DNET KLMNOPQ 8
    DNET R 1 {A_BossDeath; A_SpawnItemEx("DeadOverlordSentry", 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)
    DNET I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    DNET 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
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    DNET R 5 {A_XScream; A_AdjustTics(1.0,1.0);}
    DNET Q 5 {A_XScream; A_AdjustTics(1.0,1.0);}
    DNET PONMLK 5 A_AdjustTics(1.0,1.0)
    DNET J 5 A_AdjustTics(1.0,1.0)
    DNET I 5 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

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

ACTOR OverLordStomp : BattlelordStomp
{
  Obituary "%o was stepped by the OverLord."
  HitObituary "%o was stepped by the OverLord."
  States
  {
  Death:
    "####" "#" 0 A_PlaySound("OverLord/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 DeadOverlord : DeadDukeNukemLarge 19135
{
  Radius 55
  Height 45
  scale 1.0
  States
  {
  Spawn:
    DNET R -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadOverlord", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    DNET R 5 A_GenericFreezeDeath
    DNET R 1 A_FreezeDeathChunks
    wait
  }
}

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