//
// ===WorldCraft D-Day: Normandy FGD by Afrow UK===
// 		   D-Day FGD v3.60
//
// Game definition file (.fgd - originally known as Forge Game Data file)
// Written for Quake II and D-Day: Normandy - the best Quake2 mod there is!
// For Worldcraft 1.6 and above
//
// Last update: 4th November 2002
//
// Configured for ultimate light candy with ArghRad - (included)
//
// Original Quake2 stuff written by		- autolycus - autolycus@planetquake.com
// D-Day and additional Quake2 stuff written by	- Afrow UK  - afrowuk@tiscali.co.uk
// 
// Email me (Afrow UK) with improvements and suggestions
//
//
// Following stuff must not be modified. (Unless you really know what you are doing)
// ----------------------------------------------------------------------------------------------

@SolidClass = worldspawn : "World entity"
[
	message(string) : "Level Title (eg. Hi!\nby BOB)"
	nextmap(string) : "Next Map (Q2:DM, Not D-Day)"
	sky(string) : "Sky File (eg. night1)" : "sr"
	skyaxis(string) : "Rotating Sky Axis (# # #)"
	skyrotate(string) : "Sky Turn Speed (Degrees/Sec)"
	sounds(integer) : "Play CD Music Track Number"
	gravity(integer) : "Gravity (Default=800)" : 800
	label(string) : "-------ArghRad Map Lighting--------" : "This is a label - DON'T TOUCH!"
	_sun_light(integer) : "Sun Light Brightness" : 225
	_sun_ambient(integer) : "Sun Light Ambient Brightness" : 15
	_sun_surface(integer) : "Sun Light Hit Face Brightness" : 15
	light(color1) : "Light RGB Ambient Brightness"
	label(string) : "-------ArghRad Map Spotlights------" : "This is a label - DON'T TOUCH!"
	_sun(string) : "Sun1: Spotlight Pointing To Target"
	_sun_color(color1) : "Sun1: Sun Light Colour"
	_sun_vector(string) : "Sun1: Sun Light Angle (# # #)"
	_sun_diffuse(integer) : "Sun1: Diffuse Sun Light Brightness"
	_sun_difwait(integer) : "Sun1: Diffuse Sun Light Attenuation"
	_sun2(string) : "Sun2: Spotlight Pointing To Target"
	_sun2_color(color1) : "Sun2: Sun Light Colour"
	_sun2_vector(string) : "Sun2: Sun Light Angle (# # #)"
	_sun2_diffuse(integer) : "Sun2: Diffuse Sun Light Brightness"
	_sun2_difwait(integer) : "Sun2: Diffuse Sun Light Attenuation"
	_sun3(string) : "Sun3: Spotlight Pointing To Target"
	_sun3_color(color1) : "Sun3: Sun Light Colour"
	_sun3_vector(string) : "Sun3: Sun Light Angle (# # #)"
	_sun3_diffuse(integer) : "Sun3: Diffuse Sun Light Brightness"
	_sun3_difwait(integer) : "Sun3: Diffuse Sun Light Attenuation"
	_sun4(string) : "Sun4: Spotlight Pointing To Target"
	_sun4_color(color1) : "Sun4: Sun Light Colour"
	_sun4_vector(string) : "Sun4: Sun Light Angle (# # #)"
	_sun4_diffuse(integer) : "Sun4: Diffuse Sun Light Brightness"
	_sun4_difwait(integer) : "Sun4: Diffuse Sun Light Attenuation"
]

@baseclass = Appearflags [
	spawnflags(Flags) =
	[
		256 : "Not in Easy" : 0
		512 : "Not in Normal" : 0
		1024 : "Not in Hard" : 0
		2048 : "Not in Deathmatch" : 0
	]
]

@baseclass = Targetname [ targetname(target_source) : "Entity Name" ]
@baseclass = Target [ target(target_destination) : "Entity Name To Target" ]
@baseclass = Killtarget [ killtarget(string) : "Remove When Triggered..." ]
@baseclass = TeamDM [ team(string) : "Connect To Entity" ]
@baseclass = TeamDM2 [ team(string) : "Respawn Association" ]
@baseclass = TeamDM3 [ team(string) : "Connect to turret_breach" ]
@baseclass = Message [ message(string) : "Message To Print" ]
@baseclass = Pathtarget [ pathtarget(string) : "Entity To Trigger" ]
@baseclass = Pathtarget1 [ pathtarget(string) : "Elevator Level Target" ]
@baseclass = Speed0 [ speed(integer) : "Speed (Units/Sec)" ]
@baseclass = Speed25 [ speed(integer) : "Speed (Units/Sec)" : 25 ]
@baseclass = Speed40 [ speed(integer) : "Speed (Units/Sec)" : 40 ]
@baseclass = Speed100 [ speed(integer) : "Speed (Units/Sec)" : 100 ]
@baseclass = SpeedDeg100 [ speed(integer) : "Speed (Deg/Sec)" : 100 ]
@baseclass = trainTarget [ target(string) : "First Stop (path_corner)" ]
	
@baseclass = exp_obj
[
	obj_name(string) : "Objective Name"
	obj_gain(integer) : "Points Awarded" : 50
	obj_loss(integer) : "Points Taken" : 10
	health(integer) : "Health" : 100
	mass(integer) : "Mass (Debris)" : 75
	dmg(integer) : "Damage" : 100
]

@baseclass = door
[
	message(string) : "Trigger Message"
	health(integer) : "Health (Shootable)"
	accel(integer) : "Acceleration"
	decel(integer) : "Deceleration"
	wait(choices) : "Wait Before Close" : 3 =
	[
		-1 : "Stay Open"
	]
	lip(integer) : "Lip Remaining After Move" : 8
	dmg(integer) : "Damage When Blocked" : 0
	sounds(choices) : "Sounds" : 0 =
	[
		0 : "Audible (Q2 Only)"
		1 : "Silent"
	]
]

@baseclass = exp
[
	health(integer) : "Health" : 100	
	mass(integer) : "Mass (Debris)" : 75
	dmg(integer) : "Damage" : 100
]

@baseclass = turretb
[
	speed(integer) : "Speed Of Movement" : 50
	dmg(integer) : "Damage" : 10
	minpitch(integer) : "Miminum Pitch Angle" : -30
	maxpitch(integer) : "Maximum Pitch Angle" : 30
	minyaw(integer) : "Minimum Yaw Angle" : 0
	maxyaw(integer) : "Maximum Yaw Angle" : 360
]


@baseclass = water
[
	speed(integer) : "Speed Of Current" : 25
	wait(choices) : "Wait Before Return" : -1 =
	[
		-1 : "Toggle"
	]
	lip(integer) : "Lip Remaining After Move"
	sounds(Choices) : "Sounds" : 1 =
	[
		0 : "No Sounds"
		1 : "Water"
		2 : "Lava (Hiss)"
	]
]

@baseclass = button
[
	killtarget(string) : "Remove When Triggered..."
	pathtarget(string) : "Elevator Level Target"
	speed(integer) : "Speed" : 40
	wait(choices) : "Wait Before Reset" : 1 =
	[
		-1 : "Never Return"
	]
	accel(integer) : "Acceleration"
	decel(integer) : "Deceleration"
	lip(integer) : "Lip Remaining After Move" : 4
	health(integer) : "Health (Shootable)"
	sounds(choices) : "Sounds" : 0 =
	[
		0 : "Audible (Q2 Only)"
		1 : "Silent"
	]
	message(string) : "Activation Message"
]

@baseclass = rota
[
	team(string) : "Connect (func_train/func_rotating)"
	dmg(integer) : "Damage When Blocked" : 0
]

@baseclass = plat
[
	speed(integer) : "Speed Of Movement" : 100
	accel(integer) : "Acceleration" : 500
	decel(integer) : "Deceleration"
	lip(integer) : "Lip Remaining After Move" : 8
	height(integer) : "Movement Distance"
]

@baseclass = train
[
	speed(integer) : "Speed Of Movement" : 100
	accel(integer) : "Acceleration"
	decel(integer) : "Deceleration"
	dmg(integer) : "Damage When Blocked" : 0
	noise(string) : "Sound (Path/File.wav)"
]

@baseclass = door_rota
[
	distance(integer) : "Degrees Of Rotation" : 90
	message(string) : "Trigger Message"
	health(integer) : "Health (Shootable)"
	accel(integer) : "Acceleration"
	decel(integer) : "Deceleration"
	wait(choices) : "Wait Before Close" : 3 =
	[
		-1 : "Stay Open"
	]
	dmg(integer) : "Damage When Blocked" : 0
	sounds(choices) : "Sounds" : 0 =
	[
		0 : "Audible (Q2 Only)"
		1 : "Silent"
	]
]

@baseclass = door_secr
[
	accel(integer) : "Acceleration" : 50
	decel(integer) : "Deceleration"
	dmg(integer) : "Damage When Blocked" : 2
	wait(choices) : "Wait Before Close" : 5 =
	[
		-1 : "Stay Open"
	]
	message(string) : "Message"
]

@baseclass = Obj_Owner
[
	obj_owner(choices) : "Object Owner" : 0 =
	[
		0 : "USA/GBR/RUS"
		1 : "GRM"
	]
]

@baseclass = ArghBmodel
[
	label(string) : "-----ArghRad Bmodel Variables------" : "This is a label - DON'T TOUCH!"
	_minlight(integer) : "Entity Glow (0.0-2.0)"
	_ambient(color1) : "Minimum RGB Light"
	light(string) : "Entity Light Value"
	_lightmin(string) : "Minimum Entity Light"
	style(choices) : "Type Of Entity Light" : 0 =
	[
		0 : "Normal"
		1 : "Flicker #1"
		6 : "Flicker #2"
		2 : "Slow Strong Pulse"
		3 : "Candle #1"
		7 : "Candle #2"
		8 : "Candle #3"
		4 : "Fast Strobe"
		5 : "Gentle Pulse #1"
		9 : "Slow Strobe"
		10 : "Fluorescent Flicker"
		11 : "Slow Pulse, NO Black"
	]
	_color(color1) : "Entity RGB Light Colour"
	_focus(string) : "Fade Entity Light Edges"
]

@baseclass base(Appearflags, Targetname) size(-16 -16 -24, 16 16 32) color(0 255 0) = PlayerClass []

@PointClass base(PlayerClass) = info_player_start : "D-Day map start" []
@PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" []
@PointClass base(PlayerClass) = info_player_coop : "Player cooperative start" []
@PointClass base(PlayerClass) = info_player_intermission : "Deathmatch intermission point" 
[
	angles(string) : "Pitch Yaw Roll (eg. 1 4 9)"
]

@baseclass base(Appearflags, Targetname, Obj_Owner) size(-16 -16 -16, 16 16 40) color(0 200 255) = PlayerClass2 []

@PointClass base(PlayerClass2) = info_reinforcements_start : "D-Day Reinforcements start"
[
	delay(integer) : "Delay Before Respawn" : 5
	team(string) : "Respawn Association..."
]
@PointClass base(PlayerClass2) = info_infantry_start : "D-Day Infantry start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_officer_start : "D-Day Officer start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_flamethrower_start : "D-Day Flamethrower start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_lgunner_start : "D-Day Light Gunner start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_hgunner_start : "D-Day Heavy Gunner start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_special_start : "D-Day Airborn start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_engineer_start : "D-Day Engineer start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_medic_start : "D-Day Medic start"
[
	team(string) : "Respawn Association..."
]

@PointClass base(PlayerClass2) = info_sniper_start : "D-Day Sniper start"
[
	team(string) : "Respawn Association..."
]

@baseclass base(Appearflags, Obj_Owner) size(-8 -8 -8, 8 8 8) color(255 200 50) = PlayerClass3 []

@PointClass base(PlayerClass3) = info_team_start : "D-Day Team Information"
[
	message(string) : "Team Name"
	dll(string) : "Team DLL (usa/grm/gbr/rus)" : "gbr"
	count(choices) : "Team Orders" : 99 =
	[
		0 : "Defence"
		1 : "Offence"
		2 : "Patrol"
		99 : "Campaign"
	]
	nextmap(string) : "Next Map When Team Wins"
	kills(integer) : "Kills To Win" : 50
	points(integer) : "Points To Win" : 100
]

@PointClass base(Appearflags) color(255 128 0) size(-2 -2 0, 2 2 246) = misc_banner : "Flowing banner" []
@PointClass base(Appearflags) color(255 128 0) size(-2 -2 0, 2 2 80) = misc_banner_1 : "Flowing banner" []
@PointClass base(Appearflags) color(255 128 0) size(-2 -2 0, 2 2 80) = misc_banner_2 : "Flowing banner" []
@PointClass base(Appearflags) color(255 128 0) size(-2 -2 0, 2 2 80) = misc_banner_3 : "Flowing banner" []
@PointClass base(Appearflags) color(255 128 0) size(-2 -2 0, 2 2 32) = misc_banner_4 : "Flowing banner" []

@PointClass base(Appearflags) color(255 128 128) size(-16 -16 -4, 16 16 8) = misc_skeleton : "Skeleton" []

@PointClass base(Appearflags, Targetname) color(255 128 0) size(-16 -16 0, 16 16 32) = misc_viper : "WWII era P-51 Mustang"
[
	target(string) : "First Stop (path_corner)"
	speed(integer) : "Speed Of Movement"
]

@PointClass base(Appearflags) color(0 128 0) size(-8 -8 0, 8 8 16) = misc_md2 : "Place models as part of your scenery"
[
	model(string) : "Model File (path/file.md2)" : "models/weapons/grm/g_mg42/tris.md2"
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, Obj_Owner) color(0 128 204) = objective_touch : "D-Day Objective taken when touched"
[
	message(string) : "Objective Name"
	health(integer) : "Points Awarded" : 50
	dmg(integer) : "Points Taken" : 10
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, Obj_Owner, exp_obj, ArghBmodel) color(0 128 204) = func_explosive_objective : "D-Day Explosive Objective"
[
	spawnflags(Flags) =
	[
		1 : "Start Hidden" : 0
		2 : "Animated" : 0
		4 : "Animated Fast" : 0
	]

]

@BaseClass base(Appearflags, Target) color(76 76 255) size(-16 -16 -16, 16 16 16) = Ammo 
[
	team(string) : "Respawn Association..."
]

@PointClass base(Ammo) = ammo_shells : "Shotgun ammo" []
@PointClass base(Ammo) = ammo_bullets : "Machine/Chain gun ammo" []
@PointClass base(Ammo) = ammo_cells : "Blaster/BFG ammo" []
@PointClass base(Ammo) = ammo_grenades : "Grenades" []
@PointClass base(Ammo) = ammo_rockets : "Rockets" []
@PointClass base(Ammo) = ammo_slugs : "Rail gun ammo" []


@SolidClass base(Appearflags, Targetname) = func_areaportal : "Area portal (Vis blocker)" []

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, button, ArghBmodel) color(0 128 204) = func_button : "Button" []

@PointClass base(Appearflags, Targetname, Pathtarget) color(0 0 255) size(-8 -8 -8, 8 8 8) = func_clock : "Clock"
[
	spawnflags(Flags) =
	[
		1 : "Timer UP" : 0
		2 : "Timer DOWN" : 0
		4 : "Start OFF" : 0
		8 : "Multi Use" : 0
	]
	target(string) : "Target (target_string)"
	count(integer) : "Clock Count (Seconds)"
	style(choices) : "Style" : 0 =
	[
		0 : "xx"
		1 : "xx:xx"
		2 : "xx:xx:xx"
	]
]

@SolidClass base(Appearflags, Targetname, Speed100, ArghBmodel) color(0 128 204) = func_conveyor : "Conveyor belt"
[
	spawnflags(Flags) =
	[
		1 : "Start ON" : 0
		2 : "Toggle" : 0
	]
	speed(integer) : "Speed" : 100
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, door, Speed100, ArghBmodel) color(0 128 204) = func_door : "Door"
[
	spawnflags(Flags) =
	[
		1 : "Start Open" : 0
		4 : "Crusher" : 0
		8 : "No Monsters" : 0
		16 : "Animated" : 0
		32 : "Toggle" : 0
		64 : "Animated Fast" : 0
	]
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, door_rota, ArghBmodel, SpeedDeg100) color(0 128 204) = func_door_rotating : "Rotating Door"
[
	spawnflags(Flags) =
	[
		1 : "Start Open" : 0
		2 : "Reverse" : 0
		4 : "Crusher" : 0
		8 : "No Monsters" : 0
		16 : "Animated" : 0
		32 : "Toggle" : 0
		64 : "X Axis" : 0
		128 : "Y Axis" : 0
	]
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, door_secr, ArghBmodel) color(0 128 204) = func_door_secret : "Secret Door"
[
	spawnflags(Flags) =
	[
		1 : "Always Shoot" : 0
		2 : "1st LEFT" : 0
		4 : "1st DOWN" : 0
	]
]

@SolidClass base(Appearflags, Targetname, Target, Killtarget, TeamDM, exp, ArghBmodel) color(0 128 204) = func_explosive : "Exploding/Breakable brush"
[
	spawnflags(Flags) =
	[
		1 : "Start Hidden" : 0
		2 : "Animated" : 0
		4 : "Animated Fast" : 0
	]
]

@SolidClass base(Appearflags, Targetname) color(255 0 0) = func_killbox : "Instant death" []

@SolidClass base(Appearflags, Targetname, ArghBmodel) color (0 128 204) = func_object : "Solid bmodel, will fall if its support is removed"
[
	spawnflags(Flags) =
	[
		1 : "Start Hidden" : 0
		2 : "Animated" : 0
		4 : "Animated Fast" : 0
	]
]

@SolidClass base(Appearflags, Targetname, TeamDM, plat, ArghBmodel) color(0 128 204) = func_plat : "Platform"
[
	spawnflags(Flags) =
	[
		1 : "Touch To Trigger" : 0
	]
]

@SolidClass base(Appearflags, Targetname, rota, SpeedDeg100, ArghBmodel) color(0 128 204) = func_rotating : "Rotating brush"
[
	spawnflags(Flags) =
	[
		1 : "Start ON" : 0
		2 : "Reverse" : 0
		4 : "X Axis" : 0
		8 : "Y Axis" : 0
		16 : "Pain On Touch" : 0
		32 : "Block Stops" : 0
		64 : "Animated" : 0
		128 : "Animated Fast" : 0
	]	
]

@PointClass base(Appearflags, Targetname, Target) color(76 25 153) size(-8 -8 -8, 8 8 8) = func_timer : "Timer"
[
	spawnflags(Flags) =
	[
		1 : "Start ON" : 0
	]
	wait(integer) : "Base Wait Time" : 1
	random(integer) : "Wait Variance (+/-)"
	delay(integer) : "Delay Before First Firing"
	pausetime(integer) : "Additional Delay"
]

@SolidClass base(Appearflags, Targetname, trainTarget, Killtarget, TeamDM, train, ArghBmodel) color(0 128 204) = func_train : "Moving platform"
[
	spawnflags(Flags) =
	[
		1 : "Start ON" : 0
		2 : "Toggle" : 0
		4 : "Block Stops" : 0
	]

]

@SolidClass base(Appearflags, Targetname, ArghBmodel) color(0 128 204) = func_wall : "Solid Wall"
[
	spawnflags(Flags) =
	[
		1 : "Start Hidden" : 0
		2 : "Toggle" : 0
		4 : "Start ON" : 0
		8 : "Animated" : 0
		16 : "Animated Fast" : 0
	]
]

@SolidClass base(Appearflags, Targetname, Killtarget, TeamDM2, water, ArghBmodel) color(0 128 204) = func_water : "Moveable water"
[
	spawnflags(Flags) =
	[
		1 : "Start Open" : 0
	]
]

@PointClass base(Appearflags) color(0 128 64) size(-4 -4 -4, 4 4 4) = info_null : "Spotlight target"
[
	targetname(string) : "Name (Targeted By Light)"
]

@PointClass base(info_null) = info_notnull : "Lightning target" []

@BaseClass base(Appearflags, Target, Delay, Message, KillTarget, TeamDM) color(76 76 255) size(-16 -16 -16, 16 16 16) = Items 

@PointClass base(Items) = item_adrenaline : "+1 to max health" []
@PointClass base(Items) = item_ancient_head : "+2 to max health" []
@PointClass base(Items) = item_armor_body : "Body armor" []
@PointClass base(Items) = item_armor_combat : "Combat armor" []
@PointClass base(Items) = item_armor_jacket : "Jacket armor" []
@PointClass base(Items) = item_armor_shard : "Armor shard" []
@PointClass base(Items) = item_bandolier : "Equipment belt" []
@PointClass base(Items) = item_breather : "Underwater breather" []
@PointClass base(Items) = item_enviro : "Enviro-Suit" []
@PointClass base(Items) = item_health : "+10 health" []
@PointClass base(Items) = item_health_small : "+2 health" []
@PointClass base(Items) = item_health_large : "+25 health" []
@PointClass base(Items) = item_health_mega : "+100 health" []
@PointClass base(Items) = item_invulnerability : "Invulnerability" []
@PointClass base(Items) = item_pack : "Heavy backpack" []
@PointClass base(Items) = item_power_screen : "Power screen" []
@PointClass base(Items) = item_power_shield : "Power shield" []
@PointClass base(Items) = item_quad : "Quad damage" []
@PointClass base(Items) = item_silencer : "Silencer" []

@BaseClass base(Appearflags, Target, Killtarget, Delay, Message) color(0 128 204) size(-16 -16 -16, 16 16 16) = Keys []

@PointClass base(Keys) = key_airstrike_target : "Tank commander's head" []
@PointClass base(Keys) = key_blue_key : "Normal door key - blue" []
@PointClass base(Keys) = key_commander_head : "Tank commander's head" []
@PointClass base(Keys) = key_data_cd : "Key for computer centers" []
@PointClass base(Keys) = key_data_spinner : "Key for city computer" []
@PointClass base(Keys) = key_pass : "Security pass for secret level" []

@PointClass base(Keys, Targetname) = key_power_cube : "Warehouse circuits"
[
	spawnflags(Flags) =
	[
		1 : "Start Hidden" : 0
		2 : "No Touch" : 0
	]
]

@PointClass base(Keys) = key_pyramid : "Key for entrance to jail3" []
@PointClass base(Keys) = key_red_key : "normal door key - red" []

@PointClass base(Appearflags, Target, Targetname) color(0 255 0) size(-8 -8 -8, 8 8 8) = light : "Light"
[
	spawnflags(Flags) =
	[
		1 : "Start OFF" : 0
	]
	light(integer) : "Brightness" : 300
	_color(color1) : "RGB Colour"
	_spotvector(string) : "Aim Angle Degrees (# #)"
	_falloff(choices) : "Fall OFF Ratio" : 0 =
	[
		0 : "Linear"
		1 : "Inverse"
		2 : "Inverse-Square"
	]
	_fade(integer) : "Fade Distance (Less=Further)" : 1
	_angfade(integer) : "Fade On Angled Surfaces" : 1
	style(Choices) : "Style" : 0 =
	[
		0 : "Normal"
		1 : "Flicker #1"
		6 : "Flicker #2"
		2 : "Slow Strong Pulse"
		3 : "Candle #1"
		7 : "Candle #2"
		8 : "Candle #3"
		4 : "Fast Strobe"
		5 : "Gentle Pulse #1"
		9 : "Slow Strobe"
		10 : "Fluorescent Flicker"
		11 : "Slow Pulse, No Black"
	]
	_cone(integer) : "Size Of Light (Spotlight)" : 10
	_focus(integer) : "Fade Cone Edge" : 1
	_spotpoint(string) : "Spot Aims At XYZ Point (# # #)"
]

@PointClass base(light) color(0 255 0) size(-2 -2 -12, 2 2 12) = light_mine1 : "Dusty fluorescent light fixture" 
[
	spawnflags(Flags) =
	[
		1 : "" : 0
	]
]

@PointClass base(light_mine1) = light_mine2 : "Clean fluorescent light fixture" []

@PointClass base(PlayerClass, Target) = misc_actor : "Actor" 
[
	health(integer) : "Health" : 100
]

@PointClass base(Appearflags, Targetname) = target_actor : "Actor path"
[
	spawnflags(Flags) =
	[
		1 : "Jump" : 0
		2 : "Shoot" : 0
		4 : "Attack" : 0
		16 : "Hold" : 0
		32 : "Brutal" : 0
	]
	target(string) : "Next Path Target"
	pathtarget(string) : "Action Target"
	wait(integer) : "Pause Time"
	message(string) : "Message To Print"
	speed(integer) : "Forward (Jump)" : 200
	height(integer) : "Height (Jump)" : 200
]

@PointClass base(Appearflags) color(255 128 0) size(-8 -8 -8, 8 8 8) = misc_blackhole : "Blackhole" []

@PointClass base(Appearflags) color(255 128 0) size(-16 -16 0, 16 16 16) = misc_deadsoldier : "Dead guys! 6 of em!"
[
	spawnflags(Flags) =
	[
		1 : "On Back" : 0
		2 : "On Stomach" : 0
		4 : "Back, Decap" : 0
		8 : "Fetal Position" : 0
		16 : "Sitting, Decap" : 0
		32 : "Impaled" : 0
	]
]

@PointClass base(Appearflags) color(255 128 0) size(-32 -32 -16, 32 32 32) = misc_eastertank : "Tank Pimp" []
@PointClass base(Appearflags) color(255 128 0) size(-32 -32 0, 32 32 32) = misc_easterchick : "Chick #1" []
@PointClass base(Appearflags) color(255 128 0) size(-32 -32 0, 32 32 32) = misc_easterchick2 : "Chick #2" []

@PointClass base(Appearflags, Targetname) color(0 128 204) size(-16 -16 0, 16 16 40) = misc_explobox : "Large exploding box"
[
	mass(integer) : "Debris Mass" : 100
	health(integer) : "Health" : 80
	dmg(integer) : "Damage" : 150
]

@PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_arm : "arm gib, use with target_spawner"
[
	targetname(string) : "Name (Targeted by target_spawner)"
]

@PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_head : "head gib, use with target_spawner"
[
	targetname(string) : "Name (Targeted by target_spawner)"
]

@PointClass base(Appearflags) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_gib_leg : "leg gib, use with target_spawner"
[
	targetname(string) : "Name (Targeted by target_spawner)"
]

@PointClass base(Appearflags, Targetname) color(255 128 0) size(-16 -16 -24, 16 16 32) = misc_insane : "Insane Soldiers"
[
	spawnflags(Flags) =
	[
		1 : "Ambush" : 0
		2 : "Start Hidden" : 0
		4 : "Crawl" : 0
		8 : "Crucified" : 0
		16 : "Stand Ground" : 0
		32 : "Always Stand" : 0
	]
	deathtarget(string) : "Entity to trigger at death"
	target(string) : "Target (path_corner)"
	combattarget(string) : "Combat Target (point_combat)"
	killtarget(string) : "Entity To Remove At Death"
	item(string) : "Item To Spawn At Death (eg. ammo_shells)"
]

@PointClass base(Appearflags, Targetname) color(255 128 0) size(-64 -64 0, 64 64 128) = misc_satellite_dish : "Satellite Dish" []

@PointClass base(Appearflags, Targetname) color(255 128 0) size(-16 -16 0, 16 16 32) = misc_strogg_ship : "Strogg ship for flybys"
[
	target(string) : "First Path Target"
	speed(integer) : "Speed"
	
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-32 -32 -24, 32 32 -16) = misc_teleporter : "Teleporter"
[
	target(string) : "Teleporter Destination"
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-32 -32 -24, 32 32 -16) = misc_teleporter_dest : "Teleport Destination" []

@PointClass base(Appearflags) color(255 128 0) size(-176 -120 -24, 176 120 72) = misc_bigviper : "Large stationary Viper" []
@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = misc_viper_bomb : "Viper Bomb"
[
	dmg(integer) : "Damage"
]

@BaseClass base(Appearflags, Target, Targetname) color(255 128 0) size(-16 -16 -24, 16 16 32) = Monsters
[
	spawnflags(Flags) =
	[
		1 : "Ambush" : 0
		2 : "Start Hidden" : 0
		4 : "Sight" : 0
	]
	combattarget(string) : "Point Combat Target"
	deathtarget(string) : "Entity To Trigger At Death"
	killtarget(string) : "Entity To Remove At Death"
	item(string) : "Spawn Item"
]

@PointClass base(Monsters) = monster_berserk : "Berserker" []
@PointClass base(Monsters) size(-56 -56 0, 56 56 80) = monster_boss2 : "Boss2" []

@PointClass base(Appearflags, Targetname) size(-32 -32 0, 32 32 90) = monster_boss3_stand : "Stationnary Makron" []

@PointClass base(Monsters) = monster_brain : "Brains" []
@PointClass base(Monsters) = monster_chick : "Iron Maiden" []
@PointClass base(Appearflags, Targetname) color(255 128 0) size(-32 -32 0, 32 32 48) = monster_commander_body : "Tank commander's decapitated body" []
@PointClass base(Monsters) = monster_flipper : "Barracuda shark" []
@PointClass base(Monsters) = monster_floater : "Technician" []
@PointClass base(Monsters) = monster_flyer : "Flyer" []
@PointClass base(Monsters) size(-32 -32 -24, 32 32 64) = monster_gladiator : "Gladiator" []
@PointClass base(Monsters) = monster_gunner : "Gunner" []
@PointClass base(Monsters) = monster_hover : "Icarus" []
@PointClass base(Monsters) = monster_infantry : "Infantry" []
@PointClass base(Monsters) size(-80 -80 0, 90 90 140) = monster_jorg : "Jorg" []

@PointClass base(Monsters) size(-30 -30 0, 30 30 90) = monster_makron : "Makron" []
@PointClass base(Monsters) = monster_medic : "Medic" []
@PointClass base(Monsters) size(-32 -32 -24, 32 32 32) = monster_mutant : "Mutant" []
@PointClass base(Monsters) = monster_parasite : "Parasite" []
@PointClass base(Monsters) = monster_soldier_light : "Light Soldier" []
@PointClass base(Monsters) = monster_soldier : "Soldier" []
@PointClass base(Monsters) = monster_soldier_ss : "SS Soldier" []
@PointClass base(Monsters) size(-32 -32 -16, 32 32 72) = monster_tank : "Tank" []
@PointClass base(Monsters) size(-64 -64 0, 64 64 72) = monster_supertank : "Super tank" []
@PointClass base(Monsters) size(-32 -32 -16, 32 32 72) = monster_tank_commander : "Tank commander" []

@PointClass base(Appearflags, Targetname) color(128 76 0) size(-8 -8 -8, 8 8 8) = path_corner : "Path marker"
[
	spawnflags(Flags) =
	[
		1 : "Teleport" : 0
	]
	target(string) : "Next Path Target"
	pathtarget(string) : "Entity To Trigger..."
	wait(choices) : "Wait" : 0 =
	[
		-1 : "Wait For Retrigger"
	]
]

@PointClass base(Appearflags, Targetname, Target) color(128 76 9) size(-8 -8 -8, 8 8 8) = point_combat : "1st point of combat"
[
	spawnflags(Flags) =
	[
		1 : "Hold" : 0
	]
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_blaster : "Blaster"
[
	spawnflags(Flags) =
	[
		1 : "No Trail" : 0
		2 : "No Effects" : 0
	]
	dmg(integer) : "Damage" : 15
	speed(integer) : "Speed" : 1000
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_changelevel : "Change level"
[
	map(string) : "Next Map (eg. base1)"
]

@SolidClass base(Appearflags, Targetname, ArghBmodel) color(0 0 255) = target_character : "Use with target_string and func_clock"
[
	team(string) : "Respawn Association..."
	count(integer) : "Position In The String (target_string)"
	_minlight(string) : "Minimum Light (Optional)"
]

@PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_trigger : "Cross-level trigger"
[
	spawnflags(Flags) =
	[
		1 : "Trigger 1" : 0
		2 : "Trigger 2" : 0
		4 : "Trigger 3" : 0
		8 : "Trigger 4" : 0
		16 : "Trigger 5" : 0
		32 : "Trigger 6" : 0
		64 : "Trigger 7" : 0
		128 : "Trigger 8" : 0
	]
	killtarget(string) : "Remove When Triggered..."
	message(string) : "Message To Print"
	delay(integer) : "Trigger Delay"
]

@PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = target_crosslevel_target : "Cross-level trigger"
[
	spawnflags(Flags) =
	[
		1 : "Trigger 1" : 0
		2 : "Trigger 2" : 0
		4 : "Trigger 3" : 0
		8 : "Trigger 4" : 0
		16 : "Trigger 5" : 0
		32 : "Trigger 6" : 0
		64 : "Trigger 7" : 0
		128 : "Trigger 8" : 0
	]
	killtarget(string) : "Remove When Triggered..."
	delay(integer) : "Trigger Delay (If Activated)" : 1
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_earthquake : "Level wide earthquake"
[
	speed(integer) : "Severity Of Quake" : 200
	count(integer) : "Duration" : 5
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_explosion : "Explosion"
[
	delay(integer) : "Delay Before Explosion"
	dmg(integer) : "Radius Damage" : 0
]

@PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_goal : "Counts a goal completed" []

@PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_help : "Computer help message"
[
	spawnflags(Flags) =
	[
		1 : "Main Objective" : 0
	]
	message(string) : "Computer Message"
]

@PointClass base(Appearflags, Targetname, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_laser : "Laser"
[
	spawnflags(Flags) =
	[
		1 : "Start ON" : 0
		2 : "Red" : 0
		4 : "Green" : 0
		8 : "Blue" : 0
		16 : "Yellow" : 0
		32 : "Orange" : 0
		64 : "Fat" : 0
	]
	target(string) : "Target (Entity Aimed At)"
	dmg(integer) : "Damage"
]
 
@PointClass base(Appearflags, Targetname, Target) color(0 128 204) size(-8 -8 -8, 8 8 8) = target_lightramp : "Light ramp"
[
	spawnflags(Flags) =
	[
		1 : "Toggle" : 0
	]
	speed(integer) : "Speed"
	message(string) : "Start/End Light Level"
]

@PointClass base(Appearflags, Targetname) color(255 0 255) size(-8 -8 -8, 8 8 8) = target_secret : "Counts a secret found"
[
	message(string) : "Message To Print" : "You have found a secret."
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_spawner : "Monster/Item spawner"
[
	target(string) : "Target"
	speed(integer) : "Speed"
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_speaker : "Sound player"
[
	spawnflags(Flags) =
	[
		1 : "Looped ON" : 0
		2 : "Looped OFF" : 0
		4 : "Reliable" : 0
	]
	noise(string) : "Sound (path/file.wav)"
	attenuation(Choices) : "Attenuation" : 1 =
	[
		-1 : "None, Send To Whole Level"
		1 : "Normal Fighting Sounds"
		2 : "Idle Sound Level"
		3 : "Ambient Sound Level"
	]
	volume(integer) : "Volume (0.0 - 1.0)" : 1
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_splash : "Creates a splash when used"
[
	sounds(choices) : "Type Of Splash" : 2 =
	[
		1 : "Sparks"
		2 : "Blue Water"
		3 : "Brown Water"
		4 : "Slime"
		5 : "Lava"
		6 : "Blood"
	]
	count(integer) : "Number Of Splash Pixels (1 - 255)"
	dmg(integer) : "Radius Damage"
]

@PointClass base(Appearflags, Targetname) color(0 0 255) size(-8 -8 -8, 8 8 8) = target_string : "String"
[
	team(string) : "Respawn Association... (target_character)"
]

@PointClass base(Appearflags, Targetname) color(255 0 0) size(-8 -8 -8, 8 8 8) = target_temp_entity : "Temp entity"
[
	style(choices) : "Style" : 22 =
	[
		20 : "Green Fireball"
		21 : "Particles #1"
		22 : "Particles #2"
	]
]

@PointClass base(Appearflags, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_always : "Always triggers" 
[
	killtarget(string) : "Remove When Triggered..."
	delay(integer) : "Time Before Triggering"
]

@PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_counter : "Counter"
[
	spawnflags(Flags) =
	[
		1 : "No Message" : 0
	]
	killtarget(string) : "Remove When Triggered..."
	count(integer) : "Count Before Trigger" : 2
]

@PointClass base(Appearflags, Targetname, Target) color(76 25 153) = trigger_elevator : "Elevator trigger" []

@SolidClass base(Appearflags) color(128 128 128) = trigger_gravity : "Change gravity"
[
	gravity(integer) : "Gravity (Standard = 1.0)" : 1
]

@SolidClass base(Appearflags, Targetname) color(128 128 128) = trigger_hurt : "Hurts on touch"
[
	spawnflags(Flags) =
	[
		1 : "Start OFF" : 0
		2 : "Toggle" : 0
		4 : "Silent" : 0
		8 : "No Protection" : 0
		16 : "Slow Hurt" : 0
	]
	dmg(integer) : "Damage" : 5
]

@PointClass base(Appearflags, Targetname, Target) color(128 128 128) size(-8 -8 -8, 8 8 8) = trigger_key : "Triggers with key"
[
	killtarget(string) : "Remove When Triggered..."
	item(string) : "Item Classname" : "key_blue_key"
	message(string) : "Message To Print"
]

@SolidClass base(Appearflags) color(128 128 128) = trigger_monsterjump : "Makes monsters jump"
[
	speed(integer) : "Speed Thrown Forward" : 200
	height(integer) : "Height Thrown Upward" : 200
]

@PointClass base(Appearflags, Targetname, Target) color(128 128 128) = trigger_relay : "Relay trigger"
[
	killtarget(string) : "Remove When Triggered..."
	delay(integer) : "Time Before Triggering"
	message(string) : "Message To Print"
]

@SolidClass base(trigger_relay) = trigger_once : "Single fire trigger"
[
	spawnflags(Flags) =
	[
		4 : "Triggered" : 0
	]
	sounds(choices) : "Sounds" : 0 = 
	[
		0 : "Beep Beep"
		1 : "Secret"
		2 : "F1 Prompt"
		3 : "Silent"
	]
]

@SolidClass base(trigger_once) = trigger_multiple : "Multiple fire trigger"
[
	spawnflags(Flags) =
	[
		1 : "Monster" : 0
		2 : "Not Player" : 0
	]
	wait(integer) : "Seconds between triggers" : 0
]

@SolidClass base(Appearflags) color(128 128 128) = trigger_push : "Push trigger"
[
	spawnflags(Flags) =
	[
		1 : "Push Once" : 0
	]
	speed(integer) : "Speed Of Push" : 1000
]

@SolidClass base(Appearflags, Targetname, Target, TeamDM, turretb, ArghBmodel) color(128 255 128) = turret_breach : "Turret breach" []
@SolidClass base(Appearflags, TeamDM3, ArghBmodel) color(128 255 128) = turret_base : "Turret base" []
@PointClass base(Appearflags) color(128 255 128) size(-16 -16 -24, 16 16 32) = turret_driver : "Turret driver (A Quake2 Infantry monster)" 
[
	target(string) : "Target (turret_breach)"
]

@PointClass base(Appearflags) color(0 128 204) size(-8 -8 -8, 8 8 8) = viewthing : "Just for debugging level - dont use" []

@BaseClass base(Appearflags, TeamDM2, Targetname, Target, Killtarget, Delay, Message) color(76 76 255) size(-16 -16 -16, 16 16 16) = Weapons []

@PointClass base(Weapons) = weapon_shotgun : "Shotgun" []
@PointClass base(Weapons) = weapon_supershotgun : "Super Shotgun" []
@PointClass base(Weapons) = weapon_machinegun : "Machinegun" []
@PointClass base(Weapons) = weapon_chaingun : "Chain Gun" []
@PointClass base(Weapons) = weapon_grenadelauncher : "Grenade Launcher" []
@PointClass base(Weapons) = weapon_rocketlauncher : "Rocket Launcher" []
@PointClass base(Weapons) = weapon_hyperblaster : "Hyperblaster" []
@PointClass base(Weapons) = weapon_railgun : "Rail Gun" []
@PointClass base(Weapons) = weapon_bfg : "Big ah, Freakin Gun!" []
