
actor TrooperLame : ZBaseActor 19359
{
  obituary "%o was killed by a Lame Trooper."
  health 110
  radius 20
  height 60
  mass 1000
  speed 8
  seesound "trooperlame/see"
  deathsound "trooperlame/die"
  dropitem "PistolAmmo" 192 12
  painchance 85
  Painchance "Shrinker", 256
  painchance "FireBurning", 200
  painchance "MightyBoot", 128
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  MONSTER
  +FLOORCLIP
  +DROPOFF
  +NODROPOFF
  +MISSILEMORE
  +MISSILEEVENMORE
  WoundHealth 10
  xscale 0.95
  yscale 0.75
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  Species "TrooperLames"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  states
  {
  Spawn:
    LTRO F 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    LTRO FF 10 A_Look
    loop
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Stop
    "####" "#" 0 A_Jump(32,"Left","Right")
    LTRO A 1
    LTRO AABBCCDDEEFF 2 A_ChaseD3D
    loop
  Left:
    LTRO A 4 ThrustThing(angle*256/360+192, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO B 4 ThrustThing(angle*256/360+192, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO C 4 ThrustThing(angle*256/360+192, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO D 4 ThrustThing(angle*256/360+192, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    "####" "#" 0 A_Stop
    Goto See
  Right:
    LTRO A 4 ThrustThing(angle*256/360+64, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO B 4 ThrustThing(angle*256/360+64, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO C 4 ThrustThing(angle*256/360+64, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    LTRO D 4 ThrustThing(angle*256/360+64, 6, 0, 0)
    "####" "#" 0 A_ChaseD3D
    "####" "#" 0 A_Stop
    Goto See
  Missile:
    "####" "#" 0 A_SetHeightOffset(-5)
    LTRO G 3 A_FaceTarget
    "####" "#" 0 A_Jump(192, "MissileRight", "MissileLeft")
    "####" "#" 0 A_Jump(96, "MissileFront", "MissileBack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO G 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO G 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO G 3 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  MissileFront:
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO H 1 bright A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO Q 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO Q 1 A_Recoil(-1)
    LTRO G 2 A_FaceTarget
    LTRO G 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO H 1 A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  MissileBack:
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO H 1 bright A_Recoil(1)
    LTRO P 2 A_FaceTarget
    LTRO P 1 A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO Q 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO Q 1 A_Recoil(1)
    LTRO G 2 A_FaceTarget
    LTRO G 1 A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    LTRO H 1 A_Recoil(1)
    LTRO P 2 A_FaceTarget
    LTRO P 1 A_Recoil(1)
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  MissileLeft:
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO H 1 bright A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO Q 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO Q 1 A_Recoil(-1)
    LTRO G 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO G 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO H 1 A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  MissileRight:
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO H 1 bright A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO Q 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO Q 1 A_Recoil(-1)
    LTRO G 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO G 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    LTRO H 2 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO H 1 A_Recoil(-1)
    LTRO P 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    LTRO P 1 A_Recoil(-1)
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  Pain.BootStun:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    LTRO I 9 A_PlayVoiceSoundPitch("Pain")
    LTRO I 9
    "####" "#" 0 A_Jump(128, "Right", "Left")
    goto See
  Pain2BootStun:
    LTRO O 9 A_PlayVoiceSoundPitch("Pain")
    LTRO O 9
    "####" "#" 0 A_Jump(128, "Right", "Left")
    goto See
  Pain:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2")
    LTRO I 3
    LTRO I 3 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_Jump(128, "Right", "Left")
    goto See
  Pain2:
    LTRO O 3
    LTRO O 3 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_Jump(128, "Right", "Left")
    goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_SetHeightOffset(0)
    LTRO I 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    LTRO I 7 A_PlayVoiceSoundPitch("Death")
    LTRO J 7
    LTRO K 7 A_NoBlocking
    LTRO L 7
    LTRO M 7
    LTRO N 1 A_SpawnItemEx("DeadTrooperLame", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    LTRO I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    LTRO 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_Remove(AAPTR_DEFAULT)
    stop
  XDeath:
  Death.BossStomp:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.PlasmaGib:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.Explosion:
  Death.RocketExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
     Stop
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Gib1:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB1 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB1 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib2:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB2 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB2 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib3:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB3 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB3 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib4:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib5:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB5 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB5 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Wound.Expander:
    "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    LTRO I 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.4 && ScaleY < 1.4, "Expand")
    LTRO IIIII 1
    "####" "#" 0 A_SetScale(0.95, 0.75)
    "####" "#" 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_Freeze("See")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Death.MonsterSlimer:
    LTRO I 10 {A_PlayVoiceSoundPitch("Death"); A_SpawnItemEx("SlimerEatingMonster");}
    LTRO II 10
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    LTRO N 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    LTRO M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    LTRO L 7 A_AdjustTics(1.0,1.0)
    LTRO K 7 A_AdjustTics(1.0,1.0)
    LTRO J 7 A_AdjustTics(1.0,1.0)
    LTRO I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor DeadTrooperLame : DeadDukeNukemP 19360
{
  Radius 20
  Height 12
  xscale 0.95
  yscale 0.75
  States
  {
  Spawn:
    LTRO N -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadTrooperLame", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    LTRO N 5 A_GenericFreezeDeath
    LTRO N 1 A_FreezeDeathChunks
    wait
  }
}

actor TrooperLame2 : ZBaseActor 19361
{
  obituary "%o was killed by a Lame Trooper."
  health 110
  radius 20
  height 60
  mass 1000
  speed 8
  seesound "trooperlame/see"
  deathsound "trooperlame/die"
  dropitem "PistolAmmo" 192 12
  painchance 85
  Painchance "Shrinker", 256
  painchance "FireBurning", 200
  painchance "MightyBoot", 128
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  MONSTER
  +FLOORCLIP
  WoundHealth 10
  xscale 0.95
  yscale 0.75
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  Species "TrooperLames"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  states
  {
  Spawn:
    L2TR F 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    L2TR FF 10 A_Look
    loop
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    L2TR A 1
    L2TR AABBCCDDEEFF 2 A_ChaseD3D
    loop
  Missile:
    "####" "#" 0 A_SetHeightOffset(-5)
    L2TR G 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    L2TR H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    L2TR G 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    L2TR H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    L2TR G 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    L2TR H 3 bright A_CustomMissile("EnemyProjectile", 35, 5, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 20, -10, -60, 2, random[RIDFX](20, 55))
    L2TR G 3 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    goto Missile+2
  Pain.BootStun:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    L2TR I 9 A_PlayVoiceSoundPitch("Pain")
    L2TR I 9
    goto See
  Pain2BootStun:
    L2TR O 9 A_PlayVoiceSoundPitch("Pain")
    L2TR O 9
    goto See
  Pain:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2")
    L2TR I 3
    L2TR I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    L2TR O 3
    L2TR O 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_SetHeightOffset(0)
    L2TR I 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    L2TR I 7 A_PlayVoiceSoundPitch("Death")
    L2TR J 7
    L2TR K 7 A_NoBlocking
    L2TR L 7
    L2TR M 1 A_SpawnItemEx("DeadTrooperLame2", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    L2TR I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    L2TR 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_Remove(AAPTR_DEFAULT)
    stop
  XDeath:
  Death.BossStomp:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.PlasmaGib:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Death.Explosion:
  Death.RocketExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
     Stop
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 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)
    "####" "#" 0 A_Jump(256,"Gib1","Gib2","Gib3","Gib4","Gib5")
    TNT1 A 1
    Stop
  Gib1:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB1 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB1 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib2:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB2 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB2 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib3:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB3 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB3 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib4:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Gib5:
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB5 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB5 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    Stop
  Wound.Expander:
    "####" "#" 0 A_Die("Expander")
  Death.Expander:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    L2TR I 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.4 && ScaleY < 1.4, "Expand")
    L2TR IIIII 1
    "####" "#" 0 A_SetScale(0.95, 0.75)
    "####" "#" 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_Freeze("See")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Death.MonsterSlimer:
    L2TR I 10 {A_PlayVoiceSoundPitch("Death"); A_SpawnItemEx("SlimerEatingMonster");}
    L2TR II 10
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    L2TR M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    L2TR L 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    L2TR K 7 A_AdjustTics(1.0,1.0)
    L2TR J 7 A_AdjustTics(1.0,1.0)
    L2TR I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor DeadTrooperLame2 : DeadDukeNukemP 19362
{
  Radius 20
  Height 12
  xscale 0.95
  yscale 0.75
  States
  {
  Spawn:
    L2TR M -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadTrooperLame2", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    L2TR M 5 A_GenericFreezeDeath
    L2TR M 1 A_FreezeDeathChunks
    wait
  }
}