ACTOR "Explosive Shotgun" : Weapon 17603
{
//$Category Weapons/DUST
//$Sprite HLSPA0
//$Title "Explosive Shotgun"
  Weapon.SlotNumber 3
  Weapon.PreferredSkin "CombatSG-Marine"
  Weapon.SelectionOrder 3000
  Weapon.KickBack 160
  Weapon.AmmoUse 1
  Weapon.AmmoType "ExplosiveShotgunMagazine"
  Weapon.AmmoType2 "NewShell"
  Weapon.AmmoGive2 8
  Obituary "%o was made extra crispy by %k's Explosive Shotgun."
  Inventory.PickupMessage "Explosive Shotgun"
  Inventory.PickupSound "weapons/ExplosiveSG/pump"
  +WEAPON.AMMO_OPTIONAL
  +WEAPON.NOALERT
  +INVENTORY.UNDROPPABLE
  States 
  {
  Ready:
	TNT1 A 0 A_PlaySound("weapons/ExplosiveSG/pump",1)
	HLSQ A 1
	HLSQ B 1
	HLSQ C 1
	HLSQ D 1
	HLSQ E 1
	HLSQ F 1
	HLSQ G 1
	HLSQ H 1
  RealyReady:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
	HLSA A 1 A_WeaponReady
	loop
  Deselect:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	HLSA A 1 A_Lower
	Goto Deselect+1
  Select: 
	TNT1 A 0 A_Raise
	Wait
  Fire:
	TNT1 A 0 A_JumpIfNoAmmo("Empty")
	TNT1 A 0 A_PlaySound("weapons/ExplosiveSG/fire",7)
	TNT1 A 0 A_AlertMonsters
	TNT1 A 0 Radius_Quake(4,4,0,1,0)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Light1
	//TNT1 A 0 A_TakeInventory("ExplosiveShotgunMagazine",1,TIF_NOTAKEINFINITE)
	TNT1 AAAAAAAA 0 A_FireCustomMissile("PlayerExplosiveTracer",Random(-4,4),0,0,0,0,frandom(-3,3))
	TNT1 A 0 A_FireBullets(4.0,3.0,8,Random(5,7),"ModdedBulletPuff")
	HLSF A 1 Bright
	HLSF B 1 Bright A_Light2
	TNT1 A 0 A_Light0
	HLSF C 1 
	HLSF D 1 
	HLSF E 1 
	//HLSF F 1 
	HLSF G 1 
	//HLSF H 1 
	HLSF I 1 
	HLSC A 1
	HLSC B 1
	HLSC C 1
	HLSC D 1
	HLSC E 1
	HLSC F 1
	HLSC G 1
	HLSC H 1
	HLSC I 1
	HLSC J 1
	HLSC K 1
	TNT1 A 0 A_PlaySound("weapons/ExplosiveSG/pump",1)
	HLSC L 1
	HLSC M 1
	TNT1 A 0 A_SpawnItemEx("OrangeShellCasing",30,-1,25,Random(2,4),Random(3,6),Random(3,6),0)
	HLSC N 2
	HLSC M 1
	HLSC L 1
	HLSC K 1
	HLSC J 1
	HLSC I 1
	HLSC H 1
	HLSC G 1
	HLSC F 1
	HLSC E 1
	HLSC D 1
	HLSC C 1
	HLSC B 1
	HLSC A 1
	HLSA A 4
	goto RealyReady
  Empty:
	HLSA A 10 A_PlayWeaponSound("weapons/click")	
  AltFire:
    TNT1 A 0 A_JumpIfInventory("ExplosiveShotgunMagazine",9,"RealyReady")
    TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	goto RealyReady
	HLSC ABCDEFGH 1
	TNT1 A 0 A_JumpIfInventory("ExplosiveShotgunMagazine",1,"Reload")
    HLSR ABCDE 1	
	HLSR F 1 A_PlaySound("Weapons/ShellLoad")
	TNT1 A 0 A_TakeInventory("NewShell",1)
	TNT1 A 0 A_GiveInventory("ExplosiveShotgunMagazine",1)
	HLSR GHIJ 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLSR A 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_PlayWeaponSound("weapons/ExplosiveSG/pump")
	HLSC I 1
	HLSC J 1
	HLSC K 1
    HLSC L 1
    HLSC M 1
	HLSC N 2
	HLSC M 1
	HLSC L 1
	HLSC K 1
    TNT1 A 0 A_JumpIfInventory("NewShell",1,1)
	Goto Full	
  Reload:
    HLSR ABCDE 1	
	HLSR F 1 A_PlaySound("Weapons/ShellLoad")
	TNT1 A 0 A_TakeInventory("NewShell",1)
	TNT1 A 0 A_GiveInventory("ExplosiveShotgunMagazine",1)
	HLSR GHIJ 1
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAction",1,"GrenadeCheck")
	TNT1 A 0 A_JumpIfInventory("MineAction",1,"MineCheck")
    HLSR A 1 A_WeaponReady(WRF_NOBOB|WRF_NOSECONDARY)
	TNT1 A 0 A_JumpIfInventory("ExplosiveShotgunMagazine",9,"Full")
	TNT1 A 0 A_JumpIfInventory("NewShell",1,"Reload")
  Full:
    HLSC H 1
	HLSC G 1
	HLSC F 1
	HLSC E 1
	HLSC D 1
	HLSC C 1
	HLSC B 1
	HLSC A 1
	HLSA A 4
	Goto RealyReady
  GrenadeCheck:
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,"GrenadeToss")
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	Goto RealyReady
  GrenadeToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLSQ H 1
	HLSQ G 1
	HLSQ F 1
	HLSQ E 1
	HLSQ D 1
	HLSQ C 1
	HLSQ B 1
	HLSQ A 1
	TNT1 A 4
	HGRN ABC 1
	HGRN D 2
	HGRN EFG 1
	HGRN HI 2
	TNT1 A 15 A_PlayWeaponSound("weapons/hgrenadepin")
	TNT1 A 0 A_PlayWeaponSound("weapons/hgrenadethrow")
	TNT1 A 0 A_TakeInventory("HandGrenadeAmmo",1)
	HGNE A 1 A_FireCustomMissile("ThrownGrenade",0,0,0,0)
	HGRN J 1
	HGRN KLM 2
	HGRN NO 1
	TNT1 A 6
	TNT1 A 0 A_JumpIfInventory("HandGrenadeAmmo",1,2)
	TNT1 A 0 A_TakeInventory("Hand Grenade",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0
	HLSQ A 1
	HLSQ B 1
	HLSQ C 1
	HLSQ D 1
	HLSQ E 1
	HLSQ F 1
	HLSQ G 1
	HLSQ H 1
	Goto RealyReady
  MineCheck:
	TNT1 A 0 A_JumpIfInventory("MineAmmo",1,"MineToss")
	TNT1 A 0 A_TakeInventory("MineAction",1)
	Goto RealyReady
  MineToss:
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown") 
	HLSQ H 1
	HLSQ G 1
	HLSQ F 1
	HLSQ E 1
	HLSQ D 1
	HLSQ C 1
	HLSQ B 1
	HLSQ 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
	HLSQ A 1
	HLSQ B 1
	HLSQ C 1
	HLSQ D 1
	HLSQ E 1
	HLSQ F 1
	HLSQ G 1
	HLSQ H 1
	Goto RealyReady
  Spawn:
	HLSP A -1
	stop
  }
}

ACTOR ExplosiveShotgunMagazine : Ammo
{
Inventory.Amount 0
Inventory.MaxAmount 9
Ammo.BackpackAmount 0
Ammo.BackpackMaxAmount 9
Inventory.Icon "HLSPA0"
+IGNORESKILL
}