
//Dusk damage chart (type: Dmg)
//SP: 600 (20x30)
//MP: 400 (20x20)

const int SSGDmg = 5;
const int SSGDmg_Old = 3;
const int SSGSpreadHorz = 11.2;
const int SSGSpreadVert = 7.1;


//The oldschool classic.
ACTOR Dusk_SuperShotgun : DuskWeapon //replaces supershotgun
{
	Weapon.SelectionOrder 5
Weapon.Slotnumber 4
	Weapon.SisterWeapon Dusk_SuperShotgun_newammo

	Weapon.AmmoUse 2
	Weapon.AmmoGive 8
	Weapon.AmmoType "Shell"
	Weapon.UpSound "sshotgun/raise"

	Inventory.PickupMessage "$SSG_PICK"
	Obituary "$SSG_OB"
	Tag "Super shotgun"

	States
	{
	Ready:
TNT1 A 0 A_JumpIfInventory("Doosk_ExplosiveBarrelWeapon",1,"Select_Barrel")
TNT1 A 0 A_JumpIfInventory("Doosk_HereticBarrelWeapon",1,"Select_HereticBarrel")
TNT1 A 0 A_JumpIfInventory("Doosk_SoapWeapon",1,"Select_Soap")


TNT1 A 0 A_JumpIf(CallACS("buckshotcheck")==1, "Ready_Old")
		W04C A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Deselect:
    TNT1 A 0 A_TakeInventory("SetWeaponMemory",50)
    TNT1 A 0 A_GiveInventory("SetWeaponMemory",7)
	DeselectLoop:
		TST1 AAA 0 A_Lower
		TST1 A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_SetCrosshair(13)
    TNT1 A 0 A_TakeInventory("SetWeaponActual",50)
    TNT1 A 0 A_GiveInventory("SetWeaponActual",7)
//		TNT1 A 0 A_WeaponReady(WRF_NOFIRE)
TNT1 A 0 A_JumpIf(CallACS("buckshotcheck")==1, "Select_Old")
		W04A ABCDEFGHIJKLMNOPQ 1 A_WeaponReady//(WRF_NOFIRE)
		Goto Ready


	Reload://Weapon spin
	TNT1 A 0 A_PlaySound("sickles/fire")
TNT1 A 0 A_JumpIf(CallACS("buckshotcheck")==1, "Reload_Old")

		W04D ABCDE 1 A_WeaponReady //(WRF_ALLOWRELOAD)
		W04D FGHIJKLMNOPQRSTU 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready


		
	Fire:
		W04F A 0 A_Gunflash		TNT1 A 0 A_GiveInventory("Player_WeaponShot",1)
TNT1 A 0 A_JumpIf(CallACS("buckshotcheck")==1, "Fire_Old")


 		W04F ABCD 1 bright A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",31,	"Fire_Stacked2")
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",1,	"Fire_Stacked1")
		W04F EFGHIJKLMNOPQ 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 19 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W04G ABCDEFGHI 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W04C A 5 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W04C A 0 A_ReFire
		Goto Ready


	Fire_Stacked1:
		W04F EFGHIJKLMNOPQ 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 8 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W04C A 0 A_ReFire
		TNT1 A 11 A_WeaponReady (WRF_ALLOWRELOAD)
		W04G ABCDEFGHI 1 A_WeaponReady (WRF_ALLOWRELOAD)
		W04C A 5 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready


	Fire_Stacked2:
		W04F EFGHIJKLM 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W04F NOPQ 1 A_WeaponReady (WRF_ALLOWRELOAD)
		TNT1 A 8 A_WeaponReady (WRF_ALLOWRELOAD)
		W04C A 0 A_ReFire
		TNT1 A 11 A_WeaponReady (WRF_ALLOWRELOAD)
		W04G ABCDEFGHI 1 A_WeaponReady (WRF_ALLOWRELOAD)
		W04C A 5 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready










//Supa shotgun variation
	Ready_Old:
		W22D E 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Goto Ready

	Select_Old:
		TNT1 A 1 A_WeaponReady
		W22A ABCDEFGHIJKLMNOP 1 A_WeaponReady//(WRF_NOFIRE)
		Goto Ready


	Reload_Old://Weapon spin
		W22B ABCDE 1 A_WeaponReady //(WRF_ALLOWRELOAD)
		W22B FGHIJKLMNOPQRSTUVWXY 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready


		
	Fire_Old:
 		W22C ABCD 1 bright A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",31,	"Fire_Stacked2_Old")
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",1,	"Fire_Stacked1_Old")
		W22C EFGHIJKLMNOPQRSTUVWXYZ 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
//		W22D Z 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W22D ABCDE 1 A_WeaponReady (WRF_ALLOWRELOAD)
		W22D E 0 A_ReFire
		Goto Ready


	Fire_Stacked1_Old:
		W22C EFGHIJKLMN 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W22C O 0 A_ReFire
		W22C OPQRSTUVWXYZ 1 A_WeaponReady (WRF_ALLOWRELOAD)
		W22D ABCDE 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready


	Fire_Stacked2_Old:
		W22C EFGHI 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
		W22C K 0 A_ReFire
		W22C JKLMNOPQRSTUVWXYZ 1 A_WeaponReady (WRF_ALLOWRELOAD)
		W22D ABCDE 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready










	Flash_Old:
		TNT1 A 0 A_FireBullets (SSGSpreadHorz, SSGSpreadVert, 20, SSGDmg_Old, "WeaponPuff_AllowGib")
    TNT1 A 0 A_PlaySound ("winchester/fire", CHAN_WEAPON)
	Goto FlashContinue


	Flash:
TNT1 A 0 A_JumpIf(CallACS("buckshotcheck")==1, "Flash_Old")
		TNT1 A 0 A_FireBullets (SSGSpreadHorz, SSGSpreadVert, 20, SSGDmg, "WeaponPuff_AllowGib")
    TNT1 A 0 A_PlaySound ("sshotgun/fire", CHAN_WEAPON)
	FlashContinue:
	TNT1 A 0 ACS_NamedExecuteAlways("Weapon_Recoil", 0, 3, 0, 0)
		TNT1 A 3 A_Light2
		TNT1 A 4 A_Light1
		TNT1 A 8 A_Light0
	
	TNT1 A 1 A_JumpIf(CallACS("CasingsType")==1, "CasingSpawner")
//Sprite casings
		C04A A 0 A_JUMP(128, 3)
		C04B A 0 A_JUMP(128, 2)
		C04C A 0
		"####" ABCDEFGHIJKLMNOPQR 1 
	Goto LightDone




//Actor casings
	CasingSpawner:
		TNT1 A 0 A_FireCustomMissile("ShotgunCaseSpawn",5,0,2,-10)//,-10,0,2,6)
		TNT1 A 0 A_FireCustomMissile("ShotgunCaseSpawn2",5,0,-2,-10)//,10,0,2,6)
		Goto LightDone

	Spawn:
		W04Z A -1
		Stop
	}
}

