Actor EmpoweredRapidShotgun : RapidShotgun
{
+WEAPON.POWERED_UP
Weapon.SisterWeapon "RapidShotgun"
AttackSound "weapons/ExplosiveSG/fire"
  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")
	MGRE ABCDE 1 
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    ECHG 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")
	ECHG 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)
    ECHG A 1 
    ECHG 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 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")
    ECHG BC 1 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")  
    ECHG BC 1 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")
    ECHG BC 1
    TNT1 A 0 A_Refire 
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6) 
    ECHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    ECHG AB 2    
    ECHG 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)
    ECHG 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) 
    ECHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    ECHG AB 2    
    ECHG CD 3 
    Goto Ready+6 	
  FastJustSpin: 
    TNT1 A 0 A_GiveInventory("RapidShotgunSpin",1)   
	TNT1 A 0 A_PlaySound("HeavyChaingun/Loop",6,1.0,1)
    ECHG 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) 
    ECHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    ECHG AB 2    
    ECHG CD 3 
    Goto Ready+6 	
  SpinStop:
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    ECHG A 0 A_GiveInventory("RapidShotgunSpin",1)
    ECHG B 0 A_Playsound("HeavyChaingun/Down",6) 
    ECHG ABCDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BCD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    ECHG AB 2    
    ECHG CD 3
    Goto Ready+6   
  FastHold: 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")
    ECHG BC 2 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")  
    ECHG BC 2 
    TNT1 A 0 A_GunFlash    
	TNT1 A 0 Radius_Quake(2,2,0,1,0)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-10,10),0,0,0,0,frandom(-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)
    ECHG 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")
    ECHG BC 2
    TNT1 A 0 A_Refire("Hold") 
    TNT1 A 0 A_JumpIfInventory("AgilityRuneRage",1,"FastHoldSpinStop") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6)  
    ECHG CDABCDABCDA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BCD 2 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG AB 2    
    ECHG CD 3 
    Goto Ready+6  
  FastSpin:
    TNT1 A 0 A_JumpIfInventory("RapidShotgunSpin",1,"Hold") 
    TNT1 A 0 A_Playsound("HeavyChaingun/Sart",6)
    ECHG A 1 
    ECHG BDBDBDB 1 //DBDB 1  
    TNT1 A 0 A_Refire 
    Goto SpinStop  
  FastHoldSpinStop:
    ECHG A 0 A_GiveInventory("RapidShotgunSpin",1) 
    TNT1 A 0 A_Playsound("HeavyChaingun/Down",6)  
    ECHG ACACACA 1 A_WeaponReady(WRF_NOSECONDARY)  
    ECHG BD 2 A_WeaponReady(WRF_NOSECONDARY) 
    TNT1 A 0 A_TakeInventory("RapidShotgunSpin",2)
    ECHG A 2    
    ECHG 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") 
	MGRE EDCBA 1
	MGRE 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") 
	MGRE 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	
  } 
}