Gunman.fgd

From Valve Developer Community
Revision as of 13:27, 9 July 2013 by Mr. Mutant (talk | contribs) (Created page with "{{Back|Gunman Chronicles}} <pre> // // worldspawn // @SolidClass = worldspawn : "World entity" [ message(string) : "Map Description / Title" skyname(string) : "environment map...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Gunman Chronicles
//
// worldspawn
//

@SolidClass = worldspawn : "World entity"
[
	message(string) : "Map Description / Title"
	skyname(string) : "environment map (cl_skyname)"
	sounds(integer) : "CD track to play" : 1
	light(integer) : "Default light level"
	WaveHeight(string) : "Default Wave Height"
	MaxRange(string) : "Max viewable distance" : "4096"
	chaptertitle(string) : "Chapter Title Message"
	startdark(choices) : "Level Fade In" : 0 =
	[	
		0 : "No"
		1 : "Yes"
	]
	gametitle(choices) : "Display game title" : 0 = 
	[	
		0 : "No"
		1 : "Yes"
	]
	newunit(choices) : "New Level Unit" : 0 = 
	[
		0 : "No, keep current"
		1 : "Yes, clear previous levels"
	]
	mapteams(string) : "Map Team List"
	defaultteam(choices) : "Default Team" : 0 = 
	[
		0 : "Fewest Players"
		1 : "First Team"
	]
]//
// BaseClasses
//

@BaseClass = Appearflags
[
	spawnflags(Flags) =
	[
		2048 : "Not in Deathmatch" : 0
	]
]

@BaseClass = Angles
[
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

@BaseClass size(0 0 0, 32 32 32) color(80 0 200) base(Appearflags) = Ammo []

@BaseClass = Targetname 
[ 
	targetname(target_source) : "Name"
]
@BaseClass = Target 
[ 
	target(target_destination) : "Target" 
]


@BaseClass = Item 
[
	nopickupsound(integer) : "No Pickup Sound" : 0
]

@BaseClass size(-16 -16 0, 16 16 32) color(0 0 200) base(Targetname, Appearflags, Item) = Weapon []

@BaseClass = Global 
[ 
	globalname(string) : "Global Entity Name" 
]

@BaseClass base(Target) = Targetx 
[
	delay(string) : "Delay before trigger" : "0"
	killtarget(target_destination) : "KillTarget"
]

@BaseClass = RenderFxChoices
[
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
]

@BaseClass base(RenderFxChoices) = RenderFields 
[
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

@BaseClass base(Appearflags) size(-16 -16 -36, 16 16 36) color(0 255 0) = PlayerClass []

@BaseClass base(Target, Targetname, RenderFields) color(0 200 200) = Monster 
[
	TriggerTarget(String) : "TriggerTarget"
      TriggerCondition(Choices) : "Trigger Condition" : 0 =
	[
		0 : "No Trigger"
		1 : "See Player, Mad at Player"
		2 : "Take Damage"
		3 : "50% Health Remaining"
		4 : "Death"
		7 : "Hear World"
		8 : "Hear Player"
		9 : "Hear Combat"
		10: "See Player Unconditional"
		11: "See Player, Not In Combat"
	]
	spawnflags(Flags) = 
	[
		1 : "WaitTillSeen" 	: 0
		2 : "Gag"		: 0
		4 : "MonsterClip"	: 0
		16: "Prisoner"		: 0
		128: "WaitForScript" 	: 0
		256: "Pre-Disaster" 	: 0
		512: "Fade Corpse"	: 0
	]

	spawndeadpose(Choices) : "Spawn Dead" : 0 =
	[
		36 : "Normal Die"
		37 : "Backward"
		38 : "Forward"
		39 : "Violent"
		66 : "HeadShot"
		67 : "ChestShot"
		68 : "GutShot"
		69 : "BackShot"
	]

	netname(string) : "Squadname for Squadmonsters" : ""
]

@BaseClass = TalkMonster
[
	UseSentence(String) : "Use Sentence"
	UnUseSentence(String) : "Un-Use Sentence"
]

@BaseClass size(-16 -16 -16, 16 16 16) = gibshooterbase
[
	targetname (target_source) : "Name"

	// how many pieces to create
	m_iGibs(integer) : "Number of Gibs" : 3
	
	// delay (in seconds) between shots. If 0, all gibs shoot at once.
	delay(string) : "Delay between shots" : "0"

	// how fast the gibs are fired
	m_flVelocity(integer) : "Gib Velocity" : 200

	// Course variance
	m_flVariance(string) : "Course Variance" : "0.15"

	// Time in seconds for gibs to live +/- 5%
	m_flGibLife(string) : "Gib Life" : "4"

	spawnflags(Flags) = 
	[
		1 : "Repeatable" 	: 0
	]
]

@BaseClass = Light 
[
	_light(color255) : "Brightness" : "255 255 128 200"
      style(Choices) : "Appearance" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
	]
	pattern(string) : "Custom Appearance"
]



@BaseClass base(Targetname,Global) = Breakable
[
	target(target_destination) : "Target on break"
	health(integer) : "Strength" : 1
	material(choices) :"Material type" : 0 =
	[
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Mayan Block"  
		5: "Ice"
		6: "Computer"
		7: "Unbreakable Glass"
		8: "Rocks"
	]
	explosion(choices) : "Gibs Direction" : 0 =
	[
		0: "Random"
		1: "Relative to Attack"
	]
	delay(string) : "Delay before fire" : "0"
	gibmodel(studio) : "Gib Model" : ""
	 spawnobject(choices) : "Spawn On Break" : 0 =
        [
		0:  "Nothing"
		1:  "item_battery"
		2:  "item_healthkit"
		3:  "weapon_fists"
		4:  "weapon_shotgun"
		5:  "weapon_SPchemicalgun"
		6:  "weapon_beamgun"
		7:  "weapon_minigun"
		8:  "weapon_dml"	
		9:  "weapon_gausspistol"
		10: "ammo_buckshot"
		11: "ammo_chemical"
		12: "ammo_beamgunclip"
		13: "ammo_minigunClip"
		14: "ammo_dmlclip"
		15: "ammo_gaussclip"
		16: "weapon_gausspistol"
		17: "entity_clustergod"
		18: "cust_2MinigunCooled"
		19: "cust_2GaussPistolSniper"
		20: "item_armor"
        ]
	explodemagnitude(integer) : "Explode Magnitude (0=none)" : 0
]



@BaseClass base(Appearflags, Targetname, RenderFields, Global) = Door
[
	killtarget(target_destination) : "KillTarget"
	speed(integer) : "Speed" : 100
	master(string) : "Master" 
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "Servo (Sliding)"
		2: "Pneumatic (Sliding)"
		3: "Pneumatic (Rolling)"
		4: "Vacuum"
		5: "Power Hydraulic"
		6: "Large Rollers"
		7: "Track Door"
		8: "Snappy Metal Door"
		9: "Squeaky 1"
		10: "Squeaky 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "Clang with brake"
		2: "Clang reverb"
		3: "Ratchet Stop"
		4: "Chunk"
		5: "Light airbrake"
		6: "Metal Slide Stop"
		7: "Metal Lock Stop"
		8: "Snappy Metal Stop"
	]
	wait(integer) : "delay before close, -1 stay open " : 4
	lip(integer) : "Lip"
	dmg(integer) : "Damage inflicted when blocked" : 0
	message(string) : "Message if triggered"
	target(target_destination) : "Target"
	delay(integer) : "Delay before fire" 
	netname(string) : "Fire on Close"
	health(integer) : "Health (shoot open)" : 0
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		4 : "Don't link" : 0
		8: "Passable" : 0
	    	32: "Toggle" : 0
		256:"Use Only" : 0
		512: "Monsters Can't" : 0
	]
	// NOTE: must be duplicated in BUTTON
	locked_sound(choices) : "Locked Sound" : 0 = 
	[
		0: "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		13: "Latch Unlocked"
	]
	locked_sentence(choices) : "Locked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Denied"
		2: "Security Lockout"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance Door"
		9: "Broken Shut Door"
	]
	unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Granted"
		2: "Security Disengaged"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance area"
	]	
	_minlight(string) : "Minimum light level"
]

@BaseClass base(Targetname, Target, RenderFields, Global) = BaseTank
[
	spawnflags(flags) =
	[
		1 : "Active" : 0
		16: "Only Direct" : 0
		32: "Controllable" : 0
	]

	// Mainly for use with 1009 team settings (game_team_master)
	master(string) : "(Team) Master" 

	yawrate(string) : "Yaw rate" : "30"
	yawrange(string) : "Yaw range" : "180"
	yawtolerance(string) : "Yaw tolerance" : "15"
	pitchrate(string) : "Pitch rate" : "0"
	pitchrange(string) : "Pitch range" : "0"
	pitchtolerance(string) : "Pitch tolerance" : "5"
	barrel(string) : "Barrel Length" : "0"
	barrely(string) : "Barrel Horizontal" : "0"
	barrelz(string) : "Barrel Vertical" : "0"
	spritesmoke(string) : "Smoke Sprite" : ""
	spriteflash(string) : "Flash Sprite" : ""
	spritescale(string) : "Sprite scale" : "1"
	rotatesound(sound) : "Rotate Sound" : ""
	firerate(string) : "Rate of Fire" : "1"
	bullet_damage(string) : "Damage Per Bullet" : "0"
	persistence(string) : "Firing persistence" : "1"
	firespread(choices) : "Bullet accuracy" : 0 =
	[
		0: "Perfect Shot"
		1: "Small cone"
		2: "Medium cone"
		3: "Large cone"
		4: "Extra-large cone"
	]
	minRange(string) : "Minmum target range" : "0"
	maxRange(string) : "Maximum target range" : "0"
	_minlight(string) : "Minimum light level"
]

@BaseClass = PlatSounds 
[
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev 1"
		2: "big elev 2"
		3: "tech elev 1"
		4: "tech elev 2"
		5: "tech elev 3"
		6: "freight elev 1"
		7: "freight elev 2"
		8: "heavy elev"
		9: "rack elev"
		10: "rail elev"
		11: "squeek elev"
		12: "odd elev 1"
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev stop1"
		2: "big elev stop2"
		3: "freight elev stop"
		4: "heavy elev stop"
		5: "rack stop"
		6: "rail stop"
		7: "squeek stop"
		8: "quick stop"
	]
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
]

@BaseClass base(Targetname, RenderFields, Global, PlatSounds) = Trackchange
[
	height(integer) : "Travel altitude" : 0
	spawnflags(flags) =
	[
		1: "Auto Activate train" : 0
		2: "Relink track" : 0
		8: "Start at Bottom" : 0
		16: "Rotate Only" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	rotation(integer) : "Spin amount" : 0
	train(target_destination) : "Train to switch"
	toptrack(target_destination) : "Top track"
	bottomtrack(target_destination) : "Bottom track"
	speed(integer) : "Move/Rotate speed" : 0
]

@BaseClass base(Target, Targetname) = Trigger
[
	killtarget(target_destination) : "Kill target"
	netname(target_destination) : "Target Path"
	master(string) : "Master" 
	sounds(choices) : "Sound style" : 0 =
	[
		0 : "No Sound"
	]
	delay(string) : "Delay before trigger" : "0"
	message(string) : "Message (set sound too!)"
	spawnflags(flags) = 
	[
		1: "Monsters" : 0
		2: "No Clients" : 0
		4: "Pushables": 0
	]
]

//
// Entities
//

@PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = aiscripted_sequence : "AI Scripted Sequence"
[
	m_iszEntity(string) : "Target Monster"
	m_iszPlay(string) : "Action Animation" : ""
	m_flRadius(integer) : "Search Radius" : 512
	m_flRepeat(integer) : "Repeat Rate ms" : 0
	corpse_offset(integer) : "Offset for teleporting" : 0
	
	m_iszAnimMovement(string) : "Movement Animation" : ""
	
	m_fMoveTo(Choices) : "Move to Position" : 0 =
	[
		0 : "No"
		1 : "Walk"
		2 : "Run"
		4 : "Instantaneous"
		5 : "No - Turn to Face"
	]
	m_iFinishSchedule(Choices) : "AI Schedule when done" : 0 =
	[
		0 : "Default AI"
		1 : "Ambush"
	]
	spawnflags(Flags) = 
	[
		4 : "Repeatable"		: 0
		8 : "Leave Corpse"	: 0
	]
]

@PointClass iconsprite("sprites/speaker.spr") base(Targetname) = ambient_generic : "Universal Ambient"
[
	message(sound) : "WAV Name"
	health(integer) : "Volume (10 = loudest)" : 10
	preset(choices) :"Dynamic Presets" : 0 =
	[
		0: "None"
		1: "Huge Machine"
		2: "Big Machine"
		3: "Machine"
		4: "Slow Fade in"  
		5: "Fade in"
		6: "Quick Fade in"
		7: "Slow Pulse"
		8: "Pulse"
		9: "Quick pulse"
		10: "Slow Oscillator"
		11: "Oscillator"
		12: "Quick Oscillator"
		13: "Grunge pitch"
		14: "Very low pitch"
		15: "Low pitch"
		16: "High pitch"
		17: "Very high pitch"
		18: "Screaming pitch"
		19: "Oscillate spinup/down"
		20: "Pulse spinup/down"
		21: "Random pitch"
		22: "Random pitch fast"
		23: "Incremental Spinup"
		24: "Alien"
		25: "Bizzare"
		26: "Planet X"
		27: "Haunted"
	]
	volstart(integer) : "Start Volume" : 0
	fadein(integer) : "Fade in time (0-100)" : 0
	fadeout(integer) : "Fade out time (0-100)" : 0
	pitch(integer) : "Pitch (> 100 = higher)" : 100
	pitchstart(integer) : "Start Pitch" : 100
	spinup(integer) : "Spin up time (0-100)" : 0
	spindown(integer) : "Spin down time (0-100)" : 0
	lfotype(integer) : "LFO type 0)off 1)sqr 2)tri 3)rnd" : 0
	lforate(integer) : "LFO rate (0-1000)" : 0
	lfomodpitch(integer) : "LFO mod pitch (0-100)" : 0
	lfomodvol(integer) : "LFO mod vol (0-100)" : 0
	cspinup(integer) : "Incremental spinup count" : 0
	spawnflags(flags) =
	[
		1: "Play Everywhere" : 0
		2: "Small Radius" : 0
		4: "Medium Radius" : 1
		8: "Large Radius" : 0
		16:"Start Silent":0
		32:"Is NOT Looped":0
	]
]

//
// ammo
//

@PointClass base(Weapon, Targetx) = ammo_beamgunclip : "BeamGun Ammo" []
@PointClass base(Weapon, Targetx) = ammo_buckshot : "Shotgun Ammo" []
@PointClass base(Weapon, Targetx) = ammo_chemical : "ChemGun Ammo" []
@PointClass base(Weapon, Targetx) = ammo_dmlclip : "DML Ammo Clip" []
@PointClass base(Weapon, Targetx) = ammo_dmlsingle : "DML Ammo Single" []
@PointClass base(Weapon, Targetx) = ammo_gaussclip : "Gauss Pistol Ammo" []
@PointClass base(Weapon, Targetx) = ammo_minigunClip : "MiniGun Ammo" []


@PointClass size( -16 -16 0, 16 16 16) = button_aiwallplug : "AIWallPlug Button"
[
        target(target_destination) : "Targetted object"
	  spawnflags(flags) =
        [
                1: "Use Activates" : 1
                2: "Start On" : 0
		    256: "Leave Core In: " : 0
        ]
]

@SolidClass base(Target) = button_target : "Target Button"
[
	spawnflags(flags) =
	[
		1: "Use Activates" : 1
		2: "Start On" : 0
	]
	master(string) : "Master" 
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]


//Cust

@PointClass base(Weapon, Targetx) = cust_2GaussPistolSniper : "Sniper Kit" []
@PointClass base(Weapon, Targetx) =cust_2MinigunCooled : "Barrel Cooler Item" []



@PointClass base(Monster) size(-16 -16 -16, 16 16 16) = cycler_weapon : "Weapon Cycler" 
[
	model(studio) : "model"
]



//
// cyclers
//

@PointClass base(Targetname) size(-16 -16 0, 16 16 72) = cycler : "Monster Cycler" 
[
	model(studio) : "Model"
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

@PointClass base(Targetname) sprite() = cycler_sprite : "Sprite Cycler" 
[
	model(sprite) : "Sprite"
	framerate(integer) : "Frames per second" : 10
	renderfx(choices) :"Render FX" : 0 =
	[
		0: "Normal"
		1: "Slow Pulse"
		2: "Fast Pulse"
		3: "Slow Wide Pulse"
		4: "Fast Wide Pulse"
		9: "Slow Strobe"
		10: "Fast Strobe"
		11: "Faster Strobe"
		12: "Slow Flicker"
		13: "Fast Flicker"
		5: "Slow Fade Away"
		6: "Fast Fade Away"
		7: "Slow Become Solid"
		8: "Fast Become Solid"
		14: "Constant Glow"
		15: "Distort"
		16: "Hologram (Distort + fade)"
	]
	rendermode(choices) : "Render Mode" : 0 =
	[
		0: "Normal"
		1: "Color"
		2: "Texture"
		3: "Glow"
		4: "Solid"
		5: "Additive"
	]
	renderamt(integer) : "FX Amount (1 - 255)"
	rendercolor(color255) : "FX Color (R G B)" : "0 0 0"
]

//Decore

@PointClass size( -16 -16 0, 16 16 40) = decore_asteroid : "Asteroid"
[
	asteroidsize(choices) : "Asteriod type" : 1 =
	[
		0 : "big asteroid"
		1 : "medium asteroid"
		2 : "small asteroid"
	]
]

@PointClass size( -24 -24 -24, 24 24 24) = decore_aicore : "insert AI here"[]
@PointClass size( -16 -16 0, 16 16 16) = decore_baboon : "Decoration Hanging Baboon"[]

@PointClass size( -16 -16 0, 16 16 40) = decore_bodygib : "Sprawled bitten human body"[]
@PointClass size( -16 -16 0, 16 16 40) = decore_butterflyflock : "Spawns a flock of butterflies"
[
        iFlockSize(integer)  : "Number of butterflies" : 10
        flFlockRadius(integer)  : "RADIUS of Spawning(KEEP SAFE!!)" : 0
]
@PointClass size(-16 -16 0, 16 16 64) = decore_cactus : "Decoration Cactus"[]


@PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 16) = decore_cam : "Decoration Cam"[]

@PointClass size( -16 -16 0, 16 16 40) = decore_corpse : "Generic Body/Death Spawn - MIGHT NOT BE FUNCTIONING"
[
      pose(Choices) : "Pose" : 0 =
        [
                0 : "On stomach"
                1 : "On side"
                2 : "On Back"
                3 : "Seated"
        ]
        creaturetype(choices) : "Monsters Type" : 0 =
        [
                0 : "Rustbot"
                1 : "NOT YET Rustbit"
                2 : "NOT YET Gunner"
                3 : "NOT YET Beak"
                4 : "NOT YET Critter"
                5 : "NOT YET Hiveback"
                6 : "NOT YET Tube"
                7 : "NOT YET Tubeball"
                8 : "NOT YET Xenome"
                9 : "NOT YET Gator"
                10 : "NOT YET Ourano"
                11 : "NOT YET Penta"
                12 : "NOT YET Raptor"
	]
]
@PointClass base(Monster) size(-32 -32 -16, 32 32 16)= decore_eagle : "eagle" []
@PointClass base(Targetname, RenderFxChoices, RenderFields) = decore_explodable : "Exploding Gibbing Decore"
[
	decoremodel(studio) : "Model" : "models/dropship.mdl"
	decoregib(studio) : "Gib Model" : "models/gunnergibs.mdl"
	decoreidle(string) : "Idle Anim" : "idle"
	decoreaction(string) : "Action Anim" : "none"
]
@PointClass size(-24 -24 -24, 24 24 24) = decore_foot : "giant scripted dino foot"[]
@PointClass base(Monster) size(-10 -10 -12, 10 10 12) = decore_goldskull : "Decoration GoldenSkull"[]
@PointClass size(-16 -16 0, 16 16 40) = decore_gutspile : "Discusting Pile of Human"[]
@PointClass size(-16 -16 0, 16 16 40) = decore_hatgib : "Bandit hat"[]
@PointClass base(Monster) size(-16 -16 0, 16 16 40) = decore_ice : "Decore Ice"
[
        beakinside (choices) : "W/O Filling" : 0 =
        [
                0 : "Normal Ice" 
                1 : "Beak Inside"
        ]
]
@PointClass size(-16 -16 0, 16 16 16) = decore_mushroom : "Decoration Mushroom"[]
@PointClass size(-16 -16 0, 16 16 16) = decore_mushroom2 : "Decoration Mushroom2"[]
@PointClass size(-32 -32 0, 32 32 16) = decore_nest : "Ourano nest"[]
@PointClass size(-16 -16 -16, 16 16 0) = decore_pipes : "Hanging Pipes"[]
@PointClass size(-8 -8 0, 8 8 8) = decore_prickle: "Decoration Prickle"[]
@PointClass base(Monster) size(-32 -32 -16, 32 32 16) = decore_pteradon : "Pteradon"[]
@PointClass size( -32 -32 0, 32 32 64) = decore_sittingtubemortar : "TubeMortar Standing"[]
@PointClass size(-48 -48 -16, 48 48 16) = decore_scripted_boulder : "Scripted boulder(mayan)"[]

@PointClass base(Targetname,Target) = decore_spacedebris: "SpaceDebris"
[
	modelname(string) : "Model" : ""
	forwardspeed(string) : "Speed" : "100"
	anglespeed(string) : "SpinSpeed" : "100"
	debrislife(string) : "Life" : "10"
	
]


@PointClass size(-16 -16 0, 16 16 64) = decore_swampplants : "Decoration SwampPlants"
[
	body (Choices) : "Plant Type" : 0 =
	[
		0 : "Leafy" 
		1 : "Stalky"
		2 : "3 Lily"
		3 : "1 Lily w/flower"
		4 : "1 lily"
		5 : "1 lily smaller"
	]
]

@PointClass size(-8 -8 -8,  8  8 16) = decore_torch : "Torch with a Flame"[]
@PointClass size(-4 -4 -8,  4  4 16) = decore_torchflame : "Flame Like Torch Flame"[]
@PointClass  base(Targetname) size(-4 -4 -4, 4 4 8) = demoman_mine : "Demoman Proximity Mine"[]

@PointClass size(-16 -16 0, 16 16 16) = entity_clustergod : "Spawns Cluster Grenades"[]

@PointClass base(Targetname,Target) = entity_digitgod : "Digit God"
[
	maxdamage(integer) : "Max Damage Before Use" :  500
]

@PointClass base(Targetname) sprite() = entity_spritegod : "SpriteSpray"
[
	spritename(sprite) : "Sprite" : ""
	spritenoise(integer) : "Noise" : 50
	spritespeed(integer) : "Speed" : 100
	spritestartstate(choices) : "Start State" : 1 =
	[
		0: "Off"
		1: "On"
	]
	spritecount(integer) : "NumberPerSpray" : 1
	spritefreq(integer) : "Frequence-dividedBy10" : 5
	spritex(integer) : "x Direction" : 0
	spritey(integer) : "y Direction" : 0
	spritez(integer) : "z Direction" : 0
	targetent(target_destination) : "Target" : ""
]


@PointClass size(-4 -4 -4, 4 4 4) = entity_volcanoSpew : "Volcano Eruption"[]

//
// Environmental effects
//

@BaseClass = BeamStartEnd 
[
	LightningStart(target_destination) : "Start Entity" 
	LightningEnd(target_destination) : "Ending Entity" 
]
@PointClass base(Targetname, BeamStartEnd, RenderFxChoices) size(-16 -16 -16, 16 16 16) = env_beam : "Energy Beam Effect"
[
	renderamt(integer) : "Brightness (1 - 255)" : 100
	rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
	Radius(integer) : "Radius" : 256
	life(string) : "Life (seconds 0 = infinite)" : "1"
	BoltWidth(integer) : "Width of beam (pixels*0.1 0-255)" : 20
	NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
	texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
	TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
	framerate(integer) : "Frames per 10 seconds" : 0
	framestart(integer) : "Starting Frame" : 0
	StrikeTime(string) : "Strike again time (secs)" : "1"
	damage(string) : "Damage / second" : "0"
	spawnflags(flags) = 
	[
		1 : "Start On" : 0
		2 : "Toggle" : 0
		4 : "Random Strike" : 0
		8 : "Ring" : 0
		16: "StartSparks" : 0
		32: "EndSparks" : 0
		64: "Decal End" : 0
		128: "Shade Start" : 0
		256: "Shade End" : 0
	]
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) color(255 0 0) = env_blood : "Blood Effects" 
[
	color(choices) : "Blood Color" : 0 =
	[
		0 : "Red (Human)"
		1 : "Yellow (Alien)"
	]
	amount(string) : "Amount of blood (damage to simulate)" : "100"
	spawnflags(flags) =
	[
		1: "Random Direction" : 0
		2: "Blood Stream" : 0
		4: "On Player" : 0
		8: "Spray decals" : 0
	]
]

@SolidClass base(Targetname) = env_bubbles : "Bubble Volume" 
[
	density(integer) : "Bubble density" : 2
	frequency(integer) : "Bubble frequency" : 2
	current(integer) : "Speed of Current" : 0
	spawnflags(Flags) = 
	[
		1 : "Start Off" 	: 0
	]
]

@PointClass  base(Targetname) size(-16 -16 0, 16 16 16) = env_clusterExplosion: "Cluster Grenade Spawn"
[
	clusterDamage(integer) : "Damage of Cluster Grenades" : 40
	numGrenades(integer) : "Number of grenades" : 4
	spawnflags(flags) = 
	[
		2 : "Repeatable" : 0
	]

]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_explosion : "Explosion" 
[
	iMagnitude(Integer) : "Magnitude" : 100
	spawnflags(flags) =
	[
		1: "No Damage" : 0
		2: "Repeatable" : 0
		4: "No Fireball" : 0
		8: "No Smoke" : 0
		16: "No Decal" : 0
		32: "No Sparks" : 0
	]
]

@PointClass base(Targetname) = env_fade : "Screen Fade" 
[
	spawnflags(flags) =
	[
		1: "Fade From" : 0
		2: "Modulate" : 0
		4: "Activator Only" : 0
	]
	duration(string) : "Duration (seconds)" : "2"
	holdtime(string) : "Hold Fade (seconds)" : "0"
	renderamt(integer) : "Fade Alpha" : 255
	rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_funnel : "Large Portal Funnel" 
[
	spawnflags(flags) =
	[
		1: "Reverse" : 0
	]
]

@PointClass base(Targetname) color(255 255 128) = env_global : "Global State"
[
	globalstate(string) : "Global State to Set"
	triggermode(choices) : "Trigger Mode" : 0 =
	[
		0 : "Off"
		1 : "On"
		2 : "Dead"
		3 : "Toggle"
	]
	initialstate(choices) : "Initial State" : 0 =
	[
		0 : "Off"
		1 : "On"
		2 : "Dead"
	]
	spawnflags(flags) =
	[
		1 : "Set Initial State" : 0
	]
]

@PointClass sprite() base(Targetname, RenderFields) size(-4 -4 -4, 4 4 4) color(30 100 0) = env_glow : "Light Glow/Haze" 
[
	model(sprite) : "Sprite Name" : "sprites/glow01.spr"
	scale(integer) : "Scale" : 1
]

@PointClass base(Targetname, RenderFxChoices) size(-16 -16 -16, 16 16 16) = env_laser : "Laser Beam Effect"
[
	LaserTarget(target_destination) : "Target of Laser" 
	renderamt(integer) : "Brightness (1 - 255)" : 100
	rendercolor(color255) : "Beam Color (R G B)" : "0 0 0"
	width(integer) : "Width of beam (pixels*0.1 0-255)" : 20
	NoiseAmplitude(integer) : "Amount of noise (0-255)" : 0
	texture(sprite) : "Sprite Name" : "sprites/laserbeam.spr"
	EndSprite(sprite) : "End Sprite" : ""
	TextureScroll(integer) : "Texture Scroll Rate (0-100)" : 35
	framestart(integer) : "Starting Frame" : 0
	damage(string) : "Damage / second" : "100"
	spawnflags(flags) = 
	[
		1 : "Start On" : 0
		16: "StartSparks" : 0
		32: "EndSparks" : 0
		64: "Decal End" : 0
	]
]

@PointClass base(Targetname, Target) = env_message : "HUD Text Message" 
[
	message(string) : "Message Name"
	spawnflags(flags) =
	[
		1: "Play Once" : 0
		2: "All Clients" : 0
	]
	messagesound(sound) : "Sound Effect"
	messagevolume(string) : "Volume 0-10" : "10"
	messageattenuation(Choices) : "Sound Radius" : 0 =
	[
		0 : "Small Radius"
		1 : "Medium Radius"
		2 : "Large  Radius"
		3 : "Play Everywhere"
	]
]

@PointClass base(Targetname, Target, RenderFields) size(-16 -16 -16, 16 16 16) color(100 100 0) = env_render : "Render Controls"
[
	spawnflags(flags) =
	[
		1: "No Renderfx" : 0
		2: "No Renderamt" : 0
		4: "No Rendermode" : 0
		8: "No Rendercolor" : 0
	]
]

@PointClass base(Targetname) = env_shake : "Screen Shake" 
[
	spawnflags(flags) =
	[
		1: "GlobalShake" : 0
	]
	amplitude(string) : "Amplitude 0-16" : "4"
	radius(string) : "Effect radius" : "500"
	duration(string) : "Duration (seconds)" : "1"
	frequency(string) : "0.1 = jerk, 255.0 = rumble" : "2.5"
]

@PointClass base(gibshooterbase, RenderFields) size(-16 -16 -16, 16 16 16) = env_shooter : "Model Shooter"
[
	shootmodel(studio) : "Model or Sprite name" : ""
	shootsounds(choices) :"Material Sound" : -1 =
	[
		-1: "None"
		0: "Glass"
		1: "Wood"
		2: "Metal"
		3: "Flesh"
		4: "Concrete"  
	]
	scale(string) : "Gib Sprite Scale" : ""
	skin(integer) : "Gib Skin" : 0
]

@PointClass = env_sound : "DSP Sound" 
[
	radius(integer) : "Radius" : 128
	roomtype(Choices) : "Room Type" : 0 =
	[
		0 : "Normal (off)"
		1 : "Generic"
		
		2 : "Metal Small"
		3 : "Metal Medium"
		4 : "Metal Large"
	
		5 : "Tunnel Small"
		6 : "Tunnel Medium"
		7 : "Tunnel Large"
	
		8 : "Chamber Small"
		9 : "Chamber Medium"
		10: "Chamber Large"

		11: "Bright Small"
		12: "Bright Medium"
		13: "Bright Large"

		14: "Water 1"
		15: "Water 2"
		16: "Water 3"

		17: "Concrete Small"
		18: "Concrete Medium"
		19: "Concrete Large"

		20: "Big 1"
		21: "Big 2"
		22: "Big 3"

		23: "Cavern Small"
		24: "Cavern Medium"
		25: "Cavern Large"

		26: "Weirdo 1"
		27: "Weirdo 2"
		28: "Weirdo 3"
	]
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = env_spark : "Spark" 
[
	MaxDelay(string) : "Max Delay" : "0"
	spawnflags(flags) =
	[
		32: "Toggle" : 0
		64: "Start ON" : 0
	]
]

@PointClass sprite() base(Targetname, RenderFields) size(-4 -4 -4, 4 4 4) = env_sprite : "Sprite Effect" 
[
	framerate(string) : "Framerate" : "10.0"
	model(sprite) : "Sprite Name" : "sprites/glow01.spr"
	scale(string) : "Scale" : ""
	spawnflags(flags) =
	[
		1: "Start on" : 0
		2: "Play Once" : 0
	]
]

@SolidClass base(Breakable, RenderFields) = func_breakable : "Breakable Object" 
[
	spawnflags(flags) =
	[
		1 : "Only Trigger" : 0
		2 : "Touch"	   : 0
		4 : "Pressure"     : 0
		256: "Instant Crowbar" : 1
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Global,Targetname, Target, RenderFields) = func_button : "Button" 
[
	speed(integer) : "Speed" : 5
	health(integer) : "Health (shootable if > 0)"
	lip(integer) : "Lip"
	master(string) : "Master" 
	sounds(choices) : "Sounds" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		2: "Access Denied"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		11: "Buzz Off"
		14: "Lightswitch"
	]
	wait(integer) : "delay before reset (-1 stay)" : 3
	delay(string) : "Delay before trigger" : "0"
	spawnflags(flags) =
	[
		1: "Don't move" : 0
		32: "Toggle" : 0
		64: "Sparks" : 0
		256:"Touch Activates": 0
	]
	locked_sound(choices) : "Locked Sound" : 0 = 
	[
		0: "None"
		2: "Access Denied"
		8: "Small zap"
		10: "Buzz"
		11: "Buzz Off"
		12: "Latch Locked"
	]
	unlocked_sound(choices) : "Unlocked Sound" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		10: "Buzz"
		13: "Latch Unlocked"
		14: "Lightswitch"
	]
	locked_sentence(choices) : "Locked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Denied"
		2: "Security Lockout"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance Door"
		9: "Broken Shut Door"
	]
	unlocked_sentence(choices) : "Unlocked Sentence" : 0 = 
	[
		0: "None"
		1: "Gen. Access Granted"
		2: "Security Disengaged"
		3: "Blast Door"
		4: "Fire Door"
		5: "Chemical Door"
		6: "Radiation Door"
		7: "Gen. Containment"
		8: "Maintenance area"
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Global,RenderFields, Targetname) = func_conveyor : "Conveyor Belt" 
[
	spawnflags(flags) =
	[
		1 : "No Push" : 0
		2 : "Not Solid" : 0
	]
	speed(string) : "Conveyor Speed" : "100"
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Door) = func_door : "Basic door" []

@SolidClass base(Door) = func_door_rotating : "Rotating door" 
[
	spawnflags(flags) =
	[
		2 : "Reverse Dir" : 0
		16: "One-way" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	distance(integer) : "Distance (deg)" : 90
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

@SolidClass base(Appearflags, RenderFields) = func_friction : "Surface with a change in friction" 
[
	modifier(integer) : "Percentage of standard (0 - 100)" : 15
]

@SolidClass base(Targetname, RenderFields, Global) = func_guntarget : "Moving platform" 
[
	speed(integer) : "Speed (units per second)" : 100
	target(target_source) : "First stop target"
	message(target_source) : "Fire on damage"
	health(integer) : "Damage to Take" : 0
	_minlight(string) : "Minimum light level"
]

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

@SolidClass base(Targetname, RenderFields) = func_illusionary : "Fake Wall/Light" 
[

	skin(choices) : "Contents" : -1 =
	[
		-1: "Empty"
		-7: "Volumetric Light"
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname) = func_ladder : "Ladder" []

@SolidClass base(Targetname) = func_monsterclip : "Monster clip brush" []

@SolidClass base(Targetname) = func_mortar_field : "Mortar Field" 
[
	m_flSpread(integer) : "Spread Radius" : 64
	m_iCount(integer) : "Repeat Count" : 1
	m_fControl(Choices) : "Targeting" : 0 =
	[
		0 : "Random"
		1 : "Activator"
		2 : "Table"
	]
	m_iszXController(target_destination) : "X Controller"
	m_iszYController(target_destination) : "Y Controller"
]

@SolidClass base(Global,Appearflags, Targetname, RenderFields) = func_pendulum : "Swings back and forth" 
[
	speed(integer) : "Speed" : 100
	distance(integer) : "Distance (deg)" : 90
	damp(integer) : "Damping (0-1000)" : 0
	dmg(integer) : "Damage inflicted when blocked" : 0
	spawnflags(flags) =
	[
		1: "Start ON" : 0
		8: "Passable" : 0
		16: "Auto-return" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]

	_minlight(integer) : "_minlight"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

@SolidClass base(Targetname,Global,RenderFields, PlatSounds) = func_plat : "Elevator" 
[
	spawnflags(Flags) =
	[
		1: "Toggle" : 0
	]
	height(integer) : "Travel altitude (can be negative)" : 0
	speed(integer) : "Speed" : 50
	_minlight(string) : "Minimum light level"
]	

@SolidClass base(Targetname, Global, RenderFields, PlatSounds) = func_platrot : "Moving Rotating platform" 
[
	spawnflags(Flags) =
	[
		1: "Toggle" : 1
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	speed(integer) : "Speed of rotation" : 50
	height(integer) : "Travel altitude (can be negative)" : 0
	rotation(integer) : "Spin amount" : 0
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Breakable, RenderFields) = func_pushable : "Pushable object"
[
	size(choices) : "Hull Size" : 0 =
	[
		0: "Point size"
		1: "Player size"
		2: "Big Size"
		3: "Player duck"
	]
	spawnflags(flags) =
	[
		128: "Breakable" : 0
	]
	friction(integer) : "Friction (0-400)" : 50
	buoyancy(integer) : "Buoyancy" : 20
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, RenderFields) = func_rot_button : "RotatingButton" 
[
	target(target_destination) : "Targetted object"
	// changetarget will change the button's target's TARGET field to the button's changetarget.
	changetarget(target_destination) : "ChangeTarget Name"
	master(string) : "Master" 
	speed(integer) : "Speed" : 50
	health(integer) : "Health (shootable if > 0)"
	sounds(choices) : "Sounds" : 21 = 
	[
		21: "Squeaky"
		22: "Squeaky Pneumatic"
		23: "Ratchet Groan"
		24: "Clean Ratchet"
		25: "Gas Clunk"
	]
	wait(choices) : "Delay before reset" : 3 =
	[
		-1: "Stays pressed"
	]
	delay(string) : "Delay before trigger" : "0"
	distance(integer) : "Distance (deg)" : 90
	spawnflags(flags) =
	[
		1 : "Not solid" : 0
		2 : "Reverse Dir" : 0
		32: "Toggle" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
		256:"Touch Activates": 0
	]
	_minlight(integer) : "_minlight"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

@SolidClass base(Targetname, Global, RenderFields) = func_rotating : "Rotating Object"
[
	speed(integer)	: "Rotation Speed" : 0
	volume(integer) : "Volume (10 = loudest)" : 10
	fanfriction(integer) : "Friction (0 - 100%)" : 20
	sounds(choices) : "Fan Sounds" : 0 =
	[
		0 : "No Sound" 
		1 : "Fast Whine"
		2 : "Slow Rush"
		3 : "Medium Rickety"
		4 : "Fast Beating"
		5 : "Slow Smooth"
	]
	message(sound) : "WAV Name"
	spawnflags(flags) =
	[
		1 : "Start ON" 		: 0
		2 : "Reverse Direction" : 0
		4 : "X Axis" 		: 0
		8 : "Y Axis" 		: 0
		16: "Acc/Dcc"		: 0
		32: "Fan Pain"		: 0
		64: "Not Solid"		: 0
		128: "Small Radius" : 0
		256: "Medium Radius" : 0
		512: "Large Radius" : 1	
	]
	_minlight(integer) : "_minlight"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
	spawnorigin(string) : "X Y Z - Move here after lighting" : "0 0 0"
	dmg(integer) : "Damage inflicted when blocked" : 0
]

@SolidClass base(BaseTank) = func_tank : "Brush Gun Turret" 
[
	bullet(choices) : "Bullets" : 0 = 
	[
		0: "None"
		1: "9mm"
		2: "MP5"
		3: "12mm"
	]
]

@SolidClass = func_tankcontrols : "Tank controls"
[
	target(target_destination) : "Tank entity name"
]

@SolidClass base(BaseTank) = func_tanklaser : "Brush Laser Turret" 
[
	laserentity(target_source) : "env_laser Entity"
]

@SolidClass base(BaseTank) = func_tanklaserrust : "Rust Eye Laser" 
[
	laserentity(target_source) : "env_laser Entity"
]

@SolidClass base(BaseTank) = func_tankrocket : "Brush Rocket Turret" []


@SolidClass base(BaseTank) = func_tankmortar : "Brush Mortar Turret" 
[
	iMagnitude(Integer) : "Explosion Magnitude" : 100
]

@SolidClass base(Trackchange) = func_trackautochange : "Automatic track changing platform"
[
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Trackchange) = func_trackchange : "Train track changing platform"
[
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Global, RenderFields) = func_tracktrain : "Track Train" 
[
	spawnflags(flags) =
	[
		1 : "No Pitch (X-rot)" : 0
		2 : "No User Control" : 0
		8 : "Passable" : 0
	]
	target(target_destination) : "First stop target"
	sounds(choices) : "Sound" : 0 =
	[
		0: "None"
		1: "Rail 1"
		2: "Rail 2"
		3: "Rail 3"
		4: "Rail 4"
		5: "Rail 6"
		6: "Rail 7"
	]
	wheels(integer) : "Distance between the wheels" : 50
	height(integer) : "Height above track" : 4
	startspeed(integer) : "Initial speed" : 0
	speed(integer) : "Speed (units per second)" : 64
	dmg(integer) : "Damage on crush" : 0	
	volume(integer) : "Volume (10 = loudest)" : 10
	bank(string) : "Bank angle on turns" : "0"
	_minlight(string) : "Minimum light level"
]

@SolidClass = func_traincontrols : "Train Controls"
[
	target(target_destination) : "Train Name"
]

@SolidClass base(Targetname, Global, RenderFields) = func_train : "Moving platform" 
[
	target(target_source) : "First stop target"
	movesnd(choices) : "Move Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev 1"
		2: "big elev 2"
		3: "tech elev 1"
		4: "tech elev 2"
		5: "tech elev 3"
		6: "freight elev 1"
		7: "freight elev 2"
		8: "heavy elev"
		9: "rack elev"
		10: "rail elev"
		11: "squeek elev"
		12: "odd elev 1"
		13: "odd elev 2"
	]
	stopsnd(choices) : "Stop Sound" : 0 = 
	[
		0: "No Sound"
		1: "big elev stop1"
		2: "big elev stop2"
		3: "freight elev stop"
		4: "heavy elev stop"
		5: "rack stop"
		6: "rail stop"
		7: "squeek stop"
		8: "quick stop"
	]
	speed(integer) : "Speed (units per second)" : 64
	dmg(integer) : "Damage on crush" : 0
	skin(integer) : "Contents" : 0
	volume(string) : "Sound Volume 0.0 - 1.0" : "0.85"
	spawnflags(flags) =
	[
		8 : "Not solid" : 0
	]
	_minlight(string) : "Minimum light level"
]

@SolidClass base(Targetname, Appearflags, RenderFields, Global) = func_wall : "Wall" 
[
	_minlight(string) : "Minimum light level"
]

@SolidClass base(func_wall) = func_wall_toggle : "Toggleable geometry" 
[
	spawnflags(flags) =
	[
		1 : "Starts Invisible" : 0
	]
]

@SolidClass base(Door) = func_water : "Liquid" 
[
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
		256:"Use Only" : 0
	]
	skin(choices) : "Contents" : -3 =
	[
		-3: "Water"
		-4: "Slime"
		-5: "Lava"
	]
	WaveHeight(string) : "Wave Height" : "3.2"
]



@PointClass = func_wind : "Wind creator entity (see leaf doc for more info) DEFAULT VALUES ARE NOT TESTED AND TO BE CHANGED"
[
        minamp(string)  : "Minimum amplitude of the wind " : "1"
        maxamp(string)  : "Maximum amplitude of the wind" : "5"
        minfreq(string) : "Minimum frequency of wind speed changes" : "1"
        maxfreq(string) : "Maximum frequency of wind speed changes" : "5"
        dir_x(string)   : "Direction of the wind (X component)" : "1"
        dir_y(string)   : "Direction of the wind (Y component)" : "1"
        dir_z(string)   : "Direction of the wind (Z component)" : "1"
]


//
// game entities (requires Half-Life 1.0.0.9)
//

@PointClass base(Targetname, Targetx) = game_counter : "Fires when it hits limit"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
		2: "Reset On fire" : 1
	]
	master(string) : "Master"
	frags(integer) : "Initial Value" : 0
	health(integer) : "Limit Value" : 10
]

@PointClass base(Targetname, Target) = game_counter_set : "Sets a game_counter"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(string) : "Master"
	frags(integer) : "New Value" : 10
]

@PointClass base(Targetname) = game_end : "End this multiplayer game" 
[
	master(string) : "Master" 
]

@PointClass base(Targetname) = game_player_equip : "Initial player equipment"
[
	spawnflags(flags) =
	[
		1: "Use Only" : 0
	]
	master(string) : "Team Master"
]

@PointClass base(Targetname) = game_player_hurt : "Hurts player who fires"
[
	dmg(string) : "Damage To Apply" : "999"
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(string) : "Master" 
]

@PointClass base(Targetname) = game_player_team : "Allows player to change teams"
[
	spawnflags(flags) =
	[
		1 : "Remove On fire" : 0
		2 : "Kill Player" : 0
		4 : "Gib Player" : 0
	]
	target(string) : "game_team_master to use" 
	master(string) : "Master"
]

@PointClass base(Targetname) = game_score : "Award/Deduct Points" 
[
	spawnflags(flags) =
	[
		1: "Allow Negative" : 0
		2: "Team Points" : 0
	]

	points(integer) : "Points to add (+/-)" : 1
	master(string) : "Master" 
]

@PointClass base(Targetname, Targetx) = game_team_master : "Team based master/relay"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0: "Off"
		1: "On"
		2: "Toggle"
	]
	teamindex(integer) : "Team Index (-1 = no team)" : -1
	master(string) : "Master" 
]

@PointClass base(Targetname, Targetx) = game_team_set : "Sets team of team_master"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	master(string) : "Master" 
]

@PointClass base(Targetname, Target) = game_text : "HUD Text Message" 
[
	spawnflags(flags) =
	[
		1: "All Players" : 0
	]

	message(string) : "Message Text"
	x(string) : "X (0 - 1.0 = left to right) (-1 centers)" : "-1"
	y(string) : "Y (0 - 1.0 = top to bottom) (-1 centers)" : "-1"
	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"
	fadeout(string) : "Fade Out Time" : "0.5"
	holdtime(string) : "Hold Time" : "1.2"
	fxtime(string) : "Scan time (scan effect only)" : "0.25"
	channel(choices) : "Text Channel" : 1 =
	[
		1 : "Channel 1"
		2 : "Channel 2"
		3 : "Channel 3" 
		4 : "Channel 4"
	]
	master(string) : "Master" 
]

@SolidClass base(Targetname) = game_zone_player : "Player Zone brush"
[
	intarget(target_destination) : "Target for IN players"
	outtarget(target_destination) : "Target for OUT players"
	incount(target_destination) : "Counter for IN players"
	outcount(target_destination) : "Counter for OUT players"
	// master(string) : "Master" 
]

@PointClass base(gibshooterbase) = gibshooter : "Gib Shooter" []

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = gunman_cycler : "Gunman Cycler" 
[
        model(studio) : "model"
	cyc_submodel1(integer) : "Body1" : 1
	cyc_submodel2(integer) : "Body2" : 1
	cyc_submodel3(integer) : "Body3" : 1
]


@PointClass base(Targetname) = hologram_beak : "Hologram Beak"
[
	creaturetype(choices) : "CreatureType" : 0 =
	[
		0 : "Beak"
		1 : "Tube"
		2 : "MicroRaptor"
	]

	targetfail(target_source) : "Failname"
]

@PointClass base(Targetname,Target) = hologram_damage : "Hologram Damage"
[
	damagetype(choices) : "Damage Type" : 0 =
	[
		0 : "gauss-pulse"
		1 : "gauss-charged"
		2 : "gauss-rapid"
		3 : "gauss-sniper"
		4 : "generic-bullet"
		5 : "chemgun acid damage"
		6 : "chemgun base damage"
		7 : "chemgun explosive damage"
		8 : "chemgun smoke damage"
	]

	targetfail(target_source) : "Failname"
	creaturetype(choices) : "CreatureType" : 0 =
	[
		0 : "Beak"
		1 : "Tube"
		2 : "MicroRaptor"
	]
]

//
// info entities
//

@PointClass decal() base(Targetname, Appearflags) = infodecal : "Decal"
[
	texture(decal)
]

@PointClass base(Target) size(-4 -4 -4, 4 4 4) color(0 255 0) = info_intermission : "Intermission Spot" []

@PointClass base(Targetname) = info_landmark : "Transition Landmark" []

@PointClass size(-24 -24 -4, 24 24 4) color(255 255 0) = info_node : "ai node" []

@PointClass size(-32 -32 0, 32 32 64) color(255 255 0) = info_node_air : "ai air node" []

@PointClass base(Targetname) = info_null : "info_null (spotlight target)" []

@PointClass base(PlayerClass) = info_player_deathmatch : "Player deathmatch start" 
[
	target(target_destination) : "Target"
	master(string) : "Master"
]
@PointClass base(PlayerClass) = info_player_start : "Player 1 start" []

@PointClass base(Targetname) size(-4 -4 -4, 4 4 4) color(200 100 50) = info_target : "Beam Target" []
@PointClass size(-8 -8 0, 8 8 16) base(PlayerClass, Targetname) = info_teleport_destination : "Teleport destination" []

//
// items
//
@PointClass base(Item) size (-16 -16 0, 16 16 36) = item_armor : "Armor Jacket" []
@PointClass base(Item) size (-16 -16 0, 16 16 36) = item_gascan : "Gas for the Tank" []
@PointClass base(Item) size (-16 -16 0, 16 16 36) = item_healthkit : "Small Health Kit" []

//
// lights
//

@PointClass iconsprite("sprites/lightbulb.spr") base(Target, Targetname, Light) = light : "Invisible lightsource"
[
	spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
]

@PointClass iconsprite("sprites/lightbulb.spr") base(Targetname, Target) = light_spot : "Spotlight" 
[
	_cone(integer) : "Inner (bright) angle" : 30
	_cone2(integer) : "Outer (fading) angle" : 45
	pitch(integer) : "Pitch" : -90
	_light(color255) : "Brightness" : "255 255 128 200"
	_sky(Choices) : "Is Sky" : 0 = 
	[ 
		0 : "No"
		1 : "Yes"
	]
	spawnflags(Flags) = [ 1 : "Initially dark" : 0 ]
      style(Choices) : "Appearance" : 0 =
	[
		0 : "Normal"
		10: "Fluorescent flicker"
		2 : "Slow, strong pulse"
		11: "Slow pulse, noblack"
		5 : "Gentle pulse"
		1 : "Flicker A"
		6 : "Flicker B"
		3 : "Candle A"
		7 : "Candle B"
		8 : "Candle C"
		4 : "Fast strobe"
		9 : "Slow strobe"
	]
	pattern(string) : "Custom Appearance"
]

@PointClass iconsprite("sprites/sun.spr") = light_environment : "Environment" 
[
	pitch(integer) : "Pitch" : 0
	_light(color255) : "Brightness" : "255 255 128 200"
]

@SolidClass base(Door) = momentary_door : "Momentary/Continuous door" 
[
	spawnflags(flags) =
	[
		1 : "Starts Open" : 0
	]
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = meteor_god : "Meteor God" 
[
	typestreak(integer) : "Ratio of Streakers" : 1
	typelarge(integer) : "Ratio of Large Meteors" : 1
	typesmall(integer) : "Ratio of Small Meteors" : 1
	dropsizex(string) : "Half X Distance" : "0"
	dropsizey(string) : "Half Y Distance" : "0"
	mindropfreq(string) : "Min Drop Frequency in Seconds" : "1"
	maxdropfreq(string) : "Max Drop Frequency in Seconds" : "5"
	pitch(string): "Pitch" : "-90"
	debris(choices) : "Debris Dropped" : 1 =
	[
		1 : "No Debris"
		2 : "Debris"
	]
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = meteor_target : "Target Meteor" 
[
	pitch(string) : "Pitch" : "-90"
	heightabove(string) : "Height Above" : "4096"
	type(choices) : "Meteor Type" : 2 =
	[
		0 : "Streak"
		1 : "Small"
		2 : "Large"
	]
]

@SolidClass base(RenderFields, Targetname) = momentary_rot_button : "Direct wheel control" 
[
	target(target_destination) : "Targetted object"
	speed(integer) : "Speed" : 50
	master(string) : "Master" 
	sounds(choices) : "Sounds" : 0 = 
	[
		0: "None"
		1: "Big zap & Warmup"
		2: "Access Denied"
		3: "Access Granted"
		4: "Quick Combolock"
		5: "Power Deadbolt 1"
		6: "Power Deadbolt 2"
		7: "Plunger"
		8: "Small zap"
		9: "Keycard Sound"
		21: "Squeaky"
		22: "Squeaky Pneumatic"
		23: "Ratchet Groan"
		24: "Clean Ratchet"
		25: "Gas Clunk"
	]
	distance(integer) : "Distance (deg)" : 90
	returnspeed(integer) : "Auto-return speed" : 0
	spawnflags(flags) =
	[
		1: "Door Hack" : 0
		2: "Not useable" : 0
		16: "Auto Return" : 0
		64: "X Axis" : 0
		128: "Y Axis" : 0
	]
	_minlight(integer) : "_minlight"
	angles(string) : "Pitch Yaw Roll (Y Z X)" : "0 0 0"
]

//
// monsters
//
//Monsters

@PointClass base(Monster) size(-16 -16 0, 16 16 40) = monster_beak : "Xenome Beak" []
@PointClass base(Monster) size(-4 -4 -4, 4 4 4) = monster_cricket : "Cricket"
[
        _skin(integer) : "_skin" : 0
]

@PointClass base(Monster) size( -48 -48 0, 48 48 64 ) = monster_critter : "Xenome Critter" []

@PointClass base(Monster) size(-12 -12 -12, 12 12 12) = monster_darttrap : "DartTrapShooter"
[
	dartcount(integer) : "Darts to fire(-1 is infinite)" : -1
	timebetweenshots(string) : "Frequency of firing" : "0.1"
	spread(integer) : "spread in degrees" : 10
]

@PointClass base(Monster) size(-5 -5 0, 5 5 2) = monster_dragonfly : "Dragon Fly" []

@PointClass base(Monster, RenderFields) size(-16 -16 -36, 16 16 36) = monster_flashlight : "Monster With Flashlight" 
[
	spawnflags(Flags) = 
	[
		4 : "Not solid"	: 0
		32 : "Point entity" : 0
	]
	model(studio) : "model"
	body(Integer) : "Body" : 0
]

@PointClass base(Monster) size(-48 -48 0, 48 48 300) = monster_endboss : "Monster EndBoss" []

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_furniture : "Monster Furniture" 
[
	model(studio) : "model"

]

@PointClass base(Monster) size(-35 -35 -48, 35 35 -35) = monster_gator : "Animal Gator" []

@PointClass base(Monster, RenderFields) size(-16 -16 -36, 16 16 36) = monster_generic : "Generic Script Monster" 
[
	spawnflags(Flags) = 
	[
		4 : "Not solid"	: 0
		32 : "Point entity" : 0
	]
	model(studio) : "model"
	body(Integer) : "Body" : 0
]

@PointClass base(Monster) size(-32 -32 0, 32 32 150) = monster_gunner_friendly : "Monster Gunner Friendly"[]

@PointClass base(Monster) size(-25 -25 -20, 1 1 2) = monster_hatchetfish : "Hatchetfish"
[
	skin(choices) : "Skin" : 0 =
	[
      	0: "Light"
		1: "Dark"
	]
]

@PointClass base(Monster) size(-50 -50 -45, 50 50 50) = monster_hiveback : "Xenome Hiveback" []

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_bandit : "Human Bandit"
[
	StartDrawn(Choices) : "Gun Drawn" : 1 =
        [
		2 : "No"
		1 : "Yes"
        ]

MechaGunBandit(Choices) : "Is a MechBandit" : 0 =
[
	0 : "No"
	1 : "Yes"
]

      body(Choices) : "Head" : 0 =
        [
		0 : "Random"
		1 : "Original"
		2 : "Bandana"
		3 : "Tail"
		4 : "Pilot"
		5 : "!!Headless!!"
        ]
]

@PointClass base(Monster) size(-360 -360 -172, 360 360 8) = monster_human_chopper : "bandit chopper" 
[
        spawnflags(Flags) = 
        [
                8 : "NoWreckage"        : 0
                64 : "Start Inactive" : 0
        ]
]

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_demoman : "Human Demoman" []


@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_gunman : "Human Gunman Friendly"
[
	healthvalue(integer) : "Heath" : 100

	gunstate(Choices) : "Gun state" : 1 =
	[
		1 : "Drawn"
		2 : "None"
	]

	gn_answer(string) : "Answer Group" : "" 
	gn_question(string) : "Question Group" : ""
	gn_idle(string) : "Idle Talk Group" : ""
	gn_stare(string) : "Player Staring at me Group" : ""
	gn_use(string) : "Player Used Me Group" : ""
	gn_unuse(string) : "Player Used Me Again" : ""
	gn_stop(string) : "Can't Do it" : ""
	gn_noshoot(string) : "Friendly, Don't shoot Group" : "GN_DONTSHOOT"
	gn_hello(string) : "Hello Player Group" : ""
	gn_plhurt1(string) : "You are Very Hurt Group" : ""
	gn_plhurt2(string) : "You are Pretty Hurt Group" : ""
	gn_plhurt3(string) : "You are Hurt a Bit Group" : ""
	gn_phello(string) : "Predisaster Hello Group" : ""
	gn_pidle(string) : "Predisaster Idle Group" : ""
	gn_pquestion(string) : "Predisaster Question Group" : ""
	gn_smell(string) : "Talk About Smell Group" : ""
	gn_wound(string) : "I was hurt Group" : ""
	gn_mortal(string) : "I was Very Hurt Group" : ""
	gn_kill(string) : "I just killed something Group" : ""
	gn_attack(string) : "I see one! Group" : ""
]

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_scientist : "Human Evil Scientist" 
[
	skin(Choices) : "Suit Color" : 0 =
	[
		0 : "White Suit"
		1 : "Red Suit"
		2 : "Bloody"
	]
]

@PointClass base(Monster) size(-16 -16 0, 16 16 72) = monster_human_unarmed : "Unarmed Gunman"
[
	gunstate(Choices) : "Gun state" : 0 =
	[
		0 : "Holstered"
		1 : "Drawn"
		2 : "None"
	]
 
	gn_answer(string) : "Answer Group" : "" 
	gn_question(string) : "Question Group" : ""
	gn_idle(string) : "Idle Talk Group" : ""
	gn_stare(string) : "Player Staring at me Group" : ""
	gn_use(string) : "Player Used Me Group" : ""
	gn_unuse(string) : "Player Used Me Again" : ""
	gn_stop(string) : "Can't Do it" : ""
	gn_noshoot(string) : "Friendly, Don't shoot Group" : "GN_DONTSHOOT"
	gn_hello(string) : "Hello Player Group" : ""
	gn_plhurt1(string) : "You are Very Hurt Group" : ""
	gn_plhurt2(string) : "You are Pretty Hurt Group" : ""
	gn_plhurt3(string) : "You are Hurt a Bit Group" : ""
	gn_phello(string) : "Predisaster Hello Group" : ""
	gn_pidle(string) : "Predisaster Idle Group" : ""
	gn_pquestion(string) : "Predisaster Question Group" : ""
	gn_smell(string) : "Talk About Smell Group" : ""
	gn_wound(string) : "I was hurt Group" : ""
	gn_mortal(string) : "I was Very Hurt Group" : ""
	gn_kill(string) : "I just killed something Group" : ""
	gn_attack(string) : "I see one! Group" : ""
] 

@PointClass base(Monster) size(-24 -24 0, 24 24 36) = monster_largescorpion : "Animal Large Scorpion"
[
        _skin(integer) : "_skin" : 0
]

@PointClass base(Monster, RenderFields) size(-16 -16 -36, 16 16 36) = monster_tank : "Scripted Tank" 
[
	spawnflags(Flags) = 
	[
		4 : "Not solid"	: 0
		32 : "Point entity" : 0
	]
]

@PointClass base(Monster) size(-360 -360 -172, 360 360 8) = monster_manta : "Manta ship script bombs" []

@PointClass base(Monster) size(-16 -16 -16, 16 16 16) = monster_microraptor : "Small raptor" []
@PointClass base(Monster) size(-40 -40 -5, 40 40 60) = monster_ourano : "Animal Ourano" []
@PointClass base(Monster) size(-70 -70 -40, 70 70 60) = monster_penta : "Animal Pentaceratops" []
@PointClass base(Monster) size(-32 -32 -45, 32 32 20) = monster_raptor : "Animal Raptor"
[
	skin(choices) : "Skin" : 0 =
	[
      	0: "Green"
	1: "Red"
	]
]

@PointClass base(Monster) size(-16 -16 -16, 16 16 16) = monster_rustbattery: "Rust Rustbattery" []
@PointClass base(Monster) size(-36 -36 -5, 36 36 40) = monster_rustbit : "Rust Rustbit" []
@PointClass base(Monster) size(-36 -36 -5, 36 36 40) = monster_rustbit_friendly : "Friendly Rust Rustbit"[]
@PointClass base(Monster) size(-36 -36 -16, 36 36 48) = monster_rustbot : "Rust Rustbot" []
@PointClass base(Monster) size(-36 -36 -16, 36 36 48) = monster_rustbot_friendly : "Friendly Rust Rustbot"[]

@PointClass base(Monster) size(-64 -64 0, 64 64 64) = monster_rustflier : "Rust Flier"
[
	// Allow the mapper to set the shield status
	startshieldstate(Choices) : "Starting state of Shield" : 1 =
	[
		0 : "Off"
		1 : "On"
	]

	targetdamage(string) : "Target and die when this damage is taken at once" : "10000"
	deathpath(string) : "Name of path to fly to when killed" : ""
	timetillcrash(string) : "Time till we want to reach death point" : "10"
	deathangle(string) : "Angle be at when we reach deathpath" : "0 0 0"
	triggerondeath(string) : "Triggered when killed" : ""
]

@PointClass base(Monster) size(-45 -45 0, 45 45 140) = monster_rustgunr : "Rust Gunner" []
@PointClass base(Monster, TalkMonster) size(-16 -16 0, 16 16 72) = monster_scientist : "Scared Scientist" 
[
	knife(integer) : "Knife" : 0

	skin(Choices) : "Suit Color" : 0 =
	[
		0 : "White Suit"
		1 : "Red Suit"
		2 : "Bloody"
	]

	clearvoice(Choices) : "Clear Voice Channel On Scared" : 0 =
	[
		0 : "Don't clear channels"
		1 : "Clear on scared"
	]

	blocksound(Choices) : "Responds to sounds" : 0 =
	[
		0 : "Normal Sound Response"
		1 : "No Sound Response"
	]
	
	body(Choices) : "Body" : -1 =
	[
		-1 : "Random"
		0 : "Young"
		1 : "Bald"
		2 : "Beard"
		3 : "Mask"
	]

	sc_answer(string) : "Answer Group" : "" 
	sc_question(string) : "Question Group" : ""
	sc_idle(string) : "Idle Talk Group" : ""
	sc_stare(string) : "Player Staring at me Group" : ""
	sc_use(string) : "Player Used Me Group" : ""
	sc_unuse(string) : "Player Used Me Again" : ""
	sc_stop(string) : "Can't Do it" : ""
	sc_noshoot(string) : "Don't shoot Group" : "SC_DONTSHOOT"
	sc_hello(string) : "Hello Player Group" : ""
	sc_plhurt1(string) : "You are Very Hurt Group" : ""
	sc_plhurt2(string) : "You are Pretty Hurt Group" : ""
	sc_plhurt3(string) : "You are Hurt a Bit Group" : ""
	sc_phello(string) : "Predisaster Hello Group" : ""
	sc_pidle(string) : "Predisaster Idle Group" : ""
	sc_pquestion(string) : "Predisaster Question Group" : ""
	sc_smell(string) : "Talk About Smell Group" : ""
	sc_wound(string) : "I was hurt Group" : ""
	sc_mortal(string) : "I was Very Hurt Group" : ""
	sc_kill(string) : "I just killed something Group" : ""
	sc_attack(string) : "I see one! Group" : ""
]

@PointClass base(Monster, Angles) size(-32 -32 0, 32 32 64) = monster_sentry : "Sentry Turret Gun"
[
	spawnflags(Flags) = 
	[
		32 : "Autostart" : 0
		64 : "Start Inactive" : 0
	]
]

@PointClass base(Monster, Angles) size(-16 -16 0, 16 16 32) = monster_sentry_mini : "Small Sentry Turret Gun"
[
	spawnflags(Flags) = 
	[
		32 : "Autostart" : 0
		64 : "Start Inactive" : 0
	]
]

@PointClass base(Monster) size(-14 -14 22, 14 14 72) = monster_sitting_scientist : "Sitting Scientist" 
[
      body(Choices) : "Body" : -1 =
        [
		-1 : "Random"
		0 : "Young"
		1 : "Bald"
		2 : "Beard"
		3 : "Mask"
        ]
]

@PointClass base(Monster) size(-12 -12 0, 12 12 24) = monster_scorpion : "Animal Scorpion"
[
        _skin(integer) : "_skin" : 0
]
@PointClass base(Monster) size(-12 -12 -12, 12 12 12) = monster_targetrocket : "On Targeting, FireRocketAtTarget"[]
@PointClass base(Monster) size(-16 -16 0, 16 16 40) = monster_trainingbot : "Training bot" 
[
	spawnflags(Flags) = 
	[
		1024 : "No Distortion Rings" : 0
	]

]
@PointClass base(Monster) size(-32 -32 -28, 32 32 24) = monster_tube : "Xenome Tube" []
@PointClass base(Monster)  size( -12 -12 -16, 12 12 24) = monster_tube_embryo : "TubeEmbryo"[]
@PointClass base(Monster) size(-32 -32 0, 32 32 50) = monster_xenome : "Xenome Xenome" []
@PointClass base(Monster)  size( -6 -6 -6, 6 6 12) = monster_xenome_embryo : "XenomeEmbryo"[]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = monstermaker : "Monster Maker"
[
	target(string) : "Target On Release" 
	monstertype(string) : "Monster Type"
	netname(string) : "Childrens' Name"
	spawnflags(Flags) = 
	[
		1 : "Start ON" 	: 0
	// 	2 : "PVS On/Off" : 0  // not implemented
		4 : "Cyclic" : 0
		8 : "MonsterClip" : 0
		16: "Warp In Effect" : 0
		32: "Dont Fall to Ground" : 0
	]

	// how many monsters the monstermaker can create (-1 = unlimited)
	monstercount(integer) : "Number of Monsters" : -1
	
	// if delay is -1, new monster will be made when last monster dies.
	// else, delay is how often (seconds) a new monster will be dookied out.
	delay(string) : "Frequency" : "5"

	// maximum number of live children allowed at one time. (New ones will not be made until one dies)
	// -1 no limit
	m_imaxlivechildren(integer) : "Max live children" : 5

	// give the mappers a way of sying directly if a monster fades or not
	fadestatus(Choices) : "Fade on Death" : -1 =
	[
		-1 : "Default Handling"
		0 : "Dont Fade"
		1 : "Fade"
	]
	
	// skin option for setting childrens skin
	_skin(integer) : "Childrens Skin" : 0
]

@PointClass base(Targetname) color(255 128 0) = multi_manager : "MultiTarget Manager" 
[
	spawnflags(Flags) = 
	[
		1 : "multithreaded" : 0
	]
]

@PointClass base(Targetname, Target) color(128 255 128) = multisource : "Multisource"
[
	globalstate(string) : "Global State Master"
]

@PointClass base(Targetname) size(16 16 16) color(247 181 82) = path_corner : "Moving platform stop"
[
	spawnflags(Flags) =
	[
		1: "Wait for retrigger" : 0
		2: "Teleport" : 0
		4: "Fire once" : 0
	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass"
	wait(integer) : "Wait here (secs)" : 0
	speed(integer) : "New Train Speed" : 0
	yaw_speed(integer) : "New Train rot. Speed" : 0
	angles(string) : "X Y Z angles" 
]

@PointClass base(Targetname) size(16 16 16) = path_track : "Train Track Path"
[
	spawnflags(Flags) =
	[
		1: "Disabled" : 0
		2: "Fire once" : 0
		4: "Branch Reverse" : 0
		8: "Disable train" : 0
		16: "Teleport" : 0

	]
	target(target_destination) : "Next stop target"
	message(target_destination) : "Fire On Pass"
	altpath(target_destination) : "Branch Path"
	netname(target_destination) : "Fire on dead end"
	speed(integer) : "New Train Speed" : 0
]

//
// player effects
//

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_giveitems : "give player weapons" 
[
	spawnflags(Flags) =
	[
		1: "Fists" : 0
		2: "Pistol" : 0
		4: "Sniper" : 0
		8: "Shotgun" : 0
		16: "Mechagun" : 0
		32: "Coolers" : 0
		64: "Beamgun" : 0
		128: "Dml" :   0
		256: "Chemgun" : 0
		512: "Aicore" : 0
		1024: "Armor" : 0
		2048: "Healthkit1" : 0
		4096: "Healthkit2" : 0
		8192: "Healthkit3" : 0
		16384: "Healthkit4" : 0
	]
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_loadsaved : "Load Auto-Saved game" 
[
	duration(string) : "Fade Duration (seconds)" : "2"
	holdtime(string) : "Hold Fade (seconds)" : "0"
	renderamt(integer) : "Fade Alpha" : 255
	rendercolor(color255) : "Fade Color (R G B)" : "0 0 0"
	messagetime(string) : "Show Message delay" : "0"
	message(string) : "Message To Display" : ""
	loadtime(string) : "Reload delay" : "0"
]


@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_speaker : "Player Speaker" 
[
	sentencegroup(string) : "Name of group to play" : "!GENERAL1"
	sentencelength(string) : "Length of sentence" : "5.0"
]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_togglehud : "Player Toggle Hud"[]

@PointClass base(Targetname) size(-16 -16 -16, 16 16 16) = player_weaponstrip : "Strips player's weapons" []

@PointClass iconsprite("sprites/speaker.spr") = random_speaker : "Random Time Wav Player"
[
        rsnoise(sound) : "Path/filename.wav of WAV"
        volume(string) : "Volume (0 to 1)" : "1"
        wait(string) : "Minimum time for sound repetition" : "10"
        random(string) : "Random % of this added to wait" : "20"
]

@PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 16) = random_trigger : "Random Trigger"
[
	start_state(Choices) : "Start State" : 0 =
	[
		0 : "Off"
		1 : "On" 
	]
	wait(string) : "Min Random Time" : "5"
	random_min(string) : "Min Random Time Added" : "5"
	random_max(string) : "Max Random Time Added" : "10"
]

@PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = scripted_sentence : "Scripted Sentence"
[
	spawnflags(Flags) = 
	[
		1 : "Fire Once" 	: 1
		2 : "Followers Only"	: 0
		4 : "Interrupt Speech"	: 1
		8 : "Concurrent"	: 0
	]
	sentence(string) : "Sentence Name" : ""
	entity(string) : "Speaker Type"
	duration(string) : "Sentence Time" : "3"
	radius(integer) : "Search Radius" : 512
	refire(string) : "Delay Before Refire" : "3"
	listener(string) : "Listener Type"
	volume(string) : "Volume 0-10" : "10"
	attenuation(Choices) : "Sound Radius" : 0 =
	[
		0 : "Small Radius"
		1 : "Medium Radius"
		2 : "Large  Radius"
		3 : "Play Everywhere"
	]
]

@PointClass base(Targetname, Targetx) size(-16 -16 0, 16 16 72) color(255 0 255) = scripted_sequence : "Scripted Sequence"
[
	m_iszEntity(string) : "Target Monster"
	m_iszPlay(string) : "Action Animation" : ""
	m_iszIdle(string) : "Idle Animation" : ""
	m_flRadius(integer) : "Search Radius" : 512
	m_flRepeat(integer) : "Repeat Rate ms" : 0
	m_fMoveTo(choices) : "Move to Position" : 0 =
	[
		0 : "No"
		1 : "Walk"
		2 : "Run"
		4 : "Instantaneous"
		5 : "No - Turn to Face"
		6 : "walk and face player"
		7 : "run and face player"
		8 : "turn and face player"
		
	]
	spawnflags(Flags) = 
	[
		4 : "Repeatable"	: 0
		8 : "Leave Corpse"	: 0
		32: "No Interruptions"	: 0
		64: "Override AI"	: 0
		128: "No Script Movement" : 0
	]
]

@PointClass iconsprite("sprites/speaker.spr") base(Targetname) = speaker : "Announcement Speaker"
[
	preset(choices) :"Announcement Presets" : 0 =
	[
		0: "None"
		1: "C1A0 Announcer"
		2: "C1A1 Announcer"
		3: "C1A2 Announcer"
		4: "C1A3 Announcer"
		5: "C1A4 Announcer"  
		6: "C2A1 Announcer"
		7: "C2A2 Announcer"
		// 8: "C2A3 Announcer"
		9: "C2A4 Announcer"
		// 10: "C2A5 Announcer"
		11: "C3A1 Announcer"
		12: "C3A2 Announcer"
	]
	message(string) : "Sentence Group Name"
	health(integer) : "Volume (10 = loudest)" : 5
	spawnflags(flags) =
	[
		1: "Start Silent" : 0
	]
]

@PointClass base(Targetname) = sphere_explosion : "Exposion Effect Entity"
[
	maxradius(string) : "Length of Effect" : "200"
	radiusstep(integer) : "Speed of Expansion" : 4
	trans(integer) : "Starting transparency of sphere" : 255
	transstep(integer) : "Speed of Fade out" : 5
	numtracers(choices) : "Tracers" : 1 =
	[
		0 : "No tracers"
		1 : "15 tracers"
	]

	shockwave(choices) : "Ring" : 1 =
	[
		0 : "No ring"
		1 : "ring"
	]

	implosion(choices) : "Implosion" : 0 =
	[
		0 : "No implosion"
		1 : "Imposion"
	]

	shakeduration(integer) : "Length of shake" : 0
	fadeholdtime(string) : "time between fades" : "0.1"
	fadetime(string) : "time till fade in (0 for never)" : 0
]

@PointClass iconsprite("sprites/speaker.spr") = targ_speaker : "targeted Time Wav Player"
[
        targetname(target_source) : "Name" 
        tsnoise(sound) : "path/name.wav" : "path/name.wav"
        volume(string) : "Volume (0 to 1)" : "1"
]

@PointClass base(Targetname) = target_cdaudio : "CD Audio Target"
[
	health(choices) : "Track #" : -1 =
	[
		-1 : "Stop"
		1 : "Track 1"
		2 : "Track 2"
		3 : "Track 3"
		4 : "Track 4"
		5 : "Track 5"
		6 : "Track 6"
		7 : "Track 7"
		8 : "Track 8"
		9 : "Track 9"
		10 : "Track 10"
		11 : "Track 11"
		12 : "Track 12"
		13 : "Track 13"
		14 : "Track 14"
		15 : "Track 15"
		16 : "Track 16"
		17 : "Track 17"
		18 : "Track 18"
		19 : "Track 19"
		20 : "Track 20"
		21 : "Track 21"
		22 : "Track 22"
		23 : "Track 23"
		24 : "Track 24"
		25 : "Track 25"
		26 : "Track 26"
		27 : "Track 27"
		28 : "Track 28"
		29 : "Track 29"
		30 : "Track 30"
	]
	radius(string) : "Player Radius"
]

//
// Triggers
//

@PointClass base(Targetx) = trigger_auto : "AutoTrigger"
[
	spawnflags(Flags) =
	[
		1 : "Remove On fire" : 1
	]
	globalstate(string) : "Global State to Read"
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0 : "Off"
		1 : "On"
		2 : "Toggle"
	]
]

@SolidClass base(Targetname) = trigger_autosave : "AutoSave Trigger"
[
	master(string) : "Master" 
]



@PointClass base(Targetx, Targetname) = trigger_camera : "Trigger Camera" 
[
	wait(integer) : "Hold time" : 10
	moveto(string) : "Path Corner"
	spawnflags(flags) =
	[
		1: "Start At Player" : 1
		2: "Follow Player" : 1
		4: "Freeze Player" : 0
	]
	speed(string) : "Initial Speed" : "0"
	acceleration(string) : "Acceleration units/sec^2" : "500"
	deceleration(string) : "Stop Deceleration units/sec^2" : "500"
	instantangle(choices) : "Instant Angle" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
	overridehack(choices) : "Override Hack" : 0 =
	[
		0 : "No"
		1 : "Yes"
	]
]


@SolidClass base(Targetname) = trigger_cdaudio : "Trigger CD Audio"
[
	health(choices) : "Track #" : -1 =
	[
		-1 : "Stop"
		1 : "Track 1"
		2 : "Track 2"
		3 : "Track 3"
		4 : "Track 4"
		5 : "Track 5"
		6 : "Track 6"
		7 : "Track 7"
		8 : "Track 8"
		9 : "Track 9"
		10 : "Track 10"
		11 : "Track 11"
		12 : "Track 12"
		13 : "Track 13"
		14 : "Track 14"
		15 : "Track 15"
		16 : "Track 16"
		17 : "Track 17"
		18 : "Track 18"
		19 : "Track 19"
		20 : "Track 20"
		21 : "Track 21"
		22 : "Track 22"
		23 : "Track 23"
		24 : "Track 24"
		25 : "Track 25"
		26 : "Track 26"
		27 : "Track 27"
		28 : "Track 28"
		29 : "Track 29"
		30 : "Track 30"
	]
]

@SolidClass = trigger_changelevel : "Trigger: Change level"
[
	targetname(string) : "Name"
	map(string) : "New map name"
	landmark(string) : "Landmark name"
	changetarget(target_destination) : "Change Target"
	changedelay(string) : "Delay before change target" : "0"
	spawnflags(flags) =
	[
		1: "No Intermission" : 0
		2: "USE Only" : 0
	]
]

@PointClass base(Targetx, Targetname) = trigger_changetarget : "Trigger Change Target"
[
	m_iszNewTarget(string) : "New Target"
]

@PointClass base(Trigger, Targetname) = trigger_counter : "Trigger counter" 
[
	spawnflags(flags) = 
	[ 
		1 : "No Message" : 0 
	]
	master(string) : "Master" 
	count(integer) : "Count before activation" : 2
]

@SolidClass base(Targetname) = trigger_endsection : "EndSection Trigger"
[
	section(string) : "Section"
	spawnflags(flags) =
	[
		1: "USE Only" : 0
	]
]

@SolidClass base(Trigger) = trigger_gravity : "Trigger Gravity"
[
	gravity(integer) : "Gravity (0-1)" : 1
]

@PointClass base(Trigger) = trigger_gunmanteleport : "Trigger Gunman Teleport" []
@SolidClass base(Targetname,Target) = trigger_hurt : "Trigger player hurt" 
[
	spawnflags(flags) = 
	[ 
		1: "Target Once" : 0 
		2: "Start Off" : 0
		8: "No clients" : 0
		16:"FireClientOnly" : 0
		32:"TouchClientOnly" : 0
	]
	master(string) : "Master" 
	dmg(integer) : "Damage" : 10
	delay(string) : "Delay before trigger" : "0"
	damagetype(choices) : "Damage Type" : 0 =
	[
		0 : "GENERIC"
		1 : "CRUSH"
		2 : "BULLET"
		4 : "SLASH"
		8 : "BURN"
		16 : "FREEZE"
		32 : "FALL"
		64 : "BLAST"
		128 : "CLUB"
		256 : "SHOCK"
		512 : "SONIC"
		1024 : "ENERGYBEAM"
		16384: "DROWN"
		32768 : "PARALYSE"
		65536 : "NERVEGAS"
		131072 : "POISON"
		262144 : "RADIATION"
		524288 : "DROWNRECOVER"
		1048576 : "CHEMICAL"
		2097152 : "SLOWBURN"
		4194304 : "SLOWFREEZE"
	]
]

@SolidClass = trigger_monsterjump : "Trigger monster jump" 
[
	master(string) : "Master" 
	speed(integer) : "Jump Speed" : 40
	height(integer) : "Jump Height" : 128
]

@SolidClass base(Trigger) = trigger_multiple : "Trigger: Activate multiple" 
[
	wait(integer) : "Delay before reset" : 10
]

@SolidClass base(Trigger) = trigger_once : "Trigger: Activate once" []

@SolidClass base(Trigger) = trigger_push : "Trigger player push"
[
	spawnflags(flags) = 
	[ 
		1: "Once Only" : 0 
		2: "Start Off" : 0
	]
	speed(integer) : "Speed of push" : 40
]

@PointClass base(Targetname, Targetx) = trigger_relay : "Trigger Relay"
[
	spawnflags(flags) =
	[
		1: "Remove On fire" : 0
	]
	triggerstate(choices) : "Trigger State" : 0 = 
	[
		0: "Off"
		1: "On"
		2: "Toggle"
	]
]


@SolidClass base(Trigger) = trigger_tank : "Tank Trigger"[]
@SolidClass base(Trigger) = trigger_tankoutofgas : "Tank Trigger out of Gas"[]
@SolidClass base(Trigger) = trigger_tankshell : "TankShellTriggered"[]
@SolidClass base(Trigger) = trigger_teleport : "Trigger teleport" []
@SolidClass base(Targetname) = trigger_transition : "Trigger: Select Transition Area" []
@SolidClass base(Trigger) = trigger_teleport : "Trigger teleport" []
@SolidClass base(Targetname) = trigger_transition : "Trigger: Select Transition Area" 
[
	landmark(string) : "Landmark name"
]

@PointClass = vehicle_tank: "Vehicle_tank"
[
	vehicle_id(integer) : "Tank Id" : 1
	spawnflags(flags) =
	[
		1 : "No Turret Weapons"  : 0
		2 : "No Machine Guns"    : 0
	]
	vehicle_volume(string) : "Volume Adj Value (0 to 1)" : "1"
]
//
// weapons
//

@PointClass base(Weapon, Targetx, Angles) = weapon_fists : "Fists" []
@PointClass base(Weapon, Targetx, Angles) = weapon_beamgun : "BeamGun" []
@PointClass base(Weapon, Targetx, Angles) = weapon_dml : "DualMissileLauncher" []
@PointClass base(Weapon, Targetx, Angles) = weapon_gausspistol : "Gauss Pistol" []
@PointClass base(Weapon, Targetx, Angles) = weapon_minigun : "MiniGun" []
@PointClass base(Weapon, Targetx, Angles) = weapon_shotgun : "Shotgun" []
@PointClass base(Weapon, Targetx, Angles) = weapon_SPchemicalgun : "ChemGun" []
@PointClass base(Weapon, Targetx, Angles) = weapon_aicore : "AI Core Pickup" []