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

@include "hl2_improvements.fgd"

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

@PointClass base(Targetname,Angles)iconsprite("editor/item_random_item.vmt") = item_random_item : "Spawns a random selected Item on map start"
[
	rItemClass1(choices) : "Random Item 1" : "item_dynamic_resupply" : "Skip = Pick nother item \nNone = Spawn no item" = 
	[
		"None" : "None"
		"Skip" : "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_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"
	]
	rItemClass2(choices) : "Random Item 2" : "None" : "Skip = Pick nother item \nNone = Spawn no item" = 
	[
		"None" : "None"
		"Skip" : "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_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"
	]
	rItemClass3(choices) : "Random Item 3" : "None" : "Skip = Pick nother item \nNone = Spawn no item" = 
	[
		"None" : "None"
		"Skip" : "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_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"
	]
	rItemClass4(choices) : "Random Item 4" : "None" : "Skip = Pick nother item \nNone = Spawn no item" = 
	[
		"None" : "None"
		"Skip" : "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_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"
	]
	rItemClass5(choices) : "Random Item 5" : "None" : "Skip = Pick nother item \nNone = Spawn no item " = 
	[
		"None" : "None"
		"Skip" : "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_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"
	]

	spawnflags(flags) =
	[
		1 : "Spawn item on map start" : 1
		2 : "Do not spawn the same Item Twice" : 1
		4 : "Random X" : 0
		8 : "Random Y" : 0
		16 : "Random Z" : 0
		
	]

	input SpawnItem(void) : "Spawns a random item."
]

@PointClass base(Targetname) iconsprite("editor/game_string_text.vmt") = game_string_text : 
	"An entity that displays text on player's screens." 
[
	spawnflags(flags) =
	[
		1: "All Players" : 0
	]

	input SetString1(string) : "Set String 1 to..."
	input SetString2(string) : "Set String 2 to..."
	input SetString3(string) : "Set String 3 to..."
	input SetString4(string) : "Set String 4 to..."
	input SetString5(string) : "Set String 5 to..."

	string1(string) : "String Message 1" : "" : "First string message to display."
	string2(string) : "String Message 2" : "" : "Second message to display to the right of the first."
	string3(string) : "String Message 3" : "" : "Third message to display to the right of the second."
	string4(string) : "String Message 4" : "" : "Fourth message to display to the right of the third."
	string5(string) : "String Message 5" : "" : "Fifth message to display to the right of the fourth."

	x(string) : "X (0 - 1.0 = left to right) (-1 centers)" : "-1" : "Horizontal position on the player's screens to draw the text. The value should be between 0 and 1, where 0 is the far left of the screen and 1 is the far right. -1 centers the text."
	y(string) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : "-1" : "Vertical position on the player's screens to draw the text. The value should be between 0 and 1, where 0 is the top of the screen and 1 is the bottom. -1 centers the text."
	effect(Choices) : "Text Effect" : 0 =
	[
		0 : "Fade In/Out"
		1 : "Credits"
		2 : "Scan Out"
	]
	color(color255) : "Color1" : "100 100 100"
	color2(color255) : "Color2" : "240 110 0"
	fadein(string) : "Fade in Time (or character scan time)" : "1.5" : "The time it should take for the text to fully fade in."
	fadeout(string) : "Fade Out Time" : "0.5" : "The time it should take for the text to fade out, after the hold time has expired."
	holdtime(string) : "Hold Time" : "1.2" : "The time the text should stay onscreen, after fading in, before it begins to fade out."
	fxtime(string) : "Scan time (scan effect only)" : "0.25" : "If the 'Text Effect' is set to Scan Out, this is the time it should take to scan out all the letters in the text."
	channel(choices) : "Text Channel" : 1 : "You can have up to four individual game_text messages onscreen at once, stored in channels. Select which channel this text should be placed in, which will overwrite any active message already in that channel." =
	[
		1 : "Channel 1"
		2 : "Channel 2"
		3 : "Channel 3" 
		4 : "Channel 4"
	]
	master(string) : "Master" : : "Legacy support: The name of a master entity. If the master hasn't been activated, this entity will not activate."

	sunused(string) : "#1 Known Bugs" : "" : "This is only used for a bug report.\n Works fine up until triggered more than once at a time."
	sunused2(string) : "#2 Known Bugs" : "" : "This is only used for a bug report.\n Can not recieve more than 1 input from other entities."

	// Inputs
	input Display(void) : "Display the message text."
	
	// Outputs
	output OnChanged(void) : "When a string is changed run these outsputs."
]

@PointClass base(Targetname) iconsprite("editor/logic_random_event.vmt") = logic_random_event : 
	"An entity used roll a random event."
[
	maxroll(integer) : "Maximum Number" : 5 : "The maximum number to roll where 1 is the minimum ( Maximum is 5 )"
	
	output OnAnyNumber(void) : "OnAnyNumber"
	output OnNumber1(void) : "OnNumberTrigger1"
	output OnNumber2(void) : "OnNumberTrigger2"
	output OnNumber3(void) : "OnNumberTrigger3"
	output OnNumber4(void) : "OnNumberTrigger4"
	output OnNumber5(void) : "OnNumberTrigger5"
	
	input RollNumber(void) : "RollNumber"
	input Trigger(void) : "Trigger"
]

@PointClass base(Targetname, Parentname, Angles) iconsprite("editor/info_target_redirect.vmt")  = info_target_redirect : "An entity that points to a info_target and can be redirected via input"
[
	targetdirect(target_source) : "Target Direct" : "" : "The info_target that this entity will point to"
	
	spawnflags( Flags ) =
	[
		1 : "Transmit to client" : 0
	]

	input ChangeTarget(string) : "Changes the info_target that this points to."
]

//@PointClass base(Targetname) iconsprite("editor/math_counter.vmt") = math_converter : "Converts strings variables togeatehr in order to display or use them"
//[
//	//vstring(string) : "String" : "One Two Three Four" : "Stores Strings Values to convert to another varaible type"
//	//vint(integer) : "Integer" : "1234" : "Stores Integer Values to convert to another varaible type"
//	//vfloat(float) : "Float" : "12.34" : "Stores Char Values to convert to another varaible type"
//
//	output OnInt2String(string) : "OnInt2String"
//
//	input CvtInt2String(integer) : "Converts a Integer to a String"
//	input CvtInt2Float(integer) : "Converts a Integer to a Float"
//
//	input CvtString2Float(string) : "Converts a String to a Float"
//	input CvtString2Int(string) : "Converts a String to a Int"
//	input CvtString2Char(string) : "Converts a String to a Char"
//
//	input CvtFloat2Int(integer) : "Converts a Float to a Int"
//	input CvtFloat2String(integer) : "Converts a Float to a String"
//]

//@PointClass base(Targetname, Parentname, Angles) studioprop("models/editor/spot_cone.mdl") color(255 255 255) = env_sprite_projector : 
//	"An entity used to project sprites."
//[
//	spawnflags(flags) =
//	[
//		1 : "Emissive" : 0
//	]
//
//	InitialState(choices) : "Initial State" : 0 = 
//	[
//		0 : "Off"
//		1 : "On"
//	]
//
//	//Type of particle to spew out
//	sprite(choices) : "Sprite" : "sprites/flamelet2" : "Name of the sprite to project" =
//	[
//		0 : "None"
//		"sprites/flamelet2" : "sprites/flamelet2"
//		"sprites/plasma1" : "sprites/plasma1"
//		"sprites/smokesprites_0005" : "sprites/smokesprites_0005"
//	]
//
//	SpreadSpeed(integer) : "Spread Speed" : 15 : "The amount of random spread in the particle's velocity after they spawn."
//	Speed(integer) : "Speed" : 120 : "The default speed at which the particles move after they spawn."
//	StartSize(integer) : "Particle start size" : 10 : "The initial size of the particles after they spawn."
//	EndSize(integer) : "Particle end size" : 25 : "The size of the particles at the point at which they are removed."
//	Rate(integer) : "Emission rate" : 26 : "The rate of particle emission. i.e. particles per second."
//	rendercolor(color255) : "Color (R G B)" : "255 255 255"
//	JetLength(integer) : "Length of steam jet" : 80 : "The length of the jet determines the lifetime of each particle."
//	renderamt(integer) : "Translucency" : 255
//	rollspeed(float) : "How fast does the particles spin" : 8
//	
//	// Inputs
//	input TurnOn(void) : "Turns the steam jet on."
//	input TurnOff(void) : "Turns the steam jet off."
//	input Toggle(void) : "Toggles the steam jet between on and off."
//	input JetLength(integer) : "Sets the length of steam jet."
//	input Rate(integer) : "Sets the particle emission rate in particles per second."
//	input Speed(integer) : "Sets the default speed of the particles in units per second."
//	input SpreadSpeed(integer) : "Sets the spread speed in units per second."
//]

//@PointClass base(Targetname,Angles) iconsprite("editor/item_random_item.vmt") = prop_random_physics : "Spawns a random selected Item on map start"
//[
//	spawnflags(flags) =
//	[
//		1 : "Spawn item on map start" : 1
//		2 : "Disable Shadows" : 0
//		4 : "Random X" : 0
//		8 : "Random Y" : 0
//		16 : "Random Z" : 0
//		
//	]
//
//	skin(integer) : "Skin 1" : 0 : "This does nothing, so ignore it."
//
//	model1(studio) : "Prop Model #1" : "" : "Model to spawn. Input Skip to count choose this model in the randomization"
//	skin1(integer) : "Prop Skin #1" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
//
//	model2(studio) : "Prop Model #2" : "Skip" : "Model to spawn. Input Skip to count choose this model in the randomization"
//	skin2(integer) : "Prop Skin #2" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
//
//	model3(studio) : "Prop Model #3" : "Skip" : "Model to spawn. Input Skip to count choose this model in the randomization"
//	skin3(integer) : "Prop Skin #3" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
//
//	model4(studio) : "Prop Model #4" : "Skip" : "Model to spawn. Input Skip to count choose this model in the randomization"
//	skin4(integer) : "Prop Skin #4" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
//
//	model5(studio) : "Prop Model #5" : "Skip" : "Model to spawn. Input Skip to count choose this model in the randomization"
//	skin5(integer) : "Prop Skin #5" : 0 : "Some models have multiple versions of their textures, called skins. Set this to a number other than 0 to use that skin instead of the default."
//
//	input SpawnProp(void) : "Spawns a random prop."
//]

//@PointClass base(Targetname) iconsprite("editor/item_random_item.vmt") = game_changelevel : "Changes level to specific map on trigger"
//[
//	map1(string) : "Mapname" : "" : "Map to change to on trigger"
//
//	input changelevel(void) : "Change Level"
//
//]