ACTOR DroneLame : ZBaseActorMetal 19356
{
  Obituary "%o couldn't hide from the Lame Drone."
  Health 110
  Radius 28
  Height 30
  Mass 1000
  Speed 12
  SeeSound "dukinator/see2"
  PainSound "robotlame/pain"
  MONSTER
  +FLOORCLIP
  Scale 0.73
  +FLOAT
  +FLOATBOB
  +NOGRAVITY
  +NOBLOOD
  +SPAWNFLOAT
  +NOICEDEATH
  +MISSILEMORE
  FloatBobStrength 0.5
  maxtargetrange 128
  gravity 0.40
  damagefactor "Explosion", 2.0
  damagefactor "RocketExplosion", 2.0
  damagefactor "ShellExplosion", 2.0
  damagefactor "Fire", 0.5
  damagefactor "BulletFlame", 0.5
  damagefactor "Expander", 0.1
  damagefactor "Shrinker", 0.0
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Plasma", 1.3
  damagefactor "MicrowaveBlast", 1.3
  painchance 64
  painchance "Fire", 10
  painchance "BulletFlame", 10
  painchance "PlasmaSpark", 256
  painchance "MicrowaveBlast", 256
  +NOBLOCKMONST
  Species "DroneLames"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
    XDR2 A 0
    "####" "#" 0 ThrustThingZ(0, 50, 0, 1)
    "####" "#" 1
    "####" "#" 0 A_Stop
  Idle:
    XDR2 AAAA 5 {A_Look; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  See:
    "####" "#" 0 A_SentinelBob
    "####" "#" 0 A_PlaySound("drone/PlayEx",7,1,1)
    XDR2 A 3 {A_Chase("_a_chase_default","_a_chase_default"); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  Missile:
    "####" "#" 0 A_Jump(128,"Missile2","Missile3")
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See
  Missile2:  
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See
  Missile3:  
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 B 3 Bright {A_CustomMissile("EnemyProjectile", 25, -10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawn", 10, 0, 60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {A_FaceTarget; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",27,0,0)
    "####" "#" 0 A_PlaySound("dronelame/shoot", 1)
    XDR2 C 3 Bright {A_CustomMissile("EnemyProjectile", 25, 10, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1)); if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 10, 0, -60, 2, random[RIDFX](20, 55))
    XDR2 A 4 {if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See
  Pain:
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 4 {A_Pain; if (health > 27) {return;} A_CustomMissile("FlameTrailsSmall1", 15, 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:
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_ChangeFlag("FLOATBOB",0)
    "####" "#" 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)
    TNT1 A 5 A_SpawnItemEx("DroneLameExplosion",0,0,32,0,0,0,0,1,0)
    Stop
    }
}

actor DroneLameExplosion : SentryDroneExplosion
{
  +FOILINVUL
  radius 1
  height 1
  speed 0
  +NOCLIP
  PROJECTILE
  scale 0.75
  DamageType "Explosion"
  states
  {
  Spawn:
    TNT1 AAAAAAAAA 0 NoDelay 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))
    "####" "#" 0 A_CustomMissile ("SentryDroneExplosionG", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    "####" "#" 0 A_SpawnItem("BigRicoChet")
    "####" "#" 0 A_SPawnItem("ExplosionAirDisplacementEffect")
    "####" "#" 0 A_PlaySound("robotlame/explode")
    "####" "#" 0 A_PlayWeaponSound("robotlame/explode")
    "####" "#" 0 Radius_Quake(1, 8, 0, 12, 0)
    TNT1 A 2
    "####" "#" 0 A_Explode(20,70)
    TNT1 A 10
    stop
  }
}