actor GripAttachment : CustomInventory
{
  inventory.pickupmessage "Grip"
  inventory.pickupsound "misc/ammo_pkup"
  inventory.icon "ATTAD0"
  inventory.amount 1
  inventory.maxamount 1
  Tag "Attach Grip"
  scale 0.1
  +INVENTORY.INVBAR
  +UNDROPPABLE
  states
  {
  Spawn:
    ATTA D -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",0,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor RapidFireAttachment : GripAttachment
{
  inventory.pickupmessage "Rapid Fire"
  inventory.icon "ATTAC0"
  Tag "Attach Rapid Fire"
  states
  {
  Spawn:
    ATTA C -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",1,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor ExtendedMagsAttachment : GripAttachment
{
  inventory.pickupmessage "Extended Mags"
  inventory.icon "ATTAB0"
  Tag "Attach Ex Mags"
  states
  {
  Spawn:
    ATTA B -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",2,0,0) == 0, "FailState")
	RNGC I 0 A_TakeInventory("M4Token",1)
	RNGC I 0 A_TakeInventory("M16Token",1)
	RNGC I 0 A_TakeInventory("F2000Token",1)
	RNGC I 0 A_TakeInventory("ACRToken",1)
	RNGC I 0 A_TakeInventory("DEToken",1)
	RNGC I 0 A_TakeInventory("RangerToken",1)
	RNGC I 0 A_TakeInventory("RangerToken2",1)
	RNGC I 0 A_TakeInventory("RangerToken3",1)
	RNGC I 0 A_TakeInventory("M14Token",1)
	RNGC I 0 A_TakeInventory("L86Token",1)
	RNGC I 0 A_TakeInventory("M240Token",1)
	RNGC I 0 A_TakeInventory("M9Token",1)
	RNGC I 0 A_TakeInventory("WA2000Token",1)
	RNGC I 0 A_TakeInventory("AUGToken",1)
	RNGC I 0 A_TakeInventory("AKMToken",1)
	RNGC I 0 A_TakeInventory("ThumperToken",1)
	RNGC I 0 A_TakeInventory("M93RToken",1)
	RNGC I 0 A_TakeInventory("MP5Token",1)
	RNGC I 0 A_TakeInventory("PP2000Token",1)
	RNGC I 0 A_TakeInventory("G18Token",1)
	RNGC I 0 A_TakeInventory("MG4Token",1)
	RNGC I 0 A_TakeInventory("P90Token",1)
	RNGC I 0 A_TakeInventory("UZIToken",1)
	RNGC I 0 A_TakeInventory("VectorToken",1)
	RNGC I 0 A_TakeInventory("UMP45Token",1)
	RNGC I 0 A_TakeInventory("AA12Token",1)
	RNGC I 0 A_TakeInventory("FALToken",1)
	RNGC I 0 A_TakeInventory("FAMASToken",1)
	RNGC I 0 A_TakeInventory("44MAGToken",1)
	RNGC I 0 A_TakeInventory("USP45Token",1)
	RNGC I 0 A_TakeInventory("SCARToken",1)
	RNGC I 0 A_TakeInventory("BarrettToken",1)
	RNGC I 0 A_TakeInventory("InterToken",1)
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor ThermalAttachment : GripAttachment
{
  inventory.pickupmessage "Thermal Scope"
  inventory.icon "ATTAA0"
  Tag "Attach Thermal Scope"
  states
  {
  Spawn:
    ATTA A -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",3,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor AkimboAttachment : GripAttachment
{
  inventory.pickupmessage "Akimbo"
  inventory.icon "ATTAE0"
  Tag "Attach Akimbo"
  states
  {
  Spawn:
    ATTA E -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",4,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor KnifeAttachment : GripAttachment
{
  inventory.pickupmessage "Tactical Knife"
  inventory.icon "ATTAF0"
  Tag "Attach Tac Knife"
  states
  {
  Spawn:
    ATTA F -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",5,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}
actor DragonBreathAttachment : GripAttachment
{
  inventory.pickupmessage "Fire/Explosive Ammo"
  inventory.icon "ATTAG0"
  Tag "Attach Fire/Explosive Ammo"
  states
  {
  Spawn:
    ATTA G -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("RefAttach",6,0,0) == 0, "FailState")
    stop
  FailState:
    TNT1 A 0
	fail
  }
}

actor RemoveAttachment : Ammo
{
    inventory.amount 1
    inventory.maxamount 1
    ammo.backpackamount 0
    ammo.backpackmaxamount 1
    +IGNORESKILL
}

/*actor RemoveAttachment : GripAttachment
{
  inventory.pickupmessage "Attachment Remover"
  inventory.icon "ATTAI0"
  Tag "Refund Weapon Attachment"
  states
  {
  Spawn:
    ATTA I -1
    stop
  Use:
  	TNT1 A 0 A_JumpIfInventory("InLastStand", 1, "FailState")
    TNT1 A 0 ACS_NamedExecuteAlways("RefAttach",0,7,0,0)
	RNGC I 0 A_TakeInventory("M4Token",1)
	RNGC I 0 A_TakeInventory("M16Token",1)
	RNGC I 0 A_TakeInventory("F2000Token",1)
	RNGC I 0 A_TakeInventory("ACRToken",1)
	RNGC I 0 A_TakeInventory("DEToken",1)
	RNGC I 0 A_TakeInventory("RangerToken",1)
	RNGC I 0 A_TakeInventory("RangerToken2",1)
	RNGC I 0 A_TakeInventory("RangerToken3",1)
	RNGC I 0 A_TakeInventory("M14Token",1)
	RNGC I 0 A_TakeInventory("L86Token",1)
	RNGC I 0 A_TakeInventory("M240Token",1)
	RNGC I 0 A_TakeInventory("M9Token",1)
	RNGC I 0 A_TakeInventory("WA2000Token",1)
	RNGC I 0 A_TakeInventory("AUGToken",1)
	RNGC I 0 A_TakeInventory("AKMToken",1)
	RNGC I 0 A_TakeInventory("ThumperToken",1)
	RNGC I 0 A_TakeInventory("M93RToken",1)
	RNGC I 0 A_TakeInventory("MP5Token",1)
	RNGC I 0 A_TakeInventory("PP2000Token",1)
	RNGC I 0 A_TakeInventory("G18Token",1)
	RNGC I 0 A_TakeInventory("MG4Token",1)
	RNGC I 0 A_TakeInventory("P90Token",1)
	RNGC I 0 A_TakeInventory("UZIToken",1)
	RNGC I 0 A_TakeInventory("VectorToken",1)
	RNGC I 0 A_TakeInventory("UMP45Token",1)
	RNGC I 0 A_TakeInventory("AA12Token",1)
	RNGC I 0 A_TakeInventory("FALToken",1)
	RNGC I 0 A_TakeInventory("FAMASToken",1)
	RNGC I 0 A_TakeInventory("44MAGToken",1)
	RNGC I 0 A_TakeInventory("USP45Token",1)
	RNGC I 0 A_TakeInventory("SCARToken",1)
	RNGC I 0 A_TakeInventory("BarrettToken",1)
	RNGC I 0 A_TakeInventory("InterToken",1)
    fail
  FailState:
    TNT1 A 0
	fail
  }
}*/
actor Perk1_SOHAward : CustomInventory
{
  inventory.pickupmessage "Snagged an Item"
  inventory.pickupsound "misc/ammo_pkup"
  inventory.icon "P_SOH"
  inventory.amount 1
  inventory.maxamount 1
  Tag "Sleight of Hand -- Faster reload"
  scale 0.1
  +INVENTORY.INVBAR
  +UNDROPPABLE
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,0,0,0)
    stop
  }
}


actor Perk1_ExtremeConditioningAward : Perk1_SOHAward
{
  inventory.icon "P_EXCOND"
  Tag "Ex Conditioning -- Doubled regeneration"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,1,0,0)
    stop
  }
}

actor Perk1_OMAAward : Perk1_SOHAward
{
  inventory.icon "P_OMA"
  Tag "One Man Army -- Arms increased to 137"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,2,0,0)
    stop
  }
}
actor Perk1_ScavengerAward : Perk1_SOHAward
{
  inventory.icon "P_SCAVEN"
  Tag "Scavenger -- +50% ammo pickups + ammo"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,17,0,0)
    stop
  }
}

actor Perk2_StoppingPowerAward : Perk1_SOHAward
{
  inventory.icon "P_POWER"
  Tag "Stopping Power -- +10% Bullet Damage"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,3,0,0)
    stop
  }
}

actor Perk2_DangerCloseAward : Perk1_SOHAward
{
  inventory.icon "P_DANGER"
  Tag "Danger Close -- +10% Explosive Damage"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,4,0,0)
    stop
  }
}
actor Perk2_JuggernautAward : Perk1_SOHAward
{
  inventory.icon "P_JUGGER"
  Tag "Juggernaut -- +10% damage resistance"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,5,0,0)
    stop
  }
}
actor Perk3_SteadyAimAward : Perk1_SOHAward
{
  inventory.icon "P_STEADY"
  Tag "Steady Aim -- Increased hip-fire accuracy"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,6,0,0)
    stop
  }
}
actor Perk3_CommandoAward : Perk1_SOHAward
{
  inventory.icon "P_COMM"
  Tag "Commando -- +50% knife range"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,7,0,0)
    stop
  }
}

actor Perk3_Commando_ProAward : Perk1_SOHAward
{
  inventory.icon "P_COMMP"
  Tag "Commando Pro -- +50% knife damage"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,20,0,0)
    stop
  }
}

actor Perk3_LastStandAward : Perk1_SOHAward
{
  inventory.icon "P_LASTAN"
  Tag "Last Stand -- Fight a little longer before death"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,8,0,0)
    stop
  }
}

actor Perk1_SOH_ProAward : Perk1_SOHAward
{
  inventory.icon "P_SOHP"
  Tag "Sleight of Hand Pro -- Faster grenade throw, knife recovery"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,9,0,0)
    stop
  }
}

actor Perk1_ExtremeConditioning_ProAward : Perk1_SOHAward
{
  inventory.icon "P_EXCONP"
  Tag "Ex Conditioning Pro -- Increased regen rate, running speed"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,10,0,0)
    stop
  }
}

actor Perk1_OMA_ProAward : Perk1_SOHAward
{
  inventory.icon "P_OMAP"
  Tag "One Man Army Pro -- Carry extra ammo"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,11,0,0)
    stop
  }
}

actor Perk1_Scavenger_ProAward : Perk1_SOHAward
{
  inventory.icon "P_SCAVEP"
  Tag "Scavenger Pro -- Ammo pickups are mini-backpacks"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,18,0,0)
    stop
  }
}

actor Perk2_StoppingPower_ProAward : Perk1_SOHAward
{
  inventory.icon "P_POWERP"
  Tag "Stopping Power Pro -- +8% Bullet Damage"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,12,0,0)
    stop
  }
}

actor Perk2_DangerClose_ProAward : Perk1_SOHAward
{
  inventory.icon "P_DANGEP"
  Tag "Danger Close Pro -- +8% Explosive Damage"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,13,0,0)
    stop
  }
}
actor Perk2_Juggernaut_ProAward : Perk1_SOHAward
{
  inventory.icon "P_JUGGEP"
  Tag "Juggernaut Pro -- +8% damage resistance"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,14,0,0)
    stop
  }
}

actor Perk3_SteadyAim_ProAward : Perk1_SOHAward
{
  inventory.icon "P_STEADP"
  Tag "Steady Aim Pro -- Increased scoped accuracy, breath"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,15,0,0)
    stop
  }
}

actor Perk3_LastStand_ProAward : Perk1_SOHAward
{
  inventory.icon "P_LASTAP"
  Tag "Last Stand Pro -- Revival Kit heals and revives friendlies"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,16,0,0)
    stop
  }
}

actor Perk2_ColdBloodedAward : Perk1_SOHAward
{
  inventory.icon "P_COLD"
  Tag "Cold Blooded -- No flinch, silent footsteps"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,21,0,0)
    stop
  }
}

actor Perk2_ColdBlooded_ProAward : Perk1_SOHAward
{
  inventory.icon "P_COLDP"
  Tag "Cold Blooded Pro -- Invisible to seeking weapons"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,22,0,0)
    stop
  }
}

actor PerkX_TacticalInsertionAward : Perk1_SOHAward
{
  inventory.icon "ATTAH0"
  Tag "Tactical Insertion -- Choose where to respawn"
  states
  {
  Spawn:
    ATTA H -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,19,0,0)
    stop
  }
}

actor Perk4_StunAward : Perk1_SOHAward
{
  inventory.icon "P_GRNSTU"
  Tag "Stun Grenades -- carry stun grenades that will stun enemies"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,23,0,0)
    stop
  }
}

actor Perk4_IncAward : Perk1_SOHAward
{
  inventory.icon "P_GRNINC"
  Tag "Incendiary Grenades -- carry incendiary grenades that are incendiary"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,24,0,0)
    stop
  }
}

/*actor Perk4_RemoveAward : Perk1_SOHAward
{
  inventory.icon "P_GRNREM"
  Tag "Refund Grenade Upgrade"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,25,0,0)
    stop
  }
}*/

actor MegasphereAward : Perk1_SOHAward
{
  inventory.icon "P_MEGA"
  Tag "Full refill + Invulnerability"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 A_JumpIfInventory("awardcount",2,2)
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,26,0,0)
    stop
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,26,0,0)
	fail
  }
}

actor Perk1_SOH_MightyAward : Perk1_SOHAward
{
  inventory.icon "P_SOHM"
  Tag "Sleight of Hand Mighty -- Superhuman weapon handling"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,27,0,0)
    stop
  }
}

actor Perk1_ExtremeConditioning_MightyAward : Perk1_SOHAward
{
  inventory.icon "P_EXCONM"
  Tag "Ex Conditioning Mighty -- Vampiric firepower"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,28,0,0)
    stop
  }
}

actor Perk1_OMA_MightyAward : Perk1_SOHAward
{
  inventory.icon "P_OMAM"
  Tag "One Man Army Mighty -- Weapon slots galore"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,29,0,0)
    stop
  }
}

actor Perk4_RevivalkitAward : Perk1_SOHAward
{
  inventory.icon "P_REVIVE"
  Tag "Revival Kit -- heal and revive friendlies"
  states
  {
  Spawn:
    TNT1 A -1
    stop
  Use:
    TNT1 A 0 ACS_NamedExecuteAlways("RefPerkA",0,30,0,0)
    stop
  }
}
