ACTOR LitFlare : Inventory {inventory.maxamount 1}
ACTOR LitFlarePickup : Inventory {inventory.maxamount 1}

ACTOR NewFlare : BrutalWeapon
{
	Weapon.AmmoUse1 0
	Weapon.AmmoGive1 1
	Weapon.SelectionOrder 99999
	Weapon.AmmoType1 "Flare"
    AttackSound "None"
    Inventory.PickupSound "AmmoAPIN"
	Inventory.Pickupmessage "$GOTFLARE"
	
    +WEAPON.NOAUTOAIM
    +WEAPON.NOALERT
	+WEAPON.NOAUTOFIRE
	+INVENTORY.UNDROPPABLE
    Scale 0.2
	States
	{
	
	Selectanimation:
	Ready:
	TNT1 A 0 A_JumpIfInventory("Flare", 1, 1)
	GOTO NOFLARES
	TNT1 A 0 A_JumpIfInventory("LitFlarePickup", 1, "Litflareselect")
	TNT1 A 0 A_JumpIfInventory("LitFlare", 1, "Litflare")	
	NormalSelect:
		NFLS ABCDEFG 1
		GOTO steady
	LitFlareSelect:
		TNT1 A 0 {a_overlayflags(1, pspf_flip, 1); a_overlayflags(1, pspf_mirror, 1);}
		PKUP ABC 1 a_stop
		TNT1 A 0 A_RADIUSGIVE("LITFLAREPICKUP", 150, RGF_OBJECTS | RGF_NOSIGHT, 1, "ACTIVEFLAREWAITING")
		PKUP DEFG 1 a_stop
		TNT1 A 0 {a_overlayflags(1, pspf_flip, 0); a_overlayflags(1, pspf_mirror, 0);}
		TNT1 A 2 
		TNT1 A 0 A_AttachLightDef(1,"FLARE2")
		NFLS MLKJIH 1 
		goto LITFLARE
		
	
	Ready3:	
	Steady:
		TNT1 A 0 A_JumpIfInventory("LitFlarePickup", 1, "LitflareSelect")
		TNT1 A 0 A_JumpIfInventory("LitFlare", 1, "Litflare")
		TNT1 A 0 A_JumpIfInventory("Flare", 1, 1)
		GOTO NOFLARES
		NFLS G 1 A_WeaponReadyLit
		NFLS G 0 A_JumpIfInventory("Kicking",1,"DoKick")
		NFLS G 0 A_JumpIfInventory("startdualwield",1,"dualwield")
		NFLS G 0 A_JumpIfInventory("pistolflare",1,1)
		Loop
	PistolReady:
		RIFG A 0 A_JumpIfInventory("pistolflarefiring",1,"steady")
		TNT1 A 0 A_OVERLAY(2,"PISTOLIDLE")
		GOTO STEADY
	
	NoFlares:
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 1 A_WeaponReady
		TNT1 A 0 A_JumpIfInventory("LitFlarePickup", 1, "LitflareSelect")
		TNT1 A 0 A_JumpIfInventory("pistolflare", 1, "switchtopistol")
		TNT1 A 0 a_SelectWeapon("Melee_attacks")
		Goto Ready
	
	goingtoaction:
		TNT1 A 0 A_PlaySound("weapons/changing")
		NFLS EDCBA 1
		TNT1 A 0 A_TakeInventory("StartDualWield", 1)
		TNT1 A 0 A_TakeInventory("readythrow", 1)
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "wearanimation")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "removeanimation")
		TNT1 A 0 A_JumpIfInventory("battledrugtoken",1,"drugshot")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"BANDAGE")
		TNT1 A 0 A_JumpIfInventory("foodtoken", 1, "repair")
		TNT1 A 0 A_JumpIfInventory("painkillerstoken", 1, "repair")
		TNT1 A 0 A_JumpIfInventory("ARMORSHARDTOKEN", 1, "repair")
		goto normalselect
	
	Deselect:
		TNT1 A 0 A_Jumpifinventory("pistolflarefiring", 1, "steady")
		TNT1 A 0 A_STOPSound(chan_weapon)
		TNT1 A 0 a_removelight(1)
		TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLARE",1)
		TNT1 A 0 a_SETROLL(0)
		TNT1 A 0 A_Jumpifinventory("LitFlare", 1, "RollDeselect")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		Wait
	
	RollDeselect:
		TNT1 A 0 A_STOPSound(chan_weapon)
		TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLARE",1)
		NFLS HIJKLM 1 
		TNT1 A 0 a_removelight(1)
	    TNT1 A 0 A_TakeInventory("Tossedflare", 1)
		TNT1 A 0 A_FireCustomMissile("ActiveFlareRolled", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_PLaySound ("GRNTOSS",4)
		TNT1 A 1 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		wait
		
	Select: 
	TNT1 A 0  A_Overlay(-10,"FirstPersonLegsStand")
		TNT1 A 0 A_SetRoll(0)
		TNT1 A 0 
	Select2:
		TNT1 A 0 A_Raise
		LOOP

		
	Fire:
		TNT1 A 0 A_Jumpifinventory("PISTOLFLARE", 1, "PISTOLFIRE")
		TNT1 A 0 A_Jumpifinventory("LitFlare", 1, "FireLit")
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		TNT1 A 0 A_JumpIfInventory("flare", 1, 2)
		TNT1 A 0 A_Print("No Flares Left.")
		GOTO NOFLARES
		TNT1 A 0 A_JumpIf(waterlevel > 2, "Underwater")
		NFLF ABCDEFGHI 1
		TNT1 A 0 A_PLaySound ("Weapons/Revolver/Click1")
		TNT1 A 0 A_GiveInventory("Tossedflare", 1)
		NFLF JKLMN 1
		
		TNT1 A 0 A_PlaySound("Flare/Light",2)
		TNT1 A 0 A_AttachLightDef(1,"FLARE2")
		NFLF OPQRSTUVWX 1 
		
	FireLit:
		NFLS HIJKLM 1 
		TNT1 A 0 A_Jumpifinventory("LitFlare", 1, 2)
		TNT1 A 0 A_TakeInventory("flare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
	    TNT1 A 0 A_TakeInventory("Tossedflare", 1)
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
		TNT1 A 0 A_FireCustomMissile("ActiveFlare", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_PLaySound ("GRNTOSS",4)
		TNT1 A 0 a_removelight(1)
		THHA  ABCDEFGH 1 
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		Goto Ready
	
	AltFire:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("Litflare", 1, "FlareRoll")
		TNT1 A 0 A_JumpIfInventory("flare", 1, 2)
		TNT1 A 0 A_Print("No Flares Left.")
		Goto NoFlares
		TNT1 A 0 A_JumpIf(waterlevel > 2, "Underwater")
		TNT1 A 0 A_GiveInventory("LitFlare", 1)
		NFLF ABCDEFGHI 1
		TNT1 A 0 A_PLaySound ("Weapons/Revolver/Click1")
		NFLF JKLMN 1
		TNT1 A 0 A_PlaySound("Flare/Light",2)
		TNT1 A 0 A_AttachLightDef(1,"FLARE2")
		NFLF OPQRSTUVWX 1 
		TNT1 A 0 A_TakeInventory("flare", 1)

 LitFlare:
		TNT1 A 0 A_TakeInventory("LitFlarePickup", 1)
		TNT1 A 0 A_giveinventory("LitFlare",1)
		TNT1 A 0 A_JumpIfInventory("flaremeleehit",1,"FLAREbroken")
		TNT1 A 0 
		NFLB A 1  A_Weaponready(wrf_allowreload | WRF_noSWITCH)
		TNT1 A 0 
		//NFLS G 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "Useattackflare")
		//TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "doexecutionflare")
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"dokickFLARE")
		TNT1 A 0 A_JumpIfInventory("flaremeleehit",1,"FLAREbroken")
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("battledrugtoken",1,"quickroll")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"quickroll")
		TNT1 A 0 A_JumpIfInventory("repairtoken",1,"quickroll")
		TNT1 A 0 A_Jumpifinventory("throwtoken",1, "quickroll")
		TNT1 A 0 A_Jumpifinventory("slashtoken",1, "flareknife")
		TNT1 A 0 A_JumpIfInventory("flaretoken",1,"quickroll")
		PIST F 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER3, "QUICKROLL")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "quickroll")
		RIFG A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		RIFG A 0 A_JumpIfInventory("startdualwield",1,"dualwield")
		TNT1 A 0 
		NFLB B 1 A_WeaponReady(wrf_allowreload | WRF_noSWITCH)
		//NFLS G 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "Useattackflare")
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"dokickFLARE")
		//TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "doexecutionflare")
		TNT1 A 0 
		NFLB C 1 A_WeaponReady(wrf_allowreload)
		TNT1 A 0 
		//NFLB C 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "Useattackflare")
		TNT1 A 0 A_JumpIfInventory("flaremeleehit",1,"FLAREbroken")
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"dokickFLARE")
		//TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "doexecutionflare")
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("battledrugtoken",1,"quickroll")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"quickroll")
		TNT1 A 0 A_Jumpifinventory("throwtoken",1, "quickroll")
		TNT1 A 0 A_Jumpifinventory("slashtoken",1, "flareknife")
		TNT1 A 0 A_JumpIfInventory("flaretoken",1,"quickroll")
		PIST F 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER3, "QUICKROLL")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "quickroll")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "quickroll")
		RIFG A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")	
		RIFG A 0 A_JumpIfInventory("startdualwield",1,"dualwield")
		TNT1 A 0 A_PlaySound("Flare/Loop", chan_weapon | CHAN_NOSTOP, 1.0,1)
		RIFG A 0 A_JumpIfInventory("pistolflare",1,1)
		Loop
	LitPistolReady:
		RIFG A 0 A_JumpIfInventory("pistolflarefiring",1,"litflare")
		TNT1 A 0 A_OVERLAY(2,"PISTOLIDLE2")
		GOTO litflare

Underwater:
	RIFG A 0 A_JumpIfInventory("litflare",1,"quickroll")
	RIFG A 0 A_print("you can't light it up while underwater!")
	goto steady

Flareroll:
		NFLS HIJKLM 1 
		TNT1 A 0 A_STOPSound(chan_weapon)
		TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
	    TNT1 A 0 A_TakeInventory("Tossedflare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_FireCustomMissile("ActiveFlareRolled", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_PLaySound ("GRNTOSS",4)
		THRO  ABCDEFGHI 1
		TNT1 A 1 a_removelight(1)
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		TNT1 A 0 A_JumpIfInventory("pistolflare", 1, "switchtopistol")
		Goto Ready

	UseAttackflare:	
		TNT1 A 0 A_JumpIfInventory("pistolflare", 1, 2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_overlay(120,"PistolFlareUse",false)
		NFLB ABC 1 A_WeaponReady
		NFLB C 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "Useattackflare")
		NFLB C 0 A_Jump(256,"Useattack")
		goto litflare
	PistolFlareUse:
		FLPI A 1 
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USE, "PistolFlareUse")
		FLPI A 5
		stop

		
ExecutionRoll:		
    TNT1 A 0 A_giveinventory("flareexecution",1)
	goto quickroll
Quickroll:
	TNT1 A 0 A_STOPSound(chan_weapon)
	TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
	TNT1 A 0 A_TakeInventory("Tossedflare", 1)
	TNT1 A 0 A_FireCustomMissile("ActiveFlareRolled", 0, 0, 0, 0, 0, 0)
	NFLS HIJKLM 1 
	TNT1 A 0 a_removelight(1)
	TNT1 A 1 A_TakeInventory("LitFlare", 1)
	TNT1 A 0 A_TakeInventory("Flaretoken", 1)
	
	TNT1 A 0 A_JUMPIFINVENTORY("FLAREEXECUTION", 1, "EXECUTION")
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "goingtoaction")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "goingtoaction")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "goingtoaction")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"goingtoaction")
		TNT1 A 0 A_Jumpifinventory("throwtoken",1, "Quickthrow")
		TNT1 A 0 A_Jumpifinventory("slashtoken",1, "Quickslash")
		TNT1 A 0 A_JumpIfInventory("flaretoken",1,"TossFlare")
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER3, "TOSSGRENADE")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("pistolflare", 1, "switchtopistol")
	TNT1 A 1
	goto Ready
	
	EXECUTION:
		TNT1 A 0 A_TakeInventory("flareexecution", 1)
		TNT1 A 0 A_JUMP(256, "UseAttack")
		wait
		
	
	Flarebroken:
		TNT1 A 0 A_STOPSound(chan_weapon)
		NFLS HIJKLM 1 
		TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
	    TNT1 A 0 A_TakeInventory("Tossedflare", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_FireCustomMissile("BrokenFlare", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_PLaySound ("GRNTOSS",4)
		THRO  ABCDEFGHI 1
		TNT1 A 1 a_removelight(1)
		TNT1 A 0 A_TakeInventory("LitFlare", 1)
		TNT1 A 0 A_TakeInventory("FLAREMELEEHIT", 1)
		TNT1 A 0 A_TakeInventory("Flaretoken", 1)
		Goto Ready
	
 	Spawn:
		GRND H -1
		Stop
		
	CheckSprint:
		NFLA A 0 A_JumpIfInventory("LITFLARE", 1, "StartSprintLitFlare")
		NFLA A 0 A_JumpIfInventory("IsStandingStill", 1, "steady")
		NFLA A 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto steady
		
	StartSprint:
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLARE",1)
		NFLS G 1 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "Trip")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "Trip")
		
	Sprinting:	
		NFLA A 0 offset(-9,32) 
		NFLA A 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "steady")
			TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		NFLA A 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 2000, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		NFLA A 0 offset(-9,32) A_JumpIfInventory("Powerstrength2", 1, 2)
		NFLA A 0 offset(-9,32) A_GiveInventory("UsedStamina", 3)
		NFLA A 0 offset(-9,32)
		NFLS G 1 offset(-9,34) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(-6,36) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(-3,38) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(0,38) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(3,36) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(6,34) A_SetPitch(pitch -0.5)
		NFLS G 1 offset(9,32) A_SetPitch(pitch -0.5)
		NFLA A 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		NFLA A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        NFLA A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        NFLA A 0 A_JumpIfInventory("Reloading",1,"Reload")
		NFLA A 0 offset(-9,32) A_GiveInventory("UsedStamina", 3)
		NFLA A 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		NFLS G 1 offset(9,34) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(6,36) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(3,38) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(0,38) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(-3,36) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(-6,34) A_SetPitch(pitch +0.5)
		NFLS G 1 offset(-9,32) A_SetPitch(pitch +0.5)
		NFLS G 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		NFLS G 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		Goto StopSprint
		
	StopSprintTired:
		NFLS G 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		NFLA A 0 A_PlaySound("Tired", 2)
		NFLA A 0 A_TakeInventory("usedstamina", 1)
		TNT1 A 0 A_Jumpifhealthlower(25,"rupturesprint")
		NFLS G 5 A_WeaponReady
		NFLA A 0 A_TakeInventory("usedstamina", 1)
		NFLS G 5 A_WeaponReady
		NFLA A 0 A_TakeInventory("usedstamina", 1)
		NFLS G 5 A_WeaponReady
		NFLA A 0 A_TakeInventory("usedstamina", 1)
		NFLS G 5 A_WeaponReady
		NFLA A 0 A_TakeInventory("usedstamina", 1)
		NFLS G 5 A_WeaponReady
		Goto steady
				
	StopSprint:
		NFLS G 1
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "StopSprintTired")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto steady	
		
	//// NO FLARES SPRINT 
	/// LIT FLARE SPRINT
	
		StartSprintLitFlare:
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLARE",1)
		NFLB A 1 A_WeaponReady(WRF_NOFIRE)
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "StopSprintTiredLitFlare")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "StopSprintTiredLitFlare")
		
		SprintingLitFlare:	
		PISP A 0 A_OVERLAY(3,"FLARELIGHT")
		PISP A 0 offset(-9,32) 
		GRND F 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "LitFlare")
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 100, "StopSprintTiredLitFlare")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 2000, "StopSprintTiredLitFlare")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		GRND F 0 offset(-9,32) A_JumpIfInventory("Powerstrength2", 1, 2)
		GRND F 0 offset(-9,32) A_GiveInventory("usedstamina", 1)
		GRND F 0 offset(-9,32)
		NFLB A 1 offset(-9,34) A_SetPitch(pitch -0.5)
		NFLB B 1 offset(-6,36) A_SetPitch(pitch -0.5)
		NFLB C 1 offset(-3,38) A_SetPitch(pitch -0.5)
		NFLB A 1 offset(0,38) A_SetPitch(pitch -0.5)
		NFLB B 1 offset(3,36) A_SetPitch(pitch -0.5)
		NFLB C 1 offset(6,34) A_SetPitch(pitch -0.5)
		NFLB A 1 offset(9,32) A_SetPitch(pitch -0.5)
		GRND F 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		GRND F 0 A_JumpIfInventory("Kicking",1,"DoKickflare")
        GRND F 0 A_JumpIfInventory("Taunting",1,"Taunt")
		GRND F 0 offset(-9,32) A_GiveInventory("UsedStamina", 3)
		GRND F 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		NFLB B 1 offset(9,34) A_SetPitch(pitch +0.5)
		NFLB C 1 offset(6,36) A_SetPitch(pitch +0.5)
		NFLB A 1 offset(3,38) A_SetPitch(pitch +0.5)
		NFLB B 1 offset(0,38) A_SetPitch(pitch +0.5)
		NFLB C 1 offset(-3,36) A_SetPitch(pitch +0.5)
		NFLB A 1 offset(-6,34) A_SetPitch(pitch +0.5)
		NFLB B 1 offset(-9,32) A_SetPitch(pitch +0.5)
		GRND F 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		GRND F 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "SprintingLitFlare")
		Goto StopSprintLitFlare
		
	StopSprintTiredLitflare:
		NFLB C 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		GRND F 0 A_PlaySound("Tired", 2)
		NFLB A 1 A_WeaponReady
		NFLB B 1 A_WeaponReady
		NFLB C 1 A_WeaponReady
		NFLB A 1 A_WeaponReady
		GRND F 0 A_TakeInventory("usedstamina", 1)
		NFLB B 1 A_WeaponReady
		Goto LitFlare
		
	StopSprintLitFlare:
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "StopSprintTiredLitFlare")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "StopSprintTiredLitFlare")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
	Goto LitFlare	
	
	Dokickflare:
		TNT1 A 0 a_takeinventory("kicking",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKickflare")
		NULL A 0 A_JumpIf (momZ < 0, "AirKickflare")
		TNT1 A 0 A_JumpIfInventory("IsCrouching", 1, "SlideAttackflare")
		TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		TNT1 A 0 A_JumpIfInventory("isdoomguy", 1, 2)
		TNT1 A 0 A_Giveinventory("UsedStamina",10)
		TNT1 A 0 A_OVERLAY(-3,"kickwithflare")
		"####" A 0 A_Overlay(-10,"FirstPersonLegsKickRight")
		"####" A 0 A_jump(256,"Dokick")
		goto litflare
	
	Kickwithflare:
		NFLS HIJKLMMMMMMMMMLKJIH 1 
		stop
	
	Airkickflare:
	TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
	TNT1 A 0 A_TakeInventory("Tossedflare", 1)
	TNT1 A 0 A_FireCustomMissile("ActiveFlareRolled", 0, 0, 0, 0, 0, 0)
	TNT1 A 0 a_removelight(1)
	TNT1 A 0 A_TakeInventory("Flaretoken", 1)
	TNT1 A 1 A_TakeInventory("LitFlare", 1)
	"####" A 0 A_Overlay(-10,"FirstPersonLegsAirKick")
	TNT1 A 0 a_jump(256,"Airkick")
	loop
	
	SlideAttackflare:
	TNT1 A 0 A_TakeInventory("Litflarepickup", 1)
	TNT1 A 0 A_TakeInventory("Tossedflare", 1)
	TNT1 A 0 A_FireCustomMissile("ActiveFlareRolled", 0, 0, 0, 0, 0, 0)
	TNT1 A 0 a_removelight(1)
	TNT1 A 0 A_TakeInventory("Flaretoken", 1)
	TNT1 A 1 A_TakeInventory("LitFlare", 1)
	TNT1 A 0 A_ClearOverlays(-10,-10)
	TNT1 A 0 a_jump(256,"Slideattack")
	loop
	
	
	

		
	DUALWIELD:
		TNT1 A 0 A_TAKEINVENTORY("startdualwield",1)
		TNT1 A 0 A_JumpIfInventory("PISTOLFLARE", 1, "NOPISTOL")
		TNT1 A 0 A_JumpIfInventory("BRUTALPISTOL", 1, "ADDPISTOL")
		TNT1 A 0 A_PRINT("You don't have a pistol with you")
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
	
	ADDPISTOL:
		TNT1 A 0 A_OVERLAY(2,"ADDPISTOL2")
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
	ADDPISTOL2:
		PIST F 0 A_PlaySound("PISTSELE")
		PI2S E 1 offset(0,50) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,40) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,30) a_weaponready(wrf_nofire)
		TNT1 A 0 A_GIVEINVENTORY("PISTOLFLARE",1)
		TNT1 A 0 A_GIVEINVENTORY("PISTOLselected",1)
		PI2S E 1 offset(0,25) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,20) a_weaponready(wrf_nofire)
		FLPI A 1 offset(0,15) a_weaponready(wrf_nofire)
		FLPI A 1 offset(0,10) a_weaponready(wrf_nofire)
		STOP
		
	NOPISTOL:
		TNT1 A 0 A_OVERLAY(2,"NOPISTOL2")
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
	NOPISTOL2:
		TNT1 A 0 A_TAKEINVENTORY("PISTOLflare",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		FLPI A 1 offset(0,10) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,20) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,25) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,30) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,40) a_weaponready(wrf_nofire)
		PI2S E 1 offset(0,50) a_weaponready(wrf_nofire)
		TNT1 A 1
		STOP
	
	PISTOLIDLE:
		FLPI A 2
		STOP
		
	PISTOLIDLE2:
		FLPI A 2
		RIFG A 0 A_JumpIfInventory("pistolflarefiring",1,"litflare")
		FLPI A 2
		RIFG A 0 A_JumpIfInventory("pistolflarefiring",1,"litflare")
		FLPI A 1
		STOP
		
	PISTOLFIRE:
		RIFG A 0 A_JumpIfInventory("pistolflarefiring",1,7)
		TNT1 A 0 A_JumpIfInventory("bdpistolammo", 1, 1)
		goto dryfire
		
		//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("PistolDurability",1)
		PIST F 0 A_JumpIfInventory("PistolDurability",60, 2)
		PIST F 0 A_Jump(130,"dryfire")
		///
		
		TNT1 A 0 A_OVERLAY(3,"PISTOLFIRE2")
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
	PISTOLFIRE2:
		TNT1 A 0 A_GIVEINVENTORY("PISTOLFLAREFIRING",1)
		RIFF A 0 A_FireCustomMissile("DistantFireSoundShotgun", random(-1,1), 0, 0, -12, 0, random(-1,1))
        PI2G A 0 A_startSound("PISTFIRE", 100)
		PIST F 0 A_AlertMonsters
		PI2G A 0 A_ZoomFactor(0.98)
		PI2G A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		FLPI B 1 BRIGHT A_FireProjectile("PistolTracer", frandom(1.2,1.2), 0)
		PISF F 0 A_Quake(1, 3, 0, 400, "")
		PI2G A 0 A_ZoomFactor(1.0)
        RIFF A 0 A_FireCustomMissile("DecorativeTracer", -1, 0, -4, -1)
		PI2G A 0 A_Takeinventory("BDPistolAmmo",1)
		PI2G A 0 A_FireCustomMissile("PistolCaseSpawn",5,0,10,-4)
		FLPI C 1 BRIGHT
		FLPI DE 1
		
		
		FLPI A 3 a_weaponready(wrf_nofire | WRF_disableSWITCH)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLAREFIRING",1)
		FLPI A 2 a_weaponready(WRF_disableSWITCH)
		PIST F 0 A_JumpIfInventory("pistoldurability", 1, 1)
		goto weaponbreak
		TNT1 A 0
		STOP

	DRYFIRE:
		TNT1 A 0 A_OVERLAY(2,"DRYFIRE2")
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
	DRYFIRE2:
		FLPI A 5 A_PLAYSOUND("DRYFIRE",6)
		STOP
		
	Switchtopistol:
		TNT1 A 0 A_TAKEINVENTORY("PISTOLselected",1)
		TNT1 A 0 A_TAKEINVENTORY("PISTOLFLARE",1)
		TNT1 A 0 a_SETROLL(0)
		TNT1 A 0 A_SELECTWEAPON("BRUTALPISTOL")
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		STOP
	
	FlareKnife:
		TNT1 A 0 A_JumpIfInventory("pistolflare", 1, "PistoltoKnife")
		TNT1 A 0 A_OVERLAY(-2,"Flareslash")
		NFLB ABCABCABC 1
		goto LitFlare		
	PistoltoKnife:
		TNT1 A 0 A_clearOVERLAYs(2,3)
		TNT1 A 0 A_OVERLAY(-2,"PistoltoKnife2")
		NFLB ABCABCABCABC 1
		goto ADDPISTOL
	PistoltoKnife2:
		PI2S E 1 offset(0,32)
		PI2S E 1 offset(0,35)
		PI2S E 1 offset(0,36)
		PI2S E 1 offset(0,40)
		PI2S E 1 offset(0,50)
		TNT1 A 1 offset(0,0)
	
	FlareSlash:
		TNT1 A 0 {a_overlayflags(-2, pspf_flip, 1); a_overlayflags(-2, pspf_mirror, 1);}
		KNFR A 0 A_PlaySound("knife/slash",1,1.0)
		KNFR ABCD 1 offset(0,55) a_setroll(roll-2)
		TNT1 A 0 A_JumpIfInventory("isdoomguy", 1, 2)
		KNFS K 0 A_Giveinventory("UsedStamina", 12)
		
		TNT1 A 0 A_JumpIfInventory("Powerstrength2",1,2)
		TNT1 A 0 A_jump(256,2)
		TNT1 A 0 A_CustomPunch(Random(75,80),1,0,"berserkslash",69)
		TNT1 A 0 A_CustomPunch(Random(35,40),1,0,"knifePuff",69)
		
		TNT1 A 0 A_Firecustommissile("knifehitscan",0,0,0,0)
		KNFR EFG 1 offset(0,55) a_setroll(roll+2)
		TNT1 A 0 A_Takeinventory("slashtoken",1)
		TNT1 A 2 a_setroll(rolL+2)
		TNT1 A 0 {a_overlayflags(-2, pspf_flip, 0); a_overlayflags(-2, pspf_mirror, 0);}	
		
		TNT1 A 0 A_JumpIfInventory("KnifeDurability",1, 3)
		TNT1 A 0 A_log("A knife has broken")
		TNT1 A 0 A_Spawnitem("BrokenKnife",0,0)
		goto broken
		TNT1 A 0
		stop
		
	Broken:
		TNT1 A 0 A_Jumpifinventory("KnivesAmmo",1,4)
		/// no reserve knives
		TNT1 A 0 A_Print("no knives left",2)
		TNT1 A 0 A_Takeinventory("Knife",1)
		TNT1 A 0 A_takeinventory("knifeisbroken",1)
		stop
		/// replace knife
		TNT1 A 0
		TNT1 A 0 A_Takeinventory("Knivesammo",1)
		TNT1 A 0 A_Giveinventory("KnifeDurability",40)
		TNT1 A 0 A_takeinventory("knifeisbroken",1)
		stop
	
	Weaponbreak:
		TNT1 A 0 a_print("your pistol has broken!")
		TNT1 A 0 A_takeinventory("BrutalPistol",1)
		TNT1 A 0 A_takeinventory("Jammedpistol",1)
		TNT1 A 0 A_JumpIfInventory("litflare", 1, "litflare")
		goto steady
		
		
	RELOAD:
	TNT1 A 0 A_JumpIfInventory("PISTOLFLARE", 1, 2)
	TNT1 A 0 A_JumpIfInventory("LitFlare", 1, "MELEE")
	goto Steady
	TNT1 A 0 A_GIVEINVENTORY("RELOADING",1)
	TNT1 A 0 A_JumpIfInventory("LitFlare", 1, "QUICKROLL")
	GOTO SWITCHTOPISTOL
	
	MELEE:
		TNT1 A 0 A_STARTSOUND("FLARATK1",50)
		NFLM AABCD 1
		TNT1 A 0 A_Firecustommissile("flareattack",0,0,0,0)
		NFLM EFG 1 a_setangle(angle+2)
		NFLM HIJ 1 a_setroll(roll-2)
		TNT1 A 5
		TNT1 A 0 A_STARTSOUND("FLARATK2",51)
		NFLM KL 1 a_setroll(roll+3.0)
		TNT1 A 0 A_Firecustommissile("flareattack",0,0,0,0)
		NFLM MNO 1 a_setroll(roll+2.0)
		NFLM PQRS 1 a_setangle(angle-1)
		TNT1 A 5
		TNT1 A 0 A_STARTSOUND("FLARATK1",50)
		NFLM TUV 1 a_setroll(roll-3.0)
		TNT1 A 0 A_Firecustommissile("flareattack",0,0,0,0)
		NFLM WXYZ 1 a_setroll(roll-3.0)
		TNT1 AAAA 1 a_setangle(angle+1)
		TNT1 A 16 
		NFLS MLKJIH 1 a_setroll(roll+2.0)
		TNT1 A 0 a_setroll(0)
		goto LitFlare
		
	}
}

ACTOR PISTOLFLARE : INVENTORY {INVENTORY.MAXAMOUNT 1}
ACTOR PISTOLFLAREfiring : INVENTORY {INVENTORY.MAXAMOUNT 1}
ACTOR flaremeleehit : INVENTORY {INVENTORY.MAXAMOUNT 1}
ACTOR flareexecution : INVENTORY {INVENTORY.MAXAMOUNT 1}

Actor FLAREATTACK : FastProjectile
{
	Radius 4
	Height 0
	+MISSILE
	+FORCEXYBILLBOARD
	+FORCERADIUSDMG
	+FORCEPAIN
	damage (random(17,17))
	damagetype "Fire"
	RenderStyle Add
	Alpha 0.6
    Speed 60
	SeeSound "none"
	DeathSound "none"
	States
	{
	Spawn:
		TNT1 A 1 BRIGHT
		Stop

	Death:
	Crash:
	XDeath:
	Melee:
			TNT1 A 0
			TNT1 A 0 A_STARTSound("CRACKLE1", 61,0)
			TNT1 A 0 A_givetoTarget ("flaremeleehit", 1)														 
			TNT1 A 10
			Stop
	}
}