// --------------------------------------------------------------------------
//
// UAC-STI SMG Mark II
//
// --------------------------------------------------------------------------

ACTOR D64SMG: D64Weapon
{
	Weapon.AmmoUse 1
	Weapon.AmmoGive 20
	Weapon.AmmoType "AmmoClip"
	Inventory.PickupMessage "You got the UAC-STI SMG Mark II!"
	Inventory.PickUpSound "Weapons/PickUp"
	Tag "UAC-STI SMG Mark II"
	Obituary "%o was turned into Swiss cheese by %k's UAC-STI SMG Mark II."
	Scale 0.35
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
	+WEAPON.AMMO_OPTIONAL
	
	States
	{
	Select:
		TNT1 A 0 A_PlaySound("Weapons/SMG/Up",5)
		SMGG A 1 Offset(67, 100)
		SMGG A 1 Offset(54, 81)
		SMGG A 1 Offset(32, 69)
		SMGG A 1 Offset(22, 58)
		SMGG A 1 Offset(10, 47)
		SMGG A 1 Offset(7, 39)
		SMGG A 1 Offset(2, 34)
		SMGG A 1 A_Raise
		Wait
	Ready:
		TNT1 A 0 A_JumpIfInventory("IsKicking", 1, "DoKick")
		SMGG A 1 A_WeaponReady
		TNT1 A 0 A_JumpifInventory("IsGrenading",1,"ThrowGrenade")
		TNT1 A 0 A_JumpifInventory("IsKicking", 1, "DoKick")
		Loop
	Deselect:
		TNT1 A 0 A_PlaySound("weapons/weaponholster",3)
		SMGG A 1 Offset(2, 34)
		SMGG A 1 Offset(7, 39)
		SMGG A 1 Offset(10, 47)
		SMGG A 1 Offset(22, 58)
		SMGG A 1 Offset(32, 69)
		SMGG A 1 Offset(54, 81)
		SMGG A 1 Offset(67, 100)
		SMGG A 1 A_Lower
		Wait
		
		Fire:
		TNT1 A 0 A_JumpIfInventory("AmmoClip",1,1)
		Goto DryFire
		TNT1 A 0 A_PlaySound("Weapons/SMG/Far", 6)
        TNT1 A 0 A_Playsound("Weapons/SMG/Fire",1)
		TNT1 A 0 A_ALertMonsters
		TNT1 A 0 A_SetPitch(pitch -1.0)
		TNT1 A 0 A_FireBullets(1.9, 2.1, 1, 8,"Bullet_Puff")
		TNT1 A 0 A_FireCustomMissile("9mmCaseSpawn",345+random(-8,8),0,-4,-5,0)
		TNT1 A 0 A_ZoomFactor(0.98)
		SMGF A 1 BRIGHT
		TNT1 A 0 A_ZoomFactor(1.0)
        SMGF B 1
		SMGF C 1 
		TNT1 A 0 A_ReFire
		SMGG A 1 A_WeaponReady(1)
		SMGG A 7 A_WeaponReady(1)
		Goto Ready

	AltFire:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SMGG A 2 A_JumpIfInventory("D64DSMG",1,"SelectAkimbo")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	SelectAkimbo:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SMGG A 2 A_SelectWeapon("D64DSMG")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	
	DryFire:
		TNT1 A 0 A_Print("No ammunition. Go find more.",1)
		Goto Ready
		
	Flash:
		TNT1 A 5 Bright A_Light1
		Goto LightDone
		TNT1 A 5 Bright A_Light2
		Goto LightDone	

//Kick
	DoKick:
		TNT1 A 0 A_JumpIf (momZ > 0, "AirBorne")
		TNT1 A 0 A_JumpIf (momZ < 0, "AirBorne")
		TNT1 A 0 A_JumpIfInventory("BerserkStrength",1,"BerserkKick")
		KICK A 1 Offset(0,32)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK B 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK C 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK D 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK E 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK F 1 A_ZoomFactor(0.95)
		TNT1 A 0 A_CustomPunch(2 * random(1, 10),0,0,"KickPuff") 
		Goto FireEnd
		BerserkKick:
		KICK A 1 Offset(0,32)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK B 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK C 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK D 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK E 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK F 1 A_ZoomFactor(0.95)
		TNT1 A 0 A_CustomPunch(20 * random(5, 10),0,0,"KickPuff")
		Goto FireEnd
		FireEnd:
		KICK GHIH 1
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK G 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK F 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK E 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK D 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK C 1 A_ZoomFactor(1.00)
		TNT1 A 3
		KICK BA 1
		Goto Ready
		AirBorne:
		TNT1 A 0 A_JumpIfInventory("BerserkStrength",1,"AirBerserk")
		TNT1 A 0 Offset(-1,32)
		KIKK ABCDE 1 A_Recoil(-2)
		KIKK F 3 A_CustomPunch (15,0,0,"KickPuff") 
		Goto EndFire
		AirBerserk:
		TNT1 A 0 Offset(-1,32)
		KIKK ABCDE 1 A_Recoil(-2)
		KIKK F 3 A_CustomPunch (25 * random(5, 10),0,0,"KickPuff")
		Goto EndFire
		EndFire:
		KIKK GHIJK 2 
		Goto Ready

//Throw Grenade
	ThrowGrenade:
		TNT1 A 0 A_JumpIf(waterlevel>2,"DryFire")
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo",1,1)
		Goto Dryfire
		TNT1 A 0 A_StopSound(1)
		TNT1 A 0 Offset(-20,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND B 1 Offset(0,24)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND C 1 Offset(0,23)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND D 1 Offset(0,26) A_PlaySound("weapons/SHG/throw")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND D 1 Offset(0,28)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_SpawnItemEx("RealGrenade",0,1,24,cos(pitch)*40,0,sin(-pitch)*40,3,SXF_TRANSFERPITCH|SXF_NOCHECKPOSITION)
		TNT1 A 0 A_TakeInventory("GrenadeAmmo",1)
		MAND E 1 Offset(-3,30)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND E 1 Offset(-6,31)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND F 1 Offset(-9,32)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		MAND F 1 Offset(-12,33)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_TakeInventory("GetOnWithIt", 100)
		TNT1 A 0 A_JumpIfNoAmmo("DryFire")
		TNT1 A 7 Offset (75, 152)
		TNT1 A 1 Offset (6, 42)
		Goto Ready
		
		Spawn:
		SMGP A -1
		Stop
	
	}
}

//Dual UAC-STI SMG Mark II

ACTOR D64DSMG: D64Weapon
{
	Weapon.AmmoUse 2
	Weapon.AmmoGive 20
	Weapon.AmmoType "AmmoClip"
	Tag "Dual UAC-STI SMG Mark II"
	Obituary "%o was turned into Swiss cheese by %k's Dual UAC-STI SMG Mark II."
	Scale 0.35
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
	+WEAPON.AMMO_OPTIONAL
	
	States
	{
	
	Select:
		TNT1 A 0 A_PlaySound("Weapons/SMG/Up",5)
		SM2G A 1 Offset(67, 100)
		SM2G A 1 Offset(54, 81)
		SM2G A 1 Offset(32, 69)
		SM2G A 1 Offset(22, 58)
		SM2G A 1 Offset(10, 47)
		SM2G A 1 Offset(7, 39)
		SM2G A 1 Offset(2, 34)
		SM2G A 1 A_Raise
		Wait
	Ready:
		TNT1 A 0 A_JumpIfInventory("IsKicking", 1, "DoKick")
		SM2G A 1 A_WeaponReady
		TNT1 A 0 A_JumpifInventory("IsKicking", 1, "DoKick")
		TNT1 A 0 A_JumpifInventory("IsGrenading",1,"ThrowGrenade")
		Loop
	Deselect:
		TNT1 A 0 A_PlaySound("weapons/weaponholster",3)
		SM2G A 1 Offset(2, 34)
		SM2G A 1 Offset(7, 39)
		SM2G A 1 Offset(10, 47)
		SM2G A 1 Offset(22, 58)
		SM2G A 1 Offset(32, 69)
		SM2G A 1 Offset(54, 81)
		SM2G A 1 Offset(67, 100)
		SM2G A 1 A_Lower
		Wait
		
		Fire:
        TNT1 A 0 A_JumpIfInventory("AmmoClip",1,1)
		Goto DryFire
		TNT1 A 0 A_PlaySound("Weapons/SMG/Far", 6)
        TNT1 A 0 A_PlaySound("Weapons/SMG/Fire",2)
		TNT1 A 0 A_ALertMonsters
		TNT1 A 0 A_ZoomFactor(0.98)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2F A 1 BRIGHT A_FireBullets (6, 4, -1, 10, "Bullet_Puff", FBF_NORANDOM)
		TNT1 A 0 A_TakeInventory("AmmoClip",1,TIF_NOTAKEINFINITE)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_FireCustomMissile("9mmCaseSpawn",5,0,6,-2)
		TNT1 A 0 A_PlaySound("Weapons/SMG/Far", 6)
        TNT1 A 0 A_PlaySound("Weapons/SMG/Fire",2)
		TNT1 A 0 A_ALertMonsters
		TNT1 A 0 A_ZoomFactor(0.98)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2F B 1 BRIGHT A_FireBullets (6, 4, -1, 10, "Bullet_Puff", FBF_NORANDOM)
		TNT1 A 0 A_TakeInventory("AmmoClip",1,TIF_NOTAKEINFINITE)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
        SM2F C 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_FireCustomMissile("9mmCaseSpawn",5,0,-8,-2)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2F D 1
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		TNT1 A 0 A_ReFire
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2G A 1 A_WeaponReady(1)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2G A 7 A_WeaponReady(1)
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
		
		AltFire:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2G A 2 A_JumpIfInventory("D64SMG",1,"SelectSingle")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
	SelectSingle:
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		SM2G A 2 A_SelectWeapon("D64SMG")
		TNT1 A 0 A_WeaponReady(WRF_NoFire|WRF_NoSecondary|WRF_NoSwitch)
		Goto Ready
		
	DryFire:
		TNT1 A 0 A_Print("No ammunition. Go find more.",1)
		Goto Ready
	
		Flash:
		TNT1 A 5 Bright A_Light1
		Goto LightDone
		TNT1 A 5 Bright A_Light2
		Goto LightDone	

//Kick
	DoKick:
		TNT1 A 0 A_JumpIf (momZ > 0, "AirBorne")
		TNT1 A 0 A_JumpIf (momZ < 0, "AirBorne")
		TNT1 A 0 A_JumpIfInventory("BerserkStrength",1,"BerserkKick")
		KICK A 1 Offset(0,32)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK B 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK C 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK D 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK E 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK F 1 A_ZoomFactor(0.95)
		TNT1 A 0 A_CustomPunch(2 * random(1, 10),0,0,"KickPuff") 
		Goto FireEnd
		BerserkKick:
		KICK A 1 Offset(0,32)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK B 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK C 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK D 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK E 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch-1)
		KICK F 1 A_ZoomFactor(0.95)
		TNT1 A 0 A_CustomPunch(20 * random(5, 10),0,0,"KickPuff")
		Goto FireEnd
		FireEnd:
		KICK GHIH 1
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK G 1 A_ZoomFactor(0.96)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK F 1 A_ZoomFactor(0.97)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK E 1 A_ZoomFactor(0.98)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK D 1 A_ZoomFactor(0.99)
		TNT1 A 0 A_SetPitch(Pitch+1)
		KICK C 1 A_ZoomFactor(1.00)
		TNT1 A 3
		KICK BA 1
		Goto Ready
		AirBorne:
		TNT1 A 0 A_JumpIfInventory("BerserkStrength",1,"AirBerserk")
		TNT1 A 0 Offset(-1,32)
		KIKK ABCDE 1 A_Recoil(-2)
		KIKK F 3 A_CustomPunch (15,0,0,"KickPuff") 
		Goto EndFire
		AirBerserk:
		TNT1 A 0 Offset(-1,32)
		KIKK ABCDE 1 A_Recoil(-2)
		KIKK F 3 A_CustomPunch (25 * random(5, 10),0,0,"KickPuff")
		Goto EndFire
		EndFire:
		KIKK GHIJK 2 
		Goto Ready
	
//Throw Grenade
	ThrowGrenade:
	TNT1 A 0 A_Print("You do realize you have both hands full, right...?",1)
	Goto Ready
	
	Spawn:
		SMGP A -1
		Stop
		
	}
}