//SHOTGUN

actor Shotgun1 : DoomWeapon replaces shotgun
{
  Game Doom
  Weapon.SelectionOrder 1300
  Decal BulletChip
  scale 0.20
  Weapon.AmmoUse 1
  Weapon.AmmoGive 8
  Weapon.AmmoGive2 8
  Weapon.BobSpeed 2.5
  Weapon.BobRangeY 0.3
  Weapon.BobRangeX 0.0
  Weapon.AmmoType "ShotgunLoaded"
  Weapon.AmmoType2 "ShotgunAmmo"
  Inventory.PickupMessage "$GOTSHOTGUN"
  Obituary "$OB_MPSHOTGUN"
  +Weapon.noautofire
  +Weapon.Ammo_Optional
  +WEAPON.NOAUTOAIM
  States
  {
  Ready:
    SHTG A 1
	TNT1 A 0 A_FireCustomMissile(ShotgunCasingSpawner,0,0,8,-2)
	PUMP A 1 A_PlaySound("SHOTREF")
	PUMP BCDCB 2
	SHTG A 2
    goto RealReady
	RealReady:
	SHTG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
	TNT1 A 0 	
	Loop
  Deselect:
    SHTG A 1 A_Lower
    Loop
  Select:
    SHTG A 1 A_Raise
    Loop
	Dryfire:
	SHTG A 2 A_PlayWeaponSound("DRYFIRE")
	Goto Reload
  Fire:
    TNT1 A 0 A_JumpIfNoAmmo("Dryfire")
	TNT1 A 0 A_PlayWeaponSound("SHOTFIRE")
    TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_TakeInventory("ShotgunLoaded", 1)
	TNT1 A 0 Radius_Quake (1, 2, 0, 1, 0)
	SHTF A 2 Bright A_Light(5)
    TNT1 AAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunTracer", random(0, 2), 0, 2, -1, 0, random(-2, 2))
	SHTF B 2 Bright A_Light(5)
	TNT1 A 0 A_GunFlash
	SHTG BCDCB 2
	SHTG A 6
    Goto Ready
		Reload:
  SHTG A 0 A_JumpIfInventory("ShotgunLoaded", 8, 2)
  SHTG A 0 A_JumpIfInventory("ShotgunAmmo", 1, "ReloadWork")
  SHTG A 0 
  Goto RealReady
  ReloadWork:
  SHTR ABCDE 2
  ReloadLoop:
    SHTR F 1
	TNT1 A 0 A_TakeInventory("ShotgunAmmo", 1)
    SHTR F 1 Offset(0,35) 
    SHTR F 1 Offset(0,38)
    SHTR F 1 Offset(0,40) A_PlaySound("SHELLIN")
    SHTR F 1 Offset(0,44) A_GiveInventory("ShotgunLoaded", 1)
	SHTR F 1 Offset(0,44) A_WeaponReady
	SHTR F 1 Offset(0,40) A_WeaponReady
    SHTR F 1 Offset(0,38) A_WeaponReady
    SHTR F 1 Offset(0,35) A_WeaponReady
    SHTR F 1 Offset(0,32) A_WeaponReady
	TNT1 A 0 A_JumpIfInventory("ShotgunLoaded", 8, "ReloadFinish")
    TNT1 A 0 A_JumpIfInventory("ShotgunAmmo", 1, "ReloadLoop")
    Goto ReloadFinish
	ReloadFinish:
	SHTR BA 2
	SHTG A 2  A_WeaponReady
	Goto Ready
  Flash:
    TNT1 A 0 Bright A_Light1
    TNT1 B 0 Bright A_Light2
    Goto LightDone
  Spawn:
    SHOT A -1
    Stop
  }
}

ACTOR ShotgunLoaded : Ammo
{
   Inventory.Icon SHELA0
   Inventory.MaxAmount 8
   Ammo.BackpackMaxAmount 8
}

Actor ShotgunAmmo : Ammo replaces Shell
{
  scale 0.2
  Inventory.PickupMessage "Picked up a 4 Shotgun Shell"
  Inventory.PickupSound "misc/Shell_PickUp"
  Inventory.Amount 4
  Inventory.MaxAmount 500
  Ammo.BackpackAmount 4
  Ammo.BackpackMaxAmount 999
  Inventory.Icon "SHELA0"
  States
  {
  Spawn:
    SHEL A -1
    Stop
  }	   
}

Actor ShotgunAmmoBox : ShotgunAmmo replaces Shellbox
{
  Inventory.PickupMessage "Picked up a Shotgun Ammo Box"
  Inventory.Amount 50
  Inventory.Icon "SHELA0"
  States
  {
  Spawn:
    SBOX A -1
    Stop
  }	   
}

Actor ShotgunCasingSpawner : PistolCasingSpawner
{
	States
	{
	Missile:
		TNT1 A 0 A_SpawnItemEx(ShotgunCasing,0,0,0,FRandom(2,4),0,FRandom(2,4),FRandom(-10,10),SXF_TRANSFERSCALE)
		Stop
	}
}