
Actor "DukebotPickup" : CustomInventory 19150
{
  Inventory.PickupMessage "$D3D_DUKEBOT"
  Inventory.Amount 1
  Inventory.MaxAmount 1
  +INVENTORY.IGNORESKILL
  +COUNTITEM
  Scale 0.60
  states
  {
  Spawn:
	HOLO ABCD 4
	Loop
  Pickup:
	TNT1 A 0 A_JumpIfInventory("Dukebot1Inventory",1,6)
	TNT1 A 0 A_GiveInventory("Dukebot1Inventory", 1)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 0 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	TNT1 A 0 A_SetInventory("Dukebot1Type", random[RIDPLAYER](1,4))
	TNT1 A 1 A_GiveInventory("Duke_Bot", 1)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Inventory",1,6)
	TNT1 A 0 A_GiveInventory("Dukebot2Inventory", 1)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 0 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	TNT1 A 0 A_SetInventory("Dukebot2Type", random[RIDPLAYER](1,4))
	TNT1 A 1 A_GiveInventory("Duke_Bot", 1)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Inventory",1,6)
	TNT1 A 0 A_GiveInventory("Dukebot3Inventory", 1)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 0 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	TNT1 A 0 A_SetInventory("Dukebot3Type", random[RIDPLAYER](1,4))
	TNT1 A 1 A_GiveInventory("Duke_Bot", 1)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Inventory",1,6)
	TNT1 A 0 A_GiveInventory("Dukebot4Inventory", 1)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 0 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	TNT1 A 0 A_SetInventory("Dukebot4Type", random[RIDPLAYER](1,4))
	TNT1 A 1 A_GiveInventory("Duke_Bot", 1)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Duration",25,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Duration",25,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Duration",25,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Duration",25,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Duration",50,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Duration",50,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Duration",50,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Duration",50,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Health",FAS_DukebotHealth*0.25,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Health",FAS_DukebotHealth*0.25,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Health",FAS_DukebotHealth*0.25,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Health",FAS_DukebotHealth*0.25,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Health",FAS_DukebotHealth*0.50,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Health",FAS_DukebotHealth*0.50,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Health",FAS_DukebotHealth*0.50,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Health",FAS_DukebotHealth*0.50,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Duration",75,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Duration",75,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Duration",75,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Duration",75,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Health",FAS_DukebotHealth*0.75,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Health",FAS_DukebotHealth*0.75,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Health",FAS_DukebotHealth*0.75,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Health",FAS_DukebotHealth*0.75,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 0 A_JumpIfInventory("Dukebot1Duration",100,3)
	TNT1 A 0 A_GiveInventory("Dukebot1Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot1Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Duration",100,3)
	TNT1 A 0 A_GiveInventory("Dukebot2Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot2Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Duration",100,3)
	TNT1 A 0 A_GiveInventory("Dukebot3Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot3Health", FAS_DukebotHealth)
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Duration",100,3)
	TNT1 A 0 A_GiveInventory("Dukebot4Duration", 100)
	TNT1 A 1 A_GiveInventory("Dukebot4Health", FAS_DukebotHealth)
	Stop

	TNT1 A 1
	fail
  }
}

Actor Duke_Bot : CustomInventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 4
  Inventory.Icon HOLODUKE
  +INVENTORY.INVBAR
  +INVENTORY.IGNORESKILL
  Inventory.InterHubAmount 4
  +INVENTORY.PERSISTENTPOWER
  Scale 0.60
  Tag "Duke Bot"
  states
  {
  Spawn:
	HOLO ABCD 4
	Loop
  Use:
	TNT1 A 0 A_JumpIfInventory("Dukebot1Inventory",1,2)
	TNT1 A 0 A_Jump(256,7)
	TNT1 A 0 A_JumpIfInventory("Dukebot1Active",1,6)
	TNT1 A 0 { If(A_SpawnItemEX("Dukebot1",10,0,10,0,0,0,0,SXF_SETMASTER)==0) {Return state("NoSpawn");} else {Return state("");} }
	TNT1 A 0 A_GiveInventory("Dukebot1Active", 1)
	TNT1 A 0 A_GiveInventory("Retrieve_Duke_Bots", 1)
	TNT1 A 0 A_PlaySound("misc/teleport")
	TNT1 A 1 A_SpawnItemEX("DukeTeleportFog")
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot2Inventory",1,2)
	TNT1 A 0 A_Jump(256,7)
	TNT1 A 0 A_JumpIfInventory("Dukebot2Active",1,6)
	TNT1 A 0 { If(A_SpawnItemEX("Dukebot2",10,0,10,0,0,0,0,SXF_SETMASTER)==0) {Return state("NoSpawn");} else {Return state("");} }
	TNT1 A 0 A_GiveInventory("Dukebot2Active", 1)
	TNT1 A 0 A_GiveInventory("Retrieve_Duke_Bots", 1)
	TNT1 A 0 A_PlaySound("misc/teleport")
	TNT1 A 1 A_SpawnItemEX("DukeTeleportFog")
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot3Inventory",1,2)
	TNT1 A 0 A_Jump(256,7)
	TNT1 A 0 A_JumpIfInventory("Dukebot3Active",1,6)
	TNT1 A 0 { If(A_SpawnItemEX("Dukebot3",10,0,10,0,0,0,0,SXF_SETMASTER)==0) {Return state("NoSpawn");} else {Return state("");} }
	TNT1 A 0 A_GiveInventory("Dukebot3Active", 1)
	TNT1 A 0 A_GiveInventory("Retrieve_Duke_Bots", 1)
	TNT1 A 0 A_PlaySound("misc/teleport")
	TNT1 A 1 A_SpawnItemEX("DukeTeleportFog")
	Stop
	TNT1 A 0 A_JumpIfInventory("Dukebot4Inventory",1,2)
	TNT1 A 0 A_Jump(256,7)
	TNT1 A 0 A_JumpIfInventory("Dukebot4Active",1,6)
	TNT1 A 0 { If(A_SpawnItemEX("Dukebot4",10,0,10,0,0,0,0,SXF_SETMASTER)==0) {Return state("NoSpawn");} else {Return state("");} }
	TNT1 A 0 A_GiveInventory("Dukebot4Active", 1)
	TNT1 A 0 A_GiveInventory("Retrieve_Duke_Bots", 1)
	TNT1 A 0 A_PlaySound("misc/teleport")
	TNT1 A 0 A_SpawnItemEX("DukeTeleportFog")
	TNT1 A 1
	Stop
  NoSpawn:
	TNT1 A 1
	Fail
  }
}

Actor Retrieve_Duke_Bots : CustomInventory
{
  Inventory.Amount 1
  Inventory.MaxAmount 1
  Inventory.Icon HOLODUKR
  +INVENTORY.INVBAR
  +INVENTORY.IGNORESKILL
  Scale 0.60
  Tag "Retrieve Duke Bots"
  states
  {
  Spawn:
	HOLO ABCD 4
	Loop
  Use:
	TNT1 A 0 A_JumpIfInventory("Dukebot1Active",1,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_GiveInventory("Dukebot1Retrieve", 1)

	TNT1 A 0 A_JumpIfInventory("Dukebot2Active",1,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_GiveInventory("Dukebot2Retrieve", 1)

	TNT1 A 0 A_JumpIfInventory("Dukebot3Active",1,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_GiveInventory("Dukebot3Retrieve", 1)

	TNT1 A 0 A_JumpIfInventory("Dukebot4Active",1,2)
	TNT1 A 0 A_Jump(256,2)
	TNT1 A 0 A_GiveInventory("Dukebot4Retrieve", 1)

	TNT1 A 1
	Stop
  }
}

ACTOR Dukebot1Inventory : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot1Duration : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR Dukebot1Active : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR
    -COUNTITEM
}

ACTOR Dukebot1Retrieve : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot1Type : Inventory
{
    +INVENTORY.IGNORESKILL
    Inventory.InterHubAmount 4
    +INVENTORY.PERSISTENTPOWER
    Inventory.MaxAmount 4
}

ACTOR Dukebot2Inventory : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot2Duration : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR Dukebot2Active : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR
    -COUNTITEM
}

ACTOR Dukebot2Retrieve : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot2Type : Inventory
{
    +INVENTORY.IGNORESKILL
    Inventory.InterHubAmount 4
    +INVENTORY.PERSISTENTPOWER
    Inventory.MaxAmount 4
}

ACTOR Dukebot3Inventory : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot3Duration : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR Dukebot3Active : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR
    -COUNTITEM
}

ACTOR Dukebot3Retrieve : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot3Type : Inventory
{
    +INVENTORY.IGNORESKILL
    Inventory.InterHubAmount 4
    +INVENTORY.PERSISTENTPOWER
    Inventory.MaxAmount 4
}

ACTOR Dukebot4Inventory : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot4Duration : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 100
}

ACTOR Dukebot4Active : PuzzleItem
{	
    Inventory.MaxAmount 1		
    -INVENTORY.INVBAR
    -COUNTITEM
}

ACTOR Dukebot4Retrieve : Inventory
{	
    Inventory.MaxAmount 1		
}

ACTOR Dukebot4Type : Inventory
{
    +INVENTORY.IGNORESKILL
    Inventory.InterHubAmount 4
    +INVENTORY.PERSISTENTPOWER
    Inventory.MaxAmount 4
}

actor Dukebot1 : ZDukebot
{
  Speed 20
  Health 100
  Radius 16
  Height 56
  Mass 1000
  scale 0.7
  Monster
  +DROPOFF
  +NODROPOFF
  +FLOORCLIP
  -TELESTOMP
  +NOTELESTOMP
  +LOOKALLAROUND
  +MISSILEMORE
  +MISSILEEVENMORE
  +FRIENDLY
  +NOBLOCKMONST
  -AVOIDMELEE
  +NOTAUTOAIMED
  Species "Dukes"
  +THRUSPECIES
  +MTHRUSPECIES
  +DONTHARMSPECIES
  +NOINFIGHTSPECIES
  +DONTHARMCLASS
  -HARMFRIENDS
  painchance 64
  painchance "Fire", 64
  painchance "BulletFlame", 64
  Painchance "Shrinker", 256
  damagefactor "Bullet", 0.0
  damagefactor "Chaingun", 0.0
  damagefactor "FireChaingun", 0.0
  damagefactor "Shotgun", 0.0
  damagefactor "ExplosiveShotgun", 0.0
  damagefactor "SSG", 0.0
  damagefactor "MightyBoot", 0.0
  damagefactor "AlienzShrinker", 0.0
  damagefactor "Shrinkerhit", 0.0
  WoundHealth 10
  attacksound "dukebot/attack"
  painsound "dukebot/pain"
  deathsound "dukebot/death"
//  activesound "duke/weaponup"
  Damage (30)
  meleethreshold 72
  meleerange 56
  MaxStepHeight 52
  MaxDropOffHeight 52
  +INVULNERABLE
  +NODAMAGE
  +NOPAIN
  +THRUACTORS
  +GHOST
  +NORADIUSDMG
  +DONTTHRUST
  ThruBits 1
  States
  {
  Spawn:
    DUKE A 0
    "####" "#" 0 A_BeginDukebot("Dukebot1Health", "Dukebot1Duration", "Dukebot1Active", "Dukebot1Inventory", "Dukebot1Retrieve", "Dukebot1Type")
    "####" "#" 0 A_PlaySound("duke/weaponup")
    Goto See
  Idle:
    DUKE AAAAA 5 A_Look
    Goto See
  See:
    "####" "#" 0 A_TakeInventory("Attacking",1)
    "####" "#" 0 A_JumpIfInventory("NoShrinkerDamage",1,2)
    "####" "#" 0 A_JumpIfInventory("GettingSlimed",1,"Melee")	
    "####" "#" 0 A_CheckFlag("GHOST", 2, AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_ClearTarget
    "####" "#" 0 A_Jump(128, "SeeBoss")
    "####" "#" 0 A_Jump(64, "See2")
    "####" "#" 0 A_Jump(16,"Left","Right")
    "####" "#" 0 A_CheckFlag("BOSS", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("SeeBoss", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 0)
    DUKE CC 2 A_Chase
    DUKE DD 2 A_Chase
    DUKE EE 2 A_Chase
    DUKE FF 2 A_Chase
    Loop
  See2:
    "####" "#" 0 A_CheckFlag("BOSS", "See2Boss", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "See2Boss", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("See2Boss", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 0)
    DUKE CC 1 A_Chase("","")
    DUKE C 2 A_Chase("","")
    DUKE DD 1 A_Chase("","")
    DUKE D 2 A_Chase("","")
    DUKE EE 1 A_Chase("","")
    DUKE E 2 A_Chase("","")
    DUKE FF 1 A_Chase
    DUKE F 2 A_Chase
    Goto See
  Left:
    "####" "#" 0 A_CheckFlag("BOSS", "LeftBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "LeftBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("LeftBoss", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 0)
    DUKE C 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase
    DUKE D 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase
    DUKE E 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase
    DUKE F 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase
    "####" "#" 0 A_Stop
    Goto See
  Right:
    "####" "#" 0 A_CheckFlag("BOSS", "RightBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "RightBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("RightBoss", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 0)
    DUKE C 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase
    DUKE D 4 ThrustThing(angle*256/360+64, 8, 0, 0) 
    "####" "#" 0 A_Chase
    DUKE E 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase
    DUKE F 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase
    "####" "#" 0 A_Stop
    Goto See
  SeeBoss:
    "####" "#" 0 A_CheckFlag("GHOST", 2, AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_ClearTarget
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 1)
    DUKE CC 2 A_Chase("","Missile")
    DUKE DD 2 A_Chase("","Missile")
    DUKE EE 2 A_Chase("","Missile")
    DUKE FF 2 A_Chase("","Missile")
    Goto See
  See2Boss:
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 1)
    DUKE CC 1 A_Chase("","")
    DUKE C 2 A_Chase("","")
    DUKE DD 1 A_Chase("","")
    DUKE D 2 A_Chase("","")
    DUKE EE 1 A_Chase("","")
    DUKE E 2 A_Chase("","")
    DUKE FF 1 A_Chase("","Missile")
    DUKE F 2 A_Chase("","Missile")
    Goto See
  LeftBoss:
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 1)
    DUKE C 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    DUKE D 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    DUKE E 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    DUKE F 4 ThrustThing(angle*256/360+192, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    "####" "#" 0 A_Stop
    Goto See
  RightBoss:
    "####" "#" 0 A_ChangeFlag("AVOIDMELEE", 1)
    DUKE C 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    DUKE D 4 ThrustThing(angle*256/360+64, 8, 0, 0) 
    "####" "#" 0 A_Chase("","Missile")
    DUKE E 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    DUKE F 4 ThrustThing(angle*256/360+64, 8, 0, 0)
    "####" "#" 0 A_Chase("","Missile")
    "####" "#" 0 A_Stop
    Goto See
  Melee:
    "####" "#" 0 A_JumpIfLowerScale("See")
    "####" "#" 0 A_GiveInventory("Attacking",1)
    "####" "#" 0 A_Jump(128,2)
    "####" "#" 0 A_JumpIfInventory("GettingSlimed",1,"Missile")
    DUKE G 7
    DUKE H 6 A_CustomMeleeAttack(FAS_DukeKickDamage,"duke/kick","duke/kick","MightyBoot")
    DUKE G 7
    "####" "#" 0 A_Jump(224,"Missile")
    goto See
  Missile:
    "####" "#" 0 A_JumpIfLowerScale("See")
    "####" "#" 0 A_GiveInventory("Attacking",1)
    "####" "#" 0 A_MissileType(1, "MissileBullet")
    "####" "#" 0 A_MissileType(2, "MissileShotgun")
    "####" "#" 0 A_MissileType(3, "MissileSSG")
    "####" "#" 0 A_MissileType(4, "MissileChaingun")
  MissileBullet:
    "####" "#" 0 A_Jump(192, "MissileBulletRight", "MissileBulletLeft")
    "####" "#" 0 A_Jump(96, "MissileBulletFront")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 3 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE A 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 3 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE A 3 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 3 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE A 3
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileBullet
  MissileBulletFront:
    "####" "#" 0 A_CheckFlag("BOSS", "MissileBulletBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "MissileBulletBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("MissileBulletBack", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE E 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE E 1 bright A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE C 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE C 1 bright A_Recoil(-1)
    DUKE A 2 A_FaceTarget
    DUKE A 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileBullet
  MissileBulletBack:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE A 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE E 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE E 1 bright A_Recoil(1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE C 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    DUKE C 1 bright A_Recoil(1)
    DUKE A 2 A_FaceTarget
    DUKE A 1 A_Recoil(1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileBullet
  MissileBulletLeft:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE E 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE C 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    DUKE A 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileBullet
  MissileBulletRight:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE E 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("pistol/shoot", 1)
    DUKE C 2 bright A_CustomMissile("DukebotBullet", 45, 15, random[RIDMONSTERAT](-3, 3), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("9mmSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    DUKE A 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileBullet
  MissileShotgun:
    "####" "#" 0 A_Jump(192, "MissileShotgunRight", "MissileShotgunLeft")
    "####" "#" 0 A_Jump(96, "MissileShotgunFront")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("shotgun/shoot", 1)
    "####" "#######" 0 A_CustomMissile("DukebotShotgun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 9 bright
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE A 6
    "####" "#" 0 A_Jump(192, "PumpRight", "PumpLeft")
    "####" "#" 0 A_Jump(96, "PumpFront")
    "####" "#" 0 A_Jump(256, "Pump")
  Pump:
    DUKE A 8 A_PlaySound("shotgun/pump")
    "####" "#" 0 A_SpawnItem ("ShotCaseSpawn", 0, 30, 0)
    DUKE A 6
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileShotgun
  MissileShotgunFront:
    "####" "#" 0 A_CheckFlag("BOSS", "MissileShotgunBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "MissileShotgunBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("MissileShotgunBack", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("shotgun/shoot", 1)
    "####" "#######" 0 A_CustomMissile("DukebotShotgun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "PumpRight", "PumpLeft")
    "####" "#" 0 A_Jump(96, "PumpFront")
    "####" "#" 0 A_Jump(256, "Pump")
  PumpFront:
    "####" "#" 0 A_CheckFlag("BOSS", "PumpBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "PumpBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("PumpBack", "Slimers", AAPTR_TARGET)
    DUKE E 3 A_PlaySound("shotgun/pump")
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_SpawnItem ("ShotCaseSpawn", 0, 30, 0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileShotgun
  MissileShotgunBack:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("shotgun/shoot", 1)
    "####" "#######" 0 A_CustomMissile("DukebotShotgun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(1)
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(1)
    DUKE A 2 bright
    DUKE A 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_Jump(192, "PumpRight", "PumpLeft")
    "####" "#" 0 A_Jump(96, "PumpFront")
    "####" "#" 0 A_Jump(256, "Pump")
  PumpBack:
    DUKE E 3 A_PlaySound("shotgun/pump")
    DUKE E 1 A_Recoil(1)
    DUKE C 3 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_SpawnItem ("ShotCaseSpawn", 0, 30, 0)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileShotgun
  MissileShotgunLeft:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("shotgun/shoot", 1)
    "####" "#######" 0 A_CustomMissile("DukebotShotgun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "PumpRight", "PumpLeft")
    "####" "#" 0 A_Jump(96, "PumpFront")
    "####" "#" 0 A_Jump(256, "Pump")
  PumpLeft:
    DUKE E 3 A_PlaySound("shotgun/pump")
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_SpawnItem ("ShotCaseSpawn", 0, 30, 0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileShotgun
  MissileShotgunRight:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("shotgun/shoot", 1)
    "####" "#######" 0 A_CustomMissile("DukebotShotgun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    DUKE A 2 bright
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "PumpRight", "PumpLeft")
    "####" "#" 0 A_Jump(96, "PumpFront")
    "####" "#" 0 A_Jump(256, "Pump")
  PumpRight:
    DUKE E 3 A_PlaySound("shotgun/pump")
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_SpawnItem ("ShotCaseSpawn", 0, 30, 0)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileShotgun
  MissileSSG:
    "####" "#" 0 A_Jump(192, "MissileSSGRight", "MissileSSGLeft")
    "####" "#" 0 A_Jump(96, "MissileSSGFront")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("SuperShotgun/Shoot", 1)
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 2 bright
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE A 7
    DUKE A 6
    "####" "#" 0 A_PlaySound("SuperShotgun/Reload1")
    "####" "##" 0 A_SpawnItem ("SSGCaseSpawner", 0, 30, 0)
    DUKE A 6
    "####" "#" 0 A_Jump(192, "Reload1Right", "Reload1Left")
    "####" "#" 0 A_Jump(96, "Reload1Front")
    "####" "#" 0 A_Jump(256, "Reload1")
  Reload1:
    DUKE A 10
    DUKE A 10 A_PlaySound("SuperShotgun/Load")
    "####" "#" 0 A_Jump(192, "Reload2Right", "Reload2Left")
    "####" "#" 0 A_Jump(96, "Reload2Front")
    "####" "#" 0 A_Jump(256, "Reload2")
  Reload2:
    DUKE A 4
    DUKE A 10 A_PlaySound("SuperShotgun/Reload2")
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileSSG
  MissileSSGFront:
    "####" "#" 0 A_CheckFlag("BOSS", "MissileSSGBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "MissileSSGBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("MissileSSGBack", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("SuperShotgun/Shoot", 1)
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 4 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    DUKE E 3 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_PlaySound("SuperShotgun/Reload1")
    "####" "##" 0 A_SpawnItem ("SSGCaseSpawner", 0, 30, 0)
    DUKE C 5 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload1Right", "Reload1Left")
    "####" "#" 0 A_Jump(96, "Reload1Front")
    "####" "#" 0 A_Jump(256, "Reload1")
  Reload1Front:
    "####" "#" 0 A_CheckFlag("BOSS", "Reload1Back", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "Reload1Back", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("Reload1Back", "Slimers", AAPTR_TARGET)
    DUKE E 4 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    DUKE E 4 A_PlaySound("SuperShotgun/Load")
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload2Right", "Reload2Left")
    "####" "#" 0 A_Jump(96, "Reload2Front")
    "####" "#" 0 A_Jump(256, "Reload2")
  Reload2Front:
    "####" "#" 0 A_CheckFlag("BOSS", "Reload2Back", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "Reload2Back", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("Reload2Back", "Slimers", AAPTR_TARGET)
    DUKE E 3 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_PlaySound("SuperShotgun/Reload2")
    DUKE C 1 A_Recoil(-1)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileSSG
  MissileSSGBack:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("SuperShotgun/Shoot", 1)
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright
    DUKE A 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 4 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 3 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    DUKE E 3 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    "####" "#" 0 A_PlaySound("SuperShotgun/Reload1")
    "####" "##" 0 A_SpawnItem ("SSGCaseSpawner", 0, 30, 0)
    DUKE C 5 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_Jump(192, "Reload1Right", "Reload1Left")
    "####" "#" 0 A_Jump(96, "Reload1Front")
    "####" "#" 0 A_Jump(256, "Reload1")
  Reload1Back:
    DUKE E 4 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 4 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    DUKE E 4 A_PlaySound("SuperShotgun/Load")
    DUKE E 1 A_Recoil(1)
    DUKE C 4 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_Jump(192, "Reload2Right", "Reload2Left")
    "####" "#" 0 A_Jump(96, "Reload2Front")
    "####" "#" 0 A_Jump(256, "Reload2")
  Reload2Back:
    DUKE E 3 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 3 A_PlaySound("SuperShotgun/Reload2")
    DUKE C 1 A_Recoil(1)
    DUKE E 2 A_FaceTarget
    DUKE E 1 A_Recoil(1)
    DUKE C 2 A_FaceTarget
    DUKE C 1 A_Recoil(1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileSSG
  MissileSSGLeft:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("SuperShotgun/Shoot", 1)
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_PlaySound("SuperShotgun/Reload1")
    "####" "##" 0 A_SpawnItem ("SSGCaseSpawner", 0, 30, 0)
    DUKE C 5 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload1Right", "Reload1Left")
    "####" "#" 0 A_Jump(96, "Reload1Front")
    "####" "#" 0 A_Jump(256, "Reload1")
  Reload1Left:
    DUKE E 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 4 A_PlaySound("SuperShotgun/Load")
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload2Right", "Reload2Left")
    "####" "#" 0 A_Jump(96, "Reload2Front")
    "####" "#" 0 A_Jump(256, "Reload2")
  Reload2Left:
    DUKE E 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_PlaySound("SuperShotgun/Reload2")
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileSSG
  MissileSSGRight:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashMedium",32,0,0)
    "####" "#" 0 A_PlaySound("SuperShotgun/Shoot", 1)
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "##########" 0 A_CustomMissile("DukebotSSG", 45, 15, random[RIDMONSTERAT](-9, 9), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    DUKE E 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    "####" "#" 0 A_PlaySound("SuperShotgun/Reload1")
    "####" "##" 0 A_SpawnItem ("SSGCaseSpawner", 0, 30, 0)
    DUKE C 5 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload1Right", "Reload1Left")
    "####" "#" 0 A_Jump(96, "Reload1Front")
    "####" "#" 0 A_Jump(256, "Reload1")
  Reload1Right:
    DUKE E 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 4 A_PlaySound("SuperShotgun/Load")
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 4 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_Jump(192, "Reload2Right", "Reload2Left")
    "####" "#" 0 A_Jump(96, "Reload2Front")
    "####" "#" 0 A_Jump(256, "Reload2")
  Reload2Right:
    DUKE E 3 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 3 A_PlaySound("SuperShotgun/Reload2")
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    DUKE E 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 A_Recoil(-1)
    DUKE C 2 A_FaceTarget
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 A_Recoil(-1)
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileSSG
  MissileChaingun:
    "####" "#" 0 A_Jump(192, "MissileChaingunRight", "MissileChaingunLeft")
    "####" "#" 0 A_Jump(96, "MissileChaingunFront")
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 3 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileChaingun
  MissileChaingunFront:
    "####" "#" 0 A_CheckFlag("BOSS", "MissileChaingunBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckFlag("NOBLOOD", "MissileChaingunBack", AAPTR_TARGET)
    "####" "#" 0 A_CheckSpecies("MissileChaingunBack", "Slimers", AAPTR_TARGET)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileChaingun
  MissileChaingunBack:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE A 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE E 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE E 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE C 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    DUKE C 1 bright A_Recoil(1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileChaingun
  MissileChaingunLeft:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+192, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileChaingun
  MissileChaingunRight:
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 2 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_CustomMissile("MonsterAlert",0,0,0)
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE A 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE A 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE E 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE E 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_FaceTarget
    "####" "#" 0 A_CustomMissile("MuzzleFlashSmall",32,0,0)
    "####" "#" 0 A_PlaySound("chaingun/shoot", 1)
    DUKE C 1 bright A_CustomMissile("DukebotChaingun", 45, 15, random[RIDMONSTERAT](-6, 6), CMF_OFFSETPITCH, random[RIDMONSTERAT](-1, 1))
    "####" "#" 0 ThrustThing(angle*256/360+64, 3, 0, 0)
    DUKE C 1 bright A_Recoil(-1)
    "####" "#" 0 A_CustomMissile("50CaseSpawnLeft", 26, 0, -60, 2, random[RIDFX](20, 55))
    "####" "#" 0 A_MonsterRefire(40,"SeeBoss")
    "####" "#" 0 A_CheckFlag("GHOST", "SeeBoss", AAPTR_TARGET)
    "####" "#" 0 A_CheckLOF(2, CLOFF_SKIPFRIEND|CLOFF_SKIPOBJECT|CLOFF_IGNOREGHOST|CLOFF_MUSTBESOLID|CLOFF_CHECKPARTIAL)
    "####" "#" 0 A_Jump(256,"SeeBoss")
    "####" "#" 0
    goto MissileChaingun
  Pain:
    "####" "#" 0 A_PlaySound("bullet/hit",7)
    "####" "#" 0 A_Jump(128,"Pain2")
    DUKE O 3 {if (health > FAS_DukebotHealth*0.75) {A_PlaySound("dukebot/pain",2);} else {A_PlaySound("duke/dying",2);}}
    "####" "#" 0 A_Jump(128, "RightBoss", "LeftBoss")
    DUKE O 3
    Goto See
  Pain2:
    DUKK O 3 {if (health > FAS_DukebotHealth*0.75) {A_PlaySound("dukebot/pain",2);} else {A_PlaySound("duke/dying",2);}}
    "####" "#" 0 A_Jump(128, "RightBoss", "LeftBoss")
    DUKK O 3
    Goto See
  Pain.Shrinker:
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    "####" "#" 5 A_GiveInventory("Attacking",1)
    "####" "#" 0 A_GiveInventory ("NoShrinkerDamage", 1)
    "####" "#" 0 A_GiveInventory ("GettingSlimed", 1)
    "####" "#" 0 A_CustomMissile("ShrinkEffect",8,0,0)
  Shrink:
    "####" "#" 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_ShrinkBot
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  Unshrink:
    "####" "#" 0 A_ChangeFlag("NOPAIN", 1)
    "####" "#" 0 A_SetSizeHeight
    "####" "#" 0 A_ChangeFlag("SOLID",1)
    "####" "#" 0 A_PlaySound("shrinker/shrink")
    "####" "#" 0 A_CustomMissile("ShrinkEffect",32,0,0)
  Unshrink2:
    "####" "#" 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_JumpIfLowerScale("Unshrink2")
    "####" "#" 0 A_UnshrinkBot
    "####" "#" 0 A_TakeInventory ("GettingSlimed", 1)
    "####" "#" 0 A_TakeInventory ("NoShrinkerDamage", 1)
    "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
    goto See
  Death.Expander:
    "####" "#" 0 A_JumpIfLowerScale("XDeath")
    "####" "#" 0 A_ChangeFlag("DONTCORPSE",1)
    "####" "#" 0 A_PlaySound("expander/expand")
    "####" "#" 0 {A_UnsetShootable; A_UnsetSolid;}
  Expand:
    "####" "#" 1 A_SetScale(ScaleX + 0.01, ScaleY + 0.01)
    "####" "#" 0 A_JumpIf(ScaleX < 1.15 && ScaleY < 1.15, "Expand")
    "####" "#####" 1
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", FALSE, 1.0, 1.0)
    goto XDeath
  Ice:
    "####" "#" 0 A_JumpIfLowerScale("XDeath")
    "####" "#" 5 A_GenericFreezeDeath
    "####" "#" 1 A_FreezeDeathChunks
    wait
  Death:
    "####" "#" 0 A_JumpIfLowerScale("XDeath")
    DUKE O 7 A_Scream
    DUKE P 7
    DUKE Q 7 A_NoBlocking
    DUKE RS 7
    DUKE T 1 A_SpawnItemEx("DeadDukeNukemFoe", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    "####" "#" 0 A_SpawnItemEx("DukeRedBloodPool")
    Stop
  Death.Fire:
  Death.FireChaingun:
  Death.BulletFlame:
    "####" "#" 0 A_JumpIfLowerScale("XDeath")
    "####" "#" 0 A_SetTranslation("Burned")
    DUKE O 7 {A_Scream; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKE P 7 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    DUKE Q 7 {A_NoBlocking; A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90));}
    DUKE RS 7 A_CustomMissile("FlameTrailsSmall1", 0, 0, random[RIDFX](0, 360), CMF_AIMDIRECTION, random[RIDFX](60, 90))
    DUKE T 1 A_SpawnItemEx("DeadDukeNukemFoe", 0,0,0,0,0,0,0, SXF_TRANSFERTRANSLATION|SXF_TRANSFERSTENCILCOL)
    Stop
  XDeath:
  Death.BossStomp:
  Death.ExplosiveShotgun:
  Death.ShellExplosion:
    "####" "#" 0 A_XScream
    "####" "#" 1
    "####" "#" 0 A_NoBlocking
    "####" "#" 0 A_JumpIfLowerScale("Deathcont")
    "####" "#" 0 A_SpawnDebris("DukeGibs1NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs2NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs3NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs4NF", FALSE, 1.0, 1.0)
  Deathcont:
    "####" "#" 0 A_SpawnDebris("DukeGibs5NF", FALSE, 1.0, 1.0)
    "####" "#" 0 A_SpawnDebris("DukeGibs6", FALSE, 1.0, 1.0)
    TNT1 A 1
    stop
  Death.Explosion:
  Death.RocketExplosion:
    "####" "#" 0 A_JumpIfLowerScale("XDeath")
    "####" "#" 0 A_XScream
    "####" "#" 1
    "####" "#" 0 A_NoBlocking
    "####" "#" 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)
    stop
  Death.Vanish:
    TNT1 A 1 A_SpawnItemEX("DukeTeleportFog")
    stop
  }
}

actor Dukebot2 : Dukebot1
{
  Translation "112:127=80:111"
  States
  {
  Spawn:
    DUKE A 0
    "####" "#" 0 A_BeginDukebot("Dukebot2Health", "Dukebot2Duration", "Dukebot2Active", "Dukebot2Inventory", "Dukebot2Retrieve", "Dukebot2Type")
    "####" "#" 0 A_PlaySound("duke/weaponup")
    Goto See
  }
}

actor Dukebot3 : Dukebot1
{
  Translation "112:127=16:47"
  States
  {
  Spawn:
    DUKE A 0
    "####" "#" 0 A_BeginDukebot("Dukebot3Health", "Dukebot3Duration", "Dukebot3Active", "Dukebot3Inventory", "Dukebot3Retrieve", "Dukebot3Type")
    "####" "#" 0 A_PlaySound("duke/weaponup")
    Goto See
  }
}

actor Dukebot4 : Dukebot1
{
  Translation "112:127=192:207"
  States
  {
  Spawn:
    DUKE A 0
    "####" "#" 0 A_BeginDukebot("Dukebot4Health", "Dukebot4Duration", "Dukebot4Active", "Dukebot4Inventory", "Dukebot4Retrieve", "Dukebot4Type")
    "####" "#" 0 A_PlaySound("duke/weaponup")
    Goto See
  }
}