actor CycloidIncinerator : ZBaseActor 19120
{
  obituary "%o was annihilated by the Cycloid Incinerator."
  health 6000
  radius 40
  height 110
  mass 5000
  speed 12
  seesound "emperor/sight"
  painsound "emperor/pain"
  deathsound "emperor/death"
  activesound "emperor/active"
  MONSTER
  +FLOORCLIP
  scale 1.0
  damagefactor "Shrinker", 0.0
  damagefactor "Expander", 0.1
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  damagefactor "Explosion", 0.8
  damagefactor "RocketExplosion", 0.8
  damagefactor "ShellExplosion", 0.9
  damagefactor "Fire", 0.5
  damagefactor "BulletFlame", 0.84
  painchance 32
  painchance "MicrowaveBlast", 256
  +BOSS
  minmissilechance 1
  Species "CycloidIncineratorFireflys"
  +DOHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  WoundHealth 10
  states
  {
  Spawn:
    CYNC A 0
    "####" "#" 0 Thing_ChangeTID(0,1001)
    CYNC AA 10 A_Look
    loop
  See:
    "####" "#" 0 A_SetHeightOffset(0)
    CYNC A 1
    "####" "#" 0
    CYNC AABB 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("CycloidEmperorStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    CYNC CCDD 4 A_ChaseD3D
    "####" "#" 0 A_SpawnItemEx("CycloidEmperorStep",0,0,0,0,0,-10)
    "####" "#" 0 A_JumpIfCloser(120,"Stomp")
    loop
  Missile:
    "####" "#" 0 A_Jump(64,"Missile2")
    "####" "#" 0 A_JumpIfCloser(500,"Flamer")
    "####" "#" 0 A_FaceTarget
    CYNC F 25 A_PlayVoiceSoundPitch("","emperor/attack1",4)
    "####" "#" 0 A_FaceTarget
    CYNC E 6 bright 
    "####" "#" 0 A_FaceTarget
    CYNC E 6 bright A_CustomMissile("FireFlyBigFireBall",48,16,0,2,Random[RIDMONSTERAT](4,8))
    "####" "#" 0 A_FaceTarget
    CYNC F 6 bright 
    "####" "#" 0 A_FaceTarget
    CYNC F 6 bright A_CustomMissile("FireFlyBigFireBall",48,16,0,2,Random[RIDMONSTERAT](4,8))
    "####" "#" 0 A_FaceTarget
    CYNC E 6 bright 
    "####" "#" 0 A_FaceTarget
    CYNC E 6 bright A_CustomMissile("FireFlyBigFireBall",48,16,0,2,Random[RIDMONSTERAT](4,8))
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    "####" "#" 0 A_JumpIfCloser(500,"See")
    goto Missile+4
  Missile2:
    "####" "#" 0 A_JumpIfCloser(180,"Stomp")
    "####" "#" 0 A_CheckChildren(10, "Missile")
    "####" "#" 0 A_SetHeightOffset(15)
    "####" "#" 0 A_FaceTarget
    CYNC G 35 A_PlayVoiceSoundPitch("","emperor/attack2",4)
    "####" "#" 0 A_SetHeightOffset(-10)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_SpawnChildren("CycloidIncineratorFirefly",0,0,50,-35,10,10,128)
    CYNC H 25 bright
    CYNC H 20 bright
    goto See
  Flamer:
    "####" "#" 0 A_JumpIfCloser(180,"Stomp")
    "####" "#" 0 A_FaceTarget
    CYNC F 25 A_PlayVoiceSoundPitch("","emperor/attack1",4)
    "####" "#" 0 A_JumpIfCloser(180,"Stomp")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC EEE 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC EEE 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC FFF 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC FFF 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC EEE 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CustomMissile("MuzzleFlashFast",48,16,0)
    "####" "#" 0 A_PlaySound("duke/flame",0)
    "####" "#" 0 A_FaceTarget
    CYNC EEE 2 bright A_CustomMissile("CycloidIncineratorFlameBreath",48,16,random[RIDMONSTERAT](-5,5))
    "####" "#" 0 A_CPosRefire
    "####" "#" 0 A_Jump(128,"See")
    "####" "#" 0 A_JumpIfCloser(500,2)
    "####" "#" 0 A_Jump(256,"See")
    "####" "#" 0
    goto Flamer+3
  Stomp:
    CYNC A 5 A_FaceTarget
    "####" "#" 0 A_Recoil(-5)
    CYNC D 7 A_FaceTarget
    "####" "#" 0 A_CustomMissile("CycloidEmperorStomp",10,0,0,0)
    CYNC AA 7
    Goto See
  Pain:
    "####" "#" 0 A_SetHeightOffset(0)
    "####" "#" 0 A_Jump(128,"Pain2")
    CYNC I 3
    CYNC I 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain2:
    CYNC R 3
    CYNC R 3 A_PlayVoiceSoundPitch("Pain")
    goto See
  Pain.MicrowaveBlast:
    "####" "#" 0 A_SetHeightOffset(0)
    CYNC I 1
    "####" "#" 0 A_CheckThump("Pain")
    loop
  Death:
    CYNC I 20 A_PlayVoiceSoundPitch("Death")
    CYNC J 10
    CYNC K 10 A_NoBlocking
    CYNC LMNOP 10
    CYNC Q 1 {A_BossDeath; A_SpawnItemEx("DeadCycloidIncinerator", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL|SXF_SETMASTER);}
    TNT1 A -1
    stop
  Wound.Ice:
    "####" "#" 0 A_Freeze("See")
    "####" "#" 0 {A_ChangeFlag("COUNTKILL",0); A_Die("BossDeath");}
    TNT1 A 1
    stop
  Death.BossDeath:
    "####" "#" 0 A_BossDeath
    TNT1 A 1
    Stop
  Death.RocketHeadshot:
    "####" "#" 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("DukeGibs5NF", 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("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    3YNC I 40 A_NoBlocking
    3YNC J 10
    3YNC K 10
    3YNC LMNOP 10
    3YNC Q 1 {A_BossDeath; A_SpawnItemEx("DeadCycloidIncineratorBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL);}
    stop
  }
}

actor DeadCycloidIncinerator : DeadDukeNukemLarge 19121
{
  Radius 55
  Height 45
  scale 1.0
  States
  {
  Spawn:
    CYNC Q -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadCycloidIncinerator", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    CYNC Q 5 A_GenericFreezeDeath
    CYNC Q 1 A_FreezeDeathChunks
    wait
  }
}

actor DeadCycloidIncineratorBehead : DeadCycloidIncinerator
{
  States
  {
  Spawn:
    3YNC Q -1
    Stop
  Death.Fire:
    "####" "#" 0 A_SetTranslation("Burned")
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_SpawnItemEx("DeadCycloidIncineratorBehead", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    TNT1 A 1
    Stop
  Ice:
    "####" "#" 0 Thing_ChangeTID(0,3500)
    3YNC Q 5 A_GenericFreezeDeath
    3YNC Q 1 A_FreezeDeathChunks
    wait
  }
}