
actor WoundedCheck : Inventory
{
  inventory.amount 0
  inventory.maxamount 1
}

actor Alien_Green : ZBaseActor 19103
{
  obituary "%o was killed by a Trooper."
  health 60
  radius 20
  height 52
  mass 1000
  speed 8
  seesound "alien/sight"
  attacksound "alien/attack"
  painsound "alien/pain"
  deathsound "alien/death"
  activesound "alien/active"
  dropitem "PistolAmmo" 192 12
  dropitem "Dual Pistol" 16
  painchance 85
  Painchance "Shrinker", 256
  painchance "FireBurning", 200
  painchance "MightyBoot", 128
  painchance "BootStun", 256
  painchance "MicrowaveBlast", 256
  MONSTER
  +FLOORCLIP
  WoundHealth 10
  scale 0.65
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  Species "Troopers"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  states
  {
  Spawn:
    ENE1 A 0
    "####" "#" 0 Thing_ChangeTID(0,1000)
    ENE1 AA 10 A_Look
    loop
  SeeNoFly:
    "####" "#" 0 A_SetHeightOffset(0)
    ENE1 A 1
    "####" "#" 0
    ENE1 AABBCCDD 3 A_Chase
    goto See
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    ENE1 A 1
    "####" "#" 0
    "####" "#" 0 A_Jump(2,"Fly")
    ENE1 AABBCCDD 3 A_ChaseD3D
    loop
  Fly:
    "####" "#" 0 A_JumpIfInventory("MonsterPossessed", 1, "See")
    "####" "#" 0 A_Jump(32,2)
    "####" "#" 0 A_CheckSight("See")
    "####" "#" 0 A_SwitchActorTransferHealth("Alien_GreenFly","SeeFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    Stop
  Missile:
    "####" "#" 0 A_Jump(128,"Missile2","Missile3")
    ENE1 E 6 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 F 6 bright A_CustomMissile("AlienBullet",30,10,random[RIDMONSTERAT](-8,8))
    ENE1 E 6
    goto See
  Missile2:
    ENE1 E 6 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 F 6 bright A_CustomMissile("AlienBullet",30,10,random[RIDMONSTERAT](-8,8))
    ENE1 E 6
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 bright A_CustomMissile("AlienBullet",30,10,random[RIDMONSTERAT](-8,8))
    goto See
  Missile3:
    "####" "#" 0 A_SetHeightOffset(-13)
    ENE1 R 10 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 S 6 bright A_CustomMissile("AlienBullet",30,10,-8)
    ENE1 R 6 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 S 6 bright A_CustomMissile("AlienBullet",30,10,0)
    ENE1 R 6 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 S 6 bright A_CustomMissile("AlienBullet",30,10,8)
    ENE1 R 10 A_FaceTarget
    goto See
  Pain.BootStun:
    "####" "#" 0 A_TakeInventory("WoundedCheck",1)
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    ENE1 I 9 A_PlayVoiceSoundPitch("Pain")
    ENE1 I 9
    goto See
  Pain2BootStun:
    ENE1 V 9 A_PlayVoiceSoundPitch("Pain")
    ENE1 V 9
    goto See
  Pain:
    "####" "#" 0 A_TakeInventory("WoundedCheck",1)
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2")
    ENE1 I 3
    ENE1 I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    ENE1 V 3
    ENE1 V 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_TakeInventory("WoundedCheck",1)
    "####" "#" 0 A_SetHeightOffset(0)
    ENE1 I 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    "####" "#" 0 A_JumpIfInventory("WoundedCheck",1,"WoundDeath")
    ENE1 I 7 A_PlayVoiceSoundPitch("Death")
    ENE1 J 7
    ENE1 K 7 A_NoBlocking
    ENE1 L 7
    ENE1 M 1 A_SpawnItemEx("DeadAlien_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Wound:
    ENE1 I 1 A_Jump(128,"DeathCause")
    ENE1 I 6 A_PlayVoiceSoundPitch("Death")
    ENE1 J 7
    ENE1 K 7
    "####" "#" 0 A_SetHeightOffset(-20)
    ENE1 L 7 A_GiveInventory("WoundedCheck",1)
    ENE1 N 7 A_PlayVoiceSoundPitch("","alien/choke",4)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    ENE1 OPOPOPOPOPOPO 10
    "####" "#" 0 A_Jump(96,2)
    ENE1 O 1 A_Die
    stop
    "####" "#" 0 A_GiveInventory("Health",20)
    "####" "#" 0 A_TakeInventory("WoundedCheck",1)
    goto See
  WoundDeath:
    ENE1 N 7 A_PlayVoiceSoundPitch("Death")
    ENE1 L 7
    ENE1 M 1 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadAlien_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    TNT1 A -1
    stop
  DeathCause:
    ENE1 AABB 3 A_Wander
    ENE1 A 1 A_Die
    stop
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    ENE1 I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    ENE1 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("A","B","C","D",0.2,1000,2,"SeeNoFly")
    "####" "#" 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_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",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_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",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_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",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_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",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:
    ENE1 I 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.15 && ScaleY < 1.15, "Expand")
    ENE1 IIIII 1
    "####" "#" 0 A_SetScale(0.65, 0.65)
    "####" "#" 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("SeeNoFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    stop
  Death.MonsterSlimer:
    ENE1 I 10 {A_PlayVoiceSoundPitch("Death"); A_SpawnItemEx("SlimerEatingMonster");}
    ENE1 II 10
    stop
  Death.Headshot:
    "####" "#" 0 A_JumpIfInventory("WoundedCheck",1,"WoundDeathHeadshot")
    "####" "#" 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("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("HeadJib1",TRUE, 1.0, 1.0)
    3NE1 I 21 A_NoBlocking
    3NE1 J 14
    3NE1 K 7
    3NE1 L 7
    3NE1 M 1 A_SpawnItemEx("DeadAlienBehead_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  WoundDeathHeadshot:
    "####" "#" 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("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("HeadJib1",TRUE, 1.0, 1.0)
    3NE1 N 21 A_NoBlocking
    3NE1 O 14
    3NE1 P 1 A_SpawnItemEx("DeadAlienBehead2_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Death.SSG:
    "####" "#" 0 A_JumpIf(d3d_extradeathgore==1, "Death")
    "####" "#" 0 A_JumpIfInventory("WoundedCheck",1,"WoundDeath")
    "####" "#" 0 A_JumpIfCloser(210, 1)
    Goto Death
    "####" "#" 0 A_XScream
    "####" "#" 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_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    4NE1 I 21 A_NoBlocking
    4NE1 J 14
    4NE1 K 7
    4NE1 L 7
    4NE1 M 1 A_SpawnItemEx("DeadAlienHalf_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    ENE1 M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    ENE1 L 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    ENE1 K 7 A_AdjustTics(1.0,1.0)
    ENE1 J 7 A_AdjustTics(1.0,1.0)
    ENE1 I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

actor AlienBullet : ZMissile
{
  Radius 13
  Height 8
  Speed 35
  Damage (7)
  Projectile
  decal bulletchip
  scale 0.5
  RenderStyle Add
  +THRUGHOST
  States
  {
  Spawn:
    EN1X A 1 Bright
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (5 *momx)/-35.0, -(5 *momy)/-35.0, (5 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (10 *momx)/-35.0, -(10 *momy)/-35.0, (10 *momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (15*momx)/-35.0, -(15*momy)/-35.0, (15*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (20*momx)/-35.0, -(20*momy)/-35.0, (20*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (25*momx)/-35.0, -(25*momy)/-35.0, (25*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    "####" "#" 0 A_SpawnItemEx("AlienBulletTrail", (30*momx)/-35.0, -(30*momy)/-35.0, (30*momz)/-35.0, 0,0,0, 0, SXF_ABSOLUTEANGLE)
    loop
  Death:
    TNT1 AAAA 0 A_CustomMissile ("ExplosionParticleHeavyTiny", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 180))
    TNT1 A 1
    stop
  }
}

actor AlienBulletTrail : ZMissile
{
  Radius 0
  Height 0
  Speed 0
  Damage 0
  Projectile
  scale 0.5
  RenderStyle Add
  +THRUGHOST
  States
  {
  Spawn:
    EN1X A 2 bright
    stop
  }
}

Actor MonsterTeleporting : Inventory
{
  inventory.maxamount 1
}

actor Alien_Red : Alien_Green 19104
{
  Translation "112:127=176:191", "9:12=188:191"
  states
  {
  Spawn:
    ENE1 A 0 NoDelay
    "####" "#" 0 A_SetShootable
    "####" "#" 0 Thing_ChangeTID(0,1000)
    ENE1 AA 10 A_Look
    loop
  SeeNoFly:
    "####" "#" 0 A_SetHeightOffset(0)
    ENE1 A 1
    "####" "#" 0
    ENE1 AABBCCDD 3 A_Chase
    goto See
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_JumpIfInventory("MonsterTeleporting", 1, "Teleport3")
    ENE1 A 1
    "####" "#" 0
    "####" "#" 0 A_Jump(2,"Fly")
    ENE1 AABBCCDD 3 A_ChaseD3D
    loop
  Fly:
    "####" "#" 0 A_JumpIfInventory("MonsterPossessed", 1, "See")
    "####" "#" 0 A_Jump(32,2)
    "####" "#" 0 A_CheckSight("See")
    "####" "#" 0 A_SwitchActorTransferHealth("Alien_RedFly","SeeFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    Stop
  Missile:
    "####" "#" 0 A_Jump(128,"Missile2","Missile3","Teleport")
    ENE1 E 6 A_FaceTarget
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    ENE1 F 6 bright A_CustomMissile("AlienBullet",30,10,random[RIDMONSTERAT](-8,8))
    ENE1 E 6
    goto See
  Teleport:
    "####" "#" 0 A_JumpIfInventory("MonsterPossessed", 1, "Missile")
    ENE1 T 10
    "####" "#" 0 A_CustomMissile("AlienTeleport",32,0,0)
    "####" "#" 0 A_InvulnerablePlus(1)
    "####" "#" 0 A_GiveInventory("MonsterTeleporting",1)
  Teleport2:
    ENE1 U 2 {A_SetScale( max(ScaleX-0.1,0) , ScaleY); 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, "Teleport2")
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
    TNT1 A 10 A_CustomMissile("AlienTeleport",32,0,0)
  Teleport3:
    ENE1 T 2 
	{
		A_SetScale( min(ScaleX+0.1,0.65) , ScaleY); 
		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.649, "Teleport3") //ScaleX will never actually reach 0.65 with the above code, caps out at 0.64999999... because of floating point imprecision or something
    "####" "#" 0 A_InvulnerablePlus(0)
    "####" "#" 0 A_TakeInventory("MonsterTeleporting",1)
    goto Missile+1
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_InvulnerablePlus(1)
    ENE1 I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    ENE1 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("A","B","C","D",0.2,1000,2,"SeeNoFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  Possessed:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    ENE1 M 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    ENE1 L 7 {A_XScream; A_AdjustTics(1.0,1.0);}
    ENE1 K 7 A_AdjustTics(1.0,1.0)
    ENE1 J 7 A_AdjustTics(1.0,1.0)
    ENE1 I 7 A_AdjustTics(0,1.0)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  }
}

ACTOR AlienTeleport
{
  +NOBLOCKMAP
  +NOTELEPORT
  +NOGRAVITY
  RenderStyle Add
  States
  {
  Spawn:
    DTEL A 0
    DTEL A 2 Bright A_PlaySound("misc/teleport")
    DTEL BBCC 1 Bright A_SpawnItem("WhiteFlare1",0,0)
    DTEL DDEEFF 1 Bright
    Stop
  }
}

actor DeadAlien_Green : DeadDukeNukemP 19105
{
  Radius 20
  Height 12
  scale 0.65
  States
  {
  Spawn:
    ENE1 M -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadAlien_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    ENE1 M 5 A_GenericFreezeDeath
    ENE1 M 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadAlien_Red : DeadAlien_Green 19106
{
	Translation "112:127=176:191", "9:12=188:191"
}

actor DeadAlienBehead_Green : DeadDukeNukem
{
  Radius 20
  Height 12
  scale 0.65
  States
  {
  Spawn:
    3NE1 M -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadAlienBehead_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    3NE1 M 5 A_GenericFreezeDeath
    3NE1 M 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadAlienBehead2_Green : DeadDukeNukem
{
  Radius 20
  Height 12
  scale 0.65
  States
  {
  Spawn:
    3NE1 P -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadAlienBehead2_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    3NE1 P 5 A_GenericFreezeDeath
    3NE1 P 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadAlienHalf_Green : DeadDukeNukem
{
  Radius 20
  Height 12
  scale 0.65
  States
  {
  Spawn:
    4NE1 M -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadAlienHalf_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    4NE1 M 5 A_GenericFreezeDeath
    4NE1 M 1 A_FreezeDeathChunks
    wait
  }
}

actor Alien_GreenFly : Alien_Green
{
  height 54
  +FLOAT
  +FLOATBOB
  +NOGRAVITY
  FloatBobStrength 0.5
  +FORCEXYBILLBOARD
  states
  {
  Spawn:
    ENE1 G 0 NoDelay
    "####" "#" 0 A_SetShootable
    "####" "#" 0 Thing_ChangeTID(0,1000)
    ENE1 G 10 A_Look
    loop
  SeeFly:
    "####" "#" 0 A_PlaySound("alien/jetpack",7,2,1)
    "####" "#" 0 A_JumpIfTargetinLOS(1, 140)
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    goto See
  See:
    "####" "#" 0 A_PlaySound("alien/jetpack",7,2,1)
    "####" "#" 0 A_JumpIfTargetinLOS(2, 140)
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    loop
  NoFly:
    "####" "#" 0 A_SwitchActorTransferHealth("Alien_Green","SeeNoFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    Stop
  Missile:
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("AlienBullet",32,-4,random[RIDMONSTERAT](-8,8))
    ENE1 H 3 bright A_ExtChase(0,0,0,0)
    ENE1 GGGGG 3 A_ExtChase(0,0,0,0)
    goto See
  Pain.BootStun:
    "####" "#" 0 A_Jump(128,"Pain2BootStun")
    ENE1 I 9 A_PlayVoiceSoundPitch("Pain")
    ENE1 I 9
    goto See
  Pain2BootStun:
    ENE1 V 9 A_PlayVoiceSoundPitch("Pain")
    ENE1 V 9
    goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    ENE1 I 3
    ENE1 I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    ENE1 V 3
    ENE1 V 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    ENE1 I 1
    "####" "#" 0 A_CheckThump("Pain.BootStun")
    loop
  Death:
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_ChangeFlag("FLOATBOB",0)
    "####" "#" 0 A_StopSound(2)
    ENE1 I 7 A_PlayVoiceSoundPitch("Death","",4)
    "####" "#" 0 A_NoBlocking
    ENE1 I -1
    stop
  Crash:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking(false)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", TRUE, 1.0, 1.0)
    ENE1 I 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    ENE1 J 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    ENE1 K 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    ENE1 L 7
    ENE1 M 1 A_SpawnItemEx("DeadAlien_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    TNT1 A -1
    stop
  Wound:
    "####" "#" 0
    goto See
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 A_InvulnerablePlus(1)
    ENE1 I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    ENE1 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("A","B","C","D",0.2,1000,2,"SeeNoFly","Alien_Green")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  XDeath:
  Death.BossStomp:
  Crash.BossStomp:
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_StopSound(7)
    "####" "#" 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)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",TRUE, 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_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_StopSound(7)
    "####" "#" 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)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",TRUE, 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_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_StopSound(7)
    "####" "#" 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)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",TRUE, 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_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_StopSound(7)
    "####" "#" 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)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("LegJib1",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 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_StopSound(7)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    ENE1 I 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.15 && ScaleY < 1.15, "Expand")
    ENE1 IIIII 1
    "####" "#" 0 A_SetScale(0.65, 0.65)
    "####" "#" 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.Headshot:
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_ChangeFlag("FLOATBOB",0)
    "####" "#" 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("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("HeadJib1",TRUE, 1.0, 1.0)
    3NE1 I 7 A_NoBlocking
    3NE1 I -1
    stop
  Crash.Headshot:
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking(false)
    3NE1 I 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3NE1 J 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3NE1 K 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3NE1 L 7
    3NE1 M 1 A_SpawnItemEx("DeadAlienBehead_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  Death.SSG:
    "####" "#" 0 A_JumpIf(d3d_extradeathgore==1, "Death")
    "####" "#" 0 A_JumpIfCloser(210, 1)
    Goto Death
    "####" "#" 0 A_GiveInventory("DeathCheck",1)
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_ChangeFlag("FLOATBOB",0)
    "####" "#" 0 A_XScream
    "####" "#" 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_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("HeadJib1",TRUE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("ArmJib1",TRUE, 1.0, 1.0)
    4NE1 I 7 A_NoBlocking
    4NE1 I -1
    stop
  Crash.SSG:
    "####" "#" 0 A_JumpIfInventory("DeathCheck",1,1)
    Goto Crash
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking(false)
    4NE1 I 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    4NE1 J 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    4NE1 K 7 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    4NE1 L 7
    4NE1 M 1 A_SpawnItemEx("DeadAlienHalf_Green", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    stop
  }
}

actor DeathCheck : Inventory
{
  inventory.amount 0
  inventory.maxamount 1
}

actor Alien_RedFly : Alien_GreenFly
{
  Translation "112:127=176:191", "9:12=188:191"
  states
  {
  SeeFly:
    "####" "#" 0 A_PlaySound("alien/jetpack",7,2,1)
    "####" "#" 0 A_JumpIfTargetinLOS(1, 140)
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    goto See
  See:
    "####" "#" 0 A_JumpIfInventory("MonsterTeleporting", 1, "Teleport3")
    "####" "#" 0 A_PlaySound("alien/jetpack",7,2,1)
    "####" "#" 0 A_JumpIfTargetinLOS(2, 140)
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    "####" "#" 0 A_CheckFloorPlus("NoFly")
    ENE1 G 3 A_Chase
    "####" "#" 0 A_SentinelBob
    loop
  NoFly:
    "####" "#" 0 A_SwitchActorTransferHealth("Alien_Red","SeeNoFly")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    TNT1 A 1
    Stop
  Missile:
    "####" "#" 0 A_Jump(32,"Teleport")
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("AlienBullet",32,-4,random[RIDMONSTERAT](-8,8))
    ENE1 H 3 bright A_ExtChase(0,0,0,0)
    ENE1 GGGGG 3 A_ExtChase(0,0,0,0)
    goto See
  Teleport:
    "####" "#" 0
    "####" "#" 0 A_CustomMissile("AlienTeleport",32,0,0)
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_InvulnerablePlus(1)
    "####" "#" 0 A_GiveInventory("MonsterTeleporting",1)
  Teleport2:
    ENE1 G 2 {A_SetScale( max(ScaleX-0.1,0) , ScaleY); 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, "Teleport2")
    TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_Wander
    TNT1 A 10 A_CustomMissile("AlienTeleport",32,0,0)
  Teleport3:
    ENE1 G 2 {A_SetScale( min(ScaleX+0.1,0.65) , ScaleY); 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.65, "Teleport3")
    "####" "#" 0 A_InvulnerablePlus(0)
    "####" "#" 0 A_TakeInventory("MonsterTeleporting",1)
    "####" "#" 0 A_PlaySound("alien/jetpack",7,2,1)
    goto Missile+1
  Pain.Shrinker:
  Wound.Shrinker:
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_NoGravity
    "####" "#" 0 A_InvulnerablePlus(1)
    ENE1 I 5 A_PlayVoiceSoundPitch("Pain")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    ENE1 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("A","B","C","D",0.2,1000,2,"SeeNoFly","Alien_Red")
    "####" "#" 0 A_Remove(AAPTR_DEFAULT)
    stop
  }
}