// --------------------------------------------------------------------------
//
// Sawnoff
//
// --------------------------------------------------------------------------

ACTOR Sawnoff : LowWeapon replaces Shotgun
{
	+WEAPON.AMMO_OPTIONAL
	Weapon.SlotNumber 3
	Weapon.Kickback 180
	Weapon.AmmoType "SSGReload"
	Weapon.AmmoGive 0
	Weapon.AmmoUse 0
	Weapon.AmmoType2 "Buckshot"
	Weapon.AmmoGive2 4
	Inventory.PickupMessage "Sawnoff."
	Weapon.UpSound "weapons/upwp7"
	Scale 0.75
	Tag "Sawnoff"
	States
	{
	Spawn:
		SUPP A -1
		Stop
	Ready:
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		TNT1 A 0 A_JumpifInventory("ThrowTNT",1,"TNT")
		TNT1 A 0 A_JumpIfInventory("SSGReload",0,2)
		TNT1 A 0 A_JumpIfInventory("Buckshot",1,2)
		SUPG A 1 A_WeaponReady
		Loop
		SUPG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		TNT1 A 0 A_JumpifInventory("IsKicking",1,"Kick")
		Loop
	Deselect:
		TNT1 A 0 A_PlaySound("weapons/swap",6)
		SUPG A 1 Offset (8, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (16, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (24, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (32, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (40, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (48, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (56, 0) A_Lower
		TNT1 A 0 A_Lower
		SUPG A 1 Offset (64, 0) A_Lower
		TNT1 A 1 A_Lower
		Wait
	Select:
		SUPG A 1 Offset (64, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (56, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (48, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (40, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (32, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (24, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (16, 0) A_Raise
		TNT1 A 0 A_Raise
		SUPG A 1 Offset (8, 0) A_Raise
		TNT1 A 0 A_Raise
		Wait
	Fire:
		TNT1 A 0 A_JumpIfInventory("SSGReload", 2, "FireRight")
		TNT1 A 0 A_JumpIfInventory("SSGReload", 1, 1)
		Goto Reload
		TNT1 A 0 A_TakeInventory("SSGReload", 1)
		TNT1 A 0 A_PlaySound("weapons/sngfr",6,20)
		SUPB B 2 BRIGHT A_FireBullets (5.6, 3.5, 10, 5, "Bullet_Puff")
		TNT1 AA 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake (3, 4, 0, 1, 0)
		TNT1 A 0 A_Recoil(+3)
		TNT1 A 0 A_SetPitch(pitch -3.5)
		SUPG B 1 Offset(-3,43)
		SUPG B 1 Offset(-2,41)
		SUPG C 1 Offset(-1,39)
		SUPG C 1 Offset(-1,37)
		SUPG A 1 Offset(0,34)
		SUPG AA 2 Offset(0,32)
		Goto Reload
	FireRight:
		TNT1 A 0 A_JumpIfInventory("SSGReload", 1, 1)
		Goto Reload
		TNT1 A 0 A_TakeInventory("SSGReload", 1)
		TNT1 A 0 A_PlaySound("weapons/sngfr",7,20)
		SUPB C 2 BRIGHT A_FireBullets (5.6, 3.5, 10, 5, "Bullet_Puff")
		TNT1 AA 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake (3, 4, 0, 1, 0)
		TNT1 A 0 A_Recoil(+3)
		TNT1 A 0 A_SetPitch(pitch -3.5)
		SUPG B 1 Offset(3,43)
		SUPG B 1 Offset(2,41)
		SUPG C 1 Offset(1,39)
		SUPG C 1 Offset(1,37)
		SUPG A 1 Offset(0,34)
		SUPG AA 2 Offset(0,32)
		Goto Ready
	AltFire:
		TNT1 A 0 A_JumpIfInventory("SSGReload", 2, "FireDouble")
		TNT1 A 0 A_JumpIfInventory("SSGReload", 1, "Fire")
		TNT1 A 0 A_JumpIfInventory("SSGReload", 0, "Reload")
	FireDouble:
		TNT1 A 0 A_JumpIfInventory("SSGReload", 1, 1)
		Goto Reload
		TNT1 A 0 A_TakeInventory("SSGReload", 2)
		TNT1 A 0 A_PlaySound("weapons/dblfr", 7)
		SUPB A 2 BRIGHT A_FireBullets (11.2, 7.1, 20, 5, "Bullet_Puff")
		TNT1 AA 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_GunFlash
		TNT1 A 0 Radius_Quake (3, 4, 0, 1, 0)
		TNT1 A 0 A_Recoil(+3)
		TNT1 A 0 A_SetPitch(pitch -3.5)
		SUPG B 1 Offset(0,51)
		SUPG B 1 Offset(0,48)
		SUPG B 1 Offset(0,44)
		SUPG C 1 Offset(0,40)
		SUPG C 1 Offset(0,38)
		SUPG C 1 Offset(0,36)
		SUPG A 2 Offset(0,33)
		Goto Reload
	Flash:
		TNT1 A 2 Bright A_Light1
		TNT1 A 2 Bright A_Light2
		Goto LightDone
	Reload:
	    TNT1 A 0 A_JumpIfInventory("Buckshot", 1, 1)
        Goto Ready
		TNT1 A 0 A_JumpIfInventory("SSGReload", 1, "ReloadSingle")
		TNT1 A 0 A_JumpIfInventory("SSGReload", 0, "Ready")
		SUPG U 3 A_PlaySound("weapons/SSDryfire")
		SUPG A 3
		TNT1 A 0 A_JumpIfInventory("SSGReload", 0, "ReloadDouble")
	ReloadDouble:
		SUPF DBC 2
		SUPG DEF 2 
		SUPG F 0 A_PlaySound("weapons/SSGopen")
		TNT1 A 0 A_FireCustomMissile("ShotCaseSpawn", 0, 0, -12, 6)
		TNT1 A 0 A_FireCustomMissile("ShotCaseSpawn", 0, 0, -6, -6)//
		TNT1 A 0 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		SUPG MNOP 2
		SUPL E 2
		Goto ReloadWork
	ReloadSingle:
		SUPF DBC 2
		SUPG DDEEF 1 
		SUPG F 0 A_PlaySound("weapons/SSGopen")
		SUPL A 1 A_FireCustomMissile("GunSmokeSpawner",0,0,0)
		SUPL A 1 A_FireCustomMissile("ShotCaseSpawn",6,0,-18,-4,-4,-10)
		SUPL BCDEF 2
		Goto ReloadWork
	ReloadWork:
		TNT1 A 0 A_GiveInventory("SSGReload")
		TNT1 A 0 A_TakeInventory("Buckshot", 1)
		TNT1 A 0 A_JumpIfInventory("SSGReload", 0, "ReloadEnd")
		TNT1 A 0 A_JumpIfInventory("Buckshot", 1, "ReloadWork")
		Goto ReloadEnd
	ReloadEnd:
		SUPG Q 2 A_PlaySound("weapons/SSGload")
		SUPG RRVVST 1
		SUPG F 2 A_PlaySound("weapons/SSGclose")
		SUPG E 2 
		//SUPF D 3 
		SUPG DCB 1
		SUPG A 2
		Goto Ready
//  Kick Actions
	Kick:
		TNT1 A 0 A_JumpIf (momZ > 0, "AirKick")
		TNT1 A 0 A_JumpIf (momZ < 0, "AirKick")
		TNT1 A 0 A_JumpIfInventory("SuperBlow",1,"BerserkKick")
		KKFR A 1 Offset(0,32)
		KKFR BCDE 1
		KKFR FG 1 A_Recoil(-1)
		KKFR H 2 A_CustomPunch (5,0,0,"FightPuff3") 
		KKFR IHGFEDC 1 
		KKFR BA 1 A_Recoil(+1)
		Goto Ready
	AirKick:
		TNT1 A 0 A_JumpIfInventory("SuperBlow",1,"AirBerserkKick")
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1
		KI3K F 3 A_CustomPunch (9,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
	BerserkKick:
		KKFR A 1 Offset(0,32)
		KKFR BCDE 1
		KKFR FG 1 A_Recoil(-1)
		KKFR H 2 A_CustomPunch (9,0,0,"FightPuff3") 
		KKFR IHGFEDC 1 
		KKFR BA 1 A_Recoil(+1)
		Goto Ready
	AirBerserkKick:
		FISG B 1
		FISG B 1 Offset(0,36)
		TNT1 A 0 Offset(-1,32)
		KI3K ABCDE 1 A_Recoil(-2)
		KI3K F 3 A_CustomPunch (12,0,0,"FightPuff3") 
		KI3K GHIJK 2 
		Goto Ready
// TNT Actions
	TNT:
		TNT1 A 0 A_JumpIfInventory("TNTammo",1,1)
		Goto NoTNT
		TNT1 A 0 A_JumpIf(waterlevel>2,"YouCannot")
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TAND ABC 2
		TAND D 2 A_PlaySound ("weapons/tnttr")
		TNT1 A 0 A_FireCustomMissile("STNT",0,0,0,0)
		TNT1 A 0 A_TakeInventory("TNTammo",1)
		TAND EDCBA 2
		TNT1 A 0 A_JumpIfInventory("TNTammo",0,"NoTNT")
		SUPG A 1 Offset(67, 100)
		SUPG A 1 Offset(54, 81)
		SUPG A 1 Offset(32, 69)
		SUPG A 1 Offset(22, 58)
		SUPG A 1 Offset(10, 47)
		SUPG A 1 Offset(7, 39)
		SUPG A 1 Offset(2, 34)
		Goto Ready
	YouCannot:
		TNT1 A 0 A_Print("You Are Underwater!",8)
		Goto Ready
	NoTNT:
		TNT1 A 0 A_Print("No dynamites left.")
		Goto Ready
	}
}

ACTOR SSGReload : Ammo
{
	Inventory.Amount 0
	Inventory.MaxAmount 2
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 2
	+IGNORESKILL
}