actor raptorshotgun:MSXWeapon{
	weapon.selectionorder 200
	inventory.pickupsound "weapons/cs_cock"
	inventory.pickupmessage "'Raptor' I4PA-ECS NailShotgun"
	weapon.ammotype "raptorchamber"
	weapon.ammotype2 "nailshot_ammo"
	weapon.ammouse 1
	weapon.ammogive2 4
	weapon.ammogive 0
	weapon.kickback 100
	weapon.bobstyle inverse
	weapon.bobrangeX 0.4
	weapon.bobrangeY 0.6
	weapon.bobspeed 2.5
	+AMMO_OPTIONAL	
	+NOALERT
	+WEAPON.NOAUTOAIM
	scale 0.28
	states{
	spawn:
		NSHW A -1
    	stop
	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:
		NSHU A 1 {A_TakeInventory("xhair_switch",1);
			A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);}
		NSHU BCDEFG 1
		TNT1 AAAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Goto Deselect+7
	Ready:
		NSHU G 1 {A_PlaySound("weapons/cs_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		NSHU FEDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
	Idle:
		NSHI A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWUSER1|WRF_ALLOWUSER2|WRF_ALLOWUSER3|WRF_ALLOWUSER4)
		"####" "#" 0 A_JumpIfInventory("SprintingPlayer",1,"Sprint")
		Loop
	Sprint:
		"####" "#" 0 A_JumpIf(GetCVar("MSfiXd_SprintStaminaUse")==0,"SprStart")
		TNT1 A 0 A_JumpIfInventory("PlayerStamina",1,"SprStart")
		TNT1 A 0 A_TakeInventory("SprintingPlayer",1)
		Goto Idle
	SprStart:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_SprintHands")==1,"SprStart_HandWeapon")
		TNT1 A 0 {A_TakeInventory("xhair_switch",1);
			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);}
		NSHS ABCDE 1 Offset(0,32)
		"####" "#" 0 A_JumpIfInventory("SprintingPlayer",1,"SprLoop1")
		Goto SprEnd
	SprStart_HandWeapon:
		NSHU A 1{A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);
			A_TakeInventory("xhair_switch",1);}
		NSHU CEG 1
		TNT1 A 1 A_GiveInventory("SprintHands")
		TNT1 A 0 A_Jump(256,"SprStart_Hands")
		Goto SprStart_Hands
	SprEnd:	
		TNT1 A 0 {A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH);
			ACS_NamedExecute("Player-ChangeSpeed",0,100,0,0);
			A_PlaySound("sfx/sprintend",CHAN_AUTO);}
		NSHS EDCBA 1 
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
		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);}
		NSHU G 1 {A_TakeInventory("SprintHands");
			A_SetCrosshair(10);
			A_PlaySound("weapons/hs_select",CHAN_WEAPON);}
		NSHU ECA 1
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
		Goto Idle
	Fire:
		TNT1 A 0 A_JumpIfInventory("raptorchamber",1,"FireCont")
		NSHI A 7 A_PlayWeaponSound("weapons/noammo")
		Goto Idle
	FireCont:
		NSHF A 1 bright {A_Light1;
			A_AlertMonsters;}
		TNT1 A 0 {A_PlayWeaponSound("weapons/cs_fire");
			ACS_NamedExecute("Weapon-Recoil",0,90,random(-65,65),0);
			A_FireCustomMissile("raptornail",random(-7,7),1,4,5,0,random(-4,4));}
		TNT1 AAAAAAAAAAAAAA 0 A_FireCustomMissile("raptornail",random(-7,7),0,4,5,0,random(-4,4))
		NSHF B 1 bright
		TNT1 A 0 A_Light0		
		NSHF CD 1 bright 
		NSHT ABBDDEFHJLNOO 1
		NSHT P 2
		TNT1 A 0 A_PlaySound("weapons/cs_cock",CHAN_AUTO)
		NSHT QRSTU 1
		NSHT W 6 A_FireCustomMissile("scmtrshell_spawner",0,0,0,3,0)
		NSHT UTSRQ 1
		NSHE ABCDE 1 //end
		TNT1 A 0 A_JumpIfInventory("raptorchamber",1,"Idle")
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"Reload")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_RaptorAutoReloads"))==1,"Reload")
		Goto Idle
	Pump:
		NSHI A 4
		TNT1 A 0 A_PlaySound("weapons/cs_cock",CHAN_AUTO)
		NSRP ABCD 1
		NSRP E 6
		NSRP DCBA 1
		Goto Idle
	Reload:
		TNT1 A 0 A_JumpIfInventory("raptorchamber",4,"Idle")
 	   	TNT1 A 0 A_JumpIfInventory("nailshot_ammo",1,1)
		Goto Idle
		TNT1 A 0 A_JumpIfInventory("raptorchamber",1,"Reload_Quick")
		Goto Reload_Full
	Reload_Full:
		NSRS ABCDE 1
		NSRS F 2
	InsertF:
		NSRS F 1 //a_print("full")
		NSRI ABC 1
		NSRI D 1 A_PlaySound("weapons/cs_insert",CHAN_WEAPON)
		NSRI EFGHH 2
		TNT1 A 0 {A_TakeInventory("nailshot_ammo",1);
			A_GiveInventory("raptorchamber",1);}
		NSRI IJKLM 1
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"RF_Continue")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_RaptorAutoReloads"))==1,"RF_Continue")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_RELOAD),"RF_Continue")
		NSRS F 2
		NSRS EDCBA 1
		Goto Pump
	RF_Continue:
		TNT1 A 0 A_JumpIfInventory("raptorchamber",4,2)
		TNT1 A 0 A_JumpIfInventory("nailshot_ammo",1,"InsertF")
		NSRS F 2
		NSRS EDCBA 1
		Goto Pump
	Reload_Quick:
		NSRS ABCDE 1
		NSRS F 2
	Insert:
		NSRS F 1 //a_print("quick")
		NSRI ABC 1
		NSRI D 1 A_PlaySound("weapons/cs_insert",CHAN_WEAPON)
		NSRI EFGHH 2
		TNT1 A 0 {A_TakeInventory("nailshot_ammo",1);
			A_GiveInventory("raptorchamber",1);}
		NSRI IJKLM 1
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_AutoReloads")==2,"R_Continue")
		TNT1 A 0 A_JumpIf((GetCVar("MSfiXd_AutoReloads")==1)&&(GetCVar("MSfiXd_RaptorAutoReloads"))==1,"R_Continue")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_RELOAD),"R_Continue")
		NSRS F 4
		NSRS EDCBA 1
		Goto Idle
	R_Continue:
		TNT1 A 0 A_JumpIfInventory("raptorchamber",4,2)
		TNT1 A 0 A_JumpIfInventory("nailshot_ammo",1,"Insert")
		NSRS F 4
		NSRS EDCBA 1
		Goto Idle
	// Grenade Stuff //
	User1:
		TNT1 A 0 A_JumpIfInventory("grenades",1,1)
		Goto Idle
		NSHU A 1 {A_TakeInventory("xhair_switch",1);
			A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);}
		NSHU BCDEFG 1
		TNT1 A 0 A_Jump(256,"GrenadeStart")
		Goto GrenadeStart
	GrenadeEnd:
		NSHU G 1 {A_TakeInventory("GrenadeHold");
			A_PlaySound("weapons/cs_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		NSHU FEDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
		Goto Idle
	// Health Stim Stuff //
	Stim_HolsterCheck:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"Stimulate")
		NSHU A 1 {A_TakeInventory("xhair_switch",1);
			A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);}
		NSHU BCDEFG 1
		TNT1 A 0 A_Jump(256,"Stimulate")
		Goto Stimulate
	StimulateEnd:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"StimulateEnd_Quick")
		NSHU G 1 {A_PlaySound("weapons/cs_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		NSHU FEDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
		Goto Idle
	StimulateEnd_Quick:
		NSHI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER2),"StimulateEnd_Quick")
		Goto Idle
	// Shield Booster Stuff //
	Boost_HolsterCheck:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"Boostify")
		NSHU A 1 {A_TakeInventory("xhair_switch",1);
			A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);}
		NSHU BCDEFG 1
		TNT1 A 0 A_Jump(256,"Boostify")
		Goto Boostify
	BoostifyEnd:
		TNT1 A 0 A_JumpIf(GetCVar("MSfiXd_HolsterWeapForItems")==0,"BoostifyEnd_Quick")
		NSHU G 1 {A_PlaySound("weapons/cs_select",CHAN_WEAPON);
			A_SetCrosshair(10);}
		NSHU FEDCBA 1
		TNT1 A 0 A_GiveInventory("xhair_switch",1)
		Goto Idle
	BoostifyEnd_Quick:
		NSHI A 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS)&(BT_USER3),"BoostifyEnd_Quick")
		Goto Idle
	// Jetpack Stuff //
	User4:
		TNT1 A 0 A_JumpIfInventory("Jetpack",1,1)
		Goto Idle
		NSHU A 1 {A_TakeInventory("xhair_switch",1);
			A_PlaySound("weapons/cs_deselect",CHAN_WEAPON);}
		NSHU BCDEFG 1
		TNT1 A 0 A_Jump(256,"JetpackStart")
		Goto JetpackStart
	WeaponJetEnd:
		NSHU G 1 A_PlaySound("weapons/cs_select",CHAN_WEAPON)
		NSHU FEDCBA 1
		TNT1 A 0 {A_SetCrosshair(10);
			A_GiveInventory("xhair_switch",1);}
		Goto Idle
	AltFire:
		NSHM C 1 A_Recoil(-6)
		TNT1 A 0 A_PlayWeaponSound("sfx/meleeswing")
		NSHM EHJ 1
		NSHM L 9 A_CustomPunch((164+random(1,32)),1,CPF_DAGGER|CPF_NOTURN,"Raptor_meleepuff",88)
		NSHM KJIHGFEDCBA 1
		Goto Idle}}
actor raptorchamber:ammo{Inventory.MaxAmount 4}
actor nailshot_ammo:ammo{
	radius 16
	height 8
	scale 0.375
	inventory.pickupmessage "Box of 4 Gauge SCMITR3 shells for NailShotgun"
	inventory.pickupsound "weapons/cs_ammopick"
	inventory.amount 12
	inventory.maxamount 40
	ammo.backpackamount 4
	ammo.backpackmaxamount 80
	states{
	Spawn:
		SMTR A -1
		stop}}
ACTOR Raptor_MeleePuff:MeleePuff{DamageType "Raptor_Melee"}
actor raptornail:fastprojectile{
	height 3
	radius 4
	PROJECTILE
    +BLOODSPLATTER
	-NOGRAVITY
	damagetype "RAPTOR_Nail"
	renderstyle add
	ProjectileKickBack 180
	scale 0.06
	damage(80+(12*random(0,2)))
	speed 60
	mass 10
	missiletype "rnail_trailspawner"
	missileheight 8
	Decal "BulletChip"
	states{
	spawn:
		SPRK CC 1 
	sploop:
		TNT1 A 0 A_ChangeFlag("NOEXTREMEDEATH",1)
		SPRK C 1 ThrustThingZ(0,1,1,1)
		Wait
	death:
	crash:
		TNT1 A 0 {A_PlaySound("sfx/nailric");
			A_SpawnItemEx("rnail_impactspawner",0,0,0,0,0,0,0,0);}
		stop
	XDeath:
		TNT1 A 1
		stop}}
actor rnail_trailspawner{
	+NOINTERACTION
	states{
	spawn:
		TNT1 A 0 NoDelay {A_SpawnItemEx("rnail_smoketrail",0,0,0,0,frandom(-0.8,0.8),frandom(0.0,1.4),0);
			A_SpawnItemEx("rnail_smoketrail2",0,0,0,0,frandom(-0.2,0.2),frandom(-0.2,0.2),0);}
		stop}}
actor rnail_glowtrail{
	scale 0.05
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
	spawn:
		PRJ1 AB 1 bright
		stop}}
actor rnail_smoketrail{
	scale 0.05
	alpha 1.0
	renderstyle add
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+NOTELEPORT
	states{
	spawn:
		NLSK ABCDEFGHIJKLMNOPQ 1 bright A_FadeOut(0.1)
		stop}}
actor rnail_smoketrail2{
	height 1
	radius 1
	scale 0.25
	alpha 0.38
	renderstyle add
	+NOGRAVITY
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+NOINTERACTION
	states{
	spawn:
		STM0 ABCDEFJHIJKLMNO 1 bright A_FadeOut(0.1)
		stop}}
actor grunt_raptornail:raptornail{damage(random(10,11))}
actor rnail_impactspawner{
	+NOINTERACTION
	states{
	spawn:
		TNT1 A 0 NoDelay A_SpawnItemEx("rnail_impact",0,0,0,0,0,0,0,0)
		TNT1 AAAAAA 0 A_SpawnItemEx("rnail_spark",0,0,0, random(1,2),random(2,4),random(0,5),random(180,360))
		TNT1 AAAAA 0 A_SpawnItemEx("rnail_impactsmoke",0,0,0, 0,frandom(-0.35,0.35),frandom(-0.35,0.35),random(0,180))
		TNT1 AAAAAAAA 1 A_SpawnItemEx("rnail_impactsmoke2",0,0,0, 0,frandom(-0.15,0.15),frandom(0.1,0.45),random(0,180))
		stop}}
actor rnail_impact{
	radius 1
	height 1
	renderstyle add
	alpha 1.0
	scale 0.6
	+NOGRAVITY
	+NOTELEPORT
	+FORCEXYBILLBOARD
	states{
	spawn:
		TNT1 A 0 NoDelay A_Jump(256,1,2,3,4,5,6)
		IPF1 A 0 A_Jump(256,6)
		IPF1 B 0 A_Jump(256,5)
		IPF1 C 0 A_Jump(256,4)
		IPF1 D 0 A_Jump(256,3)
		IPF1 E 0 A_Jump(256,2)
		IPF1 F 0
		"####" "#" 2
		"####" "#" 1 bright {A_SetScale(ScaleX*0.8,ScaleY*0.8);
			A_FadeOut(0.1);}
		Wait}}
actor rnail_spark{
	radius 2
	height 2
	alpha 1
	scale 0.035
	gravity 0.4
	renderstyle add
	+NOTELEPORT
	+FLOORCLIP
	+FORCEXYBILLBOARD
	bouncetype "doom"
	bouncefactor 0.2
	states{
	spawn:
		SPRK C 14 bright
		SPRK C 1 bright A_FadeOut(0.1)
		Wait}}
actor rnail_impactsmoke{
	scale 0.18
	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)
		NLSK A 0 A_Jump(256,6)
		NLSK B 0 A_Jump(256,5)
		NLSK C 0 A_Jump(256,4)
		NLSK D 0 A_Jump(256,3)
		NLSK E 0 A_Jump(256,2)
		NLSK F 0
		"####" "#" 2 BRIGHT {A_SetScale(ScaleX*1.02,ScaleY*1.02);
			A_Fadeout(0.015);}
		Wait}}
actor rnail_impactsmoke2{
	scale 0.08
	alpha 0.5
	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.04,ScaleY*1.04);
			A_Fadeout(0.02);}
		 Wait}}
actor scmtrshell_casing{
	scale 0.14
	radius 2
	height 2
	speed 6
	mass 4
	bouncefactor 0.5
	PROJECTILE
	+DOOMBOUNCE
	+NODROPOFF
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+FLOORCLIP
	-NOGRAVITY
	-NOBLOCKMAP
	seesound "casings/hp_shell"
	deathsound "casings/hp_shell"
	states{
	spawn:
		MSHC ABCDEFG 2
		loop
	death:
		TNT1 A 0 A_Jump(256,1,2,3)
		MSHC C 0 A_Jump(256,3)
		MSHC D 0 A_Jump(256,2)
		MSHC G 0
		"####" "#" 400
		"####" "#" 1 A_FadeOut(0.1,1)
		Wait}}
actor scmtrshell_spawner{
	speed 15
	PROJECTILE
	+NOCLIP
	states{
	spawn:
		TNT1 A 1 NoDelay A_SpawnItemEx("scmtrshell_casing",-3,0,0,0,random(-3,-4),random(1,2),0,SXF_TRANSFERPOINTERS) 
		stop}}