actor RobotAlien : ZBaseActorMetal 19144
{
  obituary "%o was vaporised by a Robot Alien."
  health 800
  radius 20
  height 84
  mass 1000
  speed 10
  scale 0.8
  seesound "sight"
  painsound "pain"
  deathsound "death"
  activesound "idle"
  dropitem "HolodukeSpawner" 32
  MONSTER
  +FLOORCLIP
  +MISSILEMORE
  +MISSILEEVENMORE
  +NOICEDEATH
  +NOBLOOD
  +BOSS
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.5
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.5
  damagefactor "RocketExplosion", 0.5
  damagefactor "ShellExplosion", 0.7
  damagefactor "Fire", 0.4
  damagefactor "BulletFlame", 0.4
  damagefactor "Plasma", 1.3
  damagefactor "MicrowaveBlast", 1.3
  painchance 64
  painchance "Fire", 10
  painchance "BulletFlame", 10
  painchance "PlasmaSpark", 256
  painchance "MicrowaveBlast", 256
  Species "RobotAliens"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  states
  {
  Spawn:
    MMDR EE 5 {A_Look; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    loop
  See:
    MMDR A 1
    "####" "#" 0
    MMDR AABBCCDD 4 {A_Chase; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    loop
  Missile:
    "####" "#" 0 bright A_jump(256,"chaingun","bolt1","bolt2","bolt3","laser")
    goto see
  Chaingun:
    MMDR EE 5 {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",32,16,0)
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("chaingun/shoot")
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("EnemyProjectile", 84, -15, random[RIDMONSTERAT](-6, 6), CMF_AIMOFFSET, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("20mmSpawn", 80, 0, 60, 2, random[RIDFX](20, 55))
    MMDR H 2 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR I 3 bright {A_CPosRefire; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_Jump(64,"See")
    goto Chaingun+2
  Bolt1:
    MMDR EEEE 5 {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    goto See
  Bolt2:
    MMDR EEEE 5 {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    goto See 
  Bolt3:
    MMDR EEEE 5 {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("alien/attack")
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 bright A_custommissile("RobotAlienBullet",50,30)
    MMDR F 5 bright {A_custommissile("RobotAlienBullet",50,-30); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR F 5 bright {if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR GG 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    goto See
  Laser:
    MMDR EEEE 5 {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlayWeaponSound("charge")
    MMDR JKLKJ 5 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR JKLKJ 4 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR JKLKJ 3 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR J 1 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR J 1 bright A_facetarget
    MMDR KL 2 bright A_facetarget
    MMDR K 1 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR K 1 bright A_facetarget
    MMDR J 2 bright A_facetarget
    MMDR J 1 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR KLKJ 1 bright A_facetarget
    MMDR J 1 bright {A_facetarget; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR KLKJ 1 bright A_facetarget
    "####" "#" 0 A_PlayWeaponSound("laser")
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,16,0)
    MMDR M 1 bright {A_custommissile("laserbeam",53,0,0); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR NOOO 1 bright A_custommissile("laserbeam",53,0,0)
    MMDR O 1 bright {A_custommissile("laserbeam",53,0,0); if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    MMDR OOOOO 1 bright A_custommissile("laserbeam",53,0,0)
    goto see    
  Pain:
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 3 {A_Pain; if (health > 200) {return;} A_CustomMissile("FlameTrails1", 60, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See
  Pain.MicrowaveBlast:
    "####" "#" 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death.Plasma:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
  Death:
  XDeath:
  Death.BossStomp:
  Death.Explosion:
  Death.RocketExplosion:
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    MMDR E 4 A_Scream
    "####" "#" 0 A_SpawnDebris("MetalGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs5", FALSE, 1.0, 1.0)
    MMDR E 4 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_SpawnDebris("DukeGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Explode(100,180)
    "####" "#" 0 A_PlaySound("rpg/blowup")
    "####" "#" 0 A_PlayWeaponSound("rpg/blowup")
    "####" "#" 0 A_SpawnDebris("DukeGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    MMDR WWWWW 10 A_SpawnItemEx("RPGExplosion",random[RIDFX](-16,16),random[RIDFX](-16,16),random[RIDFX](0,32),0,0,0,0,0)
    MMDR W 1 A_SpawnItemEx("RobotAlienLegs")
    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:
    MMDR A 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.3 && ScaleY < 1.3, "Expand")
    MMDR AAAAA 1
    "####" "#" 0 A_SetScale(0.8, 0.8)
    "####" "#" 0 A_PlaySound("death")
    "####" "#" 0 A_SpawnDebris("MetalGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("MetalGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnItemEx("ExpanderExplosion",0,0,32,0,0,0,0,1,0)
    "####" "#" 0 A_XScream
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_SpawnDebris("DukeGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 35 A_Gravity
    GIB4 EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 1 A_FadeOut(0.1)
    stop
  }
}

actor RobotAlienBullet : AlienBullet
{
  Damage (12)
}

actor laserbeam
{
  Radius 3
  Height 2
  Speed 40
  Damage 20
  RenderStyle Add
  Alpha 1
  Scale 0.5
  DeathSound "weapons/bfgx"
  decal DukeScorch
  Projectile
  +RIPPER
  +THRUGHOST
  states
  {
  Spawn:
    KAMS AB 1 bright NoDelay A_Explode(5,64)
    loop
  Death:
    "####" "#" 0 
    "####" "#" 0 A_SpawnItemEx("LaserBeamExplosion",0,0,0,0,0,0,0,0)
    TNT1 A 1 A_Explode  
    stop
  }
}

actor LaserBeamExplosion
{
  radius 1
  height 1
  RenderStyle Add
  speed 0
  +NOCLIP
  PROJECTILE
  scale 0.9
  states
  {
  Spawn:
    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))
    KAXP BCDEFGHIJKLM 3 bright 
    TNT1 ABCDE 1
    stop
  }
}

actor RobotAlienLegs
{
  Radius 20
  Height 10
  scale 0.8
  +THRUACTORS
  +THRUGHOST
  -SHOOTABLE
  +NOTELEPORT
  +MOVEWITHSECTOR
  +FLOORCLIP
  -SOLID
  +GHOST
  +FORCEXYBILLBOARD
  +NOTAUTOAIMED
  ThruBits 1
  States
  {
  Spawn:
    MMDR W 0
    MMDR WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 35 A_Gravity
    MMDR WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 1 A_FadeOut(0.1)
    stop
  }
}