
actor OctobrainLame : ZBaseActor 19357
{
  obituary "%o's brain turned into mush by a Lame Octabrain."
  health 250
  radius 31
  height 70
  mass 1000
  speed 14
  seesound "octobrain/sight"
  painsound "octobrain/pain"
  deathsound "octobrain/death"
  activesound "octobrain/active"
  MONSTER
  +FLOORCLIP
  xscale 0.65
  yscale 0.45
  +FLOATBOB
  +FLOAT
  +NOGRAVITY
  +SPAWNFLOAT
  FloatBobStrength 0.5
  meleerange 64
  maxtargetrange 128
  gravity 0.40
  damagefactor "Explosion", 1.0
  damagefactor "RocketExplosion", 1.0
  damagefactor "ShellExplosion", 1.0
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  painchance 85
  Painchance "Shrinker", 256
  painchance "FireBurning", 200
  painchance "MightyBoot", 128
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  Species "OctabrainLames"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  +FORCEXYBILLBOARD
  states
  {
  Spawn:
    LOCT A 0
    "####" "#" 0 A_CreateShield("MetalShield", 400, radius+1, height*(5.0/8.0), 1, 0, 0, 0, 0, 0, -1000, -1, 0, 0)
    "####" "#" 0 ThrustThingZ(0, 50, 0, 1)
    "####" "#" 1
    "####" "#" 0 A_Stop
  Idle:
    "####" "#" 0 Thing_ChangeTID(0,1000)
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 10 A_Look
    loop
  SeeReturn:
    "####" "#" 0 A_SetInventory("MasterShieldState", 0)
    "####" "#" 0 A_CreateShield("MetalShield", 250, radius+1, height*(5.0/8.0), 1, 0, 0, 0, 0, 0, -1000, -1, 0, 0)
  See:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_Jump(64, "See2")
    "####" "#" 0 A_JumpIfCloser(500, 2)
    "####" "#" 0 A_Jump(256, 2)
    "####" "#" 0 A_Jump(64, "Spin")
    LOCT A 1
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 4 {A_Chase; A_CheckDeadMonsters("PossessApproach",64.0);}
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT C 4 {A_Chase; A_CheckDeadMonsters("PossessApproach",64.0);}
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase
    loop
  See2:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_Stop
    LOCT A 2 {A_Chase; A_CheckDeadMonsters("PossessApproach",200.0);}
    LOCT A 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 2 A_Chase
    LOCT B 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT C 2 {A_Chase; A_CheckDeadMonsters("PossessApproach",200.0);}
    LOCT C 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 2 A_Chase
    LOCT B 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 2 {A_Chase; A_CheckDeadMonsters("PossessApproach",200.0);}
    LOCT A 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 2 A_Chase
    LOCT B 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT C 2 {A_Chase; A_CheckDeadMonsters("PossessApproach",200.0);}
    LOCT C 2 A_Chase
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 2 A_Chase
    LOCT B 2 A_Chase
    goto See
  SeeStop:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 1
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT C 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 1
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT A 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT C 4 A_Chase("MeleeStop")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT B 4 A_Chase("MeleeStop")
    "####" "#" 0 A_Stop
    goto See
  Spin:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_CheckSight("See")
    "####" "#" 0 A_JumpIfCloser(300, "See")
    "####" "#" 0 A_PlayVoiceSoundPitch("","loctobrain/attack1",4)
    LOCT D 4 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT D 4 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT D 4 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT D 4 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT D 4 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_PlayVoiceSoundPitch("","loctobrain/attack2",4)
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT ST 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT U 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    LOCT V 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT WX 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT YZ 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT S 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    LOCT T 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT UV 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT WX 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    LOCT Y 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_ThrustToTarget
    "####" "#" 0 A_CustomMeleeAttack(random[RIDMONSTERAT](3,4),"alienz/melee","alienz/melee")
    LOCT Z 1 A_JumpIfCloser(70, "SpinFinish")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_SpawnItemEx("ShrunkBlur",0,0,0,0,0,0,angle,SXF_TRANSFERSPRITEFRAME|SXF_TRANSFERSCALE|SXF_TRANSFERTRANSLATION|SXF_NOCHECKPOSITION|SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_ScaleVelocity(0.33)
    LOCT ST 2
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT U 2
    LOCT V 2 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30),"alienz/melee","alienz/melee")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT WX 2
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT Y 2
    LOCT Z 2 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30),"alienz/melee","alienz/melee")
    "####" "#" 0 A_Stop
  SpinFinish:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_Stop
    LOCT ST 2
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT U 2
    LOCT V 2 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30),"alienz/melee","alienz/melee")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT WX 2
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT Y 2
    LOCT Z 2 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30),"alienz/melee","alienz/melee")
    goto See
  MeleeStop:
    "####" "#" 0 A_Stop
  Melee:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT D 7 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT E 7 A_FaceTarget
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT F 7 A_CustomMeleeAttack(random[RIDMONSTERAT](20,30),"octobrain/melee","octobrain/melee")
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_JumpIfCloser(70,"Melee")
    goto See
  PossessApproach:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT EEEE 1 A_PossessApproach("Possess")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT FFFF 1 A_PossessApproach("Possess")
    loop
  Possess:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    "####" "#" 0 A_Stop
    "####" "#" 0 A_Possess
    LOCT E 4 A_PossessCheck
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT F 4 A_PossessCheck
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT E 4 A_PossessCheck
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT F 4 A_PossessCheck
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT E 4 A_PossessCheck
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT F 4 A_PossessCheck
  Possessloop:
    LOCT EEEEEEEE 1 A_PossessCheck
    "####" "#" 0 A_SpawnItemEx("OctobrainLameSpark",15,7,25,0,0,0,0,SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("OctobrainLameSpark",15,-7,25,0,0,0,0,SXF_SETMASTER)
    LOCT FFFFFFFF 1 A_PossessCheck
    loop
  Pain.BootStun:
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 4 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 5
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 4
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 5
    goto See
  Pain2BootStun:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 4 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 5
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 4
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 5
    goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 3
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 3
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT R 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_JumpIfInventory("MasterShieldState", 2, "DeathLegs")
    LOCT J 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  DeathLegs:
    "####" "#" 0 A_Die
    TNT1 A 1
    stop
  Death:
    LOCT J 1 A_ChangeFlag("FLOATBOB",0)
    "####" "#" 0 A_StopSound(2)
    LOCT J 4 A_PlayVoiceSoundPitch("Death","",4)
    LOCT K 5 A_NoBlocking
    LOCT LMN 5
    LOCT O -1
    stop
  Crash:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking(false)
    LOCT OP 5 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    LOCT Q 1 A_SpawnItemEx("DeadOctoBrainLame", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Pain.Shrinker:
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 A_InvulnerablePlus(1)
    LOCT J 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    LOCT J 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("A","B","C","B",0.15,1000,2,"SeeReturn")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  XDeath:
  Death.BossStomp:
  Crash.BossStomp:
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_RemoveChildren(true, RMVF_EVERYTHING, "MetalShield")
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.PlasmaGib:
  Crash.PlasmaGib:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_RemoveChildren(true, RMVF_EVERYTHING, "MetalShield")
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NFP", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NFP", TRUE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Crash.Explosion:
  Crash.RocketExplosion:
  Death.Explosion:
  Death.RocketExplosion:
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_RemoveChildren(true, RMVF_EVERYTHING, "MetalShield")
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
  Crash.ExplosiveShotgun:
  Crash.ShellExplosion:
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_RemoveChildren(true, RMVF_EVERYTHING, "MetalShield")
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(FAS_AltShotgunGibFireProb,3)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,2)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" AAAAAAAAAAAAAAAAAAAA 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Gib1:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB1 E 1 A_SpawnItemEx("Gib1DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib2:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB2 E 1 A_SpawnItemEx("Gib2DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib3:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB3 E 1 A_SpawnItemEx("Gib3DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib4:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB4 E 1 A_SpawnItemEx("Gib4DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Gib5:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB5 E 1 A_SpawnItemEx("Gib5DeathSkin", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION)
    Stop
  Wound.Expander:
   "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    LOCT J 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.15 && ScaleY < 1.15, "Expand")
    LOCT JJJJJ 1
    "####" "#" 0 A_SetScale(0.65, 0.45)
    "####" "#" 0 A_PlayVoiceSoundPitch("Death","",4)
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", TRUE, 1.0, 1.0)
    goto Death.Explosion
  Wound.Ice:
    "####" "#" 0 A_DamageChildren (5000, "None", 0, "MetalShield", "None", AAPTR_NULL)
    "####" "#" 0 A_Freeze("SeeReturn")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    LOCT Q 5 {A_XScream; A_AdjustTics(1.0,1.0);}
    LOCT P 5 {A_XScream; A_AdjustTics(1.0,1.0);}
    LOCT ON 5 A_AdjustTics(1.0,1.0)
    LOCT M 5 {ThrustThingZ(0,5,0,1); A_AdjustTics(1.0,1.0);}
    LOCT L 5 A_AdjustTics(1.0,1.0)
    LOCT K 5 A_AdjustTics(1.0,1.0)
    LOCT J 5 A_AdjustTics(0,1.0)
    "####" "#" 0 A_Stop
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto SeeReturn
  }
}

Actor MonsterPossessed : Inventory
{
  inventory.maxamount 1
}

actor OctobrainLameBeacon
{
  Speed 0
  Health 0x7FFFFFFF
  radius 31
  height 77
  mass 1000
  MONSTER
  +DROPOFF 
  +DONTMORPH
  +FRIENDLY
  +NOBLOCKMONST
  +NOTELEPORT
  +NORADIUSDMG
  +NOTAUTOAIMED
  +NOTONAUTOMAP
  +FLOORCLIP
  +NOTARGET
  +NEVERTARGET
  xscale 0.65
  yscale 0.45
  +FLOATBOB
  +FLOAT
  +NOGRAVITY
  FloatBobStrength 0.5
  gravity 0.40
  +DONTHARMCLASS
  -HARMFRIENDS
  +INVULNERABLE
  +NODAMAGE
  +NOPAIN
  +THRUACTORS
  +GHOST
  +NONSHOOTABLE
  +NOBLOOD
  +DONTSPLASH
  +INCOMBAT
  -SHOOTABLE
  -COUNTKILL
  +DONTDRAIN
  +INVISIBLE
  ThruBits 1
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 35
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1
    TNT1 A 0 A_Remove(AAPTR_DEFAULT)
    Stop
  }
}

actor OctobrainLameSpark
{
  +THRUACTORS
  +CLIENTSIDEONLY
  +NOBLOCKMAP
  +NOGRAVITY
  Renderstyle Add
  Scale 0.35
  +MISSILE
  +THRUGHOST
  +GHOST
  Alpha 1.0
  +RANDOMIZE
  ThruBits 1
  States
  {
  Spawn:
    3PLB AABB 1 Bright A_SpawnItem("RedFlare23Small",0,0)
    3PLB AABB 1 Bright
    stop
  }
}

actor DeadOctoBrainLame : DeadDukeNukemR
{
  Radius 31
  Height 35
  xscale 0.65
  yscale 0.45
  States
  {
  Spawn:
    LOCT Q -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadOctoBrainLame", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    LOCT Q 5 A_GenericFreezeDeath
    LOCT Q 1 A_FreezeDeathChunks
    wait
  }
}