// Compatibility for the custom Heretic campaign Terra Incognita by FireSeraphim. Done on request.

actor HealthBonus2 : HealPack0 9937
{
    Inventory.PickupMessage "$SAMSARA_HEALPACK_TI"
    Game Heretic
        
    States
    {
      Pickup:
        TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(SAMSARA_DECORATE, 22), "Infinite")
        TNT1 A 0 A_GiveInventory("FiniteHealth200", 2)
        stop

      Infinite:
        TNT1 A 0 A_GiveInventory("InfiniteHealth", 2)
        stop
    }
}

actor ArmorBonus2 : ArmorScrap 9938
{
    Inventory.PickupMessage "$SAMSARA_ARMORSCRAP_TI"
    Game Heretic
    Armor.SaveAmount 2
}

actor HexenBishop : RandomSpawner 7085//Bishop2 7085
{
    Game Heretic
    dropitem "Bishop2"
}

actor DoomDemon : RandomSpawner 7091
{   
    game Heretic
    dropitem "DoomDemon2"
}

actor DoomCacodemon2 : RandomSpawner 7087//Cacodemon 7087
{
    Game Heretic
    dropitem "Cacodemon2"
}

actor SuperCrossbow : CustomInventory 25102
{
    Game Heretic
    Spawnid 33
    -COUNTITEM
    -RANDOMIZE
    Inventory.PickupMessage "Picked up the Super Crossbow!"
    Inventory.PickupSound "nosoundforyoubitch"
    states
    {
      Spawn:
        WBOW B -1 BRIGHT
        loop

      Pickup:
        TNT1 A 0 A_JumpIfInventory("DoomguyClass",1,"PickupDoom")
        TNT1 A 0 A_JumpIfInventory("ChexClass",1,"PickupChex")
        TNT1 A 0 A_JumpIfInventory("CorvusClass",1,"PickupHeretic")
        TNT1 A 0 A_JumpIfInventory("WolfenClass",1,"PickupWolfen")
        TNT1 A 0 A_JumpIfInventory("HexenClass",1,"PickupHexen")
        TNT1 A 0 A_JumpIfInventory("DukeClass",1,"PickupDuke")
        TNT1 A 0 A_JumpIfInventory("MarathonClass",1,"PickupMarathon")
        WBOW A 1
        fail

      PickupHeretic:
        TNT1 A 0 A_PlaySound("heretic/weaponget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory("Super Crossbow")
        stop

      PickupChex:
        TNT1 A 0 A_PlaySound("chex/weaponget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory("Super Crossbow")
        stop

      PickupDoom:
        TNT1 A 0 A_PlaySound("doomguy/weaponget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory("Super Crossbow")
        stop

      PickupWolfen:
        TNT1 A 0 A_PlaySound("wolfen/weaponget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory(" Super Crossbow ")
        stop

      PickupHexen:
        TNT1 A 0 A_PlaySound("hexen/weaponget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory(" Super Crossbow ")
        stop

      PickupDuke:
        TNT1 A 0 A_JumpIfInventory("DukeTauntCooldown",1,"PickupDuke2")
        TNT1 A 0 A_JumpIfInventory("DukeBallgag",1,"PickupDuke2")
        TNT1 AA 0
        TNT1 A 0 A_PlaySoundEx("duke/intro19","soundslot7",0,0)
        TNT1 A 0 A_GiveInventory("DukeTauntCooldown",5)
        TNT1 A 0 ACS_ExecuteAlways(205)

      PickupDuke2:
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 A 0 A_PlaySound("duke/weaponget")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory("  Super Crossbow  ")
        stop

      PickupMarathon:
        TNT1 A 0 A_PlaySound("marathon/itemget")
        TNT1 A 0 A_Print("You got the Super Crossbow!")
        TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("WeaponSparkle",0,0,random(4,52),random(-2,2),random(-2,2),random(1,3),48,128)
        WBOW B 1 A_GiveInventory("Super Crossbow")
        stop

      PickupFail:
        WBOW B 1
        fail
    }
}

actor "Super Crossbow" : Weapon
{
    obituary "%k splattered %o with the Super Crossbow."
    radius 20
    height 16
    attacksound "weapons/sshotf"
    inventory.pickupmessage "SUPER CROSSBOW"
    weapon.selectionorder 400
    Weapon.SlotNumber 3
    weapon.ammotype "Shell"
    weapon.kickback 100
    weapon.ammouse 2
    weapon.ammogive 8
    states
    {
      Ready: 
        CRB2 ABC 6 A_WeaponReady
        loop

      Deselect:
        CRB2 ABC 1 A_Lower
        loop

      Select:
        CRB2 ABC 1 A_Raise
        loop

      Fire:
        CRB2 A 3 A_JumpIfInventory("PowerHereticTome",1,"FireTomed")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1",0,2,7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1",0,0,-7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,-10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,-10)
        CRB2 D 4
        CRB2 E 6
        CRB2 E 4 
        CRB2 F 6 
        CRB2 F 6
        CRB2 G 6 
        CRB2 G 3
        CRB2 H 1 
        CRB2 H 5 A_ReFire
        CRB2 A 4 A_ReFire
        goto Ready

      FireTomed:
        CRB2 A 3
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",0,2,7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",1,0,0,5)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",1,0,0,-5)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",0,0,-7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",-1,0,0,5)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX2",-1,0,0,-5)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,-10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,-10)
        CRB2 D 5
        CRB2 E 3
        CRB2 E 3 
        CRB2 F 3 
        CRB2 F 3
        CRB2 G 3 
        CRB2 G 2
        CRB2 H 0 
        CRB2 H 3 A_ReFire
        CRB2 A 2 A_ReFire
        goto Ready

      Flash:
        CRB2 I 4 bright A_Light1
        CRB2 J 3 bright A_Light2
        CRB2 J 0 bright A_Light0
        stop

      Spawn:
        WBOW B -1
        stop
    }
}

actor " Super Crossbow " : Weapon
{
    obituary "%k splattered %o with the Super Crossbow."
    radius 20
    height 16
    attacksound "weapons/sshotf"
    inventory.pickupmessage "SUPER CROSSBOW"
    weapon.selectionorder 400
    Weapon.SlotNumber 3
    weapon.ammotype "Clip"
    weapon.kickback 100
    weapon.ammouse 2
    weapon.ammogive 16
    states
    {
      Ready: 
        CRB2 ABC 6 A_WeaponReady
        loop

      Deselect:
        CRB2 ABC 1 A_Lower
        loop

      Select:
        CRB2 ABC 1 A_Raise
        loop

      Fire:
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1",0,2,7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1",0,0,-7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",2,0,0,-10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3",-2,0,0,-10)
        CRB2 D 4
        CRB2 E 6
        CRB2 E 4 
        CRB2 F 6 
        CRB2 F 6
        CRB2 G 6 
        CRB2 G 3
        CRB2 H 1 
        CRB2 H 5 A_ReFire
        CRB2 A 4 A_ReFire
        goto Ready

      Flash:
        CRB2 I 4 bright A_Light1
        CRB2 J 3 bright A_Light2
        CRB2 J 0 bright A_Light0
        stop

      Spawn:
        WBOW B -1
        stop
    }
}

actor "  Super Crossbow  " : Weapon
{
    obituary "%k splattered %o with the Super Crossbow."
    radius 20
    height 16
    attacksound "weapons/sshotf"
    Weapon.UpSound "duke/weaponget"
    inventory.pickupmessage "SUPER CROSSBOW"
    weapon.selectionorder 400
    Weapon.SlotNumber 3
    weapon.ammotype "Shell"
    weapon.kickback 100
    weapon.ammouse 2
    weapon.ammogive 8
    states
    {
      Ready: 
        CRB2 ABC 6 A_WeaponReady
        loop

      Deselect:
        CRB2 ABC 1 A_Lower
        loop

      Select:
        CRB2 ABC 1 A_Raise
        loop

      Fire:
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_PlaySound("weapons/bowshoot")
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1Duke",0,2,7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX1Duke",0,0,-7,0)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3Duke",2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3Duke",-2,0,0,10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3Duke",2,0,0,-10)
        CRB2 D 0 A_FireCustomMissile("CrossbowFX3Duke",-2,0,0,-10)
        CRB2 D 4
        CRB2 E 6
        CRB2 E 4 
        CRB2 F 6 
        CRB2 F 6
        CRB2 G 6 
        CRB2 G 3
        CRB2 H 1 
        CRB2 H 5 A_ReFire
        CRB2 A 4 A_ReFire
        goto Ready

      Flash:
        CRB2 I 4 bright A_Light1
        CRB2 J 3 bright A_Light2
        CRB2 J 0 bright A_Light0
        stop

      Spawn:
        WBOW B -1
        stop

      AltFire:
        TNT1 A 0 A_GiveInventory("DukeKicking",1)
        TNT1 A 0 ACS_ExecuteAlways(212,0,3)
        TNT1 A 0 A_GunFlash
        DKBT C 6 A_WeaponReady(12)
        TNT1 A 0 A_FireCustomMissile("DukeKickAttack")
        DKBT D 9 A_WeaponReady(12)
        DKBT C 3 A_WeaponReady(12)
        TNT1 A 0 A_Refire
        TNT1 A 0 A_TakeInventory("DukeKicking",9)
        DKBT C 1 A_WeaponReady(12)
        goto Ready

      AltFlash:  
        CRB2 A 20
        stop
        
      IntroTaunt:
        CRB2 AAAA 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 0 A_Lower

      IntroTaunt1:
        TNT1 AAAAAAAAAAAAA 0 A_Raise
        TNT1 A 0 A_JumpIfInventory("DukeBallgag",1,"IntroTaunt2")
        KNUX A 3
        KNUX B 3
        TNT1 A 0 A_JumpIfInventory("DukeBallgag",1,"IntroTaunt3")
        TNT1 A 0 A_PlaySoundEX("duke/introtaunt","SoundSlot7",0,0)
        KNUX C 3
        TNT1 A 0 A_GiveInventory("DukeTauntCooldown",5)
        TNT1 A 0 ACS_ExecuteAlways(205)
        KNUX D 3 A_PlayWeaponSound("duke/knuckles")
        KNUX C 3
        KNUX B 3
        KNUX A 3 A_TakeInventory("DukeReady",1)
        TNT1 A 0 A_PlayWeaponSound("duke/weaponget")
        KNUX AAAAAAAAAAAAAA 0 A_Lower
        goto Select

      IntroTaunt2:
        KNUX A 3
        KNUX B 3

      IntroTaunt3:
        KNUX C 3
        KNUX D 3 A_PlayWeaponSound("duke/knuckles")
        KNUX C 3
        KNUX B 3
        KNUX A 3 A_TakeInventory("DukeReady",1)
        TNT1 A 0 A_PlayWeaponSound("duke/weaponget")
        KNUX AAAAAAAAAAAAAA 0 A_Lower
        goto Select
        
      WaitingTaunt:
        CRB2 AAAA 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 1 A_Lower
        CRB2 A 0 A_Lower
        CRB2 A 0 A_Lower

      WaitingTaunt1:
        TNT1 AAAAAAAAAAAAA 0 A_Raise
        TNT1 A 0 A_JumpIfInventory("DukeBallgag",1,"IntroTaunt2")
        KNUX A 3
        KNUX B 3
        TNT1 A 0 A_JumpIfInventory("DukeBallgag",1,"IntroTaunt3")
        TNT1 A 0 A_PlaySoundEX("duke/waitingtoolong","SoundSlot7",0,0)
        KNUX C 3
        TNT1 A 0 A_GiveInventory("DukeTauntCooldown",5)
        TNT1 A 0 ACS_ExecuteAlways(205)
        KNUX D 3 A_PlayWeaponSound("duke/knuckles")
        KNUX C 3
        KNUX B 3
        KNUX A 3 A_TakeInventory("DukeWaiting",15)
        TNT1 A 0 A_PlayWeaponSound("duke/weaponget")
        KNUX AAAAAAAAAAAAAA 0 A_Lower
        goto Select

      WaitingTaunt2:
        KNUX A 3
        KNUX B 3

      WaitingTaunt3:
        KNUX C 3
        KNUX D 3 A_PlayWeaponSound("duke/knuckles")
        KNUX C 3
        KNUX B 3
        KNUX A 3 A_TakeInventory("DukeWaiting",15)
        TNT1 A 0 A_PlayWeaponSound("duke/weaponget")
        KNUX AAAAAAAAAAAAAA 0 A_Lower
        goto Select
        
    }
}

actor CrossbowFX1Duke : CrossbowFX1
{
    DamageType "DukeDamage"
}

actor CrossbowFX3Duke : CrossbowFX3
{
    DamageType "DukeDamage"
}

actor Herald 31267
{
    Game Heretic
    spawnid 114
    obituary "%o was splattered by a Herald of Doom."
    health 4000
    radius 40
    height 110
    mass 1000
    speed 15
    painchance 20
    seesound "cyber/sight"
    painsound "cyber/pain"
    deathsound "superdemon/death"
    activesound "cyber/active"
    MONSTER
    +FLOORCLIP
    +NORADIUSDMG
    +DONTMORPH
    +MISSILEMORE
    states
    {
      Spawn:
        SUPR AB 10 A_Look
        loop

      See:
        TNT1 A 0 A_JumpIfInventory("DukeBossSee",1,"See2")
        TNT1 A 0 A_GiveInventory("DukeBossSee",1)
        TNT1 A 0 A_GiveToTarget("DukeBossSightTaunt")

      See2:
        SUPR A 3 A_Hoof
        SUPR ABBCC 3 A_Chase
        SUPR D 3 A_Hoof
        SUPR D 3
        loop

      Missile:
        SUPR E 0 A_Jump (63, "Missile2")
        SUPR E 0 A_Jump (63, "Missile3")
        SUPR E 6 A_FaceTarget
        SUPR F 9 A_CustomMissile ("PhoenixFX1", 45, -35, 0)
        SUPR E 9 A_FaceTarget
        SUPR F 9 A_CustomMissile ("PhoenixFX1", 45, -35, 0)
        SUPR E 9 A_FaceTarget
        SUPR F 9 A_CustomMissile ("PhoenixFX1", 45, -35, 0)
        goto See

      Missile2:
        SUPR E 6 A_FaceTarget
        SUPR F 9 A_CustomMissile ("SeekerBall", 45, -35, 0)
        Goto See

      Missile3:
        SUPR E 6 A_FaceTarget
        SUPR F 9 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget
        SUPR F 2 A_CustomMissile ("BeastBall", 45, -35, 0)
        SUPR E 1 A_FaceTarget	
        goto See

      Pain:
        SUPR G 10 A_Pain
        goto See

      Death.DukeDamage:
      Death.MightyBoot:
      Death.DukeExplosive:
      Death.DukePistol:
        TNT1 A 0 A_GiveToTarget("DukeBossKillTaunt",1)

      Death:
        TNT1 A 0 A_GiveToTarget("KillCount",1)
        SUPR H 3 A_PlaySound ("superdemon/snarl")
        SUPR H 3 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPR I 3 A_Scream
        SUPR I 3 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPR J 2 A_CustomMissile ("SuperDemonArm", 54, -50, -50)
        SUPR KL 4 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPR M 6 A_PlaySound ("superdemon/crash")
        SUPR N 6 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPR O 6 A_NoBlocking
        SUPR O -1 A_BossDeath

      Death.DukeIce:
        TNT1 A 0 A_GiveToTarget("DukeBossKillTaunt",1)

      Ice:
      Death.HexenIce:
      Death.Ice:
        TNT1 A 0 A_GiveToTarget("KillCount",1)
        TNT1 A 0 A_NoBlocking
        SUPR G 0 A_PlaySoundEx("freeze/cyberdemon","soundslot6",0,0)
        SUPR G 0 A_GenericFreezeDeath
        SUPR G 0 A_UnsetShootable
        SUPR G 140 A_UnsetSolid
        SUPR G 0 A_PlaySoundEx("freeze/break","soundslot6",0,0)
        SUPR GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 0 A_SpawnItemEx("IceChunk2",random(-1,1),random(-1,1),random(16,96),random(-2,2),random(-2,2),random(5,15))//A_SpawnDebris("IceChunk2")
        SUPR G 0 A_IceGuyDie
        SUPR G 1 A_IceGuyDie
        TNT1 A -1 A_BossDeath
        stop

      Death.ZorchPistol:
      Death.Zorch:
      Death.PhasingZorch:
        TNT1 A 0 A_GiveToTarget("KillCount",1)
        SUPR G 0 A_Stop
        TNT1 A 0 A_ChangeFlag("DONTGIB",1)
        TNT1 A 0 A_PlaySoundEx("chex/zorchhuge","soundslot5",0,0)
        SUPR G 8 A_SpawnItem("ZorchEffectHuge")
        SUPR G 8 A_SetTranslucent(0.9,0)
        SUPR G 0 A_PlaySoundEx("chex/cyberzorch","soundslot6",0,2)
        SUPR G 8 A_SetTranslucent(0.8,0)
        SUPR G 0 A_NoBlocking
        SUPR G 8 A_SetTranslucent(0.7,0)
        SUPR G 8 A_SetTranslucent(0.6,0)
        SUPR G 8 A_SetTranslucent(0.5,0)
        SUPR G 8 A_SetTranslucent(0.4,0)
        SUPR G 8 A_SetTranslucent(0.3,0)
        SUPR G 8 A_SetTranslucent(0.2,0)
        SUPR G 8 A_SetTranslucent(0.1,0)
        TNT1 A 1 A_SetTranslucent(1,0)
        TNT1 A -1 A_BossDeath
        stop
    }
}

actor SuperDemonArm
{
    Radius 10
    Height 8
    Speed 1
    Damage 1
    Scale 1
    PROJECTILE
    -NOGRAVITY
    +LOWGRAVITY
    States
    {
      Spawn:
        SUPH A 5 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPH B 5 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPH C 5 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        Goto Death

      Death:
        SUPH D 5 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        SUPH E -1 A_CustomMissile("Blood",0,0,random(-80,-100),2,random(45,80))
        Stop
    }
}
