actor BarracudaRifle:MSXWeapon{
	weapon.selectionorder 150
	inventory.pickupsound "weapons/ar_clipin"
	inventory.pickupmessage "'Barracuda' BA27-SC Assault Rifle"	
	weapon.ammotype "barraclip"
	weapon.ammotype2 "arifle_ammobox"
	weapon.ammouse 1
	weapon.ammogive2 18
	weapon.kickback 100
	weapon.bobstyle inverse
	weapon.bobrangeX 0.4
	weapon.bobrangeY 0.6
	weapon.bobspeed 2.5
	scale 0.32
	+AMMO_OPTIONAL
	+NOALERT
	+WEAPON.NOAUTOAIM
   	states{
	spawn:
		ARXW A -1
		loop
	Select:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_QuickSwap")==1,"SeLoop")
		TNT1 A 10
	 SeLoop:
		TNT1 AAAAAAAAAA 0 A_Raise
		TNT1 A 1 A_Raise
		Loop
	Deselect:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,1)
		Goto Deselect+9
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto Deselect+6
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)
		ARZU E 1 {ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_TakeInventory("BarraZoom");}
		ARZU DCBA 1
		ARXU A 1{A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("xhair_switch");
			A_TakeInventory("arifle_acc",50);}
		ARXU BCDEF 1
		TNT1 AAAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Goto Deselect+13
	ready:
		ARXU F 1 {A_PlaySound("weapons/ar_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		ARXU EDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
	Idle:
		ARXI A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3|WRF_ALLOWUSER4)
		"####" "#" 0 A_JumpIfInventory("SprintingPlayer",1,"Sprint")
		Loop
	IdleZoom:
		"####" "#" 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		"####" "#" 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto IdleZoom+3
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZI A 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3|WRF_ALLOWUSER4)
		"####" "#" 0 A_JumpIfInventory("SprintingPlayer",1,"UnZoom2Sprint")
		loop
	UnZoom2Sprint:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Sprint")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto UnZoom2Sprint+6
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)
		ARZU E 1 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);}
		ARZU DCBA 1
	Sprint:
		"####" "#" 0 A_JumpIf(GetCVar("MSfiXd_SprintStaminaUse")==0,"SprStart")
		TNT1 A 0 A_JumpIfInventory("PlayerStamina",1,"SprStart")
		TNT1 A 0 A_TakeInventory("SprintingPlayer")
		Goto Idle
	SprStart:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_SprintHands")==1,"SprStart_HandWeapon")
		TNT1 A 0 {A_TakeInventory("xhair_switch");
			A_PlaySound("sfx/sprintstart",CHAN_AUTO);
			ACS_NamedExecute("Player-ChangeSpeed",0,GetCVar("MSfiXd_SprintSpeed"),0,0);
			A_SetBlend("49 99 0",0.4,15);
			A_Recoil(-15);}
		ARXS ABCDE 1 
		"####" "#" 0 A_JumpIfInventory("SprintingPlayer",1,"SprLoop1")
		Goto SprEnd
	SprStart_HandWeapon:
		ARXU A 1{A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("xhair_switch");}
		ARXU CE 1
		TNT1 A 1 A_GiveInventory("SprintHands")
		TNT1 A 0 A_Jump(256,"SprStart_Hands")
		Goto SprStart_Hands
	SprEnd:
		ARXS E 1 Offset(-8,38) {ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_PlaySound("sfx/sprintend",CHAN_AUTO);}
		ARXS DCBA 1 Offset(-8,38)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Sprint")==1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(CountInv("BarraZoom")<1,1)
		Goto Zoom+2
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
	SprEnd_HandWeapon:
		TNT1 A 0 {A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_PlaySound("sfx/sprintend",CHAN_AUTO);}
		ARXU E 1 {A_TakeInventory("SprintHands");
			A_SetCrosshair(10);
			A_PlaySound("weapons/ar_select",CHAN_WEAPON);}
		ARXU CA 1
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Sprint")==1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(CountInv("BarraZoom")<1,1)
		Goto Zoom+2
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
	fire:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,"zoomedfire")
		TNT1 A 0 A_JumpIfInventory("barraclip",1,"FireCont")
		ARXI A 1 A_PlayWeaponSound("weapons/noammo")
		ARXI A 4
		Goto Idle
	 FireCont:
		TNT1 A 0 {A_PlayWeaponSound("weapons/ar_fire");
			A_AlertMonsters;
			A_GunFlash("NormFlash");}
		TNT1 A 1 {A_FireBullets(CountInv("arifle_acc")*0.35,CountInv("arifle_acc")*0.25,-1,28,"arifle_impact",FBF_NORANDOM|FBF_USEAMMO);
			A_GiveInventory("arifle_acc",9);}
		Goto FireLast
	FireLast:
		TNT1 A 1
		TNT1 A 0 ACS_NamedExecute("Weapon-Recoil",0,12,random(-9,0),0)
		TNT1 A 0 A_FireCustomMissile("arcasing_spawner",0,0,0,4,0)
		ARXC BA 1
		TNT1 A 0 A_JumpIfInventory("barraclip",1,"Idle")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"Reload")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_BarracudaAutoReloads"))==1,"Reload")
		Goto Idle
	NormFlash:
		TNT1 A 0 A_Jump(255,"firef1","firef2","firef3")
		TNT1 A 0
	firef1:
		ARXF A 1 bright A_Light2
		ARXF D 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	firef2:
		ARXF B 1 bright A_Light2
		ARXF E 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	firef3:
		ARXF C 1 bright A_Light2
		ARXF F 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	zoomedfire:
		TNT1 A 0 A_JumpIfInventory("barraclip",1,4)
		ARZI A 5 A_PlaySound("weapons/noammo")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaHoldingZoom")==1,1)
		Goto IdleZoom
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
		TNT1 A 1 {A_PlayWeaponSound("weapons/ar_fire");
			A_AlertMonsters;
			A_GunFlash("zoomflash");
			A_FireBullets(0,0,1,28,"arifle_impact",FBF_NORANDOM|FBF_USEAMMO);}
		TNT1 A 1 
		TNT1 A 0 {ACS_NamedExecute("Weapon-Recoil",0,15,random(-15,15),0);
			A_FireCustomMissile("arcasing_spawner2",0,0,0,4,0);}
		ARZC CB 1
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaHoldingZoom")==1,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,4)
		TNT1 A 0 A_JumpIfInventory("barraclip",1,"IdleZoom")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"UnZoom2Relo")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_BarracudaAutoReloads"))==1,"UnZoom2Relo")
		Goto IdleZoom
		TNT1 A 0 A_JumpIfInventory("barraclip",1,"HoldingZoomIdle")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"UnZoom2Relo")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_BarracudaAutoReloads"))==1,"UnZoom2Relo")
		Goto HoldingZoomIdle
	ZoomFlash:
		TNT1 A 0 A_Jump(256,"zfiref1","zfiref2","zfiref3")
		TNT1 A 0
	zfiref1:
		ARZF A 1 bright A_Light2
		ARZF D 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	zfiref2:
		ARZF B 1 bright A_Light2
		ARZF E 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	zfiref3:
		ARZF C 1 bright A_Light2
		ARZF F 1 bright A_Light1
		TNT1 A 1 A_Light0
		stop
	HoldingZoom:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto HoldingZoom+3
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		TNT1 A 0 {A_TakeInventory("xhair_switch");
			A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU ABCDE 1
		TNT1 A 0 {A_GiveInventory("HoldingZoom");
			A_GiveInventory("BarraZoom");
			A_GiveInventory("xhair_switch");}
	HoldingZoomIdle:
		ARZI A 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3|WRF_ALLOWUSER4)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_ZOOM),"HoldingZoomIdle")
		TNT1 A 0 A_TakeInventory("HoldingZoom")
		Goto UnZoom
	Zoom:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaHoldingZoom")==1,"HoldingZoom")
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,"UnZoom")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto Zoom+5
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZU A 1 {A_TakeInventory("xhair_switch");
			A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU BCDE 1
		TNT1 A 0 {A_GiveInventory("BarraZoom");
			A_GiveInventory("xhair_switch");}
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_ZOOM),1)
		Goto IdleZoom
	 ZoomHold:
		ARZI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH|WRF_NOBOB)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_ZOOM),"ZoomHold")
		Goto IdleZoom
	UnZoom:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto UnZoom+3
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)
		TNT1 A 0 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_TakeInventory("BarraZoom");}
		ARZU EDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_ZOOM),"UnZoomHold")
		Goto Idle
	 UnZoomHold:
		ARXI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_ZOOM),"UnZoomHold")
		Goto Idle
	UnZoom2Relo:
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,2)
		TNT1 A 0 A_JumpIfInventory("barraclip",36,"IdleZoom")
		Goto UnZoom2Relo+3
		TNT1 A 0 A_JumpIfInventory("barraclip",36,"HoldingZoomIdle")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Reload")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto UnZoom2Relo+9
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)
		ARZU E 1 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);}
		ARZU DCBA 1
		Goto Reload+3
	Reload:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,"UnZoom2Relo")
		TNT1 A 0 A_JumpIfInventory("barraclip",36,"Idle")
		TNT1 A 0 A_JumpIfInventory("arifle_ammobox",1,1)
		Goto Idle
		TNT1 A 0 {A_GiveInventory("xhair_hold");
			A_GiveInventory("arifle_acc",28);}
		ARRS ABCDEF 1
		ARRS G 1 A_PlaySound("weapons/ar_clipout",CHAN_WEAPON)
		ARRS HIJK 1
		ARRS L 12
		ARRS MNOP 1
		ARRS Q 2 A_PlaySound("weapons/ar_clipin",CHAN_WEAPON)
		TNT1 A 0 A_JumpIfInventory("barraclip",1,"Reload_FillClipB") 
	Reload_FillClipA:
		TNT1 A 0 {A_TakeInventory("arifle_ammobox",1);
			A_GiveInventory("barraclip",1);}
		TNT1 A 0 A_JumpIfInventory("barraclip",36,"ReloadFinish_Long")
		TNT1 A 0 A_JumpIfInventory("arifle_ammobox",1,"Reload_FillClipA")
	ReloadFinish_Long:	
		ARRL ABC 1 
		ARRL D 7
		ARRL EFGH 1
		ARRL I 3 A_PlaySound("weapons/ar_pinpull",CHAN_WEAPON)
		ARRL J 1
		ARRL K 8
		TNT1 A 0 A_TakeInventory("xhair_hold")
		ARRL LMNOPQR 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Reload")==1,2)
		TNT1 A 0 {A_GiveInventory("xhair_switch");
			A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto ReloadFinish_Long+26
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	Reload_FillClipB:
		TNT1 A 0 {A_TakeInventory("arifle_ammobox",1);
			A_GiveInventory("barraclip",1);}
		TNT1 A 0 A_JumpIfInventory("barraclip",36,"ReloadFinish_Quick")
		TNT1 A 0 A_JumpIfInventory("arifle_ammobox",1,"Reload_FillClipB")
	ReloadFinish_Quick:
		ARRQ ABC 1 
		ARRQ D 7
		TNT1 A 0 A_TakeInventory("xhair_hold")
		ARRQ BEFGHIJK 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Reload")==1,2)
		TNT1 A 0 {A_GiveInventory("xhair_switch");
			A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto ReloadFinish_Quick+20
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	// Grenades //
	User1:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,"UnZoom2Gren")
		TNT1 A 0 A_JumpIfInventory("grenades",1,1)
		Goto Idle
		ARXU A 1 {A_TakeInventory("xhair_switch");
			A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("arifle_acc",50);}
		ARXU BCDEF 1
		TNT1 A 0 A_Jump(256,"GrenadeStart")
		Goto GrenadeStart
	UnZoom2Gren:
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,2)
		TNT1 A 0 A_JumpIfInventory("grenades",1,2)
		Goto IdleZoom
		TNT1 A 0 A_JumpIfInventory("grenades",1,1)
		Goto HoldingZoomIdle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Grenades")==1,2)
		TNT1 A 0 {A_TakeInventory("xhair_switch");
			A_TakeInventory("HoldingZoom");
			A_TakeInventory("BarraZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto UnZoom2Gren+9
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)	
		ARZU E 1 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_ZoomFactor(1.0,ZOOM_INSTANT);}
		ARZU DCBA 1
		Goto User1+2
	GrenadeEnd:
		ARXU F 1 {A_TakeInventory("GrenadeHold");
			A_PlaySound("weapons/ar_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		ARXU EDCBA 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Grenades")==1,2)
		TNT1 A 0 {A_GiveInventory("xhair_switch");
			A_TakeInventory("HoldingZoom");
			A_TakeInventory("BarraZoom");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto GrenadeEnd+14
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)	
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	AltFire:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,1)
		Goto Slam
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_WeaponMelee")==1,2)
		TNT1 A 0 {A_TakeInventory("HoldingZoom");
			A_TakeInventory("BarraZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto AltFire+7
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)
		ARZU E 1 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);}
		ARZU DCBA 1 
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaMeleeOnScopeExit")==0,1)
		Goto Idle
	Slam:
		ARXM C 1 A_Recoil(-6)
		TNT1 A 0 A_PlayWeaponSound("sfx/meleeswing")
		ARXM EGJ 1
		ARXM L 9 A_CustomPunch((164+random(1,32)),1,CPF_DAGGER|CPF_NOTURN,"BARRACUDA_meleepuff",88)
		ARXM KJIHGFEDCBA 1	
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_WeaponMelee")==1,2)
		TNT1 A 0 {A_TakeInventory("HoldingZoom");
			A_TakeInventory("BarraZoom");
			A_GiveInventory("xhair_switch");}
		Goto Idle
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);
			A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"));}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	// Health Stim Stuff //
	Stim_HolsterCheck:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"Stimulate")
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,1)
		Goto Stim_HolsterCheck+10
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_HealthStim")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		ARZU E 1 {ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_ZoomFactor(1.0);}
		ARZU DCBA 1
		ARXU A 1 {A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("xhair_switch");
			A_TakeInventory("arifle_acc",50);}
		ARXU BCDEF 1
		TNT1 A 0 A_Jump(256,"Stimulate")
		Goto Stimulate
	StimulateEnd:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"StimulateEnd_Quick")
		ARXU F 1 {A_PlaySound("weapons/ar_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		ARXU EDCBA 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_HealthStim")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");
			A_GiveInventory("xhair_switch");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto StimulateEnd+15
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);
			A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"));}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	StimulateEnd_Quick:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,4)
		ARXI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER2),"StimulateEnd_Quick")
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		ARZI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH|WRF_NOBOB)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER2),"StimulateEnd_Quick")
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	// Shield Booster Stuff //
	Boost_HolsterCheck:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"Boostify")
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,1)
		Goto Boost_HolsterCheck+10
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_ShieldBooster")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto Boost_HolsterCheck+8
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)	
		ARZU E 1 {ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_TakeInventory("xhair_switch");}
		ARZU DCBA 1
		ARXU A 1{A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("arifle_acc",50);}
		ARXU BCDEF 1
		TNT1 A 0 A_Jump(256,"Boostify")
		Goto Stimulate
	BoostifyEnd:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"BoostifyEnd_Quick")
		ARXU F 1 {A_PlaySound("weapons/ar_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		ARXU EDCBA 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_ShieldBooster")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");
			A_GiveInventory("xhair_switch");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto BoostifyEnd+15
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)
		ARZU A 1 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU BCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom
	 BoostifyEnd_Quick:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,4)
		ARXI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER3),"BoostifyEnd_Quick")
		TNT1 A 0 A_GiveInventory("xhair_switch")
		Goto Idle
		ARZI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH|WRF_NOBOB)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER3),"BoostifyEnd_Quick")
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom	
	// Jetpack Stuff //
	User4:
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,"UnZoom2Jetpack")
		TNT1 A 0 A_JumpIfInventory("Jetpack",1,1)
		Goto Idle
		ARXU A 1 {A_PlaySound("weapons/ar_deselect",CHAN_WEAPON);
			A_TakeInventory("xhair_switch");
			A_TakeInventory("arifle_acc",50);}
		ARXU BCDEF 1
		TNT1 A 0 A_Jump(256,"JetpackStart")
		Goto JetpackStart
	UnZoom2Jetpack:
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,2)
		TNT1 A 0 A_JumpIfInventory("Jetpack",1,1)
		Goto IdleZoom
		TNT1 A 0 A_JumpIfInventory("Jetpack",1,1)
		Goto HoldingZoomIdle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Jetpack")==1,2)
		TNT1 A 0 {A_TakeInventory("BarraZoom");
			A_TakeInventory("HoldingZoom");}
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(1.0)
		Goto UnZoom2Jetpack+9
		TNT1 A 0 A_ZoomFactor(1.0,ZOOM_NOSCALETURNING)	
		ARZU E 1 {A_TakeInventory("xhair_switch");
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_ZoomFactor(1.0);}
		ARZU DCBA 1
		Goto User4+2
	WeaponJetEnd:
		ARXU F 1 A_PlaySound("weapons/ar_select",CHAN_WEAPON)
		ARXU EDCBA 1
		TNT1 A 0 A_JumpIfInventory("BarraZoom",1,2)
		TNT1 A 0 {A_SetCrosshair(10);
			A_GiveInventory("xhair_switch");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn")==2,3)
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaZoomReturn_Jetpack")==1,2)
		TNT1 A 0 {A_SetCrosshair(10);
			A_GiveInventory("xhair_switch");}
		Goto Idle
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_BarracudaDisableZoomScaling")==1,2)
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"))
		Goto WeaponJetEnd+14
		TNT1 A 0 A_ZoomFactor(GetCVar("MSfiXd_BarracudaZoomMagnification"),ZOOM_NOSCALETURNING)	
		TNT1 A 0 {A_TakeInventory("arifle_acc",50);
			ACS_NamedExecute("Player-ChangeSpeed",0,50,0,0);}
		ARZU ABCDE 1
		TNT1 A 0 A_GiveInventory("xhair_switch")
		TNT1 A 0 A_JumpIfInventory("HoldingZoom",1,"HoldingZoomIdle")
		Goto IdleZoom}}
ACTOR HoldingZoom:Inventory{}
actor barraclip:Ammo{Inventory.MaxAmount 36 Inventory.Icon ""}
actor arifle_ammobox:ammo{
	radius 16
	height 8
	scale 0.33
	inventory.pickupmessage "Box of 7.62x32mm Ammo for Assault Rifle"
	inventory.pickupsound "weapons/ar_pinpull"
	inventory.amount 54
	inventory.maxamount 360
	ammo.backpackamount 36
	ammo.backpackmaxamount 720
	states{
	Spawn:
		BBUL A -1
		stop}}
actor arifle_ammo:arifle_ammobox{
	radius 16
	height 8
	scale 0.22
	inventory.pickupmessage "Pack of 7.62x39mm Ammo for Assault Rifle"
	inventory.pickupsound "weapons/ar_pinpull"
	inventory.amount 18
	states{
	Spawn:
		SBUL A -1
		stop}}
actor BarraZoom:inventory{Inventory.PickupSound "" inventory.maxamount 1}
actor arifle_acc:Inventory{
	Inventory.PickupSound ""
	-INVBAR
	Inventory.icon ""
	Inventory.Amount 1
	Inventory.MaxAmount 28}
ACTOR BARRACUDA_MeleePuff:MeleePuff{DamageType "BARRACUDA_Melee"}
actor arifle_impact{		
	Radius 1
	Height 1
	Alpha 1
	DamageType "BARRACUDA_Bullet"
	RenderStyle ADD
	Scale 0.21
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOEXTREMEDEATH
	+NOINTERACTION
	+PUFFONACTORS
	Decal "BulletChip"
	States{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("sfx/bulletric")
		TNT1 A 0 A_SpawnItemEx("arifle_flare",0,0,0,0,0,0,0)
		TNT1 AAAAA 0 A_SpawnItemEx("arifle_spark",0,0,0,frandom(0.5,1.0),random(3,5) ,random(0,6) ,random(0,180))
		TNT1 AA 0 A_SpawnItemEx("arifle_spark2",0,0,0,frandom(0.5,1.0),random(3,5) ,random(0,6) ,random(0,180))
		TNT1 AA 0 A_SpawnItemEx("arifle_smoke",0,0,0,0,frandom(-0.3,0.3) ,frandom(0,0.35) ,random(0,180))
		TNT1 A 0 A_Jump(256,1,2,3,4)
		IPF2 A 0 A_Jump(256,4)
		IPF2 B 0 A_Jump(256,3)
		IPF2 C 0 A_Jump(256,2)
		IPF2 D 0
		"####" "###" 1 bright A_SetScale(scaleX * 0.9 ,scaleY * 0.9)
		Stop}}
actor arifle_flare{
	scale 0.21
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
	spawn:
		LEYS O 3
	spawnloop:
		LEYS O 1 bright A_FadeOut(0.25)
		loop}}
actor arifle_spark{
	radius 2
	height 2
	alpha 1
	scale 0.028
	gravity 0.4
	renderstyle add
	+NOTELEPORT
	+FLOORCLIP
	+FORCEXYBILLBOARD
	bouncetype "doom"
	bouncefactor 0.2
	states{
	spawn:
		SPRK AAA 2 bright A_ScaleVelocity(0.9)
	spawnloop:
		TNT1 A 0 A_ScaleVelocity(0.9)
		SPRK A 1 bright A_FadeOut(0.1)
		loop}}
actor arifle_spark2:arifle_spark{
	scale 0.032
	gravity 0.3
	states{
	spawn:
		SPRK CCCCC 2 bright A_ScaleVelocity(0.9) 
	spawnloop:
		TNT1 A 0 A_ScaleVelocity(0.9)
		SPRK C 1 bright A_FadeOut(0.1)
		loop}}
actor arifle_smoke{
	scale 0.12
	alpha 0.45
	renderstyle add
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+NOINTERACTION
	states{
		spawn:
			TNT1 A 3
			TNT1 A 0 A_Jump(256,1,2,3,4,5,6)
			SMK1 A 0 A_Jump(256,6)
			SMK1 B 0 A_Jump(256,5)
			SMK1 C 0 A_Jump(256,4)
			SMK1 D 0 A_Jump(256,3)
			SMK1 E 0 A_Jump(256,2)
			SMK1 F 0
			"####" "#" 2 {A_SetScale(ScaleX * 1.02,ScaleY * 1.02);
				A_Fadeout(0.015);}
			Goto Spawn+8}}
actor arifle_casing{
	scale 0.12
	radius 2
	height 2
	speed 6
	mass 4
	bouncefactor 0.5
	PROJECTILE
	+DOOMBOUNCE
	+NODROPOFF
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+FLOORCLIP
	-NOGRAVITY
	-NOBLOCKMAP
	seesound "casings/ar_casing"
	states{
		spawn:
			ARBC ABCDEF 2
			loop
		death:
			TNT1 A 0 A_Jump(256,1,2,3)
			ARBC A 0 A_Jump(256,3)
			ARBC C 0 A_Jump(256,2)
			ARBC D 0
			"####" "#" 400
			"####" "#" 1 A_FadeOut(0.1,1)
			Wait}}
actor arifle_casing2:arifle_casing{
	states{
	spawn:
		ARBC FABCDE 2
		loop}}
actor arcasing_spawner{
	speed 15
	PROJECTILE
	+NOCLIP
	states{
	spawn:
		TNT1 A 1 NoDelay A_SpawnItemEx("arifle_casing",0,10,0,random(0,1),random(4,5),random(0,1),0,SXF_TRANSFERPOINTERS) 
		stop}}
actor arcasing_spawner2:arcasing_spawner{
	states{
	spawn:
		TNT1 A 1 NoDelay A_SpawnItemEx("arifle_casing2",0,3,0,random(0,1),random(4,5),random(0,1),0,SXF_TRANSFERPOINTERS) 
		stop}}