ACTOR Dukinator : ZBaseActorMetal 19346
{
  Obituary "%o was terminated by a Dukinator."
  Health 700
  Radius 25
  Height 70
  Mass 1000
  Speed 12
  xscale 1.1
  yscale 0.8
  SeeSound "dukinator/sight"
  DeathSound "dukinator/shothit"
  ActiveSound "dukinator/line"
  AttackSound ""
  MONSTER
  +FLOORCLIP
  +MISSILEMORE
  +MISSILEEVENMORE
  +NOICEDEATH
  +NOBLOOD
  +BOSS
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.1
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.5
  damagefactor "RocketExplosion", 0.5
  damagefactor "ShellExplosion", 0.7
  damagefactor "Fire", 0.2
  damagefactor "BulletFlame", 0.2
  damagefactor "Plasma", 1.3
  damagefactor "MicrowaveBlast", 1.3
  painchance 64
  painchance "Fire", 10
  painchance "BulletFlame", 10
  painchance "PlasmaSpark", 256
  painchance "MicrowaveBlast", 256
  Species "Dukinators"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  States
  {
  Spawn:
    DUKI A 8 {A_Look; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  See:
    DUKI B 5 {if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI B 11 {A_PlaySound("dukinator/see2", 0); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
  See2:
    DUKI B 8 {if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI B 4 {A_PlaySound("dukinator/line", 5); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
  SeeWalk:
    "####" "#" 0 A_PlaySound("dukinator/step", 6)
    DUKI C 8 {A_Chase; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI D 8 {A_Chase; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlaySound("dukinator/step", 6)
    DUKI E 8 {A_Chase("", "Missile", CHF_NOPLAYACTIVE); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI F 8 {A_Chase; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  Missile:
    "####" "#" 0 A_Jump(128, "Crouchshot", "Boomerang")
  Shoot:
    DUKI GGG 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI H 5 Bright {A_CustomMissile("DukinatorProjectile", 52, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI G 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI H 5 Bright {A_CustomMissile("DukinatorProjectile", 52, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI G 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI H 5 Bright {A_CustomMissile("DukinatorProjectile", 52, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI G 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_MonsterRefire(40,"FinishMissile")
    "####" "#" 0 A_Jump(96,"FinishMissile")
    goto Shoot+3
  Crouchshot:
    DUKI I 4 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI J 4 Bright {A_CustomMissile("DukinatorProjectile", 40, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI I 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI J 4 Bright {A_CustomMissile("DukinatorProjectile", 40, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI I 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI J 4 Bright {A_CustomMissile("DukinatorProjectile", 40, 14); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI I 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 20, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_MonsterRefire(40,"FinishMissile")
    "####" "#" 0 A_Jump(96,"FinishMissile")
    goto Crouchshot+1
  Boomerang:
    "####" "#" 0 A_JumpIfCloser(340, 1)
    Goto Shoot
    DUKI GG 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI H 4 Bright {A_CustomMissile("DukinatorProjectile2", 52, 14, 0, CMF_SAVEPITCH); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI G 8 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI H 4 Bright {A_CustomMissile("DukinatorProjectile2", 52, 14, 0, CMF_SAVEPITCH); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI G 3 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See2
  FinishMissile:
    "####" "#" 9 {A_FaceTarget; if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI C 1 {if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Goto See2
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    DUKI R 3 {A_PlaySound("dukinator/pain", 5); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    goto See2
  Pain2:
    DUKI W 3 {A_PlaySound("dukinator/pain", 5); if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI X 3 {if (health > 150) {return;} A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    goto See2
  Pain.MicrowaveBlast:
    DUKI R 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death.Plasma:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
  XDeath:
  Death.BossStomp:
  Death.Explosion:
  Death.RocketExplosion:
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    DUKI R 3 {A_Scream; A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    DUKI S 3 A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_SpawnDebris("DukinatorHead", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorTorso", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorArm", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorLeg", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Explode(100,180)
    "####" "#" 0 A_PlaySound("rpg/blowup", 6, 1.0, 0)
    TNT1 A 5 A_SpawnItemEx("PigFlyerExplosion",random[RIDFX](-16,16),random[RIDFX](-16,16),random[RIDFX](0,32),0,0,0,0,0)
    stop
  Death:
    "####" "#" 0 A_PlaySound("dukinator/pain",7,1,1)
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI R 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI S 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 40, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_PlaySound("rpg/blowup", 6, 1.0, 0)
    "####" "#" 0 A_SpawnItemEx("HalfDukinator", 0, 0, 32, frandom[RIDMONSTER](0.1, 2.5), frandom[RIDMONSTER](-2.5, 2.5), frandom[RIDMONSTER](5, 10), 0, SXF_NOCHECKPOSITION)
    "####" "#" 0 A_SpawnDebris("DukinatorLeg", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart2", FALSE, 1.0, 1.0)
    Stop
  }
}

Actor HalfDukinator : ZBaseActorMetal
{
  Obituary "%o didn't pay attention to the a T-69."
  Health 200
  Radius 25
  Height 40
  Mass 1000
  Speed 6
  xscale 1.1
  yscale 0.8
  SeeSound ""
  DeathSound "dukinator/shothit"
  ActiveSound "dukinator/line"
  AttackSound ""
  dropitem "HolodukeSpawner" 32
  MONSTER
//  +FLOORCLIP
  +MISSILEMORE
  +NOICEDEATH
  +NOBLOOD
  +BOSS
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.0
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.5
  damagefactor "RocketExplosion", 0.5
  damagefactor "ShellExplosion", 0.7
  damagefactor "Fire", 0.2
  damagefactor "BulletFlame", 0.2
  damagefactor "Plasma", 1.3
  damagefactor "MicrowaveBlast", 1.3
  painchance 64
  painchance "Fire", 10
  painchance "BulletFlame", 10
  painchance "PlasmaSpark", 256
  painchance "MicrowaveBlast", 256
  Species "Dukinators"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  +LOOKALLAROUND
  States
  {
  Spawn:
    DUKI T 0
    DUKI T 8 {A_Look; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_ChangeFlag("LOOKALLAROUND", 0)
    DUKI U 3 {A_PlaySound("dukinator/pain", 5); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
  Idle:
    DUKI K 6 {A_Look; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  See:
    "####" "#" 0 A_PlaySound("dukinator/crawl", 6)
    DUKI L 4 {A_Chase("", "", CHF_NOPLAYACTIVE); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI M 4 {A_Chase; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_PlaySound("dukinator/crawl", 6)
    DUKI N 4 {A_Chase("", "", CHF_NOPLAYACTIVE); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI K 4 {A_Chase; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    Loop
  Missile:
    DUKI OOO 2 {A_FaceTarget; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",16,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI P 4 Bright {A_CustomMissile("DukinatorProjectile", 17, 14); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI O 3 {A_FaceTarget; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",16,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI P 4 Bright {A_CustomMissile("DukinatorProjectile", 17, 14); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI O 3 {A_FaceTarget; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",16,16,0)
    "####" "#" 0 A_PlaySound("dukinator/shoot", CHAN_WEAPON)
    DUKI P 4 Bright {A_CustomMissile("DukinatorProjectile", 17, 14); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI O 3 {A_FaceTarget; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_MonsterRefire(40,"FinishMissile")
    "####" "#" 0 A_Jump(96,"FinishMissile")
    goto Missile+3
  FinishMissile:
    DUKI O 1 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    Goto See
  Pain:
    "####" "#" 0 A_Jump(128,"Pain2")
    DUKI U 3 {A_PlaySound("dukinator/pain", 5); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    goto See
  Pain2:
    DUKI Y 3 {A_PlaySound("dukinator/pain", 5); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI Z 3 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    goto See
  Pain.MicrowaveBlast:
    DUKI U 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death.Plasma:
    "####" "#" 0 A_SpawnItemEx("DukePlasmaExplosion",0,0,32,0,0,0,0,1,0)
  XDeath:
  Death.BossStomp:
  Death.Explosion:
  Death.RocketExplosion:
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    DUKI U 3 {A_Scream; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0)
    DUKI V 3 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_SpawnDebris("DukinatorHead", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorTorso", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorArm", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Explode(100,180)
    "####" "#" 0 A_PlaySound("rpg/blowup", 6, 1.0, 0)
    TNT1 A 1 A_SpawnItemEx("PigFlyerExplosion",0,0,0,0,0,0,0,160)
    Stop
  Death:
    "####" "#" 0 A_PlaySound("dukinator/pain",7,1,1)
    DUKI U 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI U 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI U 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI U 4 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKI V 3 {A_SpawnDebris("DukeMechParticle", FALSE, 1.0, 1.0); A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    "####" "#" 0 A_StopSound(7)
    "####" "#" 0 A_Gravity
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_BossDeath
    "####" "#" 0 A_PlaySound("rpg/blowup", 6, 1.0, 0)
    "####" "#" 0 A_SpawnDebris("DukinatorHead", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorTorso", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorArm", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart1", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukinatorPart2", FALSE, 1.0, 1.0)
    "####" "#" 0 A_Explode(100,180)
    TNT1 A 1 A_SpawnItemEx("PigFlyerExplosion",0,0,0,0,0,0,0,160)
    Stop
  }
}

Actor DukinatorProjectile
{
  PROJECTILE
  Damage (9)
  Speed 30
  Height 12
  Radius 6
  Scale 0.7
  Renderstyle Add
  DeathSound "dukinator/shothit"
  Alpha 1.0
  +PIERCEARMOR
  +THRUGHOST
  decal DukeSmallScorch
  States
  {
  Spawn:
    D3D7 AABB 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail");}
    Loop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("PurplePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    D3D7 C 1 {A_SpawnItem("PurpleFlare22",0,0); A_FadeOut(0.075);}
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 C 1 {A_SpawnItem("PurpleFlare22",0,0); A_FadeOut(0.075);}
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 C 1 {A_SpawnItem("PurpleFlare22",0,0); A_FadeOut(0.075);}
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 D 1 A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 D 1 A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 D 1 A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 E 1 A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 E 1 A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.075, scaley - 0.075)
    D3D7 E 1 A_FadeOut(0.075)
    Stop
  }
}

Actor DukinatorProjectileTrail
{
  Renderstyle Add
  Alpha 1.0
  Scale 0.7
  +CLIENTSIDEONLY
  +NOINTERACTION
  +THRUGHOST
  States
  {
  Spawn:
    TNT1 A 1
  SpawnLoop:
    D3D7 AABB 1 A_FadeOut(0.0825)
    Loop
  }
}

Actor DukinatorProjectile2 : DukinatorProjectile
{
  Projectile
  Damage (4)
  Speed 28
  Height 8
  Radius 8
  const int pspd = 20;
  +RIPPER
  +BLOODLESSIMPACT
  +THRUGHOST
  decal DukeSmallScorch
  States
  {
  Spawn:
    D3D8 AABBCCDDAABB 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
  SpawnLoop:
    D3D8 C 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 C 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 D 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 D 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 A 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 A 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 B 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8, 8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    D3D8 B 1 Bright {A_SpawnItem("PurpleFlare22Small",0,0); A_SpawnItemEx("DukinatorProjectileTrail2");}
    TNT1 A 0 A_JumpIfCloser(36, "Vanish")
    TNT1 A 0 A_FaceTarget(8)
    TNT1 A 0 A_ChangeVelocity(pspd * cos(angle), pspd * sin(angle), pspd * sin(-pitch), CVF_REPLACE)
    Loop
  Death:
    TNT1 AAAAA 0 A_CustomMissile ("PurplePlasmaParticle", 0, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    TNT1 A 0 A_Explode(20, 96, 0, 0, 0)
    D3D8 EF 3 Bright A_SpawnItem("PurpleFlare22",0,0)
    TNT1 AAA 0 A_CustomMissile ("OldschoolRocketSmokeTrail3", 2, 0, random[RIDFX](0, 360), 2, random[RIDFX](0, 360))
    D3D8 GHIJ 3 Bright
    Stop
  Vanish:
    TNT1 A 1
    Stop
  }
}

Actor DukinatorProjectileTrail2
{
  Scale 0.75
  Renderstyle Add
  +CLIENTSIDEONLY
  +NOINTERACTION
  +THRUGHOST
  States
  {
  Spawn:
    D3D8 A 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 A 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 B 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 B 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 C 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 C 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 D 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    D3D8 D 1 Bright A_FadeOut(0.075)
    TNT1 A 0 A_SetScale(scalex - 0.05, scaley - 0.05)
    Loop
  }
}