ACTOR RapidShotgun : Weapon replaces HeavyChaingun
{ 
+WEAPON.NOALERT
+WEAPON.AMMO_OPTIONAL
Weapon.SelectionOrder 700
Weapon.PreferredSkin "Rapid-Shotgun-Marine"
Weapon.AmmoUse 1
Weapon.AmmoGive 20
Weapon.AmmoType "NewShell"
Weapon.AmmoType2 "NewShell"
Weapon.SisterWeapon "EmpoweredRapidShotgun"
AttackSound "weapons/12gaugefire"
Inventory.PickupMessage "You got the Rapid Shotgun!"
Inventory.PickupSound "weapons/minigunpickup"
Obituary "%o was mowed down by %k's rapid shotgun."
Tag "Rapid Shotgun"
Decal "BulletChip" 
  States 
  { 
  Spawn: 
    HCNG A -1
    Stop     
  Flash: 
    TNT1 A 1 A_Light1
    TNT1 A 1 A_Light2 
    TNT1 A 0 A_Light0
    Goto LightDone 
  Ready:  
	TNT1 A 0 A_PlayWeaponSound("weapons/minigunpickup")
	CGRS ABCDE 1 
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    QCHG A 1 A_WeaponReady 
	Goto Ready+6
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)    
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	QCHG A 1 A_Lower
	Goto Deselect+5
  Select:
	TNT1 A 0 A_Raise
	Wait 
  Fire:
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastSpin") 
    TNT1 A 0 A_JumpIfInventory("RapidShotgunSpin",1,"Hold") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Sart",6)
    QCHG A 1 
    QCHG BCDABCDABCDABCD 1 //ABCDABC 1  
    TNT1 A 0 A_Refire
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6)
    Goto SpinStop    
  Hold:
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")
    TNT1 A 0 A_GiveInventory("RapidShotgunSpin",1) 
    TNT1 A 0 A_AlertMonsters  
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",6,1.0,1)
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHold") 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG E 2 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM)
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")
    QCHG BC 1 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG F 2 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM)
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")  
    QCHG BC 1 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG H 2 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM) 
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")
    QCHG BC 1
    TNT1 A 0 A_Refire 
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6) 
    QCHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    QCHG AB 2    
    QCHG CD 3 
    Goto Ready+6  
  JustSpin: 
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastJustSpin") 
    TNT1 A 0 A_GiveInventory("RapidShotgunSpin",1)  
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",6,1.0,1)
    QCHG DABCDABCDAB 1 A_JumpIfInventory("NewShell",1,"Hold")
    TNT1 A 0 A_Refire("JustSpin")
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6) 
    QCHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    QCHG AB 2    
    QCHG CD 3 
    Goto Ready+6 	
  FastJustSpin: 
    TNT1 A 0 A_GiveInventory("RapidShotgunSpin",1)   
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",6,1.0,1)
    QCHG DBDBDB 1 A_JumpIfInventory("NewShell",1,"Hold")
    TNT1 A 0 A_Refire("JustSpin")
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6) 
    QCHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    QCHG AB 2    
    QCHG CD 3 
    Goto Ready+6 	
  SpinStop:
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    QCHG A 0 A_GiveInventory("RapidShotgunSpin",1)
    QCHG B 0 A_Playsound("HeavyChaingun/Down",6) 
    QCHG ABCDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    QCHG AB 2    
    QCHG CD 3
    Goto Ready+6   
  FastHold: 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG E 4 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM)
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")
    QCHG BC 2 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG F 4 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM)
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")  
    QCHG BC 2 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAA 0 A_FireCustomMissile("SGTracer",Random(6,-6),0,0,Random(-6,6))
	TNT1 A 0 A_SpawnItemEx("ShellCasing",12,-6,36,Random(2,6),0,Random(1,3),Random(-80,-90),SXF_NOCHECKPOSITION)
	TNT1 A 0 A_FireBullets(15,12.2,4,Random(1,5)*random(3,6),"ModdedBulletPuff",FBF_USEAMMO|FBF_NORANDOM)
    QCHG H 4 Bright A_FireBullets(11.8,7.3,3,random(1,5)*random(6,9),"ModdedBulletPuff",FBF_NORANDOM) 
	TNT1 A 0 A_JumpIfNoAmmo("JustSpin")
    QCHG BC 2
    TNT1 A 0 A_Refire("Hold") 
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6)  
    QCHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BCD 2 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG AB 2    
    QCHG CD 3 
    Goto Ready+6  
  FastSpin:
    TNT1 A 0 A_JumpIfInventory("RapidShotgunSpin",1,"Hold") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Sart",6)
    QCHG A 1 
    QCHG BDBDBDB 1 //DBDB 1  
    TNT1 A 0 A_Refire 
    Goto SpinStop  
  FastHoldSpinStop:
    QCHG A 0 A_GiveInventory("RapidShotgunSpin",1) 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6)  
    QCHG ACACACA 1 A_WeaponReady(WRF_NOSECONDARY)  
    QCHG BD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    QCHG A 2    
    QCHG C 3
    Goto Ready+6    
MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto Ready+7	
MineToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	CGRS EDCBA 1
	CGRS A 1
	TNT1 A 8
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	MINE ABCDEF 1		
	TNT1 A 0 A_TakeInventory("MineAmmo",1)	  
	MINE G 1 A_FireCustomMissile("ThrownMine",0,0,0,0)
	MINE HI 1
	MINE JK 2
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,2)
    TNT1 A 0 A_TakeInventory("Land Mine",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0
	TNT1 A 5
	Goto Ready+1
GrenadeCheck:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	Goto Ready+6
GrenadeToss:
  	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	CGRS EDCBA 1
	TNT1 A 6
	HGRN ABC 1
	HGRN D 1
	HGRN EFGHI 1
	TNT1 A 14 A_PlayWeaponSound("weapons/hgrenadepin")
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
	HGRN J 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN K 1
	HGRN LMNO 2
	TNT1 A 6
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
    TNT1 A 0 A_TakeInventory("Hand Grenade",1)
	TNT1 A 0
	Goto Ready+1	
  } 
} 

ACTOR RapidShotgunSpin : Inventory
{
-INVBAR
Inventory.maxamount 1
}