//====== Copyright © 2009-2010, Wireframe, All rights reserved. =======
//
// Purpose: Half-Life 2 Base Improved game definition file (.fgd) 
//
//=============================================================================

@include "hl2_base.fgd"

//-------------------------------------------------------------------------
//
// Customs
//
//-------------------------------------------------------------------------

//@PointClass base(Angles, BaseNPCMaker) iconsprite("editor/npc_maker.vmt") = npc_maker : "NPC Maker"
//[
//	spawnflags(Flags) = 
//	[
//		1024 : "Randomize NPC Class" : 0
//		2048 : "Randomize Weapon" : 0
//		16 : "Fade Corpse" : 0
//	]
//
//	NPCType1(npcclass) : "Class name #1" : "" : "Class name of NPC that this maker will be creating. ( Use if Random NPC is not active )"
//	NPCType2(npcclass) : "Class name #2" : "" : "Class name of NPC that this maker will be creating."
//	NPCType3(npcclass) : "Class name #3" : "" : "Class name of NPC that this maker will be creating."
//	NPCType4(npcclass) : "Class name #4" : "" : "Class name of NPC that this maker will be creating."
//	NPCType5(npcclass) : "Class name #5" : "" : "Class name of NPC that this maker will be creating."
//
//	NPCTargetname(string) : "Childrens' Name"
//	NPCSquadname(string) : "Childrens' Squad Name"
//	NPCHintGroup(string) : "Childrens' Hint Group"
//	
//	additionalequipment1(choices) : "Weapon Type #1" : "weapon_smg1" : "Weapon to equip NPC with. ( Use if Random Weapon is not active )" =
//	[
//		"None" : "Skip"
//		"weapon_pistol" : "Pistol"
//		"weapon_ar2" : "AR2"
//		"weapon_shotgun" : "Shotgun"
//		"weapon_smg1" : "SMG1"
//		"weapon_stunstick" : "Stun Stick"
//		"weapon_annabelle"	:"Grigori's Shotgun"
//	]
//	additionalequipment2(choices) : "Weapon Type #2" : "None" : "Weapon to equip NPC with."  =
//	[
//		"None" : "Skip"
//		"weapon_pistol" : "Pistol"
//		"weapon_ar2" : "AR2"
//		"weapon_shotgun" : "Shotgun"
//		"weapon_smg1" : "SMG1"
//		"weapon_stunstick" : "Stun Stick"
//		"weapon_annabelle"	:"Grigori's Shotgun"
//	]
//	additionalequipment3(choices) : "Weapon Type #3" : "None" : "Weapon to equip NPC with." =
//	[
//		"None" : "Skip"
//		"weapon_pistol" : "Pistol"
//		"weapon_ar2" : "AR2"
//		"weapon_shotgun" : "Shotgun"
//		"weapon_smg1" : "SMG1"
//		"weapon_stunstick" : "Stun Stick"
//		"weapon_annabelle"	:"Grigori's Shotgun"
//	]
//	additionalequipment4(choices) : "Weapon Type #4" : "None" : "Weapon to equip NPC with." =
//	[
//		"None" : "Skip"
//		"weapon_pistol" : "Pistol"
//		"weapon_ar2" : "AR2"
//		"weapon_shotgun" : "Shotgun"
//		"weapon_smg1" : "SMG1"
//		"weapon_stunstick" : "Stun Stick"
//		"weapon_annabelle"	:"Grigori's Shotgun"
//	]
//	additionalequipment5(choices) : "Weapon Type #5" : "None" : "Weapon to equip NPC with." =
//	[
//		"None" : "Skip"
//		"weapon_pistol" : "Pistol"
//		"weapon_ar2" : "AR2"
//		"weapon_shotgun" : "Shotgun"
//		"weapon_smg1" : "SMG1"
//		"weapon_stunstick" : "Stun Stick"
//		"weapon_annabelle"	:"Grigori's Shotgun"
//	]
//]

//@PointClass base(BaseNPCMaker) iconsprite("editor/npc_maker.vmt") = npc_template_maker : "An entity that creates NPCs. The NPCs it creates are clones of a template NPC. NPCs are spawned around this maker's origin, or at specified destination points."
//[
//	spawnflags(Flags) = 
//	[
//		256 : "Always use radius spawn" : 0
//		512 : "Don't preload template models" : 0
//		1024 : "Randomize spawns" : 0
//	]
//
//	TemplateName1(target_destination) : "Template NPC #1" : "" : "Template NPC that this maker should be creating clones of. ( Use if Random NPC is not active )"
//	TemplateName2(target_destination) : "Template NPC #2" : "" : "Template NPC that this maker should be creating clones of."
//	TemplateName3(target_destination) : "Template NPC #3" : "" : "Template NPC that this maker should be creating clones of."
//	TemplateName4(target_destination) : "Template NPC #4" : "" : "Template NPC that this maker should be creating clones of."
//	TemplateName5(target_destination) : "Template NPC #5" : "" : "Template NPC that this maker should be creating clones of."
//
//	Radius(float) : "Radius" : 256 : "Radius around this maker within which NPCs are to be placed. Spawned NPCs will try and find empty space within this radius to spawn."
//
//	DestinationGroup(target_destination) : "Name of Destination Group" : : "If you'd like spawned NPCs to be created at an info_npc_spawn_destination entity, enter the name of that entity here. If you have more than one destination entity by that name, the Destination Criteria will be used to select one from the group."
//	CriterionVisibility(Choices) : "Dest. Criterion: Visible to player?" : 2 : "Should the NPC try to spawn at a destination that the player can see? Only applicable if a Destination Group is being used." =
//	[
//		0 : "Yes"
//		1 : "No"
//		2 : "Don't Care"
//	]
//	CriterionDistance(Choices) : "Dest. Criterion: Distance to player?" : 2 : "Should the NPC try to spawn nearest to or farthest from the player's current location? Only applicable if a Destination Group is being used." =
//	[
//		0 : "Nearest"
//		1 : "Farthest"
//		2 : "Don't Care"
//	]
//
//	MinSpawnDistance(integer) : "Minimum spawn distance from player" : 0 : "The spawn destination node distance to the player will have to be further or equal than this value."
//
//	//Inputs
//	input SpawnNPCInRadius(void) : "Spawn an NPC somewhere within the maker's radius."
//	input SpawnNPCInLine(void) : "Spawn an NPC somewhere within a line behind the maker."
//	input SpawnMultiple(integer) : "Spawn multiple NPCs (uses destination group, else radius)."
//	input ChangeDestinationGroup(string) : "Switch to a different set of Destination entities."
//	input SetMinimumSpawnDistance(integer) : "Set the minimum spawn distance from player to destination node."
//]

@PointClass base(BasePropPhysics, Targetname, Angles, DamageFilter, BaseFadeProp) studio("models/items/item_item_crate.mdl") = item_item_crate : "Item Crate"
[
	CrateType(choices) : "Crate Contains" : 0 =
	[
		0 : "Contains specified item"
	]


	CrateAppearance(choices) : "Crate Appearance" : 0 =
	[
		0 : "Default Appearance"
		1 : "Radar Beacon Crate"
	]


	ItemClass(choices) : "Item Type #1" : "item_dynamic_resupply" : "Class name of the random entity to spawn ( 'Skip' will set self to 0 on selection )" = 
	[
		"None" : "Skip"
		"item_ammo_357" : "item_ammo_357"
		"item_ammo_ar2" : "item_ammo_ar2"
		"item_ammo_ar2_altfire" : "item_ammo_ar2_altfire"
		"item_ammo_crossbow" : "item_ammo_crossbow"	
		"item_ammo_pistol" : "item_ammo_pistol"
		"item_ammo_smg1" : "item_ammo_smg1"
		"item_ammo_smg1_grenade" : "item_ammo_smg1_grenade"
		"item_battery" : "item_battery"
		"item_box_buckshot" : "item_box_buckshot"
		"item_healthkit" : "item_healthkit"
		"item_healthvial" : "item_healthvial"
		"item_rpg_round" : "item_rpg_round"
		"item_dynamic_resupply" : "item_dynamic_resupply"
		"item_battery" : "item_battery"
		"weapon_357" : "weapon_357"
		"weapon_ar2" : "weapon_ar2"
		"weapon_crossbow" : "weapon_crossbow"
		"weapon_crowbar" : "weapon_crowbar"
		"weapon_frag" : "weapon_frag"
		"weapon_physcannon" : "weapon_physcannon"
		"weapon_pistol" : "weapon_pistol"
		"weapon_rpg" : "weapon_rpg"
		"weapon_shotgun" : "weapon_shotgun"
		"weapon_smg1" : "weapon_smg1"
	]

	ItemCount(integer) : "Item Count #1" : 1 : "Number of items to emit upon breakage"
	SpecificResupply(target_destination) : "Specific resupply #1" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master"

	ItemClass2(choices) : "Item Type #2" : "None" : "Class name of the random entity to spawn ( 'Skip' will set self to 0 on selection )" = 
	[
		"None" : "Skip"
		"item_ammo_357" : "item_ammo_357"
		"item_ammo_ar2" : "item_ammo_ar2"
		"item_ammo_ar2_altfire" : "item_ammo_ar2_altfire"
		"item_ammo_crossbow" : "item_ammo_crossbow"	
		"item_ammo_pistol" : "item_ammo_pistol"
		"item_ammo_smg1" : "item_ammo_smg1"
		"item_ammo_smg1_grenade" : "item_ammo_smg1_grenade"
		"item_battery" : "item_battery"
		"item_box_buckshot" : "item_box_buckshot"
		"item_healthkit" : "item_healthkit"
		"item_healthvial" : "item_healthvial"
		"item_rpg_round" : "item_rpg_round"
		"item_dynamic_resupply" : "item_dynamic_resupply"
		"item_battery" : "item_battery"
		"weapon_357" : "weapon_357"
		"weapon_ar2" : "weapon_ar2"
		"weapon_crossbow" : "weapon_crossbow"
		"weapon_crowbar" : "weapon_crowbar"
		"weapon_frag" : "weapon_frag"
		"weapon_physcannon" : "weapon_physcannon"
		"weapon_pistol" : "weapon_pistol"
		"weapon_rpg" : "weapon_rpg"
		"weapon_shotgun" : "weapon_shotgun"
		"weapon_smg1" : "weapon_smg1"
	]
	ItemCount2(integer) : "Item Count #2" : 0 : "Number of items to emit upon breakage"
	SpecificResupply2(target_destination) : "Specific resupply #2" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master"

	ItemClass3(choices) : "Item Type #3" : "None" : "Class name of the random entity to spawn ( 'Skip' will set self to 0 on selection )" = 
	[
		"None" : "Skip"
		"item_ammo_357" : "item_ammo_357"
		"item_ammo_ar2" : "item_ammo_ar2"
		"item_ammo_ar2_altfire" : "item_ammo_ar2_altfire"
		"item_ammo_crossbow" : "item_ammo_crossbow"	
		"item_ammo_pistol" : "item_ammo_pistol"
		"item_ammo_smg1" : "item_ammo_smg1"
		"item_ammo_smg1_grenade" : "item_ammo_smg1_grenade"
		"item_battery" : "item_battery"
		"item_box_buckshot" : "item_box_buckshot"
		"item_healthkit" : "item_healthkit"
		"item_healthvial" : "item_healthvial"
		"item_rpg_round" : "item_rpg_round"
		"item_dynamic_resupply" : "item_dynamic_resupply"
		"item_battery" : "item_battery"
		"weapon_357" : "weapon_357"
		"weapon_ar2" : "weapon_ar2"
		"weapon_crossbow" : "weapon_crossbow"
		"weapon_crowbar" : "weapon_crowbar"
		"weapon_frag" : "weapon_frag"
		"weapon_physcannon" : "weapon_physcannon"
		"weapon_pistol" : "weapon_pistol"
		"weapon_rpg" : "weapon_rpg"
		"weapon_shotgun" : "weapon_shotgun"
		"weapon_smg1" : "weapon_smg1"
	]
	ItemCount3(integer) : "Item Count #3" : 0 : "Number of items to emit upon breakage"
	SpecificResupply3(target_destination) : "Specific resupply #3" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master"

	ItemClass4(choices) : "Item Type #4" : "None" : "Class name of the random entity to spawn ( 'Skip' will set self to 0 on selection )" = 
	[
		"None" : "Skip"
		"item_ammo_357" : "item_ammo_357"
		"item_ammo_ar2" : "item_ammo_ar2"
		"item_ammo_ar2_altfire" : "item_ammo_ar2_altfire"
		"item_ammo_crossbow" : "item_ammo_crossbow"	
		"item_ammo_pistol" : "item_ammo_pistol"
		"item_ammo_smg1" : "item_ammo_smg1"
		"item_ammo_smg1_grenade" : "item_ammo_smg1_grenade"
		"item_battery" : "item_battery"
		"item_box_buckshot" : "item_box_buckshot"
		"item_healthkit" : "item_healthkit"
		"item_healthvial" : "item_healthvial"
		"item_rpg_round" : "item_rpg_round"
		"item_dynamic_resupply" : "item_dynamic_resupply"
		"item_battery" : "item_battery"
		"weapon_357" : "weapon_357"
		"weapon_ar2" : "weapon_ar2"
		"weapon_crossbow" : "weapon_crossbow"
		"weapon_crowbar" : "weapon_crowbar"
		"weapon_frag" : "weapon_frag"
		"weapon_physcannon" : "weapon_physcannon"
		"weapon_pistol" : "weapon_pistol"
		"weapon_rpg" : "weapon_rpg"
		"weapon_shotgun" : "weapon_shotgun"
		"weapon_smg1" : "weapon_smg1"
	]
	ItemCount4(integer) : "Item Count #4" : 0 : "Number of items to emit upon breakage"
	SpecificResupply4(target_destination) : "Specific resupply #4" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master"

	ItemClass5(choices) : "Item Type #5" : "None" : "Class name of the random entity to spawn ( 'Skip' will set self to 0 on selection )" = 
	[
		"None" : "Skip"
		"item_ammo_357" : "item_ammo_357"
		"item_ammo_ar2" : "item_ammo_ar2"
		"item_ammo_ar2_altfire" : "item_ammo_ar2_altfire"
		"item_ammo_crossbow" : "item_ammo_crossbow"	
		"item_ammo_pistol" : "item_ammo_pistol"
		"item_ammo_smg1" : "item_ammo_smg1"
		"item_ammo_smg1_grenade" : "item_ammo_smg1_grenade"
		"item_battery" : "item_battery"
		"item_box_buckshot" : "item_box_buckshot"
		"item_healthkit" : "item_healthkit"
		"item_healthvial" : "item_healthvial"
		"item_rpg_round" : "item_rpg_round"
		"item_dynamic_resupply" : "item_dynamic_resupply"
		"item_battery" : "item_battery"
		"weapon_357" : "weapon_357"
		"weapon_ar2" : "weapon_ar2"
		"weapon_crossbow" : "weapon_crossbow"
		"weapon_crowbar" : "weapon_crowbar"
		"weapon_frag" : "weapon_frag"
		"weapon_physcannon" : "weapon_physcannon"
		"weapon_pistol" : "weapon_pistol"
		"weapon_rpg" : "weapon_rpg"
		"weapon_shotgun" : "weapon_shotgun"
		"weapon_smg1" : "weapon_smg1"
	]
	ItemCount5(integer) : "Item Count #5" : 0 : "Number of items to emit upon breakage"
	SpecificResupply5(target_destination) : "Specific resupply #5" : "" : "If item type is item_dynamic_resupply, specify a specific one to use instead of the master"


	// Inputs
	input Kill(void) : "Remove the item crate"
	input Break(void) : "Breaks the breakable."
	input SetHealth(integer) : "Sets a new value for health. If the breakable's health reaches zero it will break."
	input AddHealth(integer) : "Adds health to the breakable. If the breakable's health reaches zero it will break."
	input RemoveHealth(integer) : "Removes health from the breakable. If the breakable's health reaches zero it will break."
	
	// Outputs
	output OnBreak(void) : "Fires when broken."
	output OnHealthChanged(float) : "Fires when the health of this breakable changes, passing the new value of health as a percentage of max health, from [0..1]."

	output OnCacheInteraction(void) : "This output fires when the player proves they have 'found' this crate. Fires on: Picked up by +USE, Picked up by Physcannon, Punted by Physcannon, Broken."
]

@NPCClass base(BaseNPC) studio("models/Zombie/fast.mdl") = npc_fastzombie : "Fast Zombie"
[
	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]
	input AttachToVehicle(string) : "Attach to a specified vehicle entity"
]

@NPCClass base(BaseNPC) studio("models/Zombie/Classic_torso.mdl") = npc_zombie_torso : "Zombie Torso"
[
	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]
]

@NPCClass base(BaseNPC) studio("models/combine_soldier.mdl") = npc_combine_s : "Combine Soldier"
[
	regmodel(studio) : "Regular model" : "models/combine_soldier.mdl"
	supermodel(studio) : "Elite model" : "models/combine_super_soldier.mdl"

	rhealth(integer) : "Regular Health" : 50 : "Health for this NPC if the Model type is Regular or Nova ( Default: 50 )"
	ghealth(integer) : "Elite Health" : 70 : "Health for this NPC if the Model type is Elite ( Default: 50 )"
]

@NPCClass base(BaseNPC) studio("models/Zombie/Classic.mdl") = npc_zombie : "Zombie"
[
	refmodel(studio) : "Reference model" : "models/zombie/classic.mdl"
	torsomodel(studio) : "Torso model" : "models/zombie/classic_torso.mdl"
	legsmodel(studio) : "Legs model" : "models/zombie/classic_legs.mdl"

	health(integer) : "Health" : 50 : "Health for this NPC( Default: 50 )"

	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]
]

@NPCClass base(BaseNPC) studio("models/Zombie/zombie_soldier.mdl") = npc_zombine : "Combine Soldier Zombie"
[
	refmodel(studio) : "Reference model" : "models/zombie/zombie_soldier.mdl"
	torsomodel(studio) : "Torso model" : "models/zombie/zombie_soldier_torso.mdl"
	legsmodel(studio) : "Legs model" : "models/zombie/zombie_soldier_legs.mdl"

	health(integer) : "Health" : 100 : "Health for this NPC ( Default: 100 )"

	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]
	input StartSprint(void) : "Forces the zombine to sprint."
	input PullGrenade(void) : "Forces the zombine to pull a grenade."
]

@NPCClass base(BaseNPC) studio("models/Zombie/Poison.mdl") = npc_poisonzombie :
	"A bloated, disgusting, fluid-spurting zombie created by a poison headcrab."
[
	refmodel(studio) : "Reference model" : "models/zombie/poison.mdl"

	health(integer) : "Health" : 175 : "Health for this NPC ( Default: 175 )"

	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]

	crabcount(choices) : "Crabs in nest" : 3 =
	[
		1 : "1 Crab"
		2 : "2 Crabs"
		3 : "3 Crabs"
	]
]

@NPCClass base(BaseNPC) studio("models/Zombie/Fast_torso.mdl") = npc_fastzombie_torso : "Fast Zombie Torso"
[
	refmodel(studio) : "Reference model" : "models/zombie/fast_torso.mdl"

	health(integer) : "Health" : 50 : "Health for this NPC ( Default: 50 )"

	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]

]

@NPCClass base(BaseNPC) studio("models/Zombie/fast.mdl") = npc_fastzombie : "Fast Zombie"
[
	refmodel(studio) : "Reference model" : "models/zombie/fast.mdl"
	torsomodel(studio) : "Torso model" : "models/fast_torso.mdl"
	legsmodel(studio) : "Legs model" : "gibs/fast_zombie_legs.mdl"

	health(integer) : "Health" : 50 : "Health for this NPC ( Default: 50 )"

	RemoveCrab(choices) : "Remove Crab" : "0" : "Remove the headcrab off the zombies head" = 
	[
		0 : "No"
		1 : "Yes"
	]
	
input AttachToVehicle(string) : "Attach to a specified vehicle entity"
]

@SolidClass base(BreakableBrush, Origin, RenderFields, Shadow) = func_breakable : 
	"A brush entity that can be broken from damage, or an input." 
[
	minhealthdmg(integer) : "Min Damage to Hurt" : 0 : "The prop will ignore any damage events if the damage is less than this amount."

	_minlight(string) : "Minimum Light Level" : : "The minimum level of ambient light that hits this brush."
	physdamagescale(float) : "Physics Impact Damage Scale" : "1.0" : "Scales damage energy when this object is hit by a physics object. NOTE: 0 means this feature is disabled for backwards compatibility.\nSet to 1.0 for materials as strong as flesh, smaller numbers indicate stronger materials."

	
	input DisableOnTouchBreak(void) : "Disable the flag Break on Touch."
	input EnableOnTouchBreak(void) : "Enable the flag Break on Touch."
]

@PointClass base(Targetname, EnableDisable) iconsprite("editor/math_counter.vmt") = math_counter :
	"Holds a numeric value and performs arithmetic operations upon it. If either the minimum or maximum " +
	"legal value is nonzero, OutValue will be clamped to the legal range, and the OnHitMin/OnHitMax " +
	"outputs will be fired at the appropriate times. If both min and max are set to zero, no clamping is " +
	"performed and only the OutValue output will be fired."
[
	// Keys
	startvalue(integer) : "Initial Value" : 0 : "Starting value for the counter."
	min(integer) : "Minimum Legal Value" : 0 : "Minimum legal value for the counter. If min=0 and max=0, no clamping is performed."
	max(integer) : "Maximum Legal Value" : 0 : "Maximum legal value for the counter. If min=0 and max=0, no clamping is performed."

	// Inputs
	input Add(integer) : "Add an amount to the counter and fire the OutValue output with the result."
	input Divide(integer): "Divide the counter by an amount and fire the OutValue output with the result."
	input Multiply(integer): "Multiply the counter by an amount and fire the OutValue output with the result."
	input SetValue(integer): "Set the counter to a new value and fire the OutValue output with the result."
	input SetValueNoFire(integer): "Set the counter to a new value without firing any outputs."
	input Subtract(integer): "Subtract an amount from the counter and fire the OutValue output with the result."
	input SetHitMax(integer): "Set the upper bound of the counter and fire the OutValue output with the current value."
	input SetHitMin(integer): "Set the lower bound of the counter and fire the OutValue output with the current value."
	input GetValue(void): "Causes the counter fire its OnGetValue output with the current value of the counter. Used for polling the counter when you don't want constant updates from the OutValue output."
	input GetValueAsString(void): "Causes the counter fire its OnGetValueAsString output with the current value of the counter as a String. Used for polling the counter when you don't want constant updates from the OutValue output."

	// Outputs
	output OutValue(integer) : "Fired when the counter value changes."
	output OnHitMin(void) : "Fired when the counter value meets or goes below the min value. The counter must go back above the min value before the output will fire again."
	output OnHitMax(void) : "Fired when the counter value meets or exceeds the max value. The counter must go below the max value before the output will fire again."
	output OnGetValue(integer) : "Fired in response to the GetValue input. Used for polling the counter when you don't want constant updates from the OutValue output."
	output OnGetValueAsString(string) : "Used for the game_string_text in order so it can use the value and display it"
]

//-------------------------------------------------------------------------
//
// Items
//
//-------------------------------------------------------------------------

@PointClass base(Item) studio("models/items/boxsrounds.mdl")= item_ammo_pistol : "Box of Pistol ammo" 
[
	Aamount(integer) : "Ammo" : 20 : "Amount of ammo this will give the player. ( Default: 20 )" 
	refmodel(studio) : "Reference model" : "models/items/boxsrounds.mdl"
]

@PointClass base(Item) studio("models/items/largeBoxSRounds.mdl")= item_ammo_pistol_large : "Large Box of Pistol ammo" 
[
	Aamount(integer) : "Ammo" : 100 : "Amount of ammo this will give the player. ( Default: 100 )" 
	refmodel(studio) : "Reference model" : "models/items/largeBoxSRounds.mdl"
]

@PointClass base(Item) studio("models/items/BoxMRounds.mdl")= item_ammo_smg1 : "Box of SMG1 ammo"
[
	Aamount(integer) : "Ammo" : 45 : "Amount of ammo this will give the player. ( Default: 45 )" 
	refmodel(studio) : "Reference model" : "models/items/BoxMRounds.mdl"
]

@PointClass base(Item) studio("models/items/LargeBoxMRounds.mdl")= item_ammo_smg1_large : "Large Box of SMG1 ammo"
[
	Aamount(integer) : "Ammo" : 225 : "Amount of ammo this will give the player. ( Default: 225 )" 
	refmodel(studio) : "Reference model" : "models/items/LargeBoxMRounds.mdl"
]

@PointClass base(Item) studio("models/items/BoxBRounds.mdl")= item_ammo_ar2 : "Box of AR2 ammo"
[
	Aamount(integer) : "Ammo" : 20 : "Amount of ammo this will give the player. ( Default: 20 )" 
	refmodel(studio) : "Reference model" : "models/items/BoxBRounds.mdl"
]

@PointClass base(Item) studio("models/items/LargeBoxBRounds.mdl")= item_ammo_ar2_large : "Large Box of AR2 ammo"
[
	Aamount(integer) : "Ammo" : 100 : "Amount of ammo this will give the player. ( Default: 100 )" 
	refmodel(studio) : "Reference model" : "models/items/LargeBoxBRounds.mdl"
]

@PointClass base(Item) studio("models/items/357ammo.mdl")= item_ammo_357 : "Box of 357 ammo"
[
	Aamount(integer) : "Ammo" : 6 : "Amount of ammo this will give the player. ( Default: 6 )" 
	refmodel(studio) : "Reference model" : "models/items/357ammo.mdl"
]

@PointClass base(Item) studio("models/items/357ammobox.mdl")= item_ammo_357_large : "Large Box of 357 ammo"
[
	Aamount(integer) : "Ammo" : 20 : "Amount of ammo this will give the player. ( Default: 20 )" 
	refmodel(studio) : "Reference model" : "models/items/357ammobox.mdl"
]

@PointClass base(Item) studio("models/items/CrossbowRounds.mdl")= item_ammo_crossbow : "Box of Crossbow ammo"
[
	Aamount(integer) : "Ammo" : 6 : "Amount of ammo this will give the player. ( Default: 6 )" 
	refmodel(studio) : "Reference model" : "models/items/CrossbowRounds.mdl"
]

@PointClass base(Item) studio("models/items/BoxBuckshot.mdl")= item_box_buckshot : "Box Buckshot"
[
	Aamount(integer) : "Ammo" : 20 : "Amount of ammo this will give the player. ( Default: 20 )" 
	refmodel(studio) : "Reference model" : "models/items/boxbuckshot.mdl"
]

@PointClass base(Item) studio("models/weapons/w_missile_closed.mdl")= item_rpg_round : "RPG Round"
[
	Aamount(integer) : "Ammo" : 1 : "Amount of ammo this will give the player. ( Default: 1 )" 
	refmodel(studio) : "Reference model" : "models/weapons\w_missle_closed.mdl"
]

@PointClass base(Item) studio("models/items/AR2_Grenade.mdl")= item_ammo_smg1_grenade : "SMG1 Grenade"
[
	Aamount(integer) : "Ammo" : 1 : "Amount of ammo this will give the player. ( Default: 1 )" 
	refmodel(studio) : "Reference model" : "models/items/ar2_grenade.mdl"
]

@PointClass base(Item) studio("models/items/battery.mdl") = item_battery : "HEV battery"
[
	iArmor(integer) : "Armor" : 15 : "Amount of armor this will give the player. ( Default: 15 )" 
	refmodel(studio) : "Reference model" : "models/items/battery.mdl"
]

@PointClass base(Item) studio("models/items/healthkit.mdl") = item_healthkit : "Small Health Kit"
[
	iHealth(integer) : "Health" : 25 : "Amount of health this will give the player. ( Default: 25 )" 
	refmodel(studio) : "Reference model" : "models/items/healthkit.mdl"
]

@PointClass base(Item) studio("models/healthvial.mdl") = item_healthvial : "Personal Health Kit"
[
	iHealth(integer) : "Health" : 10 : "Amount of health this will give the player. ( Default: 10 )" 
	refmodel(studio) : "Reference model" : "models/healthvial.mdl"
]

@PointClass base(Item) studio("models/items/combine_rifle_ammo01.mdl") = item_ammo_ar2_altfire : "AR2 Alt-fire Round"
[
	Aamount(integer) : "Ammo" : 1 : "Amount of ammo this will give the player. ( Default: 1 )" 
	refmodel(studio) : "Reference model" : "models/items/combine_rifle_ammo01.mdl"
]


//-------------------------------------------------------------------------
//
// Weapons
//
//-------------------------------------------------------------------------

//@PointClass base(Weapon) studio("models/weapons/w_crowbar.mdl") = weapon_crowbar : "Crowbar" [ refmodel(studio) : "Reference model" : "models/weapons/w_crowbar.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_stunbaton.mdl") = weapon_stunstick : "StunStick" [ refmodel(studio) : "Reference model" : "models/weapons/w_stunbaton.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_pistol.mdl") = weapon_pistol : "Pistol" [ refmodel(studio) : "Reference model" : "models/weapons/w_pistol.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_irifle.mdl") = weapon_ar2 : "Assault Rifle 2" [ refmodel(studio) : "Reference model" : "models/weapons/w_irifle.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_rocket_launcher.mdl") = weapon_rpg : "Missile Launcher" [ refmodel(studio) : "Reference model" : "models/weapons/w_rocket_launcher.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_smg1.mdl") = weapon_smg1 : "SMG1" [ refmodel(studio) : "Reference model" : "models/weapons/w_smg1.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_357.mdl") = weapon_357 : "357" [ refmodel(studio) : "Reference model" : "models/weapons/w_357.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_crossbow.mdl") = weapon_crossbow : "Crossbow" [ refmodel(studio) : "Reference model" : "models/weapons/w_crossbow.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_shotgun.mdl") = weapon_shotgun : "Shotgun" [ refmodel(studio) : "Reference model" : "models/weapons/w_shotgun.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_grenade.mdl") = weapon_frag : "Frag Grenade" [ refmodel(studio) : "Reference model" : "models/weapons/w_grenade.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/w_physics.mdl") = weapon_physcannon : "Physics Cannon" [ refmodel(studio) : "Reference model" : "models/weapons/w_physics.mdll" ]
//@PointClass base(Weapon) studio("models/spore.mdl") = weapon_bugbait: "Bug bait" [ refmodel(studio) : "Reference model" : "models/spore.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/W_Alyx_Gun.mdl") = weapon_alyxgun: "Alyx Gun" [ refmodel(studio) : "Reference model" : "models/weapons/W_Alyx_Gun.mdl" ]
//@PointClass base(Weapon) studio("models/weapons/W_annabelle.mdl") = weapon_annabelle: "Annabelle (Grigori)" [ refmodel(studio) : "Reference model" : "models/weapons/W_annabelle.mdl" ]


//-------------------------------------------------------------------------
//
// Rechargers
//
//-------------------------------------------------------------------------

@PointClass base(Targetname, Angles, BaseFadeProp) studio( "models/props_combine/health_charger001.mdl" ) = item_healthcharger : "Health Charger"
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"


	iCurrent(integer) : "Current Health" : 50 : "Current health in the charger when game starts ( Default: 50 )"
	iHealth(integer) : "Max Health" : 50 : "Maximum health stored in the charger ( Default: 50 )"
	iInc(integer) : "Health Increment" : 1 : "Amount of health restored to the player per interval. ( Default: 1 )"

	refmodel(studio) : "Reference model" : "models/props_combine/health_charger001.mdl"


	// Outputs
	output OutRemainingHealth(float) : "Remaining Health."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]

@PointClass base(Targetname, Angles, BaseFadeProp) studio( "models/props_combine/suit_charger001.mdl" ) = item_suitcharger : "Battery recharger"
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"


	iCurrent(integer) : "Current Armor" : 75 : "Current armor in the charger when game starts ( Default: 75 )"
	iArmor(integer) : "Max Armor" : 75 : "Maximum armor stored in the charger ( Default: 75 )"
	iMax(integer) : "Player Max Armor" : 100 : "Maximum Armor that the charger can restore to the player ( Default: 100 )"
	iInc(integer) : "Armor Increment" : 1 : "Amount of armor restored to the player per interval. ( Default: 1 )"

	refmodel(studio) : "Reference model" : "models/props_combine/suit_charger001.mdl"


	// Inputs
	input Recharge(void) : "Recharge to full"

	// Outputs
	output OutRemainingCharge(float) : "Remaining Charge."
	output OnHalfEmpty(void) : "Half-Empty"
	output OnEmpty(void) : "Empty"
	output OnFull(void) : "Recharged to full."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]

@SolidClass base(EnableDisable, Parentname, Origin, Global) = func_healthcharger : "Wall health recharger" 
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"


	iHealth(integer) : "Health" : 50 : "Maximum Health to Recharge. ( Default: 50 )"

	sunused(string) : "#1 Known Bugs" : "" : "This is only used for a bug report.\n Untested so bugs may occur."


	// Outputs
	output OutRemainingHealth(float) : "Remaining Health."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]

@SolidClass base(Targetname, Parentname, Origin) = func_recharge: "Battery recharger" 
[
	// dmdelay(integer) : "Deathmatch recharge delay" : 0
	_minlight(string) : "Minimum light level"


	iArmor(integer) : "Max Armor Stored" : 75 : "Maximum Armor to Stored in the Charger ( Default: 75 )"
	iMax(integer) : "Max Armor" : 100 : "Maximum Armor that the Charger can recharge the player with ( Default: 100 )"

	sunused(string) : "#1 Known Bugs" : "" : "This is only used for a bug report.\n Untested so bugs may occur."


	spawnflags(flags) =
	[
		8192  : "Citadel recharger" : 0
	]

	// Inputs
	input Recharge(void) : "Recharge to full"
	input SetCharge(void) : "This sets the remaining charge in the charger to whatever value you specify"

	// Outputs
	output OutRemainingCharge(float) : "Remaining Charge."
	output OnHalfEmpty(void) : "Half-Empty"
	output OnEmpty(void) : "Empty"
	output OnFull(void) : "Recharged to full."
	output OnPlayerUse(void) : "Fired when the player +USEs the charger."
]