#include "D-MON"
#include "D-GORE"
#include "D-FX"
#include "D-ITEM"
#include "D-ALLY"

ACTOR QuakePlayer : Doomplayer
{
  Speed 1
  Health 100
  Radius 16
  Height 56
  Mass 100
  PainChance 255
  Gravity 0.8
  Scale 0.25
  +NoSkin
  PainChance "Mine", 0
  DamageFactor "Mine", 0
  DamageFactor "lavashells", 1.2
  DeathSound "Player/Death"
  Player.ColorRange 112, 127
  Player.DisplayName "Ranger"
  Player.StartItem "Shotgun "
  Player.StartItem "AXE"
  Player.StartItem "Shellammo", 25
  Player.StartItem "AxeChecker", 1
  Player.StartItem "NailWeaponsChecker", 1
  Player.StartItem "ExplosiveWeaponsChecker", 1
  Player.StartItem "PlasmaWeaponsChecker", 1
  Player.StartItem "HumanChecker", 1
  States
  {
  Spawn:
    PLY1 A 0 A_JumpIfInventory("AxeChecker", 99, 8)
    PLY1 ABCDE 4
    PLY1 E 0
    PL1B A 0 A_JumpIfInventory("AxeChecker", 1, "Spawn")
    PL1B ABCDEFGHIJKL 3
    PL1B L 0
    Loop
  See:
    PLY2 A 0 A_JumpIfInventory("AxeChecker", 99, 9)
    PLY2 ABCDEF 4
    PLY2 F 0
    PL2B A 0 A_JumpIfInventory("AxeChecker", 1, "See")
    PL2B ABCDEF 4
    PL2B A 0
    Loop
  Melee:
  Missile:
    PLY3 A 0 A_JumpIfInventory("AxeChecker", 99, "AxeMelee")
    PLY3 A 0 A_JumpIfInventory("NailWeaponsChecker", 99, "NailFire")
    PLY3 A 0 A_JumpIfInventory("ExplosiveWeaponsChecker", 99, "RocketFire")
    PLY3 A 0 A_JumpIfInventory("PlasmaWeaponsChecker", 99, "PlasmaFire")
    PLY3 A 4 
    PLY3 B 4 BRIGHT
    PLY3 CDEF 4 
    Goto Spawn
  NailFire:
    PL3B A 4 BRIGHT
    PL3B B 4
    Goto Spawn
  RocketFire:
    PL3C A 3 BRIGHT
    PL3C BCDEF 4
    Goto Spawn
  PlasmaFire:
    PL3D A 4 BRIGHT
    PL3D B 4 BRIGHT
    Goto Spawn
  AxeMelee:
    PLY3 A 0 A_Jump(256,"Axe1","Axe2","Axe3","Axe4")
  Axe1:
    PAXE ABCDEF 4
    Goto Spawn
  Axe2:
    PAXE GHIJKL 4
    Goto Spawn
  Axe3:
    PAXE MNOPQR 4
    Goto Spawn
  Axe4:
    PAXE STUVWX 4
    Goto Spawn
  Pain:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain")
    PLY4 A 3 A_Pain
    PLY4 BCDEF 3
    Goto Spawn
  AxePain:
    PL4B A 3 A_Pain
    PL4B BCDEF 3
    Goto Spawn
  Pain.Falling:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain.Falling")
    PLY4 A 3 A_PlaySound("Player/Fall")
    PLY4 BCDEF 3
    Goto Spawn
  AxePain.Falling:
    PL4B A 3 A_PlaySound("Player/Fall")
    PL4B BCDEF 3
    Goto Spawn
  Pain.Drowning:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain.Drowning")
    PLY4 A 3 A_PlaySound("Player/Drown")
    PLY4 BCDEF 3
    Goto Spawn
  AxePain.Drowning:
    PL4B A 3 A_PlaySound("Player/Drown")
    PL4B BCDEF 3
    Goto Spawn
  Pain.Pushed:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain.Pushed")
    PLY4 A 1 A_FaceTarget
    PLY4 A 0 ThrustThingZ(0,100,0,0)
    PLY4 A 0 ThrustThing(angle*256/360+128,100,0,0)
    PLY4 A 3 A_Pain
    PLY4 BCDEF 3
    Goto Spawn
  AxePain.Pushed:
    PL4B A 3 A_Pain
    PL4B A 1 A_FaceTarget
    PL4B A 0 ThrustThingZ(0,100,0,0)
    PL4B A 0 ThrustThing(angle*256/360+128, 100, 0, 0)
    PL4B BCDEF 3
    Goto Spawn
  Pain.Fire:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain.Fire")
    PLY4 A 3 A_PlaySound("Player/Burn")
    PLY4 BCDEF 3
    Goto Spawn
  AxePain.Fire:
    PL4B A 3 A_PlaySound("Player/Burn")
    PL4B BCDEF 3
    Goto Spawn
  Pain.Hammer:
  Pain.BFGSplash:
    PLY4 A 0 A_JumpIfInventory("AxeChecker", 99, "AxePain.BFGSplash")
    PLY4 A 3 A_PlaySound("Player/cut")
    PLY4 BCDEF 3
    Goto Spawn
  AxePain.BFGSplash:
    PL4B A 3 A_PlaySound("Player/cut")
    PL4B BCDEF 3
    Goto Spawn
  Death:
    PLY3 A 0
    PLY3 A 0 A_TakeInventory("AxeChecker", 99)
    PLY3 A 0 A_TakeInventory("NailWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("ExplosiveWeaponsChecker",99)
    PLY3 A 0 A_TakeInventory("PlasmaWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("StealSSG", 1)
    PLY3 A 0 A_TakeInventory("StealNG", 1)
    PLY3 A 0 A_TakeInventory("StealSNG",1)
    PLY3 A 0 A_TakeInventory("StealGL", 1)
    PLY3 A 0 A_TakeInventory("StealRL", 1)
    PLY3 A 0 A_TakeInventory("StealPL", 1)
    PLY3 A 0 A_TakeInventory("StealLC", 1)
    PLY3 A 0 A_TakeInventory("StealTB", 1)
    PLY3 A 0 A_GiveToTarget("ColdBloodedKillah",1)
    PLY5 A 0 A_Jump(256,"death1","death2","death3","death4","death5")
  Death1:
    PLY5 A 3
    PLY5 B 3 A_PlayerScream
    PLY5 C 3 A_NoBlocking
    PLY5 DEFGHIJ 3
    PLY5 K -1
    Stop
  Death2:
    PLY6 A 3
    PLY6 B 3 A_PlayerScream
    PLY6 C 3 A_NoBlocking
    PLY6 DEFGH 3
    PLY6 I -1
    Stop
  Death3:
    PLY7 A 3
    PLY7 B 3 A_PlayerScream
    PLY7 C 3 A_NoBlocking
    PLY7 DEFGHIJKLMN 3
    PLY7 O -1
    Stop
  Death4:
    PLY8 A 3
    PLY8 B 3 A_PlayerScream
    PLY8 C 3 A_NoBlocking
    PLY8 DEFGH 3
    PLY8 I -1
    Stop
  Death5:
    PLY9 A 3
    PLY9 B 3 A_PlayerScream
    PLY9 C 3 A_NoBlocking
    PLY9 DEFGH 3
    PLY9 I -1
    Stop
  Death.Drowning:
    PLY3 A 0
    PLY3 A 0 A_TakeInventory("AxeChecker", 99)
    PLY3 A 0 A_TakeInventory("NailWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("ExplosiveWeaponsChecker",99)
    PLY3 A 0 A_TakeInventory("PlasmaWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("StealSSG", 1)
    PLY3 A 0 A_TakeInventory("StealNG", 1)
    PLY3 A 0 A_TakeInventory("StealSNG",1)
    PLY3 A 0 A_TakeInventory("StealGL", 1)
    PLY3 A 0 A_TakeInventory("StealRL", 1)
    PLY3 A 0 A_TakeInventory("StealPL", 1)
    PLY3 A 0 A_TakeInventory("StealLC", 1)
    PLY3 A 0 A_TakeInventory("StealTB", 1)
    PLY3 A 0 A_GiveToTarget("ColdBloodedKillah",1)
    PLY5 A 0 A_Jump(256,"ddrown1","ddrown2","ddrown3","ddrown4","ddrown5")
  ddrown1:
    PLY5 A 3
    PLY5 B 3 A_PlaySound("Player/Drowned")
    PLY5 C 3 A_NoBlocking
    PLY5 DEFGHIJ 3
    PLY5 K -1
    Stop
  ddrown2:
    PLY6 A 3
    PLY6 B 3 A_PlaySound("Player/Drowned")
    PLY6 C 3 A_NoBlocking
    PLY6 DEFGH 3
    PLY6 I -1
    Stop
  ddrown3:
    PLY7 A 3
    PLY7 B 3 A_PlaySound("Player/Drowned")
    PLY7 C 3 A_NoBlocking
    PLY7 DEFGHIJKLMN 3
    PLY7 O -1
    Stop
  ddrown4:
    PLY8 A 3
    PLY8 B 3 A_PlaySound("Player/Drowned")
    PLY8 C 3 A_NoBlocking
    PLY8 DEFGH 3
    PLY8 I -1
    Stop
  ddrown5:
    PLY9 A 3
    PLY9 B 3 A_PlaySound("Player/Drowned")
    PLY9 C 3 A_NoBlocking
    PLY9 DEFGH 3
    PLY9 I -1
    Stop
  XDeath:
    PLY3 A 0
    PLY3 A 0 A_TakeInventory("AxeChecker", 99)
    PLY3 A 0 A_TakeInventory("NailWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("ExplosiveWeaponsChecker",99)
    PLY3 A 0 A_TakeInventory("PlasmaWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("StealSSG", 1)
    PLY3 A 0 A_TakeInventory("StealNG", 1)
    PLY3 A 0 A_TakeInventory("StealSNG",1)
    PLY3 A 0 A_TakeInventory("StealGL", 1)
    PLY3 A 0 A_TakeInventory("StealRL", 1)
    PLY3 A 0 A_TakeInventory("StealPL", 1)
    PLY3 A 0 A_TakeInventory("StealLC", 1)
    PLY3 A 0 A_TakeInventory("StealTB", 1)
    PLY3 A 0 A_GiveToTarget("ColdBloodedKillah",1)
    QZUM A 0 A_SpawnDebris ("GIB1")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SkullPop("PlayerHead")
    TNT1 A 1 A_PlaySound("GIBBED")
    Stop
  Death.Telefrag:
    PLY3 A 0
    PLY3 A 0 A_TakeInventory("AxeChecker", 99)
    PLY3 A 0 A_TakeInventory("NailWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("ExplosiveWeaponsChecker",99)
    PLY3 A 0 A_TakeInventory("PlasmaWeaponsChecker", 99)
    PLY3 A 0 A_TakeInventory("StealSSG", 1)
    PLY3 A 0 A_TakeInventory("StealNG", 1)
    PLY3 A 0 A_TakeInventory("StealSNG",1)
    PLY3 A 0 A_TakeInventory("StealGL", 1)
    PLY3 A 0 A_TakeInventory("StealRL", 1)
    PLY3 A 0 A_TakeInventory("StealPL", 1)
    PLY3 A 0 A_TakeInventory("StealLC", 1)
    PLY3 A 0 A_TakeInventory("StealTB", 1)
    PLY3 A 0 A_GiveToTarget("ColdBloodedKillah",1)
    QZUM A 0 A_SpawnDebris ("GIB1")
    QZUM A 0 A_SpawnDebris ("GIB2")
    QZUM A 0 A_SpawnDebris ("GIB3")
    QZUM A 0 A_SkullPop("PlayerHead")
    TNT1 A 1 A_PlaySound("Player/Telefrag")
    Stop
  }
}

actor HumanChecker: Ammo 
{
	Inventory.MaxAmount 1
}

Actor Axe : Fist replaces Fist
{
  +NOEXTREMEDEATH
  weapon.selectionorder 30109
  +NOALERT
  Obituary "%o was ax-murdered by %k"
  Tag "Axe"
  States
  {
  Ready:
    TNT1 A 0 A_StopSound(7)
    PUNG A 0 A_GiveInventory("AxeChecker",99)
    PUNG A 1 a_weaponready	
    loop
  Deselect:
    PUNG A 0 A_TakeInventory("AxeChecker",98)
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 1 A_Lower
    loop
  Select:
    PUNG A 0 A_GiveInventory("AxeChecker",99)
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 1 A_Raise
    loop
  Fire:
    PUNG A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    PUNG A 0 A_Jump(128,"AltSwing")
    PUNG A 0 A_JumpIfInventory("BlackRuneChecker",1,"FireRune1")
    PUNG B 3 A_Playsound ("AXE/SWING")
    PUNG C 3
    PUNG D 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG E 0 A_GiveInventory("SwingChecker",1)
    PUNG EAA 3
    PUNG A 3 A_ReFire  	
    goto Ready
  AltSwing:
    PUNG A 0 A_JumpIfInventory("QPowerQuadDamage",1,"AltSwingQuad")
    PUNG A 0 A_JumpIfInventory("BlackRuneChecker",1,"AltSwingRune1")
    PUNG F 3 A_Playsound ("AXE/SWING")
    PUNG G 3
    PUNG H 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG IAA 3
    PUNG A 3 A_Refire 	
    goto Ready 
  AltFire:
    PUNG A 0 A_JumpIfInventory("QPowerQuadDamage",1,"AltFireQuad")
    PUNG F 20
    PUNG F 3 A_recoil(-15)
    PUNG G 3 A_Playsound ("AXE/SWING")
    PUNG H 3 A_CustomPunch (Random(40,40)*1,1,0,"Qaxepuff2")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG I 3
    PUNG A 3 A_Refire 	
    goto Ready 
  FireQuad:
    PUNG A 0 A_Jump(128,"AltSwing")
    PUNG A 0 A_JumpIfInventory("BlackRuneChecker",1,"FireQuadRune1")
    PUNG B 0 A_Playsound("QUADS",3)
    PUNG B 3 A_Playsound ("AXE/SWING")
    PUNG C 3
    PUNG D 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG E 0 A_GiveInventory("SwingChecker",1)
    PUNG EAA 3
    PUNG A 3 A_ReFire  	
    goto Ready
  AltSwingQuad:
    PUNG F 0
    PUNG A 0 A_JumpIfInventory("BlackRuneChecker",1,"AltSwingQuadRune1")
    PUNG F 0 A_Playsound("QUADS",3)
    PUNG F 3 A_Playsound ("AXE/SWING")
    PUNG G 3
    PUNG H 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG IAA 3
    PUNG A 3 A_Refire 	
    goto Ready 
  AltFireQuad:
    PUNG F 20
    PUNG F 5 A_recoil(-15)
    PUNG G 0 A_Playsound("QUADS",3)
    PUNG G 3 A_Playsound ("AXE/SWING")
    PUNG H 3 A_CustomPunch (Random(40,40)*1,1,0,"Qaxepuff2")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG I 3
    PUNG A 3 A_Refire 	
    goto Ready 
  FireRune1:
    PUNG B 3 A_Playsound ("AXE/SWING")
    PUNG C 3
    PUNG D 0 A_FireCustomMissile ("PhantomAxe")
    PUNG D 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG E 0 A_GiveInventory("SwingChecker",1)
    PUNG EAA 3
    PUNG A 3 A_ReFire  	
    goto Ready
  AltSwingRune1:
    PUNG F 3 A_Playsound ("AXE/SWING")
    PUNG G 3
    PUNG H 0 A_FireCustomMissile ("PhantomAxe")
    PUNG H 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG IAA 3
    PUNG A 3 A_Refire 	
    goto Ready
  FireQuadRune1:
    PUNG B 0
    PUNG B 0 A_Playsound("QUADS",3)
    PUNG B 3 A_Playsound ("AXE/SWING")
    PUNG C 3
    PUNG D 0 A_FireCustomMissile ("PhantomAxe")
    PUNG D 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG E 0 A_GiveInventory("SwingChecker",1)
    PUNG EAA 3
    PUNG A 3 A_ReFire  	
    goto Ready
  AltSwingQuadRune1:
    PUNG F 0
    PUNG F 0 A_Playsound("QUADS",3)
    PUNG F 3 A_Playsound ("AXE/SWING")
    PUNG G 3
    PUNG H 0 A_FireCustomMissile ("PhantomAxe")
    PUNG H 3 A_CustomPunch (Random(20,20)*1,1,0,"Qaxepuff")
    PUNG I 0 A_TakeInventory("SwingChecker",1) 
    PUNG IAA 3
    PUNG A 3 A_Refire 	
    goto Ready 
  } 
}

actor SwingChecker: Ammo 
{
	Inventory.MaxAmount 1
}

actor AxeChecker: Ammo 
{
	Inventory.MaxAmount 99
}

ACTOR PhantomAxe
{
  Radius 6
  Height 8
  Speed 20
  Damage (5)
  Projectile
  DamageType BFGSplash
  RenderStyle Add
  Alpha 1
  Translation Ice
  States
  {
  Spawn:
    BAL1 AAAAAAA 5 Bright A_SpawnitemEx("VorePodTrail")
  Death:
    BAL1 A 0
    BAL1 AAAAAAAAAA 1 Bright A_FadeOut(0.1)
    Stop
  XDeath:
    BAL1 A 0
    BAL1 A 0 A_Playsound("Zhit")
    BAL1 AAAAAAAAAA 1 Bright A_FadeOut(0.1)
    Stop
  }
}

actor QuakePuff: BulletPuff
{
  SeeSound ""
  AttackSound ""
  Decal BulletChip
  states
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  Melee:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  }
}

actor QAxePuff: QuakePuff
{
	SeeSound ""
        AttackSound "Axe/MISS"
	DamageType BFGSplash
        states
{
  XDeath:
    TNT1 A 1
    Stop
  }
}

actor QAxePuff2: QuakePuff
{
	SeeSound "ZMISS"
        AttackSound "Axe/MISS"
	DamageType ZombieBasher
        states
{
  XDeath:
    TNT1 A 1
    Stop
  }
}

actor SSGpuff: QuakePuff
{
	DamageType ZombieBasher
}

actor Shottypuff: QuakePuff
{
	DamageType ShellDMG
}

actor HellishPuff: QuakePuff
{
  +PUFFONACTORS
  DamageType LavaShells
  states
{
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  Melee:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("HellDustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  }
}

ACTOR "Shotgun " : Weapon 30010
{
  Weapon.AmmoType1 "shellammo"
  Weapon.AmmoUse1 1
  Weapon.SelectionOrder 1200
  Tag "Shotgun  "
  OBITUARY "%o chewed on %k's boomstick"
  states
{
  Select:
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 1 A_Raise
    Loop
  Ready:
    TNT1 A 0 A_StopSound(7)
    SHTG A 1 A_WeaponReady
    Loop
  DeSelect:
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 1 A_Lower
    Loop
  Fire:
    SGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    SGUN A 0 A_JumpIfInventory("HellRuneChecker",1,"FireRune2")
    SGUN A 0 A_PlayWeaponSound ("Shotgun/use")
    SGUN A 0 A_FireBullets (5, 5, 6, random(4,4)*1,"ShottyPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 3 Bright
    SGUN BCDE 4
    SGUN F 3 A_Refire
    Goto Ready
  FireQuad:
    SGUN A 0 A_JumpIfInventory("HellRuneChecker",1,"FireQuadRune2")
    SGUN A 0 A_PlayWeaponSound ("Shotgun/use")
    SGUN A 0 A_PlaySound("QUADS",3)
    SGUN A 0 A_FireBullets (5, 5, 6, random(4,4)*1,"ShottyPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 3 Bright
    SGUN BCDE 4
    SGUN F 3 A_Refire
    Goto Ready
  FireRune2:
    SGUN A 0 A_PlayWeaponSound ("Shotgun/use")
    SGUN A 0 A_FireBullets (5, 5, 6, random(4,4)*1,"HellishPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 3 Bright
    SGUN BCDE 4
    SGUN F 3 A_Refire
    Goto Ready
  FireQuadRune2:
    SGUN A 0 A_PlayWeaponSound ("Shotgun/use")
    SGUN A 0 A_PlaySound("QUADS",3)
    SGUN A 0 A_FireBullets (5, 5, 6, random(4,4)*1,"HellishPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 3 Bright
    SGUN BCDE 4
    SGUN F 3 A_Refire
    Goto Ready
  }
}

ACTOR "Double-Barrel Shotgun" : Weapon replaces Shotgun
{
  Weapon.AmmoType1 "shellammo"
  Weapon.AmmoUse1 2
  Inventory.PickupMessage "You got the Double-Barreled Shotgun"
  Weapon.SelectionOrder 400
  Weapon.AmmoGive 5
  Tag "Double-Barrel-Shotgun"
  Inventory.PickupSound "Pickup/Gun"
  OBITUARY "%o ate 2 loads of %k's buckshot"
  states
{
  Spawn:
    SHOT A 3
    Loop
  Select:
    CHGG A 0 A_GiveInventory("StealSSG",1)
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 0 A_Raise
    SHTG A 1 A_Raise
    Loop
  Ready:
    TNT1 A 0 A_StopSound(7)
    SHTG A 1 A_WeaponReady
    TNT1 A 0 A_GiveInventory("StealSSG",1)
    Loop
  DeSelect:
    CHGG A 0 A_TakeInventory("StealSSG",1)
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 0 A_Lower
    SHTG A 1 A_Lower
    Loop
  Fire:
    SGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    SGUN A 0 A_JumpIfInventory("HellRuneChecker",1,"FireRune2")
    SGUN A 0 A_PlayWeaponSound ("SSG/use")
    SGUN A 0 A_FireBullets (10, 7, 14, random(4,4)*1,"SSGPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 4 Bright
    SGUN BCDEF 3
    SHTG A 8
    SHTG A 3 A_Refire
    Goto Ready
  FireRune2:
    SGUN A 0 A_PlayWeaponSound ("SSG/use")
    SGUN A 0 A_FireBullets (10, 7, 14, random(4,4)*1,"HellishPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 4 Bright
    SGUN BCDEF 3
    SHTG A 8
    SHTG A 3 A_Refire
    Goto Ready
  FireQuad:
    SGUN A 0 A_JumpIfInventory("HellRuneChecker",1,"FireQuadRune2")
    SGUN A 0 A_PlayWeaponSound ("SSG/use")
    SGUN A 0 A_PlaySound("QUADS",3)
    SGUN A 0 A_FireBullets (10, 7, 14, random(4,4)*1,"SSGPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 4 Bright
    SGUN BCDEF 3
    SHTG A 8
    SHTG A 3 A_Refire
    Goto Ready
  FireQuadRune2:
    SGUN A 0 A_PlayWeaponSound ("SSG/use")
    SGUN A 0 A_PlaySound("QUADS",3)
    SGUN A 0 A_FireBullets (10, 7, 14, random(4,4)*1,"HellishPuff",FBF_NORANDOM|FBF_USEAMMO)
    SGUN A 4 Bright
    SGUN BCDEF 3
    SHTG A 8
    SHTG A 3 A_Refire
    Goto Ready
  }
}

ACTOR "NailGun" : Weapon
{
  Weapon.AmmoType1 "NailAmmo"
  Weapon.AmmoUse1 1
  Weapon.SelectionOrder 700
  Weapon.AmmoGive 30
  Inventory.PickupSound "Pickup/Gun"
  Inventory.PickupMessage "You got the Nailgun"
  Weapon.SisterWeapon "LavaNailgun"
  OBITUARY "%o was nailed by %k"
  Tag "Nailgun"
  states
{
  Select:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    CHGG A 0 A_GiveInventory("StealNG",1)
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 1 A_Raise
    Loop
  Ready:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_GiveInventory("StealNG",1)
    CHGG A 1 A_WeaponReady
    Loop
  DeSelect:
    CHGG A 0 A_TakeInventory("NailWeaponsChecker",98)
    CHGG A 0 A_TakeInventory("StealNG",1)
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 1 A_Lower
    Loop
  Fire:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    NGUN A 0 A_JumpIfInventory("NailChecker", 1, "RightNail")
    NGUN B 0 A_FireCustomMissile ("Dodgy")
    NGUN A 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN A 0 A_FireCustomMissile ("NailWeak", 0, 1, 4)
    STG1 A 0 A_JUMP(256, 1, "FIRE2","FIRE3", "FIRE4")
    NGUN A 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  Fire2:
    NGUN B 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  Fire3:
    NGUN C 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  Fire4:
    NGUN D 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  RightNail:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"RightNailQuad")
    NGUN E 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN E 0 A_FireCustomMissile ("NailWeak", 0, 1, -4)
    STG1 A 0 A_JUMP(256, 1, "Rightnail2","Rightnail3", "Rightnail4")
    NGUN E 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  RightNail2:
    NGUN F 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  RightNail3:
    NGUN G 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  RightNail4:
    NGUN H 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Ready
  FireQuad:
    NGUN A 0 A_JumpIfInventory("NailChecker", 1, "RightNail")
    NGUN E 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN A 0 A_FireCustomMissile ("NailWeak", 0, 1, 4)
    STG1 A 0 A_JUMP(256, "Fire", "FIRE2","FIRE3", "FIRE4")
    Goto Ready
  RightNailQuad:
    NGUN E 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN E 0 A_PlaySound("QUADS",3)
    NGUN E 0 A_FireCustomMissile ("NailWeak", 0, 1, -4)
    STG1 A 0 A_JUMP(256, "RightNail", "Rightnail2","Rightnail3", "Rightnail4")
    Goto Ready
  Spawn:
    MGUN A 1
    Loop
  }
}

ACTOR LavaNailGun : Nailgun
{
  Weapon.AmmoType1 "LavaNailAmmo"
  Weapon.AmmoUse1 1
  Weapon.SelectionOrder 700
  Weapon.AmmoGive 0
  Weapon.SisterWeapon "Nailgun"
  OBITUARY "%o was nailed by %k"
  Tag "Nailgun"
  states
{
  Hot:
    CHGG A 1 A_PlaySound ("nail/lava", 4)
    Goto Ready
  Ready:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_GiveInventory("StealNG",1)
    CHGG A 1 A_WeaponReady
    Loop
  Fire:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    NGUN A 0 A_JumpIfInventory("NailChecker", 1, "RightNail")
    NGUN B 0 A_FireCustomMissile ("Dodgy")
    NGUN A 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailWeak", 0, 1, 4)
    STG1 A 0 A_JUMP(256, 1, "FIRE2","FIRE3", "FIRE4")
    NGUN A 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  Fire2:
    NGUN B 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  Fire3:
    NGUN C 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  Fire4:
    NGUN D 3 Bright
    NGUN D 0 A_GiveInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  RightNail:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"RightNailQuad")
    NGUN E 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN E 0 A_FireCustomMissile ("LavaNailWeak", 0, 1, -4)
    STG1 A 0 A_JUMP(256, 1, "Rightnail2","Rightnail3", "Rightnail4")
    NGUN E 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  RightNail2:
    NGUN F 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  RightNail3:
    NGUN G 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  RightNail4:
    NGUN H 3 Bright
    NGUN H 0 A_TakeInventory("NailChecker",1)
    CHGG A 1 A_Refire
    Goto Hot
  FireQuad:
    NGUN A 0 A_JumpIfInventory("NailChecker", 1, "RightNail")
    NGUN E 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailWeak", 0, 1, 4)
    STG1 A 0 A_JUMP(256, "Fire", "FIRE2","FIRE3", "FIRE4")
    Goto Hot
  RightNailQuad:
    NGUN E 0 A_PlayWeaponSound ("Nailgun/fire")
    NGUN E 0 A_PlaySound("QUADS",3)
    NGUN E 0 A_FireCustomMissile ("LavaNailWeak", 0, 1, -4)
    STG1 A 0 A_JUMP(256, "RightNail", "Rightnail2","Rightnail3", "Rightnail4")
    Goto Hot
  }
}

actor NailChecker: Ammo 
{
	Inventory.MaxAmount 1
}

actor NailWeaponsChecker: Ammo 
{
	Inventory.MaxAmount 99
}

ACTOR NailWeak
{
  Radius 3
  Height 2
  Speed 25
  Damage (9)
  Projectile
  +NOEXTREMEDEATH
  +BLOODSPLATTER
  DamageType Nails
  Decal BulletChip
  States
  {
  Spawn:
    BAL7 A 1
    Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_PlaySound ("wep/tink")
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("DustDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  XDeath:
    TNT1 A 1
    Stop
  }
}

ACTOR NailStrong : NailWeak
{
  Damage (18)
  States
  {
  }
}

ACTOR LavaNailWeak
{
  Radius 3
  Height 2
  Speed 25
  Damage (9)
  Projectile
  +NOEXTREMEDEATH
  +BLOODSPLATTER
  +PIERCEARMOR
  DamageType lavanails
  Decal BulletChip
  States
  {
  Spawn:
    BAL7 A 1 BRIGHT
    Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_PlaySound ("wep/tink")
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LavaDrop",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  XDeath:
    TNT1 A 1
    Stop
  }
}

ACTOR LavaNailStrong : LavaNailWeak
{
  Damage (18)
  States
  {
  }
}

ACTOR NailCent : NailWeak
{
  Damage (random(1,15)*1)
  States
  {
  }
}


actor NailGunSpawner : RandomSpawner replaces Chaingun
{
    DropItem "NailGun"
    DropItem "NailGun"
    DropItem "SuperNailGun"
}

actor ExplosivesSpawner : RandomSpawner replaces RocketLauncher
{
    DropItem "Grenade Launcher"
    DropItem "Rocket Launcher"
    DropItem "Grenade Launcher"
    DropItem "Rocket Launcher"
    DropItem "Proximity Launcher"
}

actor SSGSpawner : RandomSpawner replaces SuperShotgun
{
    DropItem "Double-Barrel Shotgun"
}

ACTOR SuperNailGun : Weapon
{
  Weapon.AmmoType1 "NailAmmo"
  Weapon.AmmoUse1 2
  Weapon.SelectionOrder 600
  Weapon.AmmoGive 30
  Weapon.SisterWeapon "LavaSuperNailgun"
  Inventory.PickupSound "Pickup/Gun"
  Inventory.PickupMessage "You got the Super Nailgun"
  OBITUARY "%o was punctured by %k"
  Tag "Super Nailgun"
  states
{
  Select:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    CHGG A 0 A_GiveInventory("StealSNG",1)
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 1 A_Raise
    Loop
  Ready:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    TNT1 A 0 A_StopSound(7)
    CHGG A 1 A_WeaponReady
    TNT1 A 0 A_GiveInventory("StealSNG",1)
    CHGG A 0 A_TakeInventory("SNGComboChecker",99)
    Loop
  DeSelect:
    CHGG A 0 A_TakeInventory("NailWeaponsChecker",98)
    CHGG A 0 A_TakeInventory("StealSNG",1)
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 1 A_Lower
    Loop
  Fire:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN B 0 A_FireCustomMissile ("Dodgy")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN A 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire2:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire2Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",4,"Fire3")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN B 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire3:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire3Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",6,"Fire4")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN C 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire4:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire4Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",8,"Fire5")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN D 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire5:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire5Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",10,"Fire6")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN E 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire6:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire6Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",12,"Fire7")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN F 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire7:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire7Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",14,"Fire8")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN G 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire8:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire8Quad")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN H 3 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",16)
    CHGG A 1 A_Refire
    Goto Ready
  FireQuad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN A 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire2Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",4,"Fire3")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN B 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire3Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",6,"Fire4")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN C 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire4Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",8,"Fire5")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN D 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire5Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",10,"Fire6")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN E 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire6Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",12,"Fire7")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN F 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire7Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",14,"Fire8")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN G 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Ready
  Fire8Quad:
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("NailStrong", 0, 2, 0)
    NGUN H 3 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",16)
    CHGG A 1 A_Refire
    Goto Ready
  Spawn:
    MGUN A 1
    Loop
  }
}

ACTOR LavaSuperNailGun : SuperNailgun
{
  Weapon.AmmoType1 "LavaNailAmmo"
  Weapon.AmmoUse1 2
  Weapon.SelectionOrder 600
  Weapon.AmmoGive 0
  Weapon.SisterWeapon "SuperNailgun"
  Tag "Super Nailgun"
  states
{
  Hot:
    CHGG A 1 A_PlaySound ("nail/lava", 4)
    Goto Ready
  Ready:
    CHGG A 0 A_GiveInventory("NailWeaponsChecker",99)
    TNT1 A 0 A_StopSound(7)
    CHGG A 1 A_WeaponReady
    TNT1 A 0 A_GiveInventory("StealSNG",1)
    CHGG A 0 A_TakeInventory("SNGComboChecker",99)
    Loop
  Fire:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN B 0 A_FireCustomMissile ("Dodgy")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN A 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire2:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire2Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",4,"Fire3")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN B 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire3:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire3Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",6,"Fire4")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN C 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire4:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire4Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",8,"Fire5")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN D 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire5:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire5Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",10,"Fire6")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN E 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire6:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire6Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",12,"Fire7")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN F 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire7:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire7Quad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",14,"Fire8")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN G 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire8:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire8Quad")
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN H 3 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",16)
    CHGG A 1 A_Refire
    Goto Hot
  FireQuad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN A 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire2Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",4,"Fire3")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN B 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire3Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",6,"Fire4")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN C 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire4Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",8,"Fire5")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN D 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire5Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",10,"Fire6")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN E 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire6Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",12,"Fire7")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN F 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire7Quad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",14,"Fire8")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN G 3 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    CHGG A 1 A_Refire
    Goto Hot
  Fire8Quad:
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("SNG/fire")
    NGUN A 0 A_FireCustomMissile ("LavaNailStrong", 0, 2, 0)
    NGUN H 3 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",16)
    CHGG A 1 A_Refire
    Goto Hot
  }
}

actor SNGComboChecker: Ammo 
{
	Inventory.MaxAmount 8
}

ACTOR "Grenade Launcher" : Weapon
{
  Weapon.SelectionOrder 2500
  Weapon.AmmoUse 1
  Weapon.AmmoGive 5
  Weapon.AmmoType "ExplosiveAmmo"
  +WEAPON.NOAUTOFIRE
  Inventory.PickupSound "Pickup/Gun"
  Weapon.SisterWeapon "Multi-Grenade Launcher"
  Inventory.PickupMessage "You got the Grenade Launcher"
  OBITUARY "%o eats %k's pineapple"
  Tag "GrenadeLauncher "
  States
  {
  Ready:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    TNT1 A 0 A_GiveInventory("StealGL",1)
    TNT1 A 0 A_StopSound(7)
    MISG A 1 A_WeaponReady
    Loop
  Deselect:
    MISG A 0 A_TakeInventory("ExplosiveWeaponsChecker",98)
    MISG A 0 A_TakeInventory("StealGL",1)
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 1 A_Lower
    Loop
  Select:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    MISG A 0 A_GiveInventory("StealGL",1)
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 1 A_Raise
    Loop
  Fire:
    MISG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    MISG B 1 BRIGHT A_PlaySound("Grenade/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("GrenadeStrong", 0, 0, 0)
    MISG CDEF 4
    MISG G 3
    MISG G 0 A_ReFire
    Goto Ready
  FireQuad:
    MISG B 0
    MISG B 0 A_PlaySound("QUADS",3)
    MISG B 1 BRIGHT A_PlaySound("prox/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("GrenadeStrong", 0, 0, 0)
    MISG CDEF 4
    MISG G 3
    MISG G 0 A_ReFire
    Goto Ready
  Spawn:
    LAUN A -1
    Stop
  }
}

ACTOR "Multi-Grenade Launcher" : "Grenade Launcher"
{
  Weapon.AmmoGive 0
  Weapon.AmmoType "MultiExplosiveAmmo"
  Weapon.SisterWeapon "Grenade Launcher"
  States
  {
  Fire:
    MISG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    MISG B 1 BRIGHT A_PlaySound("Grenade/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("MultiGrenadeStrong", 0, 0, 0)
    MISG CDEF 4
    MISG G 3
    MISG G 0 A_ReFire
    Goto Ready
  FireQuad:
    MISG B 0
    MISG B 0 A_PlaySound("QUADS",3)
    MISG B 1 BRIGHT A_PlaySound("prox/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("MultiGrenadeStrong", 0, 0, 0)
    MISG CDEF 4
    MISG G 3
    MISG G 0 A_ReFire
    Goto Ready
  }
}

ACTOR Dodgy : FastProjectile
{
  Speed 300
  Radius 3
  Height 8
  Damage (1)
  -RIPPER
  -CANNOTPUSH
  -NODAMAGETHRUST
  MissileType "Dummy"
  DamageType Dodge
  states
  {
  Spawn:
    TNT1 A 3
    Loop
  Death:
    TNT1 A 3 bright
    stop
  }
}

ACTOR "Proximity Launcher" : "Grenade Launcher"
{
  Weapon.SelectionOrder 2600
  Weapon.AmmoUse 1
  Weapon.AmmoGive 5
  Weapon.AmmoType "ExplosiveAmmo"
  Inventory.PickupMessage "You got the Proximity Launcher"
  +WEAPON.NOAUTOFIRE
  Inventory.PickupSound "Pickup/Gun"
  OBITUARY "%o stepped %k's proximity bomb"
  Tag "ProximityMineLauncher"
  States
  {
  Ready:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    TNT1 A 0 A_StopSound(7)
    TNT1 A 0 A_GiveInventory("StealPL",1)
    MISG A 1 A_WeaponReady
    Loop
  Fire:
    MISG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    MISG B 1 BRIGHT A_PlaySound("prox/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("ProximityBomb", 0, 1, 0)
    MISG CDEFG 4
    MISG G 0 A_ReFire
    Goto Ready
  FireQuad:
    MISG B 0
    MISG B 0 A_PlaySound("QUADS",3)
    MISG B 1 BRIGHT A_PlaySound("prox/fire")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 1 BRIGHT A_FireCustomMissile("ProximityBomb", 0, 0, 0)
    MISG CDEFG 4
    MISG G 0 A_ReFire
    Goto Ready
  Select:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    MISG A 0 A_GiveInventory("StealPL",1)
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 1 A_Raise
    Loop
  Deselect:
    MISG A 0 A_TakeInventory("ExplosiveWeaponsChecker",98)
    MISG A 0 A_TakeInventory("StealPL",1)
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 1 A_Lower
    Loop
  }
}

actor ExplosiveWeaponsChecker: Ammo 
{
	Inventory.MaxAmount 99
}

ACTOR ProximityBomb
{
  Radius 11
  Height 8
  Speed 25
  Damage (random(100,120)*1)
  Projectile
  -NOGRAVITY
  Gravity 0.50
  DeathSound "Explode"
  Obituary "%o ate %k's pineaple."
  DamageType Grenade
  States
  {
  Spawn:
    QGRN A 1 Bright
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("ProxMine")
    TNT1 A 0 A_Playsound("Grenade/Bounce")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode(random(120,120)*1,160)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR ProxMine
{
  Radius 8
  Height 5
  Speed 0
  Damage (1)
  Health 20
  DamageType Mine
  Projectile
  +NOBLOOD
  -SHOOTABLE
  +MISSILE
  DeathSound "Explode"
  Obituary "%o stepped on %k's proximity mine."
  States
  {
  Spawn:
    QGRN A 1
    Loop
  Death:
    QGRN A 5 Bright A_Playsound("Prox/warn")
    MISL B 1 Bright A_Explode(120)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR GrenadeStrong
{
  Radius 11
  Height 8
  Speed 25
  Damage (random(100,120)*1)
  Projectile
  -NOGRAVITY
  +RANDOMIZE
  +DOOMBOUNCE
  Gravity 0.50
  BounceFactor 0.5
  SeeSound "Grenade/bounce"
  Obituary "%o ate %k's pineaple."
  DamageType Grenade
  States
  {
  Spawn:
    QGRN ABCDEFGHIJKLABCDEFGHIJKLABCDEFGHIJKL 1 Bright A_SpawnItemEx("GrenadeTrail1")
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("SGrenFloor")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode(random(120,120)*1,160)
    MISL B 0 A_Playsound("EXPLODE")
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR SGrenFloor
{
  Radius 8
  Height 5
  Speed 0
  Damage (1)
  Health 20
  DamageType Grenade
  Projectile
  +NOBLOOD
  -SHOOTABLE
  -MISSILE
  +THRUACTORS
  -NOGRAVITY
  Obituary "%o ate %k's pineaple."
  States
  {
  Spawn:
    QGRN A 0
    QGRN A 0 A_Jump(256,"Floor1","Floor2","Floor3","Floor4","Floor5","Floor6","Floor7","Floor8","Floor9","Floor10","Floor11","Floor12")
  Floor1:
    QGRN A 35 Bright
    QGRN A 0 A_Playsound("Explode")
    Goto death
  Floor2:
    QGRN B 35 Bright
    QGRN B 0 A_Playsound("Explode")
    Goto death
  Floor3:
    QGRN C 35 Bright
    QGRN C 0 A_Playsound("Explode")
    Goto death
  Floor4:
    QGRN D 35 Bright
    QGRN D 0 A_Playsound("Explode")
    Goto death
  Floor5:
    QGRN E 35 Bright
    QGRN E 0 A_Playsound("Explode")
    Goto death
  Floor6:
    QGRN F 35 Bright
    QGRN F 0 A_Playsound("Explode")
    Goto death
  Floor7:
    QGRN G 35 Bright
    QGRN G 0 A_Playsound("Explode")
    Goto death
  Floor8:
    QGRN H 35 Bright
    QGRN H 0 A_Playsound("Explode")
    Goto death
  Floor9:
    QGRN I 35 Bright
    QGRN I 0 A_Playsound("Explode")
    Goto death
  Floor10:
    QGRN J 35 Bright
    QGRN J 0 A_Playsound("Explode")
    Goto death
  Floor11:
    QGRN K 35 Bright
    QGRN K 0 A_Playsound("Explode")
    Goto death
  Floor12:
    QGRN L 35 Bright
    QGRN L 0 A_Playsound("Explode")
    Goto death
  Death:
    MISL B 0
    MISL B 1 Bright A_Explode(random(120,120)*1,160)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR GrenadeWeak
{
  Radius 11
  Height 8
  Speed 25
  Damage (0)
  Projectile
  -NOGRAVITY
  +RANDOMIZE
  +DOOMBOUNCE
  Gravity 0.50
  BounceFactor 0.5
  SeeSound "Grenade/bounce"
  DeathSound "Explode"
  Obituary "%o ate %k's pineaple."
  DamageType Grenade
  States
  {
  Spawn:
    QGRN ABCDEFGHIJKLABCDEFGHIJKLABCDEFGHIJKL 1 Bright A_SpawnItemEx("GrenadeTrail1")
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("WGrenFloor")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode(40,160)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR WGrenFloor
{
  Radius 8
  Height 5
  Speed 0
  Damage (1)
  Health 20
  DamageType Grenade
  Projectile
  +NOBLOOD
  -SHOOTABLE
  -MISSILE
  +THRUACTORS
  -NOGRAVITY
  Obituary "%o ate %k's pineaple."
  States
  {
  Spawn:
    QGRN A 0
    QGRN A 0 A_Jump(256,"Floor1","Floor2","Floor3","Floor4","Floor5","Floor6","Floor7","Floor8","Floor9","Floor10","Floor11","Floor12")
  Floor1:
    QGRN A 35 Bright
    QGRN A 0 A_Playsound("Explode")
    Goto death
  Floor2:
    QGRN B 35 Bright
    QGRN B 0 A_Playsound("Explode")
    Goto death
  Floor3:
    QGRN C 35 Bright
    QGRN C 0 A_Playsound("Explode")
    Goto death
  Floor4:
    QGRN D 35 Bright
    QGRN D 0 A_Playsound("Explode")
    Goto death
  Floor5:
    QGRN E 35 Bright
    QGRN E 0 A_Playsound("Explode")
    Goto death
  Floor6:
    QGRN F 35 Bright
    QGRN F 0 A_Playsound("Explode")
    Goto death
  Floor7:
    QGRN G 35 Bright
    QGRN G 0 A_Playsound("Explode")
    Goto death
  Floor8:
    QGRN H 35 Bright
    QGRN H 0 A_Playsound("Explode")
    Goto death
  Floor9:
    QGRN I 35 Bright
    QGRN I 0 A_Playsound("Explode")
    Goto death
  Floor10:
    QGRN J 35 Bright
    QGRN J 0 A_Playsound("Explode")
    Goto death
  Floor11:
    QGRN K 35 Bright
    QGRN K 0 A_Playsound("Explode")
    Goto death
  Floor12:
    QGRN L 35 Bright
    QGRN L 0 A_Playsound("Explode")
    Goto death
  Death:
    MISL B 0
    MISL B 1 Bright A_Explode(40,160)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR MultiGrenadeStrong
{
  Radius 11
  Height 8
  Speed 25
  Damage (random(100,120)*1)
  Projectile
  -NOGRAVITY
  +RANDOMIZE
  +DOOMBOUNCE
  Gravity 0.50
  BounceFactor 0.5
  SeeSound "Grenade/bounce"
  Obituary "%o ate %k's pineaple."
  DamageType Grenade
  States
  {
  Spawn:
    QMGR ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABC 2 Bright A_SpawnItemEx("GrenadeTrail1")
  Death:
    TNT1 A 0 A_SpawnDebris("MultiGrenadeStrong2")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode(random(120,120)*1,160)
    MISL B 0 A_Playsound("EXPLODE")
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR MultiGrenadeStrong2 : MultiGrenadeStrong
{
  Health 5
  Gravity 0.75
  States
  {
  Spawn:
    QMGR ABCDEFGHABCDEFGH 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR ABC 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR DEF 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR GH 2 Bright A_SpawnItemEx("GrenadeTrail1")
  Death:
  XDeath:
    TNT1 A 0 A_NoGravity
    TNT1 A 0 A_ChangeFlag("DOOMBOUNCE",0)
    TNT1 A 0 A_SpawnItemEx("SpawnExplosion")
    TNT1 A 1 Bright A_Explode(random(120,120)*1,160)
    TNT1 A 0 A_Playsound("EXPLODE")
    TNT1 AAA 1 Bright A_SpawnItemEx("EXPparticles")
    TNT1 A 1 Bright A_SpawnItemEx("EXPparticles")
    Stop
  }
}

ACTOR MultiGrenadeWeak
{
  Radius 11
  Height 8
  Speed 25
  Damage (0)
  Projectile
  -NOGRAVITY
  +RANDOMIZE
  +DOOMBOUNCE
  Gravity 0.50
  BounceFactor 0.5
  SeeSound "Grenade/bounce"
  Obituary "%o ate %k's pineaple."
  DamageType Grenade
  States
  {
  Spawn:
    QMGR ABCDEFGHABCDEFGHABCDEFGHABCDEFGHABCDEFGH 2 Bright A_SpawnItemEx("GrenadeTrail1")
    Loop
  Death:
    TNT1 A 0 A_SpawnItemEx("WMGrenFloor")
    Stop
  XDeath:
    MISL A 0 A_NoGravity
    MISL B 1 Bright A_Explode(40,160)
    MISL B 0 A_Playsound("EXPLODE")
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR WMGrenFloor
{
  Radius 8
  Height 5
  Speed 0
  Damage (1)
  Health 20
  DamageType Grenade
  Projectile
  +NOBLOOD
  -SHOOTABLE
  -MISSILE
  +THRUACTORS
  -NOGRAVITY
  Obituary "%o ate %k's pineaple."
  States
  {
  Spawn:
    QMGR A 0
    QMGR A 0 A_Jump(256,"Floor1","Floor2","Floor3","Floor4","Floor5","Floor6","Floor7","Floor8")
  Floor1:
    QMGR A 35 Bright
    QMGR A 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor2:
    QMGR B 35 Bright
    QMGR B 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor3:
    QMGR C 35 Bright
    QMGR C 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor4:
    QMGR D 35 Bright
    QMGR D 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor5:
    QMGR E 35 Bright
    QMGR E 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor6:
    QMGR F 35 Bright
    QMGR F 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor7:
    QMGR G 35 Bright
    QMGR G 0 A_Playsound("Grenade/bounce")
    Goto death
  Floor8:
    QMGR H 35 Bright
    QMGR H 0 A_Playsound("Grenade/bounce")
    Goto death
  Death:
    TNT1 A 0 A_SpawnDebris("MultiGrenadeWeak2")
    Stop
  }
}

ACTOR MultiGrenadeWeak2 : MultiGrenadeWeak
{
  Health 5
  Gravity 0.75
  States
  {
  Spawn:
    QMGR ABCDEFGHABCDEFGH 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR ABC 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR DEF 2 Bright A_SpawnItemEx("GrenadeTrail1")
    QMGR A 0 A_Jump(125,"death")
    QMGR GH 2 Bright A_SpawnItemEx("GrenadeTrail1")
  Death:
  XDeath:
    TNT1 A 0 A_NoGravity
    TNT1 A 0 A_ChangeFlag("DOOMBOUNCE",0)
    TNT1 A 0 A_SpawnItemEx("SpawnExplosion")
    TNT1 A 1 Bright A_Explode(random(120,120)*1,160)
    TNT1 A 0 A_Playsound("EXPLODE")
    TNT1 AAA 1 Bright A_SpawnItemEx("EXPparticles")
    TNT1 A 1 Bright A_SpawnItemEx("EXPparticles")
    Stop
  }
}

ACTOR QRocket : Rocket Replaces Rocket
{
  Speed 30
  -DEHEXPLOSION
  -ROCKETTRAIL
  SeeSound "rocket/fire"
  DeathSound "Explode"
  Obituary "%o rides %k's rocket"
  DamageType RocketDamage
  Decal RevenantScorch
  Damage (random(100,120)*1)
  States
  {
  Spawn:
    MISL A 1 Bright A_SpawnItemEx("RocketTrail1")
    Loop
  Death:
    MISL B 1 Bright A_Explode(random(120,120)*1,160)
    MISL BBB 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 1 Bright A_SpawnItemEx("EXPparticles")
    MISL C 3 Bright
    MISL DEFG 4 Bright
    Stop
  }
}

ACTOR QRocketRight : QRocket
{
  States
  {
  Spawn:
    MISL AAABBBCCCDDD 1 Bright A_SpawnItemEx("RocketTrail1")
    Loop
  }
}

ACTOR QRocketLeft : QRocket
{
  States
  {
  Spawn:
    MISL AAABBBCCCDDD 1 Bright A_SpawnItemEx("RocketTrail1")
    Loop
  }
}

ACTOR "Rocket Launcher" : Weapon
{
  Weapon.SelectionOrder 2400
  Weapon.AmmoUse 1
  Weapon.AmmoGive 5
  Weapon.AmmoType "ExplosiveAmmo"
  +WEAPON.NOAUTOFIRE
  Inventory.PickupSound "Pickup/Gun"
  Weapon.SisterWeapon "Multi-Rocket Launcher"
  Inventory.PickupMessage "You got the Rocket Launcher"
  Tag "$TAG_ROCKETLAUNCHER"
  States
  {
  Ready:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    TNT1 A 0 A_GiveInventory("StealRL",1)
    TNT1 A 0 A_StopSound(7)
    MISG A 1 A_WeaponReady
    Loop
  Deselect:
    MISG A 0 A_TakeInventory("ExplosiveWeaponsChecker",98)
    MISG A 0 A_TakeInventory("StealRL",1)
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 0 A_Lower
    MISG A 1 A_Lower
    Loop
  Select:
    MISG A 0 A_GiveInventory("ExplosiveWeaponsChecker",99)
    MISG A 0 A_GiveInventory("StealRL",1)
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 0 A_Raise
    MISG A 1 A_Raise
    Loop
  Fire:
    MISG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 4 BRIGHT A_FireCustomMissile("QRocket", 0, 0, 0)
    MISG CDE 4
    MISG F 6
    MISG G 5
    MISG G 0 A_ReFire
    Goto Ready
  FireQuad:
    MISG B 0
    MISG B 0 A_PlaySound("QUADS",3)
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 4 BRIGHT A_FireCustomMissile("QRocket", 0, 0, 0)
    MISG CDE 4
    MISG F 6
    MISG G 5
    MISG G 0 A_ReFire
    Goto Ready
  Spawn:
    LAUN A -1
    Stop
  }
}

ACTOR "Multi-Rocket Launcher" : "Rocket Launcher"
{
  Weapon.AmmoGive 0
  Weapon.AmmoType "MultiExplosiveAmmo"
  Weapon.SisterWeapon "Rocket Launcher"
  States
  {
  Fire:
    MISG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 0 A_FireCustomMissile("QRocketLeft", -4, 0, 0)
    MISG B 0 A_FireCustomMissile("QRocketLeft", -2, 0, 0)
    MISG B 0 A_FireCustomMissile("QRocketRight", 4, 0, 0)
    MISG B 4 BRIGHT A_FireCustomMissile("QRocketRight", 2, 0, 0)
    MISG CDE 4
    MISG F 6
    MISG G 5
    MISG G 0 A_ReFire
    Goto Ready
  FireQuad:
    MISG B 0
    MISG B 0 A_PlaySound("QUADS",3)
    MISG B 0 A_FireCustomMissile ("Dodgy")
    MISG B 0 A_FireCustomMissile("QRocketLeft", -4, 0, 0)
    MISG B 0 A_FireCustomMissile("QRocketLeft", -2, 0, 0)
    MISG B 0 A_FireCustomMissile("QRocketRight", 4, 0, 0)
    MISG B 4 BRIGHT A_FireCustomMissile("QRocketRight", 2, 0, 0)
    MISG CDE 4
    MISG F 6
    MISG G 5
    MISG G 0 A_ReFire
    Goto Ready
  }
}

ACTOR "Laser Cannon" : Weapon replaces plasmarifle
{
  Weapon.AmmoType1 "Cellammo"
  Weapon.AmmoUse1 1
  Weapon.SelectionOrder 600
  Weapon.AmmoGive 100
  Inventory.PickupSound "Pickup/Gun"
  Inventory.PickupMessage "You got the Laser Cannon"
  OBITUARY "%o was punctured by %k"
  Tag "LaserCannon"
  states
{
  Select:
    CHGG A 0 A_GiveInventory("PlasmaWeaponsChecker",99)
    CHGG A 0 A_GiveInventory("StealLC",1)
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 0 A_Raise
    CHGG A 1 A_Raise
    Loop
  Ready:
    TNT1 A 0 A_StopSound(7)
    CHGG A 0 A_GiveInventory("PlasmaWeaponsChecker",99)
    CHGG A 1 A_WeaponReady
    TNT1 A 0 A_GiveInventory("StealLC",1)
    CHGG A 0 A_TakeInventory("SNGComboChecker",99)
    Loop
  DeSelect:
    CHGG A 0 A_TakeInventory("PlasmaWeaponsChecker",98)
    CHGG A 0 A_TakeInventory("StealLC",1)
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 0 A_Lower
    CHGG A 1 A_Lower
    Loop
  Fire:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN B 0 A_FireCustomMissile ("Dodgy")
    NGUN A 0 A_PlayWeaponSound ("Armagon/Laser")
    NGUN A 0 A_FireCustomMissile ("Laser1", 0, 0, 3)
    NGUN A 0 A_FireCustomMissile ("Laser1", 0, 1, -3)
    NGUN AB 2 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    NGUN C 2 A_Refire
    Goto Ready
  Fire2:
    NGUN A 0 A_JumpIfInventory("QPowerQuadDamage",1,"Fire2Quad")
    NGUN A 0
    NGUN A 0 A_PlayWeaponSound ("Armagon/Laser")
    NGUN A 0 A_FireCustomMissile ("Laser1",0,1,0,6)
    NGUN DE 2 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",2)
    NGUN F 2 A_Refire
    Goto Ready
  FireQuad:
    NGUN A 0 A_JumpIfInventory("SNGComboChecker",2,"Fire2")
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("Armagon/Laser")
    NGUN A 0 A_FireCustomMissile ("Laser1", 0, 0, 3)
    NGUN A 0 A_FireCustomMissile ("Laser1", 0, 1, -3)
    NGUN AB 2 Bright
    NGUN A 0 A_GiveInventory("SNGComboChecker",2)
    NGUN C 2 A_Refire
    Goto Ready
  Fire2Quad:
    NGUN A 0
    NGUN A 0 A_PlaySound("QUADS",3)
    NGUN A 0 A_PlayWeaponSound ("Armagon/Laser")
    NGUN A 0 A_FireCustomMissile ("Laser1",0,1,0,6)
    NGUN DE 2 Bright
    NGUN A 0 A_TakeInventory("SNGComboChecker",2)
    NGUN F 2 A_Refire
    Goto Ready
  Spawn:
    MGUN A 1
    Loop
  }
}

actor PlasmaWeaponsChecker: Ammo 
{
	Inventory.MaxAmount 99
}

ACTOR Laser1
{
  Radius 3
  Height 2
  Speed 25
  Damage (25)
  Projectile
  BounceType Hexen
  BounceCount 3
  SeeSound "Armagon/ric"
  +DOOMBOUNCE
  +NOEXTREMEDEATH
  +SKYEXPLODE
  States
  {
  Spawn:
    BAL7 A 1 Bright
    Loop
  Death:
    TNT1 A 0
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 0 A_SpawnItemEx("LaserParticle",Random(-7,7)+1,Random(-7,7)+1,Random(-7,7)+1)
    TNT1 A 1
    Stop
  }
}

Actor Mjolnir : Fist replaces Chainsaw
{
  +NOEXTREMEDEATH
  weapon.selectionorder 30109
  +NOALERT
  +WEAPON.ALT_AMMO_OPTIONAL
  Weapon.AmmoType Cellammo
  Weapon.AmmoUse1 0
  Weapon.AmmoUse2 0
  Inventory.PickupSound "Pickup/Gun"
  Inventory.PickupMessage "You got the Mjolnir"
  Obituary "%o was smithen by %k"
  Tag "MjolnirHammer"
  States
  {
  Ready:
    PUNG A 0 A_GiveInventory("AxeChecker",99)
    TNT1 A 0 A_StopSound(7)
    PUNG A 1 a_weaponready	
    loop
  Deselect:
    PUNG A 0 A_TakeInventory("AxeChecker",98) 
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 1 A_Lower
    loop
  Select:
    PUNG A 0 A_GiveInventory("AxeChecker",99)
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 1 A_Raise
    loop
  Fire:
    PUNG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    PUNG B 5 A_Playsound ("QKnight/Swing2")
    PUNG C 4
    PUNG D 4 A_CustomPunch (Random(50,50)+0,1,0,"Qhammerpuff")
    PUNG E 15
    PUNG A 5 A_ReFire  	
    goto Ready
  FireQuad:
    PUNG B 0
    PUNG B 0 A_Playsound ("QUADS",3)
    PUNG B 5 A_Playsound ("QKnight/Swing2")
    PUNG C 4
    PUNG D 4 A_CustomPunch (Random(50,50)+0,1,0,"Qhammerpuff")
    PUNG E 15
    PUNG A 5 A_ReFire  	
    goto Ready
  AltFire:
    PUNG B 0 A_JumpIfInventory("CellAmmo",15,"Unleash")
    goto Fire
  Unleash:
    PUNG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"UnleashQuad")
    PUNG B 0  A_JumpIf(waterlevel == 3, "Discharge")
    PUNG B 5  Bright A_Playsound ("QKnight/Swing2")
    PUNG CD 4 Bright
    PUNG E 0 A_TakeInventory("CellAmmo",15)
    PUNG E 0 A_Playsound("Mjolnir/special")
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -50, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -40, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -30, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -20, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -10, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 0, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 10, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 20, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 30, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 40, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 50, 100, 0, -30)
    PUNG E 5 Bright
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -55, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 55, 100, 0, -30)
    PUNG E 5 Bright
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 55, 100, 0, -30)
    PUNG E 5 Bright
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -50, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -40, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -30, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -20, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -10, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 0, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 10, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 20, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 30, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 40, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 50, 100, 0, -30)
    PUNG E 5 Bright
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -55, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 55, 100, 0, -30)
    PUNG E 5 Bright
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", -5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 5, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 15, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 25, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 35, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 45, 100, 0, -30)
    PUNG E 0 A_FireCustomMissile("MjolnirBolt", 55, 100, 0, -30)
    PUNG E 5 Bright
    PUNG A 5 A_ReFire  	
    goto Ready
  UnleashQuad:
    PUNG B 0
    PUNG B 1 A_Playsound ("QUADS",3)
    Goto Unleash+1
  Spawn:
    CSAW A 1
    Loop
  Discharge:
    PUNG A 0 A_Explode(99999,10000)
    Goto Ready
  } 
}

actor QHammerPuff: QuakePuff
{
	SeeSound ""
        AttackSound "Mjolnir/miss"
	DamageType Hammer
}

ACTOR MjolnirBolt
{
  Speed 30
  Radius 3
  Height 8
  Damage (10)
  Decal DoomImpScorch
  RenderStyle Add
  Alpha 0.7
  Projectile
  -RIPPER
  -CANNOTPUSH
  -NODAMAGETHRUST
  +FLOORHUGGER
  DamageType Hammer
  states
  {
  Spawn:
    TNT1 AAAAA 1 bright A_SpawnItemEx("MageWandSmoke")
    stop
  Death:
    ZOT3 ABCDE 1
    Stop
  }
}

ACTOR ThunderBolt : weapon replaces BFG9000
{
  Weapon.SelectionOrder 2800
  Weapon.AmmoUse 1
  Weapon.AmmoGive 15
  Weapon.AmmoType "Cellammo"
  Inventory.PickupSound "Pickup/Gun"
  Weapon.SisterWeapon "PlasmaBolt"
  Inventory.PickupMessage "You got the Thunderbolt"
  Tag "LightningGun"
  States
  {
  Ready:
    PUNG A 0 A_GiveInventory("PlasmaWeaponsChecker",99)
    TNT1 A 0 A_GiveInventory("StealTB",1)
    TNT1 A 0 A_StopSound(7)
    PUNG A 1 A_WeaponReady
    Loop
  Deselect:
    PUNG A 0 A_TakeInventory("PlasmaWeaponsChecker",98) 
    PUNG A 0 A_TakeInventory("StealTB",1) 
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 0 A_Lower
    PUNG A 1 A_Lower
    loop
  Select:
    PUNG A 0 A_GiveInventory("PlasmaWeaponsChecker",99)
    PUNG A 0 A_GiveInventory("StealTB",1)
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 0 A_Raise
    PUNG A 1 A_Raise
    loop
  Fire:
    PLSG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    PLSG B 0 A_JumpIf(waterlevel == 3, "Discharge")
    PLSG A 0 A_Playsound("Light/fire") 
    PLSG A 0 A_Playsound("Light/run",7,1.0,1)
    PLSG A 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG A 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 1 A_Refire
    Goto Ready
  Hold:
    PLSG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"HoldQuad")
    PLSG B 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG B 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG C 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG C 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG D 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG D 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG A 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 1 A_ReFire
    Goto Ready
  FireQuad:
    PLSG B 0
    PLSG B 0 A_Playsound("QUADS",3) 
    PLSG B 0 A_JumpIf(waterlevel == 3, "Discharge")
    PLSG A 0 A_Playsound("Light/fire") 
    PLSG A 0 A_Playsound("Light/run",7,1.0,1) 
    PLSG A 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG A 2 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 1 A_Refire
    Goto Ready
  HoldQuad:
    PLSG B 0
    PLSG B 0 A_Playsound("QUADS",3) 
    PLSG B 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG B 3 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG C 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG C 3 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG D 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG D 3 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 0 A_FireCustomMissile("LightningBolt",0,0)
    PLSG A 3 Bright A_FireBullets (0, 0, 1, Random(30,30)+0, ThunderPuff,FBF_USEAMMO|FBF_NORANDOM, 800)
    PLSG A 1 A_ReFire
    Goto Ready
  Discharge:
    PUNG A 0 A_Explode(99999,10000)
    PUNG A 0 A_TakeInventory("Cell",100)
    Goto Ready
  Spawn:
    PLAS A -1
    Stop
  }
}

ACTOR PlasmaBolt : ThunderBolt
{
  Weapon.SelectionOrder 2800
  Weapon.AmmoUse 1
  Weapon.AmmoGive 0
  Weapon.AmmoType "Plasmaammo"
  Weapon.SisterWeapon "ThunderBolt"
  Tag "PlasmaGun"
  States
  {
  Fire:
  Hold:
    PLSG B 0 A_JumpIfInventory("QPowerQuadDamage",1,"FireQuad")
    PLSG B 0 A_JumpIf(waterlevel == 3, "Discharge")
    PLSG A 3 Bright A_FireCustomMissile("PlasmaBFGthing")
    PLSG BCD 3 Bright
    Goto Ready
  FireQuad:
  HoldQuad:
    PLSG B 0
    PLSG B 0 A_Playsound("QUADS",3) 
    PLSG B 0 A_JumpIf(waterlevel == 3, "Discharge")
    PLSG A 3 Bright A_FireCustomMissile("PlasmaBFGthing")
    PLSG BCD 3 Bright
    Goto Ready
  }
}

actor ThunderPuff: QuakePuff
{
  Decal DoomImpScorch
}

ACTOR LightningBolt : MageWandMissile
{
  Speed 200
  Radius 3
  Height 8
  Damage 0
  Alpha 0.8
  SeeSound ""
  -RIPPER
  -CANNOTPUSH
  -NODAMAGETHRUST
  states
  {
  Spawn:
    TNT1 A 1
    Goto Death
  Death:
    TNT1 A 3 bright
    stop
  }
}

ACTOR ShamblerBolt : LightningBolt
{
  DeathSound "Shambler/boom"
  states
  {
  }
}

ACTOR ThunderTrail : MageWandSmoke replaces MageWandSmoke
{
  RenderStyle Add
  Scale 0.4
  States
  {
  Spawn:
    ZOT3 ABCDE 1
    stop
  }
}

ACTOR PlasmaBFGthing
{
  Radius 5
  Height 5
  Speed 20
  Damage 8
  Projectile
  +RANDOMIZE
  SeeSound "plasma/fire"
  Decal "BaronScorch"
  States
  {
  Spawn:
    BAL7 A 0
    BAL7 A 0 A_SpawnItemEx("zapper",1,1,1,0,0,0,0,SXF_SETMASTER)
    BAL7 A 1 Bright A_Playsound("Plasma/fly",3,1,1)
    BAL7 A 0 A_KillChildren
    BAL7 A 0 A_SpawnItemEx("zapper",1,1,1,0,0,0,90,SXF_SETMASTER)
    BAL7 A 1 Bright
    BAL7 A 0 A_KillChildren
    BAL7 A 0 A_SpawnItemEx("zapper",1,1,1,0,0,0,180,SXF_SETMASTER)
    BAL7 A 1 Bright
    BAL7 A 0 A_KillChildren
    BAL7 A 0 A_SpawnItemEx("zapper",1,1,1,0,0,0,270,SXF_SETMASTER)
    BAL7 A 1 Bright
    BAL7 A 0 A_KillChildren
    Loop
  Death:
    BAL7 A 0 A_Stopsound(3)
    BAL7 A 0 A_Playsound("plasma/hit",5)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisSS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebris",Random(-3,3)+1,Random(-3,3)+1,Random(-2,2)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 0 A_SpawnItemEx("PlasmaDebrisS",Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1,Random(-3,3)+1)
    TNT1 A 1 A_Explode(random(120,120)*1,160)
    Stop
  }
}

ACTOR zapper
{
  Health 0x7FFFFFFF
  Radius 1
  Height 1
  Mass 100000000
  Speed 0
  +FRIENDLY
  -COUNTKILL
  +NOCLIP
  +NOTARGET
  +GHOST
  +SPECTRAL
  +AMBUSH
  Monster
  Obituary "%o was shocked"
  States
  {
  Spawn:
    TNT1 AAA 1 A_Look
    Stop
  See:
    TNT1 A 1 A_JumpIfCloser(800,"missile")
    Stop
  Missile:
    TNT1 A 0 A_CustomMissile("LightningBolt")
    TNT1 A 1 Bright A_CustomBulletAttack(0,0,1,Random(5,5)+0,ThunderPuff,800)
  Death:
    TNT1 A 1
    Stop
  }
}

actor StealSSG: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealNG: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealSNG: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealGL: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealPL: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealRL: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealLC: Ammo 
{
	Inventory.MaxAmount 1
}

actor StealTB: Ammo 
{
	Inventory.MaxAmount 1
}