//=============================================================================
// ENTITIES DEF file
// 
// MOD    : AD v1.80 - (Arcane Dimensions)
// Date   : September 2020
// Author : Simon "Sock" OCallaghan
// Website: www.simonoc.com
// Editor : GTK Radiant 1.3+, Trenchbroom 1 & 2
// Notes  : Has some of the latest compiler options
//
//=============================================================================
//
//=============================================================================
//
// WORLDSPAWN
//
//=============================================================================
/*QUAKED worldspawn (0 0 0) ? x
Unique entity in every map (read only in QC)
-------- KEYS --------
worldtype   : World type 0 = medieval, 1 = metal, 2 = base
wad         : list of Wad Files used by compiler (; for separation)
sounds      : CD Music track to play (4-11, 12+ custom tracks)
message     : Title of map

light       : Ambient light level (eg 5) 
sky         : 6 sided cube for sky brushes (night_)
_range      : Scales brightness range of all lights (useful for dirt)
_dist       : Scales the fade distance of all lights by a factor of n
_anglescale : Scaling factor for how much influence the angle of incidence
_gamma      : Adjust brightness of final lightmap

_sunlight          : Brightness of SUN (eg 100)
_sunlight_color    : Red/Green/Blue (0.78 0.86 1.00)
_sunlight_mangle   : Angle of sunlight (eg 0 -90 0)
_sun_mangle        : Duplicate version of sunlight_mangle
_sunlight_penumbra : Penumbra width, in degrees, of sunlight
_sunlight_dirt     : 1 = enables dirt mapping on sun

// Ambient bounce light (multiple suns in a dome)
_sunlight2       : Second SUN (eg 100)
_sunlight2_color : Red/Green/Blue (0.78 0.86 1.00)
_sunlight2_dirt  : 1 = enables dirt mapping on sun 2
_sunlight3       : Third SUN! (ask MFX)

_dirt          : 1 = enables dirtmapping (ambient occlusion) on all lights
_dirtmode      : Choose between ordered (def=0) and randomized (1)
_dirtscale     : Scale factor used in dirt calculations, def=1
_dirtgain      : Exponent used in dirt calculation, def=1
_dirtdepth     : Maximum depth of occlusion checking, def=128
_minlight_dirt : 1 enables dirtmapping (ambient occlusion) on minlight
compilerstyle_start : starting point for target lights (set by compiler)

gravity        : gravity of map (default = 800)
fog            : console command (Den/R/G/B - '0.05 0.3 0.3 0.3')
fog_density    : Trigger fog starting density (default = 0.1)
fog_colour     : Trigger fog starting colour (default = 0.1 0.1 0.1)
fog_dpextra    : extra DP fog parameters, default - '1 0 8192 1024 32'
skyfog_density : Trigger skyfog starting density (default = 0.5)
water_alpha    : Water Alpha, default - 1.00
particlemax    : Amount of ACTIVE particles per map
playerweather  : Name of weather effect active above player

passive_state     : All monsters are setup in a passive state 1=ON
no_item_offset    : All ammo/heal items use central point rotation
no_item_rotate    : Not used anymore (keep for legacy reasons)
no_zaware         : Switch OFF zaware monster attacks
no_sgprojectile   : Switches OFF ALL shotgun projectiles
no_sgcasing       : Switches OFF ALL shotgun casings
no_liquiddmg      : Switch OFF liquid (slime/lava) monster damage
no_trackondeath   : Homing missiles stop tracking when monster dead (1=active)
hazard_dmg        : Hazard damage override for map (water=2/slime=4/lava=10)
knight_defskin    : Default skin (0-3) type for new knight model
bodyflrcheck      : All monster dead body check floor for gravity
bodyfadeaway      : All monster dead bodies fade away
sprite_particles  : Switch all custom particles to sprites (builtin excluded)
no_bigprojectiles : Switches OFF large player projectiles size
no_surfacecheck   : Stops surface checks for sky brushes (Very large maps only)
mapvar_update     : Update map variables (Range X->Y=Z)
ckeyhint          : Arcane key Inventory message 1=SUPPRESS (no msg to player)

jump_height     : Player jump height (def=270) initial boast from standing still
fall_speedlow   : Fall speed for any checks (def=-300) must be negative no.
fall_speedhigh  : Fall speed for damage checks (def=-650) must be negative no.
fall_speeddebug : Display players fall velocity to console (1=ON, -1=OFF)
fall_dmg        : Fall damage for player (def=5, -1=no dmg/sound)
fall_dmgwater   : Fall damage into water (>0 for dmg/sound, -1=no dmg/sound)

upgrade_axe     : Upgrade Axe -1=remove on spawn, 1=enable
upgrade_ghook   : Upgrade Grapple Hook -1=remove on spawn, 1=enable
upgrade_ssg     : Upgrade Super Shotgun -1=remove on spawn, 1=enable
upgrade_lg      : Upgrade Lightning Gun -1=remove on spawn, 1=enable

give_weapons    : Bit flag for which weapons to give to the player
take_weapons    : 1=SG, 2=SSG, 4=NG, 8=SNG, 16=GL, 32=RL, 64=LG (excludes Axe)
no_axestart     : Removes axe and all weapons on start of map!
max_health      : Update player health if below this value
reset_health    : Reset player health to this value (1-100)
player_health   : Max/Mega/Skill (1=Easy,2=Normal,4=Hard,8=NM,15=All)
bleeding_dmg    : Percentage reduction / HoT Qty / Initial pause
currentammo     : =1 reset inventory, =0 minimum values
ammo_shells     : Setup starting shell quanity (reset/minimum)
ammo_nails      : Setup starting nails quanity (reset/minimum)
ammo_rockets    : Setup starting rockets quanity (reset/minimum)
ammo_cells      : Setup starting cells quanity (reset/minimum)
armortype       : Armour type to start with 1=Green, 2=Yellow, 3=Red
armorvalue      : Quantity of armour to reset player (100/150/200)
plasmagun_dmg   : Plasma gun damage override (def=45 0 20)

gh_hookstyle    : 0=linear / 1=Boost movement of hook/client
gh_debugmove    : Show debug entities for grapple movement (-1=def)
gh_funchookonly : Only works with func grapple hook points
gh_hookearly    : Chain pulling start before hook attached
gh_maxdist      : Maximum distance grapple hook can travel
gh_hookspeed    : Forward momentum of hook (rocket spd+)
gh_pullspeed    : Forward momentum on chain (pulling forward)
gh_mindist      : Minimum distance to slowdown velocity
gh_minbeam      : Minimum distance to stop drawing beam
gh_dmg          : Damage to Player/Monsters/World (def=4 8 8)
gh_linechain    : Linear movement while on the chain
gh_jumpchain    : Jump movement to jumping off the chain
gh_boostchain   : Boost movement during swing/pull chain
gh_movemonster  : Monster movement when impacted by chain
*/

//=============================================================================
//
// AMBIENT SOUNDS
//
//=============================================================================
/*QUAKED ambient_custom_sound (0.5 0.1 0.8) (-16 -16 -8) (16 16 8) x PLAYONCE TRIGGER x x x STARTOFF x
Play a sound on a periodic basis
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : targets to trigger each time sound is played
volume  : volume of sound (default 1, capped at 1)
noise   : primary sound (ambience/windgust1a.wav)
noise1  : stop sound (anbience/switch_6off.wav)
noise2  : random sound (ambience/windgust1b.wav)
wait    : random time between sounds (default 20, =-1 no random element)
delay   : minimum time between sounds (default 2)
waitmin : Starting time (waitmin + random() x waitmin, =-1 no delay)
waitmin2: 1 = Will not silence any playing sound if switching off
impulse : channel on which to play sound (0-7) (0 automatic is default)
speed   : attenuation -1=no attenuation, 1=normal (default), 2=idle, 3=static, 4=quiet
-------- SPAWNFLAGS --------
PLAYONCE : When triggered plays once
TRIGGER  : Constantly waits for trigger events (retrigger)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Play a sound on a periodic basis
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_loop (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x x x x x x x x
Custom ambient (must be looped) sound, CANNOT toggle/switch state
-------- KEYS --------
volume : volume of sound (default 1, capped at 1)
noise : custom sound to play (looped)
-------- SPAWNFLAGS --------
-------- NOTES --------
Custom ambient (must be looped) sound, CANNOT toggle/switch state
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_comp_hum (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Computer sound.
*/
/*QUAKED ambient_drip (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Dripping sound.
*/
/*QUAKED ambient_drone (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Drone sound. (slipgate)
*/
/*QUAKED ambient_flouro_buzz (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Fluorescent light sound.
*/
/*QUAKED ambient_hum1 (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Teleporter Hum sound.
*/
/*QUAKED ambient_light_buzz (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Buzzing light.
*/
/*QUAKED ambient_suck_wind (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
ID Wind sound.
*/
/*QUAKED ambient_swamp1 (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Swamp sound 1.
*/
/*QUAKED ambient_swamp2 (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Swamp sound 2.
*/
/*QUAKED ambient_thunder (0.3 0.1 0.6) (-16 -16 -8) (16 16 8) x
Thunder sound.
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_water (0.3 0.6 1.0) (-16 -16 -8) (16 16 8) x
Play a LOOPED water sound
-------- KEYS --------
volume  : volume of sound (default 0.75)
noise : custom sound to play (default = ambience/water1.wav)
-------- SPAWNFLAGS --------
-------- NOTES --------
Play a LOOPED water sound
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_rain (0.0 0.0 1.0) (-16 -16 -8) (16 16 8) x
Play a rain sound (always starts off, must be triggered)
-------- KEYS --------
targetname : name of entity (once triggered will keep looping)
count   : Setup WAV file (1=long dripping, 2(default)=short downpour)
volume  : volume of sound (0.4=dripping, 0.5=downpour)
speed   : attenuation (dripping=2, downpour=1)
wait    : -1 Will loop with no pause (always set)
delay   : time of sound (6.9=dripping, 2.9=downpour)
-------- SPAWNFLAGS --------
-------- NOTES --------
Play a rain sound  (always starts off, must be triggered)
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_chime (0.9 0.9 0.0) (-16 -16 -8) (16 16 8) x PLAYONCE x x x x STARTOFF x
Play a CHIME sound on a periodic basis
-------- KEYS --------
targetname : trigger entity (works with entity state system)
volume  : volume of sound (default 1)
speed   : attenuation (default 2)
wait    : random time between sounds (default 10)
delay   : minimum time between sounds (default 10)
waitmin : Starting time (default = 10 + random() x 10)
-------- SPAWNFLAGS --------
PLAYONCE : When triggered plays once
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Play a CHIME sound on a periodic basis
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_rumble (0.4 0.4 0.4) (-16 -16 -8) (16 16 8) x PLAYONCE x x x x STARTOFF x
Play a RUMBLE sound on a periodic basis
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Setup WAV file (-1=random, 1-3, 0=def 1)
lefty   : 1 = Pick an alternative sound to randomly pick from
volume  : volume of sound (default 0.5)
wait    : random time between sounds (default 20)
delay   : minimum time between sounds (default 20)
waitmin : Starting time (default = 6 + random() x 6)
-------- SPAWNFLAGS --------
PLAYONCE : When triggered plays once
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Play a RUMBLE sound on a periodic basis
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_wind (0.8 0.8 1.0) (-16 -16 -8) (16 16 8) x PLAYONCE x x x x STARTOFF x
Play a WIND sound on a periodic basis
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Setup WAV file (-1=random, 1-6, 0=def 1)
lefty   : 1 = Pick an alternative sound to randomly pick from
speed   : attenuation (default 2)
wait    : random time between sounds (default 10)
delay   : minimum time between sounds (default 10)
waitmin : Starting time (default = 4 + random() x 4)
-------- SPAWNFLAGS --------
PLAYONCE : When triggered plays once
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Play a WIND sound on a periodic basis
*/

//-----------------------------------------------------------------------------
/*QUAKED ambient_custom_wood (0.5 0.3 0.0) (-16 -16 -8) (16 16 8) x PLAYONCE x x x x STARTOFF x
Play a WOOD sound on a periodic basis
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Setup WAV file (-1=random, 1-4, 0=def 1)
lefty   : 1 = Pick an alternative sound to randomly pick from
speed   : attenuation (default 2)
wait    : random time between sounds (default 20)
delay   : minimum time between sounds (default 20)
waitmin : Starting time (default = 8 + random() x 8)
-------- SPAWNFLAGS --------
PLAYONCE : When triggered plays once
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Play a WOOD sound on a periodic basis
*/

//=============================================================================
//
// INFO entities
//
//=============================================================================
/*QUAKED info_player_start (1 0 0) (-16 -16 -24) (16 16 24) x x x x x x x x Not_Easy Not_Normal Not_Hard Not_DM Dyn_Easy Dyn_Normal Dyn_Hard Dyn_Night
{ model(":progs/player.mdl"); }
DEFAULT starting point for a player
-------- KEYS --------
target : triggered target(s) when used as a client destination
angle  : Starting view angle
-------- SPAWNFLAGS --------
-------- NOTES --------
DEFAULT starting point for a player
*/

//-----------------------------------------------------------------------------
/*QUAKED info_player_startdev (1 1 0.5) (-16 -16 -24) (16 16 24) x x x x x x x x Not_Easy Not_Normal Not_Hard Not_DM Dyn_Easy Dyn_Normal Dyn_Hard Dyn_Night
{ model(":progs/player.mdl"); }
DEFAULT starting point for a DEVELOPER only
-------- KEYS --------
target : triggered target(s) when used as a client destination
angle  : Starting view angle
-------- SPAWNFLAGS --------
-------- NOTES --------
DEFAULT starting point for a DEVELOPER only
*/

//-----------------------------------------------------------------------------
/*QUAKED info_player_start2 (0.9 0 0) (-16 -16 -24) (16 16 24) x x x x x x x x Not_Easy Not_Normal Not_Hard Not_DM Dyn_Easy Dyn_Normal Dyn_Hard Dyn_Night
{ model(":progs/player.mdl"); }
Starting point for players with runes or startspawn2 system
-------- KEYS --------
target : triggered target(s) when used as a client destination
angle  : Starting view angle
startspawn2 : Unique spawn location number matching a trigger_changelevel
-------- SPAWNFLAGS --------
-------- NOTES --------
Starting point for players with runes or using the startspawn2 system
The startspawn2 system lets players move between maps using exact location
*/

//-----------------------------------------------------------------------------
/*QUAKED info_player_coop (1 0 1) (-16 -16 -24) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/player.mdl"); }
Starting position for coop games
-------- KEYS --------
target : triggered target(s) when used as a client destination
angle  : Starting view angle
-------- SPAWNFLAGS --------
STARTOFF : Starts off
-------- NOTES --------
Starting position for coop games
*/

//-----------------------------------------------------------------------------
/*QUAKED info_player_deathmatch (0 1 1) (-16 -16 -24) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/player.mdl"); }
Starting position for deathmatch games
-------- KEYS --------
target : triggered target(s) when used as a client destination
angle  : Starting view angle
-------- SPAWNFLAGS --------
STARTOFF : Starts off
-------- NOTES --------
Starting position for deathmatch games
*/

//-----------------------------------------------------------------------------
/*QUAKED info_teleport_destination (1 0.5 0.5) (-16 -16 -24) (16 16 24) x
Destination marker for a teleporter
-------- KEYS --------
targetname : link to trigger_teleport
target     : fires when used as a destination (works only once)
angletarget: targeting entity used for custom direction
angles     : Pitch Yaw Roll (destination angle after teleporting)
teledest   : Unique number for multiple teleporter destinations
-------- SPAWNFLAGS --------
-------- NOTES --------
Destination marker for a teleporter
*/

//-----------------------------------------------------------------------------
/*QUAKED info_teleportinstant_dest (.5 .5 .5) ? x
Destination for an instant teleporter
-------- KEYS --------
targetname : link to trigger_teleport
target     : fires when used as a destination (works only once)
angletarget: targeting entity used for custom direction
angles     : Pitch Yaw Roll (destination angle after teleporting)
teledest   : Unique number for multiple teleporter destinations
-------- SPAWNFLAGS --------
-------- NOTES --------
Destination for an instant teleporter
*/

//-----------------------------------------------------------------------------
/*QUAKED info_skullwiz_destination (0.6 0 0.8) (-16 -16 -24) (16 16 40) x
Teleport destination for skull wizard ONLY
-------- KEYS --------
targetname : part of a chain group (required)
target   : next destination in the chain
distance : Minimum distance enemy needs to be before spawning
-------- SPAWNFLAGS --------
-------- NOTES --------
Teleport destination for skull wizard ONLY
*/

//-----------------------------------------------------------------------------
/*QUAKED info_intermission (1 0.5 0.5) (-16 -16 -16) (16 16 16) NO_INTERMIS SOLID x x x x x x Not_Easy Not_Normal Not_Hard Not_DM
This is the camera point for the intermission
-------- KEYS --------
target : triggered target(s) when used as a viewing camera
mangle : Pitch Yaw Roll
fog_density : fog density (Must be >0 to activate feature)
fog_colour  : fog colours (def=0.1 0.1 0.1)
speed       : fog and skyfog time to change (def=2s)
skybox      : Name of skybox to change too eg = moonhigh_
skyfog_density : sky fog density (must be >0 to activate feature)
-------- SPAWNFLAGS --------
NO_INTERMIS : Will not display when proper intermission active
SOLID       : Intermission camera interacts with world
-------- NOTES --------
mangle = up/down, angle, tilt left/right 'pitch yaw roll'
up/left = negative value, down/right = positive value
*/

//-----------------------------------------------------------------------------
/*QUAKED info_target (0.5 0.5 0.5) (-4 -4 -4) (4 4 4) x x x x
Invisible target entity (not removed)
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Invisible target entity (not removed)
*/

//-----------------------------------------------------------------------------
/*QUAKED info_null (0 0.5 0) (-4 -4 -4) (4 4 4) x x x x
Invisible entity
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Invisible entity. Used as a target for spotlights, etc. Removes itself.
*/

//-----------------------------------------------------------------------------
//QUAKED info_notnull (0 0.5 0) (-4 -4 -4) (4 4 4) x
// Sometimes this entity is used as point or bmmodel entity
// It depends on the mapper and what they are trying to do
/*QUAKED info_notnull (0 0.5 0) ? x
Invisible entity (not removed)
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Invisible entity (not removed)
*/

//-----------------------------------------------------------------------------
/*QUAKED info_skyroom (0.25 0.25 1) (-8 -8 -8) (8 8 8) x x x x
Origin for the skyroom system (removed)
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Origin for the skyroom system (removed)
*/

//=============================================================================
//
// ITEM entities
//
//=============================================================================
/*QUAKED item_health (0.3 0.3 1) (-16 -16 0) (16 16 32) ROTTEN MEGA x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/health_25.mdl"); }
15, 25 or 100 Health
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
angle         : = -1 Random rotation everytime spawned (default)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
healamount    : Override heal quantity for pickup (def=15/25/100)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
ROTTEN    : 15 health
MEGA      : MegaHealth +100 health, rot down to 100
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Health box gives 15, 25 or 100 points depending on spawnflags.
*/

//----------------------------------------------------------------------
/*QUAKED item_healthvial (0.3 0.3 1) (-8 -8 0) (8 8 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/health_5.mdl"); }
Health item giving 2-5 points
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
angle         : = -1 Random rotation everytime spawned (default)
healamount    : Override heal quantity for pickup (def=2+random*3)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Health item giving 5 points
*/

//----------------------------------------------------------------------
/*QUAKED item_healthgem (0.3 0.3 1) (-8 -8 0) (8 8 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
Use item_healthvial instead!
*/

//-----------------------------------------------------------------------------
/*QUAKED item_shells (0 .5 .8) (-16 -16 0) (16 16 32) BIG LID x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/ammo_shells0.mdl"); }
20 or 40 Shells
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
frame_box     : special animation frame number for LID (1-7)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
aflag         : Override ammo quantity for pickup (def=20/40)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BIG       : Double Ammo and different model
LID       : Extra LID model positioned with box
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
20 or 40 Shells for the Shotgun (SG), SuperShotgun (SSG) and Upgrade
*/

//-----------------------------------------------------------------------------
/*QUAKED item_spikes (0 .5 .8) (-16 -16 0) (16 16 32) BIG LID x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/ammo_nails0.mdl"); }
25 or 50 Spikes
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
frame_box     : special animation frame number for LID (1-7)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
aflag         : Override ammo quantity for pickup (def=25/50)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BIG       : Double Ammo and different model
LID       : Extra LID model positioned with box
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
25 or 50 Spikes for the Perforator (NG) and Super Perforator (SNG)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_rockets (0 .5 .8) (-16 -16 0) (16 16 32) BIG x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/ammo_rockets0.mdl"); }
5 or 10 Rockets
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
frame_box     : special animation frame number for box of ammo (1-7)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
aflag         : Override ammo quantity for pickup (def=5/10)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BIG       : Double Ammo and different model
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
5 or 10 Rockets for the Grenade (GL) or Rocket Launcher (RL)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_cells (0 .5 .8) (-16 -16 0) (16 16 32) BIG x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/ammo_battery0.mdl"); }
6 or 12 Medieval Battery
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
aflag         : Override ammo quantity for pickup (def=6/12)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BIG       : Double Ammo and different model
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
6 or 12 Medieval Battery (cells) for the Thunderbolt (LG)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_plasma (0 .5 .8) (-16 -16 0) (16 16 32) BIG x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/ammo_cells0.mdl"); }
6 or 12 Cells
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
frame_box     : special animation frame number for box of ammo (1-7)
skin_override : Override world type 1=Base Green, 2=Medieval Wood
aflag         : Override ammo quantity for pickup (def=6/12)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BIG       : Double Ammo and different model
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
6 or 12 Cells for the Thunderbolt (LG)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_armor1 (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/armour.mdl"); }
Green Armour with 100 points of protection
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
armortype     : Override Percentage armor reduction (GRN=0.3,YEL=0.6,RED=0.8)
armorvalue    : Override Quantity armor to pickup (GRN=100,YEL=150,RED=200)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Green Armour with 100 points of protection
*/

//-----------------------------------------------------------------------------
/*QUAKED item_armor2 (0 0.5 0.8) (-16 -16 0) (16 16 56) x BLUESKIN x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/armour.mdl"); }
Yellow Armour with 150 points of protection
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
armortype     : Override Percentage armor reduction (GRN=0.3,YEL=0.6,RED=0.8)
armorvalue    : Override Quantity armor to pickup (GRN=100,YEL=150,RED=200)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
BLUESKIN  : Displays a blue skin instead of yellow
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Yellow Armour with 150 points of protection
*/

//-----------------------------------------------------------------------------
/*QUAKED item_armorInv (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/armour.mdl"); }
Red Armour with 200 points of protection
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
armortype     : Override Percentage armor reduction (GRN=0.3,YEL=0.6,RED=0.8)
armorvalue    : Override Quantity armor to pickup (GRN=100,YEL=150,RED=200)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Red Armour with 200 points of protection
*/

//-----------------------------------------------------------------------------
/*QUAKED item_key1 (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_silver.mdl"); }
SILVER key, changes based on worldtype on worldspawn
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
worldtype     : Override model type (1=runic, 2=base, 3=medieval)
netname       : Override name of pickup (def=silver runekey/keycard/key)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
SILVER key, changes based on worldtype on worldspawn
*/

//-----------------------------------------------------------------------------
/*QUAKED item_key2 (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_gold.mdl"); }
GOLD key, changes based on worldtype on worldspawn
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
worldtype     : Override model type (1=runic, 2=base, 3=medieval)
netname       : Override name of pickup (def=gold runekey/keycard/key)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
GOLD key, changes based on worldtype on worldspawn
*/

//-----------------------------------------------------------------------------
/*QUAKED item_keyx (0 .5 .8) (-16 -16 -24) (16 16 32) CKEY1 CKEY2 CKEY3 CKEY4 RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_medieval.mdl"); }
Custom key
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
mdl           : model name to load/display (progs/model.mdl)
netname       : XXX Part of pickup string "You got the XXX"
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
message2      : particle emitter types = KEYSILVER, KEYGOLD, KEYRED, KEYGREEN, KEYPURPLE, KEYWHITE
-------- SPAWNFLAGS --------
Ckey1 : Custom Key type 1
Ckey2 : Custom Key type 2
Ckey3 : Custom Key type 3
Ckey4 : Custom Key type 4
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Custom key
*/

//-----------------------------------------------------------------------------
/*QUAKED item_custom (0 .5 .8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_base.mdl"); }
Custom Pickup Item
-------- KEYS --------
targetname   : toggle state (use trigger ent for exact state)
mdl          : model name to load/display (progs/model.mdl)
netname      : XXX Part of pickup string "You got the XXX"
noise1       : Custom pickup sound (def=weapons/lock4.wav)
pos1         : Pickup bounding box minimum (def=-16 -16 -24)
pos2         : Pickup bounding box maximum (def=16 16 32)
bodyfadeaway : Model will fade away on pickup
respawn_time : time to wait before respawning (1-x seconds, default varies)
respawn_count: Total amount of times to respawn (counts down to zero)
respawn_trig : = 1 Wait for trigger before respawning
part_active   : = 1 Enable particle burst on pickup
part_ofs      : Particle Origin Offset (def='0 0 0')
part_tcount   : Particle Quantity (def=20)
part_life     : Particle Life Time (def=2s)
part_style    : 1=yellow, 2=green, 3=red, 4=blue, 5=purple, 6=fire, 7=white
part_movetype : 2=center, 3=up, 4=shockwave, 5=skull, 6=lost, 7=minotaur
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Custom Pickup Item
*/

//-----------------------------------------------------------------------------
/*QUAKED item_sigil (0 0.5 0.8) (-16 -16 -24) (16 16 32) Ep1 Ep2 Ep3 Ep4 RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_rune1.mdl"); }
End of episode sigil / rune
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
EP1 : Episode 1 Rune
EP2 : Episode 2 Rune
EP3 : Episode 3 Rune
EP4 : Episode 4 Rune
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
End of episode sigil / rune 
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_tomeofpower (0 .5 .8) (-16 -16 -24) (16 16 32) x x x x x FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/key_tome.mdl"); }
Custom event trigger
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
target        : trigger targets to fire when item touched
mdl           : Override the model used (def=progs/artifact_tome.mdl)
netname       : Override name of pickup (def=Tome of Power)
message       : centerprint message when item is picked up
noise         : Custom pickup sound for item
-------- SPAWNFLAGS --------
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Custom event trigger
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_envirosuit (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_envsuit.mdl"); }
Player takes no damage from water or slime for 30 seconds
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
exactskin     : 0=Original, 1=Green, 2=Brown, 3=Aqua, 4=Blue
mdl           : Override the model used (def=progs/artifact_envsuit.mdl)
netname       : Override name of pickup (def=Environment Suit)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Player takes no damage from water or slime for 30 seconds
Immume to Fire Attack, but take small damage instead
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_invulnerability (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_pent.mdl"); }
Player is invulnerable for 30 seconds
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_pent.mdl)
netname       : Override name of pickup (def=Pentagram of Protection)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Player is invulnerable for 30 seconds
Immume from Wraith Healing Debuff
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_invisibility (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_invis.mdl"); }
Player is invisible for 30 seconds
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_invis.mdl)
netname       : Override name of pickup (def=Ring of Shadows)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Player is invisible for 30 seconds
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_super_damage (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_quad.mdl"); }
The next attack from the player will do 4x damage
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_quad.mdl)
netname       : Override name of pickup (def=Quad Damage)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
The next attack from the player will do 4x damage
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_sharp_shooter (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_sharp.mdl"); }
Reduces the bullet spread of all Shotguns
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_sharp.mdl)
netname       : Override name of pickup (def=Sharp Shooter)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Reduces the bullet spread of all Shotguns
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_nail_piercer (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_piercer.mdl"); }
All nail attacks will travel through monsters
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_piercer.mdl)
netname       : Override name of pickup (def=Nail Piercer)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
All nail attacks will travel through monsters
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_airtank (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x SILENT RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_airtank.mdl"); }
Player takes no damage from being in water
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
exactskin     : 0=Original, 1=Green, 2=Brown, 3=Aqua, 4=Blue
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_airtank.mdl)
netname       : Override name of pickup (def=Wet Suit)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
volume        : Maximum range for volume (def=1, no sound=-1)
distance      : Breathing sound of water (def 1=off)
cnt           : override duration of artifact (def=infinite)
-------- SPAWNFLAGS --------
SILENT    : No breathing sound when airtank active
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Primary   : Player takes no damage from being in water
Secondary : Reduces Poisonous debuff by 50% and can surive LG/PG firing underwater
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_wetsuit (0 0.5 0.8) (-16 -16 -24) (16 16 32)
Does not exist anymore, use Air Tank artifact instead
*/
//-----------------------------------------------------------------------------
/*QUAKED item_artifact_lavashield (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_lavashield.mdl"); }
Player takes no HP/armour damage from lava
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_lavashield.mdl)
netname       : Override name of pickup (def=Aegis of Chthon)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
volume        : Maximum range for volume (def=1, no sound=-1)
cnt           : override duration of artifact (def=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Primary   : Player takes no HP/armour damage from lava
Secondary : Flame and lava attack damage is reduced (Chthon, Drole, Gargoyle, Quoth Dguard)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_blastbelt (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_blastbelt.mdl"); }
Player does not take splash damage, but take direct damage
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_blastbelt.mdl)
netname       : Override name of pickup (def=Blast Belt)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
volume        : Maximum range for volume (def=1, no sound=-1)
cnt           : Duration of artifact (def=30s, -1=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Primary   : Player does not take splash damage, but take direct damage
Secondary : Immune to floor impact attacks (hammer ogre, golems etc)
*/

//-----------------------------------------------------------------------------
/*QUAKED item_artifact_jumpboots (0 0.5 0.8) (-16 -16 -24) (16 16 32) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/artifact_jumpboots.mdl"); }
Player can do (1-4) extra jumps
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
mdl           : Override the model used (def=progs/artifact_jumpboots.mdl)
netname       : Override name of pickup (def=Jump Boots 1+)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
noise         : Custom pickup sound for powerup
count         : Power level override (0=def, 1-4=exact level, -1=endless)
height        : 2nd+ player jump height upward (def=320)
distance      : Minimum forward momentum (def=0, recommend=320)
volume        : Maximum range for volume (def=1, no sound=-1)
cnt           : override duration of artifact (def=infinite)
-------- SPAWNFLAGS --------
RESPAWN   : Can respawn after being picked up
FLOAT     : No drop to floor test
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Primary   : Player can do (1-4) extra jumps
Secondary : Can jump while falling off ledges or midair
*/

//-----------------------------------------------------------------------------
/*QUAKED item_backpack (0 .5 .8) (-16 -16 0) (16 16 56) SHELLS NAILS ROCKETS CELLS RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/w_backpack.mdl"); }
Backpack with random/exact amount of ammo
-------- KEYS --------
targetname   : toggle state (use trigger ent for exact state)
count        : random amount of ammo to give (works with spawnflags)
ammo_shells  : exact amount of shells
ammo_nails   : exact amount of spikes
ammo_rockets : exact amount of rockets
ammo_cells   : exact amount of cells
armorvalue   : armor shards (gives green armor if none present)
armortype    : 1 = random amount of armor shards (uses count)
exactskin    : 0=Original, 1=green, 2=blue, 3=red, 4=yellow, 5=swamp, 6=white, 7=pale
noise         : pickup sound (def=items/backpack_ammo.wav)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
SHELLS  : ammo for SG / SSG / WM (works with count only)
NAILS   : ammo for NG / SNG (works with count only)
ROCKETS : ammo for GL / RL (works with count only)
CELLS   : ammo for LG / PG (works with count only)
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Backpack with random/exact amount of ammo
*/

//-----------------------------------------------------------------------------
/*QUAKED item_backpack_armour (1 1 .25) (-16 -16 0) (16 16 56) GRN YEL RED x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/w_backpack.mdl"); }
Backpack with exact amount of armour
-------- KEYS --------
targetname   : toggle state (use trigger ent for exact state)
armortype    : 0.3=Green, 0.6=Yellow, 0.8=red (will setup armor quantity)
armorvalue   : Green(def)=15, Yellow=30, Red=45 (linked to armortype)
exactskin    : 0=Original, 1=green, 2=blue, 3=red, 4=yellow (def), 5=swamp, 6=white, 7=pale
noise         : pickup sound (def=items/backpack_armour.wav)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
GRN : Green armour type (green particle)
YEL : Yellow armour type (yellow particle)
RED : Red armour type (red particle)
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Backpack with exact amount of armour
*/

//-----------------------------------------------------------------------------
/*QUAKED item_progspawn (1 .8 .2) (-16 -16 0) (16 16 56) x x x x x NOTELEFX x x NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
Spawn location for progression list
-------- KEYS --------
targetname : Must exist and be the same for all markers in same list
target  : Must point to the first item in the progresion list
target2 : targets to fire when the spawn marker is used
message : message to display when triggered
-------- SPAWNFLAGS --------
NOTELEFX    : No tele FX effect when changing item at spawn marker
-------- NOTES --------
Spawn location for progression list
*/

//=============================================================================
//
// WEAPON entities
//
//=============================================================================
/*QUAKED weapon_upgrade_axe (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_shadaxe.mdl"); }
Shadow Axe, extra dmg and gib zombies
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Shadow Axe, extra dmg and gib zombies
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_upgrade_ghook (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_ghook.mdl"); }
Grapple Hook, damage and flying!
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Grapple Hook, damage and flying!
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_upgrade_ssg (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_shot3.mdl"); }
The Widowmaker Shotgun, extra dmg, triple shot
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Widowmaker Shotgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
The Widowmaker Shotgun, extra dmg, triple shot
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_upgrade_lg (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_plasma.mdl"); }
The Plasma Gun, direct & splashdamage
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=15)
netname       : Override name of pickup (def=Plasma Gun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
The Plasma Gun, direct & splashdamage
*/

/*QUAKED weapon_plasmagun (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_plasma.mdl"); }
The Plasma Gun, direct & splashdamage
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_axe (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_axe.mdl"); }
Quake Axe
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Sawn-off Shotgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Quake Axe
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_shotgun (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_shot1.mdl"); }
Shotgun
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Sawn-off Shotgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Shotgun
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_supershotgun (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_shot2.mdl"); }
Super Shotgun
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Double-barrelled Shotgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Super Shotgun
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_nailgun (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_nail.mdl"); }
Perforator (Nailgun)
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=30)
netname       : Override name of pickup (def=Nailgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Perforator (Nailgun)
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_supernailgun (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_nail2.mdl"); }
Super Perforator (Super Nailgun)
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=30)
netname       : Override name of pickup (def=Super Nailgun)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Super Perforator (Super Nailgun)
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_grenadelauncher (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_rock.mdl"); }
Grenade Launcher
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Grenade Launcher)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Grenade Launcher
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_rocketlauncher (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_rock2.mdl"); }
Rocket Launcher
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=5)
netname       : Override name of pickup (def=Rocket Launcher)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Rocket Launcher
*/

//-----------------------------------------------------------------------------
/*QUAKED weapon_lightning (0 0.5 0.8) (-16 -16 0) (16 16 56) x x x x RESPAWN FLOAT STARTOFF NOEFFECTS NOT_EASY NOT_NORMAL NOT_HARD NOT_DM
{ model(":progs/g_light.mdl"); }
Thunderbolt Cannon
-------- KEYS --------
targetname    : toggle state (use trigger ent for exact state)
message       : centerprint message when item is picked up
aflag         : Override ammo quantity for pickup (def=15)
netname       : Override name of pickup (def=Thunderbolt)
respawn_time  : time to wait before respawning (1-x seconds, default varies)
respawn_count : Total amount of times to respawn (counts down to zero)
respawn_trig  : = 1 Wait for trigger before respawning
-------- SPAWNFLAGS --------
RESPAWN  : Can respawn after being picked up
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
NOEFFECTS: No particle or effects active
-------- NOTES --------
Thunderbolt Cannon
*/

//=============================================================================
//
// FUNCTIONS
//
//=============================================================================

/*QUAKED func_button (0 .5 .8) ? x x x x x STARTDIS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Button (bmodel) with two states
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : name of target(s) to trigger at the start of the wait phase
target2     : additional target(s) to trigger when activated
angle       : determines the move direction, use "360" for angle 0
angletarget : Entity (path_corner) to move towards (custom direction)
speed       : Move Speed (def=40)
yaw_speed   : return movement speed (def=speed)
wait        : wait before returning (def=1, -1 = never return)
delay       : delay before button triggers
lip         : lip remaining at end of move. (def=4)
height      : Exact distance to move (works like func_plat and uses angles)
health      : Can be damaged instead of touched
noradiusdmg : Can not be damaged by splashdamage, direct damage only
sounds      : 0=steam metal, 1=wooden, 2=metallic, 3=in-out, 4=Silent, 5=Custom
noise       : custom sound - 1st movement
noise1      : custom sound - 2nd movement ('buttons/switch21.wav')
volume      : Volume for all custom sounds played (def=1, range=0-1)
message     : Centerprint Message to display when triggered
estate      : Override starting entity state 1=ON, 2=OFF, 4=DISABLE
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTDIS : Starts disabled and waits for trigger
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Button (bmodel) with two states
*/

//-----------------------------------------------------------------------------
/*QUAKED func_door (0 .5 .8) ? STARTOPEN SPAWNTRIG DONTLINK GOLD SILVER TOGGLE STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Door (bmodel) with two states
-------- KEYS --------
targetname : = "" door automatically opens, != "" requires trigger to open
if using entity state system set SPAWN_TRIG spawnflags to fix this problem
target   : name of target(s) to trigger at the start opening sequence
target2  : additional target(s) to trigger when activated
angle    : determines the opening direction, use "360" for angle 0
angletarget : Entity (path_corner) to move towards (custom direction)
speed    : movement speed (def=100)
yaw_speed: return movement speed (def=speed)
wait     : wait before returning (def=3, -1 = never return)
lip      : lip remaining at end of move. (def=8)
height   : Exact distance to move (works like func_plat and uses angles)
midstart : Start in 2nd position and wait for trigger, then work as spawned
health   : Can be damaged instead of touched
dmg      : damage to inflict when blocked. (def=2)
message  : centerprint message when touched (removed when opened)
sounds   : 0=silent 1=stone 2=base 3=chain 4=metal 5=custom 11=base plat 12=med plat
locksounds : 0=talk 1=med1 2=med2 3=med3 13=trigger 14=silent 16=secret 21=base1 22=base2 23=base3 24=base4
noise    : custom sound - door locked sound (targetname+message)
noise1   : custom sound - Moving/Open door (looping)
noise2   : custom sound - Stop/Close door 
noise3   : custom sound - Silver/Gold key try lock
noise4   : custom sound - Silver/Gold key OPEN
volume   : Volume for all custom sounds played (def=1, range=0-1)
persistentkey : Key required for this door is never removed from player
customkey: custom key required to open door (1-4 supported values)
message2 : custom key message (You need the custom key)
bbmins   : custom size for generated trigger (def='-60 -60 -8')
bbmaxs   : custom size for generated trigger (def='60 60 8')
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOPEN : door opens in reverse state (moved to dest at spawn)
SPAWNTRIG : Will spawn trigger around door even if targetname SETUP
DONTLINK  : Touching doors will not link into a single entity
GOLD      : Requires gold key to open
SILVER    : Requires silver key to open
TOGGLE    : Door waits for trigger between states (if wait=-1 cannot be blocked)
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Door (bmodel) with two states
*/

//-----------------------------------------------------------------------------
/*QUAKED func_door_secret (0 .5 .8) ? OPEN_ONCE 1ST_LEFT 1ST_DOWN NO_SHOOT ALWAYS_SHOOT x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A Door (bmodel) with 2 states and multiple stages
-------- KEYS --------
targetname : = "" door opens with damage, != "" requires trigger to open
if using entity state system set ALWAYS_SHOOT spawnflags to fix this problem
target    : name of target(s) to trigger at the start opening sequence
target2   : additional target(s) to trigger when activated
angle     : determines the opening direction, use "360" for angle 0
speed     : movement speed (default = 50)
yaw_speed : 2nd movement speed (default = speed)
t_width   : First Distance, override Width to move back (or height if going down)
t_length  : Second Distance, override Length to move sideways
wait      : wait before returning (default = 5)
dmg       : damage to inflict when blocked. (default = 2)
message   : centerprint message when touched (removed when opened)
sounds    : 1 =  medieval 2 = metal 3 = base(def) 4 = Silent 5 = custom
locksounds: 0 = talktalk 1 = short rattle, 2 = medium rattle, 3 = long rattle
noise     : custom sound - door locked sound (targetname+message)
noise1    : custom sound - Open
noise2    : custom sound - Opening (looping)
noise3    : custom sound - Closed
volume    : Volume for all custom sounds played (def=1, range=0-1)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
ONCE_ONLY : Stays Open
1ST_LEFT  : 1st move is left of arrow
1ST_DOWN  : 1st move is down from arrow
NO_SHOOT  : only opened by trigger
ALWAYS_SHOOT : Always Shootable, even if targeted
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
A Door (bmodel) with 2 states and multiple stages
*/

//-----------------------------------------------------------------------------
/*QUAKED func_plat (0 .5 .8) ? LOW_TRIGGER x MIN_TRIGGER START_LOWER START_OPEN STARTDIS STARTOFF x
A Platform (bmodel) with 2 states
-------- KEYS --------
targetname : = "" plat start low, != "" plat starts high and reqs trigger to work
if using entity state system set START_LOWER spawnflags to fix this problem
speed  : moving speed (def=150)
height : determines the distance to move, instead of bmodel bounds
sounds : 1=Base, 0 or 2=Medieval (def), 4=Silent, 5=Custom sounds
noise  : custom sound - moving (looping)
noise1 : custom sound - Stopped
volume : Volume for all custom sounds played (def=1, range=0-1)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
LOW_TRIGGER : touch trigger will not keep the platform at the top, will reset
MIN_TRIGGER : uses the min bounding box (instead of max) to calculate trigger
START_LOWER : will start the platform lower regardless of targetname
START_OPEN  : Used for lighting issues, place at bottom position
STARTDIS    : Starts disabled and waits for trigger
STARTOFF    : Starts off and waits for trigger
-------- NOTES --------
Platforms are always created in the upper position, so they can be lit better.
If targetname is defined the func_plat starts high and is locked until triggered
Once the func_plat has been triggered, it will become a normal platform.
*/

//-----------------------------------------------------------------------------
/*QUAKED func_train (0 .5 .8) ? STARTON NONSOLID MODEL TOUCH x REVERSE STARTOFF x
Bmodel platform moving around entity chain
-------- KEYS --------
targetname : = "" start moving straight away != "" wait for trigger
target : Name of first path_corner to start at (instant move)
mdl    : Specify a model for MODEL mode only (progs/object.mdl)
speed  : moving speed (def=100)
dmg    : block damage (def=2)
sounds : 0=Silent, 1=Ratchet Metal, 5=custom 11=base plat 12=med plat
noise  : custom sound - stopped
noise1 : custom sound - moving (looping)
volume : Volume for all custom sounds played (def=1, range=0-1)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTON  : Start moving straight away if targetname is used
NONSOLID : No collision or blocking functionality (uses bmodel)
MODEL    : Model with no collision (use mdl key, def=empty model)
TOUCH    : Nonsolid or model trains have touch damage (dmg)
REVERSE  : Start going backward through path_corner chain
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
The target's origin specifies the min point of the train at each corner. 
The train spawns at the first target it is pointing at. 
Use a chain of path_corners to specify which direction to travel
*/

//-----------------------------------------------------------------------------
/*QUAKED path_corner (0.5 0.3 0) (-8 -8 -24) (8 8 24) EXACT INSTANT REVERSE NOPAUSE x x x x
Node based path routing system
-------- KEYS --------
targetname   : Name of current path corner
corner_event : Name of target(s) to trigger when used/touched
corner_route : Change path_corner route (1-3 routes, 4=exact, 5=random)
corner_switch: Change spawnflags REVERSE (-1=NO, 1=YES, 2=Toggle)
corner_pause : Change spawnflags NOPAUSE (-1=NO, 1=YES, 2=Toggle)
corner_pstate: Change passive state (-1=OFF, 1=ON, 2=TOGGLE)
corner_speed : Change the speed of target path_corner, for train use only
state        : Starting route (1=forward, 2=alt forward, 3=backward)
target       : Targetname of FORWARD route
target2      : Alternative FORWARD route
targetback   : Override default BACKWARD route
wait   : fixed amount of time to pause at corner (=-1 stop)
delay  : random amount of time to pause at corner
alpha  : Override default for visual arrows (def=0.35)
speed  : Override default speed of func_train (def=100)
-------- SPAWNFLAGS --------
EXACT     : Exact route logic (def=random route choices)
INSTANT   : Move instantly to this corner if next destination
REVERSE   : Train direction is reversed for next corner
NOPAUSE   : Train does not pause on this path corner
-------- NOTES --------
Node based path routing system
*/

//-----------------------------------------------------------------------------
/*QUAKED func_wall (0 .5 .8) ? x AFRAME x x MODCHECK STATIC STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A SOLID bmodel with toggled animated texture
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
alphastart  : Alpha Fade bmodel (range 0.01-1.00) = Starting value
waitmin     : Alpha Fade Time (def=1s) of bmodel (even if partial)
lip         : Alpha Fade Direction -1=Down(1->0), 1=Up(0->1), Def=UP
delay       : Alpha Fade delay to start of fading (def=0)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
AFRAME   : Start with the A frame animated texture
MODCHECK : Will remove this entity if THIS mod is active
STATIC   : Turn entity into static upon spawn (frame 0)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
A SOLID bmodel with toggled animated texture
*/

//-----------------------------------------------------------------------------
/*QUAKED func_togglewall (0 .5 .8) ? STARTOFF x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A func_wall that can be toggled on and off
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
noise       : Switched OFF sound (def=misc/laseroff.wav)
noise1      : Switched ON sound (def=misc/laseron.wav)
noise2      : Touch damage sound (weapons/laser_hit.wav)
wait        : wait between damage (def=0.5)
dmg         : Contact damage (def=0)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
A func_wall that can be toggled on and off
*/

//-----------------------------------------------------------------------------
/*QUAKED func_grapplehook (0.5 0 0.5) ? x BLOCK SOLID x DISPLAY ALPHA STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Variable sized bmodel that interacts with grapple gun
------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : target(s) to fire when grapple hook touches
target2     : override bmodel origin for hook point
alpha       : alpha value will vary +/- 20% (def=0.5, req=alpha spnflag)
sounds      : 1=Secret,2=talk,3=switch,4=silent,5=custom,6=secret2
noise       : custom sound to play when USED by grapple hook
message     : message to display when USED by grapple hook
dmg         : damage done when TOUCHED every 0.1s (def=0, add=solid spnflag)
noise1      : custom sound to play when TOUCHED for damaged
waitmin     : >0 = custom TOUCH sound repeat delay (def=1)
noise2      : custom sound to play when BLOCKED by grapple hook
message2    : message to display when BLOCKED by grapple hook
wait        : -1 = sound / msg once, >0 = sound / msg repeat delay (def=1)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
BLOCK    : Blocks grapple hook from starting to pull player
SOLID    : Blocks player/projectiles (like a func_wall)
DISPLAY  : Show bmodel surface when active
ALPHA    : bmodel surface is alpha flickering
STARTOFF : Requires trigger to activate
------- NOTES --------
Variable sized bmodel that interacts with grapple gun
*/

//-----------------------------------------------------------------------------
/*QUAKED func_illusionary (0 .5 .8) ? x AFRAME x x x STATIC STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A NON SOLID bmodel with texture toggle
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
alphastart  : Alpha Fade bmodel (range 0.01-1.00) = Starting value
waitmin     : Alpha Fade Time (def=1s) of bmodel (even if partial)
lip         : Alpha Fade Direction -1=Down(1->0), 1=Up(0->1), Def=UP
delay       : Alpha Fade delay to start of fading (def=0)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
AFRAME   : Start with the A frame animated texture
STATIC   : Turn entity into static upon spawn (frame 0)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
A NON SOLID bmodel with texture toggle
*/

//-----------------------------------------------------------------------------
/*QUAKED func_episodegate (0 .5 .8) ? E1 E2 E3 E4 x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
SOLID bmodel when player has SELECTED rune(s)
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
E1 : Episode 1
E2 : Episode 2
E3 : Episode 3
E4 : Episode 4
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
SOLID bmodel when player has SELECTED rune(s)
*/

//-----------------------------------------------------------------------------
/*QUAKED func_bossgate (0 .5 .8) ? x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A NON SOLID bmodel when player has ALL runes
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
A NON SOLID bmodel when player has ALL runes
*/

//-----------------------------------------------------------------------------
/*QUAKED func_laser (0 .5 .8) ? x SOLID NODMG x x x STARTOFF x
A togglable laser, hurts to touch, can be used to block players
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
message     : message to display when switched ON
message2    : message to display when switched OFF
wait        : -1 = will display the switching state messages only once
dmg         : damage to do on touch. default 1 per 0.1s
alpha       : alpha value will vary +/- 20% (def=0.5)
sounds      : 1=laser, 2=power, 4=silent, 5=custom
noise1      : Custom trigger sound to play when switched ON
noise2      : Custom trigger sound to play when switched OFF
volume      : Volume for all custom sounds played (def=1, range=0-1)
spr_frame   : 1=Yellow, 2=Green, 4=Red, 8=Blue, 16=Purple, 32=Fire, 64=White
angle       : Direction of particles to move (def=-2 down)
part_limit  : Maximum active quantity of particles (def=25)
part_life   : Lifetime of particle (def=2s)
part_velrand: Random movement of particles (def='4 4 4')
part_vol    : Size of area to spawn particles in (def=bmodel)
wakeup_dist : Distance to wakeup particle emitter (def=768)
spawn_base  : Minimum time frame to spawn particles (def=0.1s)
spawn_rand  : Random time amount to add to spawning times (def=0.1s)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
SOLID    : Will block anything
NODMG    : Touch damage disabled
STARTOFF : Requires trigger to activate
-------- NOTES --------
A togglable laser, hurts to touch, can be used to block players
*/

//-----------------------------------------------------------------------------
/*QUAKED func_explobox (0 0.5 0.8) ? x x x x x x STARTOFF x
Exploding box (bmodel)
-------- KEYS --------
target      : trigger events when box explodes
noise       : Explosion sound (def=weapons/r_exp3.wav)
health      : Amount of health before exploding (def=15)
dmg         : Override radius damage (def=160)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Exploding box (bmodel)
*/

//-----------------------------------------------------------------------------
/*QUAKED func_skill (0 .5 .8) ? STARTOPEN CHAOS x x STARTDIS STARTOFF x
A bmodel that changes texture based on current skill/chaos level
Will keep checking until triggered (based on door QC code)
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
style       : Skill Level - 0 = easy, 1 = normal, 2 = hard, 3 = nightmare
message2    : Message to display when bmodel is touched/damaged
target      : Particle emitters to switch on/off
target2     : target(s) to fire when touched/damaged
wait        : =-1 cannot be touched or damaged (visual only)
health      : Can be damaged instead of touched (def=touch)
angle       : movement direction for trigger event
speed       : movement speed (100 default)
lip         : lip remaining at end of move (def=8)
waitmin     : Chaos mode touch slowdown timer (def=1s)
noise1      : Custom sound - Stop moving (doors/drclos4.wav)
noise2      : Custom sound - Start/Loop moving (doors/stndr1.wav)
noise3      : Custom sound - Touching (plats/medplat2.wav)
volume      : Volume for all custom sounds played (def=1, range=0-1)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOPEN : bmodel works in reverse state (moved to dest at spawn)
CHOASMODE : special setup for the random chaos mode (waitmin=touch delay)
STARTDIS  : Starts disabled and waits for trigger
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Visual skill/chaos selection/update function
*/

//-----------------------------------------------------------------------------
/*QUAKED func_bob (0 .5 .8) ? x x NONSOLID x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A SOLID bmodel that gently moves back and forth
-------- KEYS --------
targetname : trigger entity (works with entity state system)
angle      : direction movement, use "360" for angle 0
height     : direction intensity (def=4)
count      : direction cycle timer (def=2s, minimum=1s)
waitmin    : Speed up scale (def=1) 1+=non linear
waitmin2   : Slow down scale (def=0.75)
delay      : Starting time delay (def=0, -1=random)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
NONSOLID : Bmodel is non solid (only func_bob)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
A SOLID bmodel that gently moves back and forth
*/

//-----------------------------------------------------------------------------
/*QUAKED func_pressureswitch (0 .5 .8) ? x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Pressure switch (bmodel)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target : Name of target(s) to trigger when plate has moved down
angle  : Always moves downward (needs to reflect gravity pressure)
speed  : Move Speed (def=40)
lip    : lip remaining at end of move. (def=4)
sounds : 0=steam metal, 1=wooden, 2=metallic, 3=in-out, 4=Silent, 5=Custom
noise  : custom sound - 1st movement
noise1 : custom sound - 2nd movement (default = noise wav file)
volume : Volume for all custom sounds played (def=1, range=0-1)
message: Centerprint Message to display when triggered
wait   : -1 = display message and fire target(s) only once
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Pressure switch (bmodel)
*/

//-----------------------------------------------------------------------------
/*QUAKED func_insidevolume (0 .5 .8) ? PLAYER MONSTER ITEM PUSHABLE x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Function to test if an entity bounding box is inside of this volume
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : Name of target(s) to trigger when fully INSIDE (fires every 0.1s)
target2    : Name of target(s) to trigger when partial INSIDE (fires every 0.1s)
message    : Name of target(s) to trigger when exit VOLUME (fires on exit only)
wait       : -1 = Fire the fully/exit volume target(s) once
delay      : Delay time before volume controller becomes active
message2   : Name of the only entity that can interact with this volume
no_deadbody : 1 = Monster dead bodies don't work with volume test
-------- SPAWNFLAGS --------
PLAYER    : Will react to player(s)
MONSTER   : Will react to monster(s)
ITEM      : Will react to item(s)
PUSHABLE  : Will react to pushable(s)
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Function to test if an entity bounding box is inside of this volume
*/

//-----------------------------------------------------------------------------
/*QUAKED func_shadow (0 .5 .8) ? x FADING x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
An Invisible bmodel that casts shadows
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : Func bmodel entity to operate in sync with
state       : Intended state to operate with (0=CLOSED, 1=OPEN)
speed       : Fade in/out timer for the shadow (def=1s)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
_switchableshadow : 1 = Required parameter
-------- SPAWNFLAGS --------
FADING   : Will gradually fade over time (speed)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
An Invisible bmodel that casts shadows
*/

//=============================================================================
//
// TRIGGERS
//
//=============================================================================
/*QUAKED trigger_once (0.5 0 0.5) ? NOTOUCH x DEVMODE INVIEW MODCHECK MONSTERS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Variable sized bmodel that uses once
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target   : trigger all these targets
health   : Can be damaged instead of touched
wait     : Always -1
delay    : delay before firing (after being triggered)
angle    : Facing Direction for trigger to work, use "360" for angle 0.
sounds   : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise    : custom sound to play when triggered
message  : message to display when triggered
t_length : Inview distance (less than) to activate trigger
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
DEVMODE  : Will only trigger if developer mode active
INVIEW   : Player has to be infront and look at trigger (>30 & <60)
MODCHECK : Will remove this entity if THIS mod is active
MONSTERS : can be touched/triggered by monsters
STARTOFF : Requires trigger to activate
-------- NOTES --------
Variable sized bmodel that uses once
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_multiple (0.5 0 0.5) ? NOTOUCH x DEVMODE x MODCHECK MONSTERS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Variable sized bmodel that uses multiple times
------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : trigger all these targets
health  : Can be damaged instead of touched
wait    : time between re-triggering
delay   : delay before firing (after being triggered)
count   : >0 = number of time can fire before switching off
angle   : Facing Direction for trigger to work, use "360" for angle 0.
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
message : message to display when triggered
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
DEVMODE  : Will only trigger if developer mode active
MODCHECK : Will remove this entity if THIS mod is active
MONSTERS : can be touched/triggered by monsters
STARTOFF : Requires trigger to activate
------- NOTES --------
Variable sized bmodel that uses multiple times
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_secret (.5 0 .5) ? NOTOUCH NOMSG x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Update map secret counter
------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : name of target(s) to trigger
health  : Can be damaged instead of touched
wait    : Always -1
angle   : Facing Direction for trigger to work, use 360 for angle 0.
sounds  : 1=Secret(def),2=talk,3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
message : message to display when triggered
-------- SPAWNFLAGS --------
NOTOUCH : can only be triggered via other entities
NOMSG   : Remove/Block any trigger secret message
STARTOFF : Requires trigger to activate
------- NOTES --------
Update map secret counter
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_relay (0.5 0 0.5) (-8 -8 -8) (8 8 8) x RANDOM TOGGLE REPEAT x STARTDIS x x Not_Easy Not_Normal Not_Hard
Triggers target(s) with custom sounds and messages
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : targets to trigger when relay is activated
target2 : secondary targets to trigger when activated
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
waitmin : % random chance between target/target2
state   : toggle/repeat starting cycle = 1 (def) or 2
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
message : message to display when triggered
-------- SPAWNFLAGS --------
RANDOM : Will randomly select between target/target2
TOGGLE : Will toggle between the target/target2
REPEAT : Will keep re-triggering targets (fire targetname to stop/start)
         endstate : Final state when re-trigger stops
		 state ON trigger event = target
         state ON time = wait + (delay x random())
         state ON custom sound = noise1
		 state OFF trigger event = target2
         state OFF time = wait2 + (delay2 x random())
		 state OFF custom sound = noise2
STARTDIS : Will start disabled, will req trigger_entitystate_on to enable
-------- NOTES --------
This fixed size trigger cannot be touched, it can only be fired by other events.  
Can contain killtargets, targets, delays, and messages.
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_counter (0.5 0 0.1) (-8 -8 -8) (8 8 8) NOMESSAGE x x x EXACTNO STARTDIS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A counter which triggers target(s) when complete
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : trigger target(s) when complete
startmsg    : message to display before counting begins (use wait for pause time)
message     : message to display when complete (displayed when firing target)
message2    : message to display when complete (ignores NOMESSAGE spawnflag)
counttarget : misc_targetnumber updated with current counter number
lip         : 1=display counter goes up from zero, -1=counts down to zero
count     : number of triggers needed to fire own target, (def=2)
delay     : time delay to fire final trigger event
sounds    : 0=silent,1=Secret,2=talk,3=switch,5=custom,6=secret2
noise     : custom sound to play when complete
wait      : time to pause before starting to count (def=2s)
-------- SPAWNFLAGS --------
NOMESSAGE : disables count display
EXACTNO   : display exact number when counting down
STARTDIS  : Starts disabled and waits for trigger
STARTOFF  : Requires trigger to activate
-------- NOTES --------
A counter which triggers target(s) when complete
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_timer (0.5 0 0.1) (-8 -8 -8) (8 8 8) x x x x x STARTDIS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A timer with three (gold/siver/bronze) event triggers
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
delay       : time delay BEFORE firing final result (def=1s)
wait        : time delay PAUSE before starting timer (def=0s)
timertarget : misc_targetnumber updated between start/finish
startmsg    : Start of timer centerprint message
message     : Stop of timer centerprint message
target   : timer value 1 - trigger target(s) (Must Exist)
waitmin  : timer value 1 - TIME to trigger event
noise    : timer value 1 - misc_targetnumber targetname (optional)
target2  : timer value 2 - trigger target(s)
waitmin2 : timer value 2 - must be greater TIME than waitmin
noise2   : timer value 2 - misc_targetnumber targetname (optional)
target3  : timer value 3 - trigger target(s)
waitmin3 : timer value 3 - must be greater TIME that waitmin2
noise3   : timer value 3 - misc_targetnumber targetname (optional)
-------- SPAWNFLAGS --------
STARTDIS : Starts disabled and waits for trigger
STARTOFF : Requires trigger to activate
-------- NOTES --------
A timer with three (gold/siver/bronze) event triggers
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_engine (0 0 1) (-8 -8 -16) (8 8 16) FITZ DP FTE x RAIN SNOW x x
Triggers target(s) when certain engine active
-------- KEYS --------
targetname : trigger entity
target  : targets to trigger when relay is activated
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
-------- SPAWNFLAGS --------
FITZ : Only trigger for Fitz engines (default type)
DP   : Only trigger for DP engine
FTE  : Only trigger for FTE/QSS engines
RAIN : Check for rain effect being active
SNOW : Check for snow effect being active
-------- NOTES --------
Triggers target(s) when certain engine active
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_playerparticles (0 0.75 0.75) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Attach a particle emitter to the player (FTE/QSS engines only)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : targets to trigger when entity is activated
noise   : Name of particle in CFG file (eg 'fte_weather.ent_playerrain')
mangle  : Orientation of the particle emitter (up = '90 0 0')
state   : Set the particle emitter to exact value (1=ON, -1=OFF)
wait    : -1 = will only trigger once
-------- SPAWNFLAGS --------
-------- NOTES --------
Attach a particle emitter to the player (FTE/QSS engines only)
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_giveitems (0.5 0 0.5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Variable sized bmodel used to give items to player
The target items only work if delay spawned spawnflag is set
The pickup sound can be turned off by adding sounds=4 to item
The target items will not respawn or work more than once
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : Trigger items (only) to give to the player
target2 : Trigger other type of entities (relays, estate etc)
wait    : -1 = Always fire targets once (cannot be reset)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
message : message to display when triggered
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Requires trigger to activate
-------- NOTES --------
Variable sized bmodel used to give items to activator
The target items only work if delay spawned spawnflag is set
The pickup sound can be turned off by adding sounds=4 to item
The target items will not respawn or work more than once
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_takeartifact (0.5 0 0.5) ? NOTOUCH ID AD VANIA x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Variable sized bmodel used to take powerups from the player
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target   : trigger all these targets
angle    : Facing Direction for trigger to work, use "360" for angle 0.
sounds   : 1=Secret,2=talk,3=switch,4=silent(def),5=custom,6=secret2
noise    : custom sound to play when triggered
message  : message to display when triggered
waitmin  : Override timer for powerup, anything below value is ignored (def=0)
waitmin2 : Slow down timer for trigger working again (def=0.1s)
waitmin3 : Slow down timer for sound playing (def=1s)
wait     : -1 = trigger once functionality (def=0)
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
ID       : Take only = Suit/InvRing/Quad/Pentagram
AD       : Take only = SharpShooter/Nail Piercer
VANIA    : Take only = Lavashield/Airtank/Blastbelt/Jumpboots
STARTOFF : Requires trigger to activate
-------- NOTES --------
Variable sized bmodel used to take powerups from the player
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_teleport (0.5 0 0.5) ? PLAYER_ONLY SILENT STARTON INSTANT PROJECTILES NOTELEFX STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Teleport player/monsters to target location
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : Points to info_teleport_destination entity
target2 : Can be used to fire additional targets
wait    : -1 = teleport only triggers once (def=0)
wait2   : -1 = target2 only fires once (def=-1)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
speed   : forward momentum speed after teleporting (def=300)
volume  : teleporter hum sound volume (def=0.5)
noise   : custom sound to play when active (must be looped, def=hum1.wav)
waitmin : the length of the custom sound (def=3.622 for hum1.wav)
waitmin2: Time between teleport sound/fx (def=0.2s) being played
waitmin3: Alpha value for debug lvl showing triggers ingame (def=0.75)
dmg     : damage from using the teleport trigger (def=0)
dmgskill: damage based on skill level X=Easy, Y=Normal, Z=Hard/NM (def=0,0,0)
debuglvl: shows extra info 1=impact markers, 2=impact arrows, 3=console text
telefixangle    : 1 = Fixed angle direction for instant teleporters
no_trackondeath : 1 = Homing projectiles don't stop tracking (def=0 off)
-------- SPAWNFLAGS --------
PLAYER_ONLY : Can only be used by players (nothing else)
SILENT      : No teleporter ambient sound regardless of state
STARTON     : Will start active regardless of targetname setting
INSTANT     : Instantly teleport (no adjustment to teleport velocity)
PROJECTILES : Allow projectiles to use regular/instant teleporters 
NOTELEFX    : No player sound + FX when teleporting entities
STARTOFF    : Starts off and waits for trigger
-------- NOTES --------
Teleport player or monsters to target location (fixed or variable)
if targetname is setup, the teleporter requires a trigger to activate
This entity cannot be damaged and is always touchable once activated
Can be switched on/off using entity state system (including tele hum sound)
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_push (0.5 0 0.5) ? PUSH_ONCE SILENT NOMONSTER x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Push the Player/Monsters and Grenade/Eggs!
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target : target entity for custom direction
angle  : direction of push (-2 is down, -1 up)
angles : Pitch Yaw Roll (up/down, angle, tilt left/right)
speed  : Speed of push direction (def=1000)
-------- SPAWNFLAGS --------
PUSH_ONCE : trigger_once functionality
SILENT    : No wind sound for player
NOMONSTER : Monsters cannot be pushed by this trigger
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Push the Player/Monsters, player/ogre grenades and minion eggs!
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_fog (.5 .5 .5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Trigger change global fog to new value over time
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : name of target(s) to trigger
speed   : time (secs) to fade from current to new (-1 = instant, 2s = default)
wait    : time between re-triggering (def=2s, -1=once)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
fog_density : new fog density (def=0.1, -1=debug mode, -2=debug+ mode)
fog_colour  : new fog colours (def=0.1 0.1 0.1)
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Trigger change global fog to new value over time
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_skyfog (.5 .5 .5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Trigger change global sky fog to new value over time
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : name of target(s) to trigger
speed   : time (secs) to fade from current to new (-1 = instant, 2s = default)
wait    : time between re-triggering (def=2s, -1=once)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
skyfog_density : new sky fog density (def=0.5, -1=debug mode)
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Trigger change global sky fog to new value over time
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_ladder (.5 .5 .5) ? x x VELOCITY FTESKIN x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Invisible brush based ladder
-------- KEYS --------
targetname : trigger entity (works with entity state system)
angle      : direction player must be facing to climb ladder (required)
waitmin    : time between climb sound (def = depends on sound type)
speed      : velocity speed to climb ladder (def=160)
sounds     : 1=metal, 2=wood, 3=rope, 4=silent, 5=custom (def=wood)
noise1-4   : custom sounds to play when climbing ladder
yaw_speed  : VELOCITY only - Movement distance for sound trigger
distance   : VELOCITY only - Amount of velocity to push towards ladder (stickyness)
lip        : VELOCITY only - Change the step amount at the top of the ladder
height     : VELOCITY only - Default velocity upward if not doing anything on ladder
pos1       : VELOCITY only - Speed adjustment for X=strafe, Y=up and Z=down movement
pos2       : VELOCITY only - X=Strafe velocity, Y=Up/Down angle, Z=MIN velocity for up/down
-------- SPAWNFLAGS --------
VELOCITY : Will use the VELOCITY ladder system instead
FTESKIN  : Will use the FTE/SKIN ladder system instead
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Invisible brush based ladder
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_hurt (.5 .5 .5) ? x BUBBLES MONSTER_ONLY x MODCHECK FALLING STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Will hurt any touching entity
-------- KEYS --------
targetname : trigger entity (works with entity state system)
dmg     : damage from contact with trigger (def=5)
dmgskill: damage based on skill level X=Easy, Y=Normal, Z=Hard/NM (def=0,0,0)
wait    : time between pain contact (def=1s)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
speed   : used by falling spawnflag for velocity check (def=300)
height  : Maximum travel distance up for bubbles (default trigger size)
count   : total amount of active bubbles at once (default 5)
style   : 1-15 (grey,brown1,blue1,green1,red1,brown2,pinkyel,brown3,purp1,purp2,brown4,green2,yellow,blue2,red2)
yaw_speed : spawning rate (def=0.5) for bubbles (speed + random() x speed)
-------- SPAWNFLAGS --------
BUBBLES  : Spawn bubbles within trigger volume when active
MONSTER_ONLY : Will only affect monsters
MODCHECK : Will remove this entity if THIS mod is active
FALLING  : Only hurts if the player is falling (speed=velocity)
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Will hurt any touching entity that can take damage
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_heal (.5 .5 .5) ? x BUBBLES x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Heals any player who touches this trigger
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : trigger once when players stands in trigger (start cycle)
target2    : trigger once when healing expires (finish cycle)
wait       : time between healing (default 1s)
healamount : amount to heal each time touched (default 10)
max_health : total amount to heal (default 50, -1=no limit)
sounds     : 1=heal_15, 2=heal_25, 3=heal_100, 4=respawn, 5=custom (default 1)
noise      : Custom sound for healing
lip        : All messages are silent to the player (heal/expire) 1=block heal 2=block all
message    : centerprints when players stands in trigger
message2   : centerprints when healing function has expired
height     : Maximum travel distance up for bubbles (default trigger size)
count      : total amount of active bubbles at once (default 5)
style      : 1-15 (grey,brown1,blue1,green1,red1,brown2,pinkyel,brown3,purp1,purp2,brown4,green2,yellow,blue2,red2)
yaw_speed  : spawning rate (def=0.5) for bubbles (speed + random() x speed)
-------- SPAWNFLAGS --------
BUBBLES  : Spawn bubbles within trigger volume when active
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Heals any player who touches this trigger, can be triggered on/off and produces 
bubbles within the bounding box of the trigger when spawnflag enabled
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_touchsound (.5 .5 .5) ? x x WORLDGEO DRAIN x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Plays sounds when touched by the player
------- KEYS --------
targetname : trigger entity (works with entity state system)
sounds     : 1=Water (def) 2=Slime 3=Lava 4=silent 5=custom
noise      : Custom trigger touch sound
noise1     : Custom trigger exit sound
noise2     : Custom draining sound
speed      : Time (def=1.5s) to drain liquid
yaw_speed  : Vertical drain speed (def=0.05)
super_time : Time delay playing drain sound
water_alpha: Alpha value for liquid (override worldspawn)
-------- SPAWNFLAGS --------
WORLDGEO : Drawn bmodel (not just a trigger)
DRAIN    : Drain effect when trigger_disabled
STARTOFF : Requires trigger to activate
------- NOTES --------
Plays sounds when touched by the player
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_changelevel (0.5 0 0.5) ? NO_INTERMIS RESETINV SECSPAWN x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Finish current map, show intermission screen and loads next
-------- KEYS --------
targetname    : trigger entity (works with entity state system)
target        : name of target(s) to trigger before intermission
map           : The name of next map (e.g. e1m1) default=same map
startspawn2   : Special unique number (1-7) which must match info_player_start2
mapvar_update : Map Variable range to trigger on use (start, finish, value)
-------- SPAWNFLAGS --------
NO_INTERMIS : No Intermission screen 
RESETINV    : Reset player inventory to default (Shotgun+Shells)
SECSPAWN    : Start at second info_player spawn
STARTOFF    : Starts off and waits for trigger
-------- NOTES --------
Finish current map, show intermission screen and loads next
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_setskill (0.5 0 0.5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Sets player skill level (via console)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
health  : Can be damaged instead of touched
wait    : time between re-triggering (def=0.2s, -1=once)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
message : Skill Level - 0 = easy, 1 = normal, 2 = hard, 3 = nightmare
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Sets player skill level (via console)
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_rune (0.5 0 0.5) ? R1 R2 R3 R4 x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A Trigger that fires once if the player has certain runes
-------- KEYS --------
targetname : trigger entity (works with entity state system)
health  : Can be damaged instead of touched
angle   : Facing Direction for trigger to work, use "360" for angle 0.
target  : trigger to fire if player has MIXTURE of runes
noise1  : trigger to fire if player has rune 1
noise2  : trigger to fire if player has rune 2
noise3  : trigger to fire if player has rune 3
noise4  : trigger to fire if player has rune 4
wait    : = -1 Only trigger once if the player has runes
-------- SPAWNFLAGS --------
R1 : Rune 1
R2 : Rune 2
R3 : Rune 3
R4 : Rune 4
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
There are two ways this trigger can be used, a single check for multiple
runes using target key OR individual triggers for runes using noise 1-4 keys
This trigger is designed to work once when rune conditions are met
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterjump (.5 .5 .5) ? x FLYING SWIMMING x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Push monsters in a certain direction
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : target entity for custom direction
target2    : targets to fire when the trigger is used
wait       : -1 = trigger_once functionality
angle      : direction of push (-2 is down, -1 up)
angletarget: targeting entity used for custom direction
mangle     : facing direction for activating the trigger
speed      : the speed thrown forward (def 200)
height     : the speed thrown upwards (def 200)
noise1     : specify classname that CAN use this trigger (noise1=monster_dog)
-------- SPAWNFLAGS --------
FLYING   : Will affect flying monsters
SWIMMING  : Will affect swimming monsters
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Push monsters in a certain direction
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_drolejump (.5 .5 .5) ? x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Will only work for ENRAGED Droles
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target : target entity for custom direction
wait   : -1 = trigger_once functionality
angle  : direction of push (-2 is down, -1 up)
speed  : the speed thrown forward (def 200)
height : the speed thrown upwards (def 200)
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Will only work for ENRAGED Droles
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_nomonjump (.5 .5 .5) ?
Use trigger_monsternojump instead!
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Use trigger_monsternojump instead!
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsternojump (.5 .5 .5) ? x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Stop monsters from using jump attack
-------- KEYS --------
targetname : trigger entity (works with entity state system)
wait   : -1 = trigger_once functionality
delay  : time to delay jump attack by (def=0.5s)
waitmin: Re-trigger timer to stop touch flooding (def=0.1s)
noise1 : specify classname that CAN use this trigger (noise1=monster_dog)
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Stop monsters from using jump attack
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterdrop (0 .5 .5) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Drop monster(s) to floor
-------- KEYS --------
targetname : trigger entity (works with entity state system)
wait   : -1 = trigger_once functionality
height : the speed thrown upwards (def 50)
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Drop monster(s) to floor
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterturret (0.5 0.3 0) ? x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Temporarily turn a monster into a turret
-------- KEYS --------
targetname : trigger entity (works with entity state system)
wait   : -1 = Only trigger a monster turret function once
count  : random chance to pause; constant = -1, def = 0.25, range = 0 - 1
noise1 : only works with this type of monster (monster_ogre)
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Temporarily turn a monster into a turret
This entity cannot be damaged and is always touchable once activated
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monstermovespeed (0.5 0 0.5) (-8 -8 -16) (8 8 16) x
Toggle the monster move speed state
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : this points to the monster(s) to affect
state   : -1 = No movement, 0 = Toggle, 1 = Free movement
wait    : -1 = trigger once only
-------- SPAWNFLAGS --------
-------- NOTES --------
Toggle the monster move speed state
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterpassivestate (0.5 0 0.5) (-8 -8 -16) (8 8 16) x
Change the monster passive state
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target  : this points to the monster(s) to affect
state   : 1 = ON, 0 = OFF, -1 = TOGGLE
wait    : -1 = trigger once only
-------- SPAWNFLAGS --------
-------- NOTES --------
Change the monster passive state
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_itemrespawnupd (0.5 0 0.5) (-8 -8 -16) (8 8 16) x x x x RESPAWN x x x
Change the state of respawn flag on items
-------- KEYS --------
targetname : trigger entity
target  : this points to the item to affect
-------- SPAWNFLAGS --------
RESPAWN : Value of respawn flag to copy to item
-------- NOTES --------
Change the state of respawn flag on items
Useful for switching off respawning items after arena fight is over
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_clientmsg (0.5 0.5 0) (-8 -8 -16) (8 8 16) x
Centerprints a message to all clients
-------- KEYS --------
targetname : trigger entity
message : Text to center print
sounds  : 1=Secret,2=talk,3=switch,4=silent(def),5=custom,6=secret2
noise   : custom sound to play when triggered
-------- SPAWNFLAGS --------
-------- NOTES --------
Centerprints a message to all clients
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_cdtrack (0.8 0.5 0) (-8 -8 -16) (8 8 16) x
Change CD track for all clients
-------- KEYS --------
targetname : trigger entity
count      : CD track number (eg. 0-x)
-------- SPAWNFLAGS --------
-------- NOTES --------
Change CD track for all clients
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_skybox (0.9 0.9 0.9) (-8 -8 -16) (8 8 16) x
Load/Change Skybox for all clients
-------- KEYS --------
targetname : trigger entity
message : Skybox name (eg moonrise_)
-------- SPAWNFLAGS --------
-------- NOTES --------
Load/Change Skybox for all clients
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterkill (0.5 0 0.5) (-8 -8 -16) (8 8 16) x x x x DEATH GIB x x
Remove monster(s) from the map
-------- KEYS --------
targetname : Name of this trigger entity
target  : Name of monster(s) to remove/stop
-------- SPAWNFLAGS --------
DEATH : kill monsters via death function
GIB   : Gib monsters via death function
-------- NOTES --------
Remove monster(s) from the map
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterattack (0.5 0 0.5) (-8 -8 -16) (8 8 16) x
Force a monster to attack a certain target
-------- KEYS --------
targetname : Name of this trigger entity
target  : Name of monster to affect
target2 : Name of entity to attack
-------- SPAWNFLAGS --------
-------- NOTES --------
Force a monster to attack a certain target
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_doorstate (0 0.75 0.5) (-8 -8 -16) (8 8 16) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard
Trigger func_door(s) to exact state (open/close)
-------- KEYS --------
targetname : trigger this entity
target  : ALL target(s) must be func_door entities with toggle spawnflag!
state   : 0 or 1 func_door state (0=closed, 1=open)
wait    : -1 = will only fire targets once
-------- SPAWNFLAGS --------
STARTOFF : Requires trigger to activate
-------- NOTES --------
Trigger func_door(s) to exact state (open/close)
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_gravity (.5 .5 .5) ? NOTOUCH SERVER PLAYER MONSTER RESET x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Change entity/entities/player or server (world) gravity
------- KEYS --------
targetname : trigger entity (works with entity state system)
target   : Group of entities to affect with gravity update
target2  : fire event(s) everytime gravity is changed
waitmin2 : Minimum time between re-triggering fire events
noise2   : Sound to play everytime gravity is changed
waitmin  : Minimum time between re-triggering sound
count    : Gravity value (server=0-1000 (def=800) entity=0-1, can be negative)
wait     : (def) -1 = will only fire targets once
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
SERVER   : Changes server gravity instead of entity gravity
PLAYER   : Player(s) only can touch this trigger
MONSTER  : Monster(s) only can touch this trigger
RESET    : Reset any entity to default gravity (does not affect server)
STARTOFF : Requires trigger to activate
------- NOTES --------
Change entity/entities/player or server (world) gravity
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_fallspeed (.5 .5 .5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Change the player velocity speed checks for fall damage
------- KEYS --------
targetname     : trigger entity (works with entity state system)
target         : trigger all these targets when activated
jump_height    : The player jump height (def=270) initial boast from standing still
fall_speedlow  : Fall Speed for any checks (def=-300) must be negative no.
fall_speedhigh : Fall Speed for damage check (def=-650) must be negative no.
fall_speeddebug: Display players fall velocity to console (1=ON, -1=OFF)
fall_dmg       : Fall damage for player (def=5, -1=no dmg/sound)
fall_dmgwater  : Fall damage into water (>0 for dmg/sound, -1=no dmg/sound)
wait           : -1=will only fire targets once (switches off)
sounds         : 1=Secret,2=talk,3=switch,4=silent,6=secret2
noise          : custom sound to play when triggered
message        : message to display when triggered
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Requires trigger to activate
------- NOTES --------
Change the player velocity speed checks for fall damage
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_maxhp (.5 .5 .5) ? NOTOUCH x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Change the player maximum hp and mega client values
------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : trigger all these targets when activated
max_health  : Maximum Health for ALL the player / client
mega_health : Maximum Health for picking up the mega health item
count       : Skill level (0=ALL, 1=EASY, 2=NORMAL, 4=HARD, 8=NM, 15=ALL)
wait        : -1=will only fire targets once (switches off)
sounds      : 1=Secret,2=talk,3=switch,4=silent,6=secret2
noise       : custom sound to play when triggered
message     : message to display when triggered
-------- SPAWNFLAGS --------
NOTOUCH  : can only be triggered via other entities
STARTOFF : Requires trigger to activate
------- NOTES --------
Change the player maximum hp and mega client values
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_velocity (0.5 0 0.5) ? PLAYER MONSTER GRENADE ROCKET x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Check for projectile / player velocity!
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : fire event(s) everytime trigger conditions successful
target2   : fire event(s) everytime trigger exceptions fail
angle     : Facing Direction for trigger to work, use "360" for angle 0
ideal_yaw : Facing angle sensitivity (def=0.3, range = 0 - 1)
speed     : Minimum velocity speed to trigger (def=500)
waitmin   : (def=1s) Time between target/message working again
waitmin2  : (def=1s) Time between target2/message2 working again
wait      : -1 = Only fire the trigger functionality once
delay     : -1 = No spawn delay, 0 (def=1s), +0 = spawn delay
message   : display message everytime trigger conditions successful
message2  : display message everytime trigger exceptions fail
dmg_take  : Grenades will explode on impact of this trigger
-------- SPAWNFLAGS --------
PLAYER    : Player only trigger
MONSTER   : Monster only trigger
GRENADE   : Grenade projectile only trigger
ROCKET    : Rocket projectile only trigger
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Check for projectile / player velocity!
This entity cannot be damaged and is always touchable
/*

//-----------------------------------------------------------------------------
/*QUAKED trigger_lightstyle (0 0.75 0.75) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Change lightstyle, must specify a style/target and remap/string
-------- KEYS --------
targetname : trigger entity (works with entity state system)
style   : Light style number to affect (can be 0 = whole map)
target  : target a switchable light, instead of using style key
target2 : targets to trigger when entity is activated
wait    : -1 = will only trigger once
customstyle_remap  : Re-use another light style (1-63)
customstyle_string : light value string made up of "a-z" letters
customstyle_update : =0 always, =1 no, =2 only if estate/light on
-------- SPAWNFLAGS --------
-------- NOTES --------
Change lightstyle, must specify a style/target and remap/string
/*

//-----------------------------------------------------------------------------
/*QUAKED trigger_void (.5 0 .5) ? NO_CLIENT NO_MONSTER NO_AMMO NO_EGG NO_GIB NO_ITEM STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Garbage collector for bottom of skyboxes
------- KEYS --------
targetname : trigger entity (works with entity state system)
-------- SPAWNFLAGS --------
NO_CLIENT  : Ignore clients (anything flagged as a client)
NO_MONSTER : Ignore monsters (anything flagged as a monster)
NO_AMMO    : Ignore ammo types (all ammo projectile types)
NO_EGG     : Ignore minion eggs (affects shalrath, wraiths)
NO_TEMP    : Ignore temporary ents (gibs, sparks, smoke)
NO_ITEM    : Ignore items (weapons,armor,keys,runes,powerups)
STARTOFF : Requires trigger to activate
------- NOTES --------
Garbage collector for bottom of skyboxes
*/

//======================================================================
/*QUAKED trigger_entitystate_on (.7 .5 1) (-8 -8 -16) (8 8 16) x
Switch the target(s) entity state ON 
-------- KEYS --------
target  : target entities to switch on
target2 : more target(s) to affect
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
-------- SPAWNFLAGS --------
-------- NOTES --------
Switch the target(s) entity state ON 
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_entitystate_off (.7 .5 1) (-8 -8 -16) (8 8 16) x
Switch the target(s) entity state OFF 
-------- KEYS --------
target  : target entities to switch off
target2 : more target(s) to affect
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
-------- SPAWNFLAGS --------
-------- NOTES --------
Switch the target(s) entity state OFF 
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_entitystate_disable (.7 .5 1) (-8 -8 -16) (8 8 16) x
Switch the target(s) entity state DISABLE 
-------- KEYS --------
target  : target entities to switch disable
target2 : more target(s) to affect
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
-------- SPAWNFLAGS --------
-------- NOTES --------
Switch the target(s) entity state DISABLE
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_entitystate_reset (.7 .5 1) (-8 -8 -16) (8 8 16) x
Switch the target(s) entity state RESET
-------- KEYS --------
target  : target entities to switch disable
target2 : more target(s) to affect
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
-------- SPAWNFLAGS --------
-------- NOTES --------
Switch the target(s) entity state RESET
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_entitystate_aframe (.7 .5 0.8) (-8 -8 -16) (8 8 16) x
Switch the target(s) AFRAME state
-------- KEYS --------
target  : target entities to switch disable
target2 : more target(s) to affect
state   : 0 or 1 frame state (0=0-x, 1=A)
wait    : -1 = will only fire targets once
delay   : delay before firing (after being triggered)
cnt     : random amount of time to add to delay
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
volume  : Volume for all custom sounds played (def=1, range=0-1)
-------- SPAWNFLAGS --------
-------- NOTES --------
Switch the target(s) AFRAME state
*/

//======================================================================
/*QUAKED trigger_mapvar_query (.5 .9 0.8) (-8 -8 -16) (8 8 16) x
Trigger target(s) based on mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Map Variable to check (range checks)
target  : Map variable == 0 fire these target(s)
target2 : Map variable == 1 fire these target(s)
noise   : aframe switchable object
wait    : -1 = trigger once
-------- SPAWNFLAGS --------
-------- NOTES --------
Trigger target(s) based on mapvar
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_mapvar_update (.7 .7 1) (-8 -8 -16) (8 8 16) x
Update the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Map Variable to check (range checks)
cnt     : Value (0/1)
target  : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise   : aframe switchable object
wait    : -1 = trigger once
-------- SPAWNFLAGS --------
-------- NOTES --------
Update the value of mapvar
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_mapvar_toggle (.5 .7 1) (-8 -8 -16) (8 8 16) x
Toggle the value of mapvar
-------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Map Variable to check (range checks)
target  : Map variable == 1 fire these target(s)
target2 : Map variable == 0 fire these target(s)
noise   : aframe switchable object
wait    : -1 = trigger once
-------- SPAWNFLAGS --------
-------- NOTES --------
Toggle the value of mapvar
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_mapvar_multiple (0.5 0 0.5) ? x x x x x MONSTERS STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Touch trigger target(s) based on mapvar
------- KEYS --------
targetname : trigger entity (works with entity state system)
count   : Map Variable to check (range checks)
target  : Map variable == 1 fire these target(s)
message : Map variable == 1 message to display
target2 : Map variable == 0 fire these target(s)
message2: Map variable == 0 message to display
health  : Can be damaged instead of touched
wait    : time between re-triggering
delay   : delay before firing (after being triggered)
angle   : Facing Direction for trigger to work, use "360" for angle 0.
sounds  : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise   : custom sound to play when triggered
-------- SPAWNFLAGS --------
MONSTER  : can be touched/triggered by monsters
STARTOFF : Requires trigger to activate
------- NOTES --------
Touch trigger target(s) based on mapvar
*/

//=============================================================================
//
// MISC entities
//
//=============================================================================
/*QUAKED misc_particle (0 0.5 0.75) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A particle emitter which can be turned on/off (use function)
-------- KEYS --------
targetname   : toggle state (use trigger ent for exact state)
target       : destination of effect (self -> target)
target2      : name of a particle template
message      : Particle style string (upper case) leave blank for custom
               ALTAR, ARMOR1, ARMOR2, ARMOR3, BOOK, ELECTRIC,
			   FCIRCLE, FLAMES, FLAMEL, JUMPPAD, 
			   KEYGOLD, KEYSILVER, KEYRED, KEYGREEN, KEYPURPLE, KEYWHITE,
			   MEGAH, PENT, PORTAL, QUAD, SIGIL, SRING, SUIT,
			   SKILL, BSKILL, GSKILL, PSKILL
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
A particle emitter which can be turned on/off (use function)
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_particle_burst (0 0.5 0.75) (-8 -8 -8) (8 8 8) x
A particle emitter that fires a burst
-------- KEYS --------
targetname    : Trigger Particle Emitter
part_ofs      : Particle Origin Offset (def='0 0 0')
part_tcount   : Particle Quantity (def=20)
part_life     : Particle Life Time (def=2s)
part_style    : 1=yellow, 2=green, 3=red, 4=blue, 5=purple, 6=fire, 7=white
part_movetype : 2=center, 3=up, 4=shockwave, 5=skull, 6=lost, 7=minotaur
-------- SPAWNFLAGS --------
-------- NOTES --------
A particle emitter that fires a burst
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_particle_trail (0 0.5 0.75) (-8 -8 -8) (8 8 8) x
A particle emitter that adds a trail effect to another entity
-------- KEYS --------
targetname    : Trigger Particle Emitter
target        : Name of entity (only one) to add trail effect
part_style    : 1=yellow, 2=green, 3=red, 4=blue, 5=purple, 6=fire, 7=white
-------- SPAWNFLAGS --------
-------- NOTES --------
A particle emitter that adds a trail effect to another entity
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_particletemplate (0 0.5 0.75) (-8 -8 -8) (8 8 8) x
A particle emitter template
-------- KEYS --------
targetname   : target name reference for misc_particle entities
spr_name1    : sprite name (def=progs/s_bubble_blue1.spr)
spr_name2    : sprite name (def=progs/s_bubble_wht.spr)
spr_name3    : sprite name (def=progs/s_dotmed_grey.spr)
part_movetype: Movetype of particle (def=8, check defs.qc)
part_limit   : Maximum amount of particles to emit at once (def=25)
part_life    : Life time (seconds) particle is active (def=1)
part_ofs     : Offset from emitter (def='0 0 0' XYZ vector)
part_veltype : Velocity type 0=Vol, 1=circle, 2=randcircle, 3=Spiral, 5=Explosion(def)
part_velbase : Base velocity (always this direction)
part_vel     : Velocity direction (can be linear or crandom addition)
part_velrand : Extra random velocity (designed for volume velocity)
part_velrot  : Velocity rotation (Y axis only)
part_vol     : Spawning volume around emitter (XYZ vector)
wakeup_dist  : Wake up distance for particle emitter (def=1024)
wakeup_timer : How often to check distance time (def=1)
spawn_base   : Spawn rate time - base value (def=0.1)
spawn_rand   : Spawn rate time - random adjustment (def=0)
dpp_name     : DP particle effect name in effectinfo.txt file (def="")
dpp_wait     : DP particle re-trigger timer (def=0.1)
dpp_rnd      : DP particle random multiplier for time (def=0)
dpp_vel      : Direction of DP particles to move towards (XYZ)
-------- SPAWNFLAGS --------
-------- NOTES --------
A particle emitter template
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_builtineffects (0 .5 .8) (-8 -8 -8) (8 8 8) x
Spawns a builtin particle effect, will toggle if active
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target  : destination of effect (self -> target)
wait    : time between firing of effect (def=0)
delay   : random time between firing of effect (def=0s)
sounds  : = 4 silent (no default additional sounds)
count   : type of effect to fire
          0=TE_SPIKE (def), 1=TE_SUPERSPIKE, 2=TE_GUNSHOT, 
		  3=TE_EXPLOSION (sprites), 4=TE_TAREXPLOSION (purple ver)
		  5=TE_LIGHTNING1 (Shambler ver), 6=TE_LIGHTNING2 (Player ver)
		  7=TE_WIZSPIKE, 8=TE_KNIGHTSPIKE, 9=TE_LIGHTNING3 (boss ver)
		  10=TE_LAVASPLASH (boss wakeup), 11=TE_TELEPORT (sparkles)
-------- SPAWNFLAGS --------
-------- NOTES --------
Spawns a builtin particle effect, will toggle if active
Always starts off, requires triggers to activate
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_weather (0 0.5 0.75) ? x x x SNOW x x STARTOFF x
A particle emitter which produces weather effects
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
count      : Quantity of particles for volume
pos1       : Colour range of particles (Min/Max/0)
pos2       : Wind direction (X/Y) Speed (Z)
speed      : Random wind direction timer (-1=disable)
-------- SPAWNFLAGS --------
SNOW     : White wispy flakes falling (def=rain)
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
A particle emitter which produces weather effects
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_fireball (0 .5 .8) (-8 -8 -8) (8 8 8) x x x x x SLIME STARTOFF x
Lava Balls, with damage on impact
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target     : targeting entity used for custom direction
speed      : vertical speed (default 1000)
dmg        : impact damage (default 5)
delay      : base time between spawning fireballs (default 3)
wait       : random time default 5 (= time + self.delay + (random() x self.wait) ) 
-------- SPAWNFLAGS --------
SLIME    : Green slime version (smoke trail)
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Lava Balls, with damage on impact
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_gibfountain (0 .5 .8) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x
Spew Gibs in target direction (Originally from Zerstorer MOD)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
gibtype    : 0=Blood (def) 1=Stone 10=Poison
style      : 0=Random (def) 1=Arm/Leg 2=Torso 3=Slice 4=Small 5=Large
count      : Quantity of gibs to throw at once (def=1)
cnt        : Extra random quanity of gibs to throw (def=0)
gib1mdl    : Custom Gib 1 model
gib2mdl    : Custom Gib 2 model
gib3mdl    : Custom Gib 3 model
gib1skin   : Custom Gib 1 skin number (def=0)
gib2skin   : Custom Gib 2 skin number (def=0)
gib3skin   : Custom Gib 3 skin number (def=0)
gib1frame  : Custom Gib 1 range to randomly pick from
gib2frame  : Custom Gib 2 range to randomly pick from
gib3frame  : Custom Gib 3 range to randomly pick from
gib1sound  : Custom Gib 1 Impact sound (0=Light flesh, 1=Heavy flesh, 5=Acid,
gib2sound  : Custom Gib 2 Impact sound 10-12=Pebbles, 20=Wood, 40=Metal1, 
gib3sound  : Custom Gib 3 Impact sound 41=Metal2, 42=Chain, 50=Custom)
gib1soundx : Custom Gib 1 Impact WAV file (must set gib1sound=50)
gib2soundx : Custom Gib 2 Impact WAV file (must set gib2sound=50)
gib3soundx : Custom Gib 3 Impact WAV file (must set gib3sound=50)
sounds     : 1=Zerstorer(def) 4=Silent 5=Custom
noise      : Custom sound 1 for launching gibs
noise1     : Custom sound 2 for launching gibs (random selection)
target     : targeting entity used for custom direction
angle      : determines the firing direction (def=-1 UP)
gibmins    : Bounding box override for gib model (def='0 0 0')
gibmaxs    : Bounding box override for gib model (def='0 0 0')
speed      : forward speed (def=600)
gibvel     : Random Velocity X=Forward, Y=L/R, Z=U/D (def=200 100 0)
gib1dmg    : Amount of damage (>1) to inflict on player when touching gibs
gib1exp    : Sprite Explosion (1=small 2=medium 3=large 10+=plasma 20+=poison 30+=electric 40+=smoke)
gibpartstyle  : Particle Colour (1=Yellow 2=Green 4=Red 8=Blue 16=Purple 32=Fire 64=White)
gibpartoffset : Offset to particle origin (center of effect)
gibpartbase   : Particle quantity, Base (minimum) value
gibpartrnd    : Particle quantity, Random amount to add
gibpartlife   : Time (seconds) which particles are active
gibpartchance : % chance of particle effect being active while on floor
gibAnimfinal  : Final animation frame (>0) to enable sequence
gibAnimstart  : Starting animation frame for sequence
gibAnimTimer  : Time (seconds) spent in final impact animation
delay      : base time between spawning gibs (default 3)
wait       : random time default 5 (= time + self.delay + (random() x self.wait) ) 
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Spew Gibs in target direction (Originally from Zerstorer MOD)
*/

//-----------------------------------------------------------------------------
/*QUAKED air_bubbles (0 .5 .8) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
sprite based bubble that floats upward
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
style      : 1-15 (grey,brown1,blue1,green1,red1,brown2,pinkyel,brown3,purp1,purp2,brown4,green2,yellow,blue2,red2)
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
sprite based bubble that floats upward
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_drip (0 .5 .8) (-8 -8 -8) (8 8 8) x SILENT x x BLOOD SLIME STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Falling water drip with splash and sound
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
wait       : random time between drips (=random() + self.wait)
-------- SPAWNFLAGS --------
BLOOD    : Blood red drips
SLIME    : Slime green drips
SILENT   : Don't make any drip sound (good for multiple drips)
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Falling water drip with splash and sound
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_smoke (.5 .5 .75) (-8 -8 -8) (8 8 192) x NODPMDL NODPFX NOQSMDL x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Smoke model (DP only smoke particles)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target     : targeting entity used for custom direction
angles     : 'pitch roll yaw' up/down, angle, tilt left/right 
exactskin  : 0=Gunsmoke, 1=Soot, 2=Steam, 3=Toxin, 4=Plague, 5=Incense, 6=Lithium, 7=Flames
alpha      : alpha value for model (def=0.65)
wait       : time between generation of smoke particles (def=0.1, min=0.01)
delay      : random amount of time delay ( time = wait + delay x random() )
height     : Percentage of velocity distance travelled (def=1, range=0-1+)
-------- SPAWNFLAGS --------
NODPMDL    : Do not draw smoke model in DP engine
NODPFX     : Do not draw DP smoke particle effect
NOQSMDL    : Do not draw smoke model in QS/Fitz engine
STARTOFF   : Always Starts off and waits for trigger
-------- NOTES --------
Smoke model, DP only smoke particles (wait/delay/height DP only)
angles = 'pitch roll yaw' up/down, angle, tilt left/right 
up/left = negative value, down/right = positive value
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_spark (.5 .75 .5) (-8 -8 -8) (8 8 8) x BLUE PALE RED x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Produces a burst of sparks at random intervals
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target  : If target is a light, will be switched on/off in sync
wait    : time delay between bursts Def=2, spark once=-1
cnt     : number of sparks in burst (0.5 + random() x 0.5) Def=16
angle   : direction of sparks to follow, use "360" for 0
fixangle: 1 = Random Y axis direction of sparks
speed   : velocity speed of sparks (def=40)
height  : random velocity modifier (def=+/-20)
sounds  : 1=sparks, 4=silent, 5=custom
noise   : custom sound for sparks
-------- SPAWNFLAGS --------
BLUE     : sparks are blue in colour (def=yellow)
PALE     : sparks are pale yellow in colour (def=yellow)
RED      : sparks are red in colour (def=yellow)
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Produces a burst of sparks at random intervals
If targeting a light, it must start switched off (lights spawnflag=1)
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_shake (.5 .5 .9) (-16 -16 -8) (16 16 8) x VIEWONLY x x x x x x Not_Easy Not_Normal Not_Hard Not_DM
Shake players view and/or velocity around center of entity
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
count  : radius of shake (def = 200)
wait   : duration of shake (def = 2s)
dmg    : strength at center (def = 200)
sounds : 1=loud rumble (no default)
noise1 : noise to play when starting to shake
noise2 : noise to play when stopping
-------- SPAWNFLAGS --------
VIEWONLY : Shakes the view, but player movement is not affected
-------- NOTES --------
Shake players view and/or velocity around center of entity
Always starts off, requires triggers to activate
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_marshlight (.5 .5 .75) (-8 -8 -8) (8 8 8) x x x x x x STARTOFF x
Marsh lights (Quoth item)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
count      : Maximum amount of active marsh light entities (def=5)
color      : 0=White, 1=Cyan, 2=Blue, 3=Green, 4=Orange, 5=Red, 6=Purple
mdl        : Name of Small sprite (def='progs/s_marsh_small.spr')
headmdl    : Name of Medium sprite (def='progs/s_marsh_med.spr')
waitmin    : Reset movement timer (def=6s)
waitmin2   : Reset Velocity movement (def=4.5s)
distance   : Starting distance from center (def=20)
speed      : Override for frame animation speed (def=0.1s)
lip        : Frame animation direction -2=random, -1=back, 1=forward(def)
pos1       : used for selection of frame(s) has several setups
             X=0, Y=0, Z=exact frame number
             X->Y, Z=0 Randomly pick a frame from the X,Y range
             X->Y, Z=-1 Animate between the X,Y range
pos2       : used for the selection of skin(s) has several setups
             X=0, Y=0, Z=exact skin number
             X->Y, Z=0 Randomly pick a skin from the X,Y range
pos3       : Base rotation avelocity (def=0 0 0)
finalangle : Random rotation avelocity (def=0 0 0)
-------- SPAWNFLAGS --------
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Marsh lights
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_gtkmodel (1 .5 .25) (-16 -16 -16) (16 16 16) x COLLISION MOVEMENT DROPFLOOR x STATIC STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
MDL files that can be setup with specific frame/skin and animate groups
-------- KEYS --------
targetname  : toggle state (use trigger ent for exact state)
mdl         : specify model to load, full path (progs/candle.mdl)
angle       : facing angle of model (-1 = random position)
angles      : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw   : = 1 Setup model with random Y axis rotation
frame       : exact frame number (Quoth entity compatibility)
skin        : exact skin number (Quoth entity compatibility)
mangle      : 'pitch yaw roll' override (Quoth entity compatibility)
view_ofs    : Extra offset for origin (ideal for light origin issues)
delay       : Spawning delay for models on func movers (works once)
sounds      : TRIGGER 1=Secret, 2=talk, 3=switch, 4=silent, 5=custom, 6=secret2
noise       : Custom sound to play with animation TRIGGER
locksounds  : TOGGLE 1=laser, 2=power, 4=silent, 5=custom
noise1      : Custom sound to play when animation TOGGLE ON
noise2      : Custom sound to play when animation TOGGLE OFF
volume      : Volume for all custom sounds played (def=1, range=0-1)
lip         : Frame/skin animation direction -2=random, -1=back, 1=forward(def)
state       : Automatic start of frame/skin animations (0=ON, -1/1=OFF)
speed       : Override for frame/skin animation speed (def=0.1s)
pos1        : FRAME basic and range parameters
               X=0, Y=0, Z=exact frame number
               X->Y, Z=0 Randomly pick a frame from the X,Y range
               X->Y, Z=-1 Animate between the X,Y range
pos2        : SKIN basic and range parameters
               X=0, Y=0, Z=exact skin number
               X->Y, Z=0 Randomly pick a skin from the X,Y range
               X->Y, Z=-1 Animate between the X,Y range
framestart  : FRAME Starting point, 0=def, X=-1 Random, X=0+ Exact
frameloop   : FRAME type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
skinstart   : SKIN Starting point, 0=def, X=-1 Random, X=0+ Exact
skinloop    : SKIN type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
rotateloop  : ROTATE type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
rotateangles: ROTATE axis (XYZ) changing (+/-) angles over time
alphastart  : ALPHA fade IN time for misc_model (1=Fade in over 1s)
bbmins      : Model bounding box override (use with collision/dropfloor)
bbmaxs      : Model bounding box override
target      : Path_corner entities to start moving towards on spawn
faceangle   : Turn model towards path_corner as it moves around (def=0)
yaw_speed   : Turning speed of model towards path_corners (def=15)
movespeed   : Movement speed of model towards path_corners (def=50)
normalangle : 1=Turn the model towards the normal plane direction
-------- SPAWNFLAGS --------
COLLISION   : model bbox collision enabled
MOVEMENT    : model can be moved around like an item
DROPFLOOR   : Will drop to the floor below (terrain alignment)
STATIC      : Turn entity into static upon spawn (frame 0)
STARTOFF    : Always Starts off and waits for trigger
-------- NOTES --------
MDL files that can be setup with specific frame/skin and animate groups
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_model (1 .5 .25) (-16 -16 -16) (16 16 16) x COLLISION MOVEMENT DROPFLOOR x STATIC STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
MDL files that can be setup with specific frame/skin and animate groups
-------- KEYS --------
targetname  : toggle state (use trigger ent for exact state)
mdl         : specify model to load, full path (progs/candle.mdl)
angle       : facing angle of model (-1 = random position)
angles      : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw   : = 1 Setup model with random Y axis rotation
frame       : exact frame number (Quoth entity compatibility)
skin        : exact skin number (Quoth entity compatibility)
mangle      : 'pitch yaw roll' override (Quoth entity compatibility)
view_ofs    : Extra offset for origin (ideal for light origin issues)
delay       : Spawning delay for models on func movers (works once)
sounds      : TRIGGER 1=Secret, 2=talk, 3=switch, 4=silent, 5=custom, 6=secret2
noise       : Custom sound to play with animation TRIGGER
locksounds  : TOGGLE 1=laser, 2=power, 4=silent, 5=custom
noise1      : Custom sound to play when animation TOGGLE ON
noise2      : Custom sound to play when animation TOGGLE OFF
volume      : Volume for all custom sounds played (def=1, range=0-1)
lip         : Frame/skin animation direction -2=random, -1=back, 1=forward(def)
state       : Automatic start of frame/skin animations (0=ON, -1/1=OFF)
speed       : Override for frame/skin animation speed (def=0.1s)
pos1        : FRAME basic and range parameters
               X=0, Y=0, Z=exact frame number
               X->Y, Z=0 Randomly pick a frame from the X,Y range
               X->Y, Z=-1 Animate between the X,Y range
pos2        : SKIN basic and range parameters
               X=0, Y=0, Z=exact skin number
               X->Y, Z=0 Randomly pick a skin from the X,Y range
               X->Y, Z=-1 Animate between the X,Y range
framestart  : FRAME Starting point, 0=def, X=-1 Random, X=0+ Exact
frameloop   : FRAME type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
skinstart   : SKIN Starting point, 0=def, X=-1 Random, X=0+ Exact
skinloop    : SKIN type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
rotateloop  : ROTATE type, 0=Constant, 1+=Range+stop, -1=Toggle, -2=Trigger+wait
rotateangles: ROTATE axis (XYZ) changing (+/-) angles over time
alphastart  : ALPHA fade IN time for misc_model (1=Fade in over 1s)
bbmins      : Model bounding box override (use with collision/dropfloor)
bbmaxs      : Model bounding box override
target      : Path_corner entities to start moving towards on spawn
faceangle   : Turn model towards path_corner as it moves around (def=0)
yaw_speed   : Turning speed of model towards path_corners (def=15)
movespeed   : Movement speed of model towards path_corners (def=50)
normalangle : 1=Turn the model towards the normal plane direction
-------- SPAWNFLAGS --------
COLLISION   : model bbox collision enabled
MOVEMENT    : model can be moved around like an item
DROPFLOOR   : Will drop to the floor below (terrain alignment)
STATIC      : Turn entity into static upon spawn (frame 0)
STARTOFF    : Always Starts off and waits for trigger
-------- NOTES --------
MDL files that can be setup with specific frame/skin and animate groups
*/

//-----------------------------------------------------------------------------
/*QUAKED mapobject_custom (1 .5 .25) (-8 -8 -8) (8 8 8) x COLLISION MOVEMENT x x STATIC STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
This is a duplicate of misc_model for quoth map compatibility
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
This is a duplicate of misc_model for quoth map compatibility
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_player (1 .5 .25) (-16 -16 -24) (16 16 32) BACK DOWN1 WALL DOWN2 DOWN3 SIDE STARTOFF x
Dead Player MDL for poses
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
angle      : facing angle (-1 = random position)
ideal_yaw  : = 1 Setup model with random Y axis rotation
fixangle   : 1=Use misc_player.mdl instead (less hassle)
frame      : body pose (49=on back, 67-69=against wall, 60/84/93=face down, 102=on side)
exactskin  : -1= Random, 0-1 Original, 2-3 Green, 4-5 Yellow, 6-7 Red
bodyonflrtrig : trigger name to fire when ent destroyed by Shadow Axe
-------- SPAWNFLAGS --------
BACK  : 49=On back
DOWN1 : 60=Face Down
WALL  : 69=Against wall
DOWN2 : 84=Face Down
DOWN3 : 93=Face Down
SIDE  : 102=On Side
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Dead Player MDL for poses
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_demon (1 .5 .25) (-32 -32 -24) (32 32 64) x x x x x x STARTOFF x
Dead demon/fiend for poses
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
angle      : facing angle (-1 = random position)
ideal_yaw  : = 1 Setup model with random Y axis rotation
frame      : body pose (53=on back - def)
exactskin  : -1= Random, 0= Original, 1= Green
bodyonflrtrig : trigger name to fire when ent destroyed by Shadow Axe
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Dead demon/fiend for poses
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_dknight (0.75 0.25 0) (-16 -16 -24) (16 16 40) x x x x x x STARTOFF x
Dead Death Knight for poses
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
angle      : facing angle (-1 = random position)
ideal_yaw  : = 1 Setup model with random Y axis rotation
frame      : body pose (223=on front, 237-243=on back - def)
bodyonflrtrig : trigger name to fire when ent destroyed by Shadow Axe
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Dead Death Knight for poses
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_explobox (0 0.5 0.8) (-16 -16 0) (16 16 64) x x x x x FLOAT STARTOFF
{ model(":progs/explode_box1.mdl"); }
Large exploding box
-------- KEYS --------
target        : trigger events when box explodes
skin_override : 0=original, 1=rubicon2, 2=plasma, 3=toxic, 4-5=wood
noise         : Explosion sound (def=weapons/r_exp3.wav)
health        : Amount of health before exploding (def=15)
dmg           : Override radius damage (def=160)
-------- SPAWNFLAGS --------
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Large exploding box
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_explobox2 (0 0.5 0.8) (-16 -16 0) (16 16 32) x x x x x FLOAT STARTOFF
{ model(":progs/explode_box2.mdl"); }
Small exploding box
-------- KEYS --------
target        : trigger events when box explodes
skin_override : 0=original, 1=rubicon2, 2=plasma, 3=toxic, 4-5=wood
noise         : Explosion sound (def=weapons/r_exp3.wav)
health        : Amount of health before exploding (def=15)
dmg           : Override radius damage (def=160)
-------- SPAWNFLAGS --------
FLOAT    : No drop to floor test
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Small exploding box
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_textbook (0 .5 .5) (-16 -16 -8) (16 16 8) NOMODEL PLINTH1 PLINTH2 STORY COLLISION ANGLEONLY STARTOFF NOEFFECTS Not_Easy Not_Normal Not_Hard Not_DM
Display custom text messages
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target     : trigger event when book is opened (only works once)
target2    : name of story controller (only works with spawnflag)
angle      : facing angle for model or direction player must be standing
v_angle    : The viewing angle the book is active (def=30,60,0)
exactskin  : skin number for book type (1-8, Brown1/2,Green1/2,Blue1/2,Red1/2)
randomskin : Pick a random skin, range = 1-randomskin
pos1       : Touch trigger minimin size (def=-48 -48 -32)
pos2       : Touch trigger maximum size (def=48 48 32)
message    : header message
message2   : Body Text 1 (need to add linefeeds)
message3   : Body Text 2 (displayed after message2)
message4   : Body Text 3 (displayed after message3)
-------- SPAWNFLAGS --------
NOMODEL   : Will not use book model + particles
PLINTH1   : Setup book on top of plinth1 model
PLINTH2   : Setup book on top of plinth2 model
STORY     : Book is part of a story (use target2)
COLLISION : Use bounding box collision for plinth
ANGLEONLY : Will only work when standing infront of entity (angle key)
STARTOFF  : Starts off and waits for trigger
NOEFFECTS : No particle or effects active
-------- NOTES --------
Display custom text messages
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_textstory (0 0.5 1.0) (-16 -16 -8) (16 16 8) x
Text Book Story Chapters
-------- KEYS --------
targetname : name of current chapter
target     : name of next chapter
message    : header message
message2   : Body Text 1 (need to add linefeeds)
message3   : Body Text 2 (displayed after message2)
message4   : Body Text 3 (displayed after message3)
-------- SPAWNFLAGS --------
-------- NOTES --------
Text Book Story Chapters
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_textstoryctrl (0 0.1 1.0) (-16 -16 -8) (16 16 8) x
Text Book Story Controller
-------- KEYS --------
targetname : name of controller for story
target     : name of first chapter
-------- SPAWNFLAGS --------
-------- NOTES --------
Text Book Story Controller
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_targetdummy (0 .5 .5) (-32 -32 -24) (32 32 64) KNIGHT WIZARD OGRE HELL_KNIGHT ZOMBIE DEMON SHALRATH SHAMBLER
Target practice dummy
------- KEYS --------
noise1 : Targetnumber tracking weapon used
noise2 : Targetnumber tracking enemy distance
noise3 : Targetnumber tracking damage
noise4 : Targetnumber tracking % efficency
wait   : Impact marker removal time (def=2)
-------- SPAWNFLAGS --------
KNIGHT      : Knight model
WIZARD      : Wizard model
OGRE        : Ogre model
HELL_KNIGHT : Hell Knight model
ZOMBIE      : Zombie model
DEMON       : Demon model
SHALRATH    : Shalrath model
SHAMBLER    : Shambler model
------- NOTES --------
Target practice dummy
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_targetnumber (.5 .5 0) (-4 -4 -8) (4 4 8) x
target number to display ingame
------- KEYS --------
targetname : required for numbers to updated
mdl        : Numbers 0-9,dot,blank (def=progs/misc_digit.mdl)
waitmin    : Spacing of the model numbers (def=8)
cnt        : Initial display value on spawn (must be >0)
pos1       : X= top digit quantity, Y=Lower digit quantity
-------- SPAWNFLAGS --------
------- NOTES --------
target number to display ingame
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_bob (1 .5 .25) (-16 -16 -16) (16 16 16) x COLLISION x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
A MODEL that gently moves back and forth
-------- KEYS --------
targetname : trigger entity (works with entity state system)
mdl      : model to move back and forth (progs/key_runic.mdl)
angle    : direction movement, use "360" for angle 0
height   : direction intensity (def=4)
count    : direction cycle timer (def=2s, minimum=1s)
waitmin  : Speed up scale (def=1) 1+=non linear
waitmin2 : Slow down scale (def=0.75)
delay    : Starting time delay (def=0, -1=random)
-------- SPAWNFLAGS --------
COLLISION : model bbox collision enabled
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
A MODEL that gently moves back and forth
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_camera (1 0.5 0.5) (-16 -16 -16) (16 16 16) PLAYER SKIPABLE FADEOUT FADEIN FIXEDANGLE ENDCAMERA x x Not_Easy Not_Normal Not_Hard Not_DM
In game cinematic camera (Does not work in coop/dm mode)
-------- KEYS --------
targetname   : Camera name for linking into target chains
target       : Points to the next camera in a chain/sequence
angletarget  : Direction the camera will face (use info_target)
angles       : Direction the camera will face (Pitch Yaw Roll setup)
focalpoint   : Always focus the camera on angletarget (=1 enabled)
angleblend   : Blend between current/last camera angles (def=0.03 range=0-1)
target2      : Additional target(s) to trigger when camera VIEWED
deathtarget  : Additional target(s) to trigger when cinematic FINISHED
modeltarget  : Location of fake player mdl (use info_camera_destination)
returntarget : Location of returning player (use info_camera_destination)
pos1         : Camera starting BACKGROUND colour (R/G/B)
pos2         : Camara finishing BACKGROUND colour (R/G/B)
waitmin      : Fade OUT previous camera, time (def=1s, minimum=0.1s)
waitmin2     : Fade IN this camera, time (def=1s, minimum=0.1s)
waitmin3     : Speed at which camera moves towards sighttarget
sighttarget  : Position the camera will travel towards (use info_target)
controltarget: Bezier Curve control point (has angletarget defaults)
wait         : Time to wait while showing camera (-1 = wait for key)
message      : message to centerprint when camera is viewed
message2     : message to centerprint to client if coop is active
sounds       : 1=Secret,2=talk(def),3=switch,4=silent,5=custom,6=secret2
noise        : custom sound to play when messaged is centerprinted
nodebuginfo  : All debug info displayed via developer=1 is blocked
-------- SPAWNFLAGS --------
PLAYER       : Show the player model when starting cinematics
SKIPABLE     : Allow the cinematic to be skipped (exit after fade)
FADEOUT      : Fade OUT previous camera (time = waitmin)
FADEIN       : Fade IN this camera (time = waitmin2)
FIXEDANGLE   : All cameras in a chain will use the first camera angle
ENDCAMERA	 : Only the fade in/out work, the origin/angle are ignored
-------- NOTES --------
In game cinematic camera will fade/move based on times in seconds.
The first fade (out) is from previous camera to background colour.
The second fade (in) is to current camera view. The linear movement
will start at the same time as the fade in process.
Start -> Fade Out(waitmin1) -> Fade In(waitmin2) / Movement (waitmin3)
Once 'Fade in' has finshed then the pause timer (wait) starts.
Waitmin3 = Waitmin2 + Wait (Sync everything to finish together)
To sync the final camera to a player start, finish 22 map units above
angles = up/down, angle, tilt left/right 'pitch roll yaw'
up/left = negative value, down/right = positive value
deathtarget, modeltarget & returntarget have to be defined on first camera
Be aware that coop is not supported, so be careful of trigger events
and decide on a coop "not working" message2.
*/

//-----------------------------------------------------------------------------
/*QUAKED info_camera_destination (1 0.5 0.5) (-16 -16 -24) (16 16 32) x
Marker for a Cinematic Camera System
-------- KEYS --------
targetname : link to misc_camera entity
angles : Pitch Yaw Roll (facing angle)
-------- SPAWNFLAGS --------
-------- NOTES --------
Marker for a Cinematic Camera System
*/

//=============================================================================
//
// QUOTH CORPSE entities (Uses misc_model system)
//
//=============================================================================
/*QUAKED corpse_crucified1 (1 .5 .25) (-16 -16 -24) (16 16 40) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (crucified)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (crucified)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_crucified2 (1 .5 .25) (-16 -16 -24) (16 16 40) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (crucified + headless)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (crucified + headless)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_back1 (1 .5 .25) (-16 -16 -32) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in back + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in back + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_back2 (1 .5 .25) (-16 -16 -32) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in back)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in back)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_back3 (1 .5 .25) (-16 -16 -24) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in back + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in back + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_front1 (1 .5 .25) (-16 -16 -16) (16 16 16) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in front + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in front + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_front2 (1 .5 .25) (-16 -16 -16) (16 16 16) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in front)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in front)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_front3 (1 .5 .25) (-16 -16 -8) (16 16 16) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled in front + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled in front + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_horizontal1 (1 .5 .25) (-16 -16 -40) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled horizontal + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled horizontal + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_horizontal2 (1 .5 .25) (-16 -16 -40) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled horizontal)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled horizontal)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_horizontal3 (1 .5 .25) (-16 -16 -40) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled horizontal + nibbled)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled horizontal + nibbled)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_horizontal4 (1 .5 .25) (-16 -16 -32) (16 16 16) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled horizontal + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled horizontal + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_vertical1 (1 .5 .25) (-16 -16 -32) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled vertical + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled vertical + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_vertical2 (1 .5 .25) (-16 -16 -32) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled vertical)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled vertical)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_impaled_vertical3 (1 .5 .25) (-16 -16 -32) (16 16 24) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (impaled vertical + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (impaled vertical + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_lynched1 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (lynched + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (lynched + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_lynched2 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (lynched)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (lynched)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_lynched3 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (lynched + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (lynched + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_flayed1 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (flayed + clothed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (flayed + clothed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_flayed2 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (flayed)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (flayed)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_flayed3 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (flayed + eaten)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (flayed + eaten)
*/

//-----------------------------------------------------------------------------
/*QUAKED corpse_flayed4 (1 .5 .25) (-16 -16 -96) (16 16 0) x x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Corpse model (flayed + broken leg)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target    : trigger all these targets
angle     : facing angle (-1 = random position)
angles    : 'pitch yaw roll' up/down, angle, tilt left/right 
ideal_yaw : = 1 Setup model with random Y axis rotation
-------- SPAWNFLAGS --------
STARTOFF : Always Starts off and waits for trigger
-------- NOTES --------
Corpse model (flayed + broken leg)
*/


//=============================================================================
//
// TRAP entities
//
//=============================================================================
/*QUAKED trap_spikeshooter (0 0.5 0.8) (-8 -8 -8) (8 8 8) SNG LASER WIZARD HELLK x TOGGLE x TRACK Not_Easy Not_Normal Not_Hard Not_DM
When triggered, fires a SPIKE in the direction determined by angle
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target : targeting entity used for custom direction
angle  : direction for projectile to follow, use "360" for angle 0
wait   : time between projectiles (def=1s)
delay  : random time between projectile (def=0s)
speed  : Change projectile speed (def/sng=500, laser=600, wiz=500, hell=300)
-------- SPAWNFLAGS --------
SNG    : shoots large spike (SNG damage)
LASER  : shoots laser (Enforcer damage)
WIZARD : shoots acid spike (Wizard damage)
HELLK  : shoots fire spike (Hell Knight damage)
TOGGLE : Trigger will toggle the shooter on/off instead
TRACK  : Will update target entity origin before firing
-------- NOTES --------
When triggered, fires a SPIKE in the direction determined by angle
Use TOGGLE spawnflag and trigger to enable continuous mode
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_grenadeshooter (0 0.5 0.8) (-8 -8 -8) (8 8 8) LARGE x x x x TOGGLE x TRACK Not_Easy Not_Normal Not_Hard Not_DM
When triggered, fires a GRENADE in the direction determined by angle
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target : targeting entity used for custom direction
angle  : direction for projectile to follow, use "360" for angle 0
wait   : time between projectiles (def=1s)
delay  : random time between projectile (def=0s)
speed  : Change projectile speed (def=500, large=600)
-------- SPAWNFLAGS --------
LARGE  : shoots high damage grenade (Player damage, def=ogre)
TOGGLE : Trigger will toggle the shooter on/off instead
TRACK  : Will update target entity origin before firing
-------- NOTES --------
When triggered, fires a GRENADE in the direction determined by angle
Use TOGGLE spawnflag and trigger to enable continuous mode
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_rocketshooter (0 0.5 0.8) (-8 -8 -8) (8 8 8) LAVA FIRE JIM x x TOGGLE x TRACK Not_Easy Not_Normal Not_Hard Not_DM
When triggered, fires a ROCKET in the direction determined by angle
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target : targeting entity used for custom direction
angle  : direction for projectile to follow, use "360" for angle 0
wait   : time between projectiles (def=1s)
delay  : random time between projectile (def=0s)
speed  : Change projectile speed (def=1000, lava=300, fire=500)
-------- SPAWNFLAGS --------
LAVABALL : shoots Chthon lava ball (Player damage)
FIREBALL : shoots Gargoyle fire ball (low damage)
JIM FLYER: shoots Jim rocket (low damage)
TOGGLE   : Trigger will toggle the shooter on/off instead
TRACK    : Will update target entity origin before firing
-------- NOTES --------
When triggered, fires a ROCKET in the direction determined by angle
Use TOGGLE spawnflag and trigger to enable continuous mode
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_lightningshooter (0 0.5 0.8) (-8 -8 -8) (8 8 8) LARGE x x DUST PART TOGGLE x TRACK Not_Easy Not_Normal Not_Hard Not_DM
When triggered, fires a LIGHTNING at the target entity (can be blocked)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target   : targeting entity used for destination (required)
wait     : time between projectiles (def=1s)
delay    : random time between projectile (def=0s)
volume   : Lightning hit sound volume (def=0.75)
dmg      : Damage from lightning strike (def=15, large=30)
pos1     : Random XYZ wobble to source position
pos2     : Random XYZ wobble to target position
-------- SPAWNFLAGS --------
LARGE   : Cthton Boss Lightning
DUST    : Produce dust/smoke at point of impact
PARTICLE: Produce particles at point of impact
TOGGLE  : Trigger will toggle the shooter on/off instead
TRACK   : Will update target entity origin before firing
-------- NOTES --------
When triggered, fires a LIGHTNING at the target entity (can be blocked)
Use TOGGLE spawnflag and trigger to enable continuous mode
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_gasshooter (0 .5 .8) (-8 -8 -8) (8 8 8) STEAM FIRE POISON x SILENT TOGGLE x TRACK Not_Easy Not_Normal Not_Hard Not_DM
When triggered, fires a gas particle in the direction determined by angle
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target : targeting entity used for custom direction
angle  : direction for stream to follow, use "360" for angle 0
wait   : time between particles (def=0.05s)
speed  : velocity speed (def=200)
waitmin: auto switch off timer (def=0.5s)
dmg    : damage from contact with particles (def=1)
-------- SPAWNFLAGS --------
STEAM  : White hot clouds of steam (default)
FIRE   : Will add burning debuff to player
POISON : Will add poison debuff to player
SILENT : No on/off sound, its silent!
TOGGLE : Trigger will toggle the shooter on/off instead
TRACK  : Will update target entity origin before firing
-------- NOTES --------
When triggered, fires a gas particle in the direction determined by angle
Use TOGGLE spawnflag and trigger to enable continuous mode
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_gasleak (0 .5 .8) (-8 -8 -8) (8 8 8) x
Not used anymore, use trap_gasshooter instead
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_pendlong (0.5 0.75 0) (-8 -192 -24) (8 0 24) REVERSE ONESWING x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Long (192 units) Pendulum (From Rogue mission pack)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
dmg      : Damage to do for each contact, def=5
waitmin  : Damage throttle to touch function, def=0.5s
wait     : amount of time (seconds) before starting swinging. def=0
-------- SPAWNFLAGS --------
REVERSE  : Starts at frame 12 instead 0
ONESWING : Will do a single swing (back + forth) when triggered
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Long (192 units) Pendulum (From Rogue mission pack)
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_pendlongx (0.5 0.75 0) (-192 -8 -24) (0 8 24) REVERSE ONESWING x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Long (192 units) Pendulum working on X axis only
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
dmg      : Damage to do for each contact, def=5
waitmin  : Damage throttle to touch function, def=0.5s
wait     : amount of time (seconds) before starting swinging. def=0
-------- SPAWNFLAGS --------
REVERSE  : Starts at frame 12 instead 0
ONESWING : Will do a single swing (back + forth) when triggered
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Long (192 units) Pendulum working on X axis only
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_pendshort (0.5 0.75 0) (-8 -128 -24) (8 0 24) REVERSE ONESWING x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Short (128 units) Pendulum
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
dmg      : Damage to do for each contact, def=5
waitmin  : Damage throttle to touch function, def=0.5s
wait     : amount of time (seconds) before starting swinging. def=0
-------- SPAWNFLAGS --------
REVERSE  : Starts at frame 12 instead 0
ONESWING : Will do a single swing (back + forth) when triggered
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Short (128 units) Pendulum
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_pendshortx (0.5 0.75 0) (-128 -8 -24) (0 8 24) REVERSE ONESWING x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Short (128 units) Pendulum working on X axis only
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target   : Name of first path_corner to start at (instant move)
dmg      : Damage to do for each contact, def=5
waitmin  : Damage throttle to touch function, def=0.5s
wait     : amount of time (seconds) before starting swinging. def=0
-------- SPAWNFLAGS --------
REVERSE  : Starts at frame 12 instead 0
ONESWING : Will do a single swing (back + forth) when triggered
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Short (128 units) Pendulum working on X axis only
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_sawbladey (0 .5 .8) (-4 -32 -32) (4 32 32) STARTON x x x x REVERSE STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Rotating Saw Blade on Y axis only
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target   : Name of first path_corner to start at (instant move)
speed    : Speed to follow path, def=100
yaw_speed: Rotation speed for Saw Blade (def=180)
dmg      : Damage to do for each contact, def=4
waitmin  : Damage throttle for ON touch function, def=0.1s
height   : Damage throttle for OFF touch function, def=1s
lip      : Deceleration time; def=2s, =-1 instant stop
sounds   : 0=Silent, 1=Woodmill, 5=Custom sounds
noise    : custom sound - stopped
noise1   : custom sound - moving (looping)
-------- SPAWNFLAGS --------
STARTON  : Start moving straight away if targetname is used
REVERSE  : Start going backward through path_corner chain
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Rotating Saw Blade on Y axis only
*/

//-----------------------------------------------------------------------------
/*QUAKED trap_sawbladex (0 .5 .8) (-32 -4 -32) (32 4 32) STARTON x x x x REVERSE STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Rotating Saw Blade on X axis only
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
target   : Name of first path_corner to start at (instant move)
speed    : Speed to follow path, def=100
yaw_speed: Rotation speed for Saw Blade (def=180)
dmg      : Damage to do for each contact, def=4
waitmin  : Damage throttle for ON touch function, def=0.1s
height   : Damage throttle for OFF touch function, def=1s
lip      : Deceleration time; def=2s, =-1 instant stop
sounds   : 0=Silent, 1=Woodmill, 5=Custom sounds
noise    : custom sound - stopped
noise1   : custom sound - moving (looping)
-------- SPAWNFLAGS --------
STARTON  : Start moving straight away if targetname is used
REVERSE  : Start going backward through path_corner chain
STARTOFF : Starts off and waits for trigger
-------- NOTES --------
Rotating Saw Blade on X axis only
*/


//=============================================================================
//
// LIGHT entities
//
//=============================================================================
/*QUAKED light (0 1 0) (-8 -8 -8) (8 8 8) LIGHTOFF x x x x x x x
Non-displayed light
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
style : 0 = normal
        1 = flicker (first variety)
        2 = slow strong pulse
        3 = candle (first variety)
        4 = fast strobe
        5 = gentle pulse
        6 = flicker (second variety)
        7 = candle (second variety)
        8 = candle (third variety)
        9 = slow strobe
       10 = flourescent flicker
       11 = slow pulse, not fading to black
styles 01-63 can be custom in map (use customstyle_string)
styles 32-63 are assigned by the light program for switchable lights

customstyle_remap  : Re-use another light style (0-63)
customstyle_string : light value string made up of "a-z" letters

_color : Light color - R/G/B (def='1 1 1')
wait   : Fade distance multiplier (def=1)
delay  : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle : Spotlight direction
angle  : Spotlight cone angle (def=40)

_dirt       : Dirt map (override)
_dirtscale  : Dirt scale (override)
_deviance   : Deviance
_samples    : No. of Deviance lights (def=16)
_surface    : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle  : Spotlight soft angle (def=0)
_anglescale : Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF : Starts off and waits for trigger
-------- NOTES --------
Non-displayed light. If targeted, it will toggle between on or off
*/

//-----------------------------------------------------------------------------
/*QUAKED light_fluoro (0 1 0) (-8 -8 -8) (8 8 8) LIGHTOFF NO_SOUND x x x x x x
Non-displayed light. Makes steady fluorescent humming sound
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NO_SOUND   : No ambient sound
-------- NOTES --------
Non-displayed light. Makes steady fluorescent humming sound
*/

//-----------------------------------------------------------------------------
/*QUAKED light_fluorospark (0 1 0) (-8 -8 -8) (8 8 8) x NO_SOUND x x x x x x
Non-displayed light. Makes sparking, broken fluorescent sound
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
NO_SOUND   : No ambient sound
-------- NOTES --------
Non-displayed light. Makes sparking, broken fluorescent sound
*/

//-----------------------------------------------------------------------------
/*QUAKED light_globe (0 1 0) (-8 -8 -8) (8 8 8) LIGHTOFF x NO_STATIC x x x X x
{ model(":progs/s_light.spr"); }
Sphere globe light (sprite)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NO_STATIC  : Will not turn into static entity
-------- NOTES --------
Sphere globe light (sprite)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_torch_small_walltorch (0 .5 0) (-10 -10 -20) (10 10 20) LIGHTOFF NO_SOUND NO_STATIC x x x x NOPARTICLES
{ model(":progs/flame.mdl"); }
Short wall torch
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NO_SOUND   : No ambient sound
NO_STATIC  : Will not turn into static entity
NOPARTICLES: No particle or effects active
-------- NOTES --------
Short wall torch
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_large_yellow (0 1 0) (-8 -8 -8) (8 8 8) LIGHTOFF NO_SOUND NO_STATIC x x x x NOPARTICLES
{ model(":progs/flame2.mdl"); }
Large yellow flame
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NO_SOUND   : No ambient sound
NO_STATIC  : Will not turn into static entity
NOPARTICLES: No particle or effects active
-------- NOTES --------
Large yellow flame
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_small_yellow (0 1 0) (-8 -8 -8) (8 8 8) LIGHTOFF NO_SOUND NO_STATIC x x x x NOPARTICLES
{ model(":progs/flame2.mdl"); }
Small yellow flames
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NO_SOUND   : No ambient sound
NO_STATIC  : Will not turn into static entity
NOPARTICLES: No particle or effects active
-------- NOTES --------
Small yellow flames.
*/

//-----------------------------------------------------------------------------
/*QUAKED light_candle (0 1 0) (-4 -4 -16) (4 4 16) LIGHTOFF FLAMEOFF x SHADOWS x STATIC x x
{ model(":progs/misc_candle1.mdl"); }
Wide variety of Candles (from Rogue Software)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
angle      : 0=random angle, 1-360=specific
height     : size of candle 1=short, 2=medium, 3=regular, -1=random
t_width    : width of candle 1=regular, 2=fat, 3=thin, -1=random
lip        : Moves model down to ground plane (default = 16)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
FLAMEOFF   : The candle is displayed off (no flame)
SHADOWS    : Turn on shadows in DP engine
STATIC     : Turn entity into static upon spawn (frame 0)
-------- NOTES --------
Wide variety of Candles (from Rogue Software)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_postlight (0 .5 0) (-8 -8 -32) (8 8 16) LIGHTOFF NOTSTATIC x x x x x x
{ model(":progs/misc_lightpost.mdl"); }
light post (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
-------- NOTES --------
light post (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_tubelight (0 .5 0) (-8 -8 -32) (8 8 16) LIGHTOFF NOTSTATIC x x x x x x
{ model(":progs/misc_lighttube.mdl"); }
light Tube (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
-------- NOTES --------
light Tube (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_pyre (0 .5 0) (-32 -32 -8) (32 32 56) LIGHTOFF NOSTATIC x x x x x NOPARTICLES
{ model(":progs/misc_flame_big.mdl"); }
Flame Pyre (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
NOPARTICLES: No particle or effects active
-------- NOTES --------
Flame Pyre (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_brazier_short (0 .5 0) (-8 -8 -16) (8 8 8) LIGHTOFF NOTSTATIC x x x x x NOPARTICLES
{ model(":progs/misc_brazshrt.mdl"); }
Short brazier (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
skin       : 0=knave(def), 1=rust, 2=redbrick, 3=copper, 4=altar, 5=wizmet
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
NOPARTICLES: No particle or effects active
-------- NOTES --------
Short brazier (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_brazier_tall (0 .5 0) (-8 -8 -64) (8 8 8) LIGHTOFF NOTSTATIC x x x x x NOPARTICLES
{ model(":progs/misc_braztall.mdl"); }
Long brazier (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
skin       : 0=knave(def), 1=rust, 2=redbrick, 3=copper, 4=altar, 5=wizmet
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
NOPARTICLES: No particle or effects active
-------- NOTES --------
Long brazier (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_torch_long_walltorch (0 .5 0) (-8 -8 -48) (8 8 80) LIGHTOFF NOTSTATIC x x x x x NOPARTICLES
{ model(":progs/misc_longtrch.mdl"); }
Long wall torch (from Quoth)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
skin       : 0=knave(def), 1=rust, 2=redbrick, 3=copper, 4=altar, 5=wizmet
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
NOPARTICLES: No particle or effects active
-------- NOTES --------
Long wall torch (from Quoth)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_fixture1 (0 .5 0) (-10 -10 -20) (10 10 20) LIGHTOFF NOTSTATIC x x x x x x
{ model(":progs/misc_fixture1.mdl"); }
light Fixture (from Rubicon)
-------- KEYS --------
targetname : toggle state (use trigger ent for exact state)
light      : sets brightness, 300 is default
fixangle   : angle the model should be facing; set it to face away from the wall
_color     : Light color - R/G/B (def='1 1 1')
wait       : Fade distance multiplier (def=1)
delay      : Attenuation 0=Linear, 1=inverse, 2=Squared, 3=NoFalloff, 4=Minlight, 5=Good Ambient
mangle     : Spotlight direction
angle      : Spotlight cone angle (def=40)

_dirt      : Dirt map (override)
_dirtscale : Dirt scale (override)
_deviance  : Deviance
_samples   : No. of Deviance lights (def=16)
_surface   : Surface light texture name
_surface_offset : Surface light offset (def=2)
_softangle : Spotlight soft angle (def=0)
_anglescale: Light angle scale (def=0.5)
-------- SPAWNFLAGS --------
LIGHTOFF   : Starts off and waits for trigger
NOTSTATIC  : Not static entity (useful for switchable lights)
-------- NOTES --------
light Fixture (from Rubicon)
*/

//-----------------------------------------------------------------------------
/*QUAKED light_flame_small_white (0 1 0) (-8 -8 -8) (8 8 8) x
Not used anymore
*/

//=============================================================================
//
// HIPNOTIC/RITUAL ROTATION STUFF
//
//=============================================================================
/*QUAKED info_rotate (0.25 0.5 0) (-4 -4 -12) (4 4 12) x
center point for rotating objects
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
center point for rotating objects
*/

//-----------------------------------------------------------------------------
/*QUAKED path_rotate (0.5 0.3 0) (-8 -8 -8) (8 8 8) ROTATION ANGLES STOP NO_ROTATE DAMAGE MOVETIME SET_DAMAGE
Corner Path for rotate_train
-------- KEYS --------
event  : is a target to trigger when train arrives at path_rotate
noise  : contains the name of the sound to play when train stops
noise1 : contains the name of the sound to play when train moves
speed  : set speed to be the new speed of the train after it reaches
  the path change.  If speed is -1, the train will warp directly to the next
  path change after the specified wait time.  If MOVETIME is set on the
  path_rotate, the train to interprets "speed" as the length of time to
  take moving from one corner to another.
-------- SPAWNFLAGS --------
ROTATION  : Rotate train at rate specified by 'rotate', use '0 0 0' to stop
ANGLES    : Rotate to the angles specified by 'angles'
  while traveling to this path_rotate.  Use values < 0 or > 360 to 
  guarantee that it turns in a certain direction.  Having this flag 
  set automatically clears any rotation
STOP      : stop train and wait to be retriggered
NO_ROTATE : stop train rotating when waiting to be triggered
DAMAGE    : Cause damage based on 'dmg'
MOVETIME  : Interpret 'speed' as the length of time to take moving
SET_DAMAGE: Set all targets damage to 'dmg'
-------- NOTES --------
Corner Path for rotate_train
*/

//-----------------------------------------------------------------------------
/*QUAKED rotate_object (0 .5 .8) ? x x x x x x x x
Defines a bmodel object to be rotated
-------- KEYS --------
targetname  : name of bmodel object
target      : origin point entity (info_rotate) used by compiler!
target2     : Move on spawn to this entity (info_rotate) location
waitmin     : time before target2 is activated (def=1s)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
-------- NOTES --------
Defines a bmodel object to be rotated
Used as the target of func_rotate_door
*/

//-----------------------------------------------------------------------------
/*QUAKED func_rotate_entity (0 .5 .8) (-8 -8 -8) (8 8 8) TOGGLE STARTON ZEROFIN x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Constantly rotating object
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : Rotating origin point (use info_rotate)
rotate     : XYZ rate of rotation in degrees
speed      : Time to speed up/down object (def=0s)
yaw_speed  : Alternative time to slowdown object (def=speed)
waitmin    : Time to wait before setup on spawn (def=0.1s)
sounds     : 0 = silent, 1 = small industrial fan (def=0)
noise1     : Custom sound - Spinning UP
noise2     : Custom sound - Full Speed
noise3     : Custom sound - Spinning DOWN
noise4     : Custom sound - STOP sound
-------- SPAWNFLAGS --------
TOGGLE     : Rotation can be toggled on/off, 0 = cannot be turned off
STARTON    : whether the entity is spinning when spawned
ZEROFIN    : Always end at zero angles when finished
STARTOFF   : Starts off and waits for trigger
-------- NOTES --------
Constantly rotating object
*/

//-----------------------------------------------------------------------------
/*QUAKED func_movewall (0 .5 .8) ? VISIBLE TOUCH NONBLOCKING
Emulate collision on rotating objects
-------- KEYS --------
targetname  : trigger entity (works with entity state system)
target      : Rotating origin point (use info_rotate)
dmg         : damage to cause when touched or blocked
waitmin     : Change tick timer for touch/blocked (def=0.5)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
VISIBLE     : Causes brush to be displayed
TOUCH       : Cause damage when touched by player
NONBLOCKING : makes the brush non-solid,  This is useless if VISIBLE is set
-------- NOTES --------
Emulate collision on rotating objects
*/

//-----------------------------------------------------------------------------
/*QUAKED func_rotate_door (0 .5 .8) (-8 -8 -8) (8 8 8) STAYOPEN x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Rotating door moving around a point of rotation
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : Points to the rotate_object bmodel entity
dmg        : Damage caused when blocked (def=2) negative numbers =no damage
speed      : Time taken to rotate open/close
yaw_speed  : Alternative time to close door (def=speed)
waitmin    : Time to wait before setup on spawn (def=0.1s)
angles     : Rotation (XYZ) distance to travel in 1 turn
sounds     : 1=medieval 2=metal 3=base 4=Silent 5=Custom (def=1)
noise1     : Custom sound = Open sound
noise2     : Custom sound = Continous moving
noise3     : Custom sound = Close sound
-------- SPAWNFLAGS --------
STAYOPEN   : Reopen after closing, stops a once only door from closing if blocked
STARTOFF   : Starts off and waits for trigger
-------- NOTES --------
Rotating door moving around a point of rotation
*/

//-----------------------------------------------------------------------------
/*QUAKED func_rotate_train (0 .5 .8) (-8 -8 -8) (8 8 8) STARTON x x x x x STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Rotating bmodel on path (controlled via path_rotate entities)
-------- KEYS --------
targetname : = "" start moving straight away != "" wait for trigger
target     : Points to the rotate_object bmodel entity
path       : Location to start at after spawning
speed      : Initial travel speed (def=100)
waitmin    : Time to wait before setup on spawn (def=0.1s)
dmg        : blocking damage (def=0)
sounds     : 0=Silent, 1=Ratchet Metal, 5=Custom sounds
noise      : custom sound - stopped
noise1     : custom sound - moving (looping)
-------- SPAWNFLAGS --------
STARTON     : Starts moving on spawn
STARTOFF    : Starts off and waits for trigger
-------- NOTES --------
Rotating bmodel on path (controlled via path_rotate entities)
This entity is moved along the path chain as the bmodel moves
Will start automatically if no targetname is defined
*/

//=============================================================================
//
// BREAKABLES
//
//=============================================================================
/*QUAKED func_breakable (0 .5 .8) ? STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMONSTER NOSOUND NOROTATE Not_Easy Not_Normal Not_Hard Not_DM
Spawn breakable objects from a bmodel
-------- KEYS --------
target     : targets to fire when breakable is dead/used (only used once)
target2    : Additional trigger function (need target to be defined as well)
style      : pre-defined sound/model types - 1=rock, 2=wood, 3=glass, 4=metal, 5=brick, 6=flesh, 10=custom
brksound   : Initial breaking sound type (override style default)
brkimpsound : Impact sound type (override style default)
brkobjects : Breakable object model type (10-15=rocks, 20-22=woods, 30-32=glass, 40-42=metals, 50-54=brick, 60-62=flesh)
noise     : Initial breaking sound (unique sound file)
noise1    : Custom Rubble Impact sounds (unique sound files, must have 1 defined)
noise2    : Custom Rubble Impact sound 2
noise3    : Custom Rubble Impact sound 3
noise4    : Custom Rubble Impact sound 4
brkobj1   : Custom Rubble bmodel objects (unique models, must have 1 defined)
brkobj2   : Custom Rubble bmodel objects 2
brkobj3   : Custom Rubble bmodel objects 3
brkobj4   : Custom Rubble bmodel objects 4
health    : amount of damage to take before breaking (def 1)
count     : minimum quantity to spawn (def 4)
cnt       : random quantity to spawn (def 4) =-1 no random qty
dmg       : explosive radius damage (emits from center of func object)
pos1      : x=start particle colour, y=random range, z=quantity
brkvelbase : Base amount for velocity of broken parts (def "50 50 100")
brkveladd : Random additions for velocity of broken parts (def "100 100 150")
brkavel   : Amount of breaking object angle velocity (def 200)
brkfade   : Fade time before rubble fades away (def 4+random()x4)
brkmondmg : Damage multiplier for monster damage against breakable
angles    : direction to throw rubble (override default = impact direction)
brkgravity     : Change the gravity for rubble, useful for underwater (Value = 0-1)
brktrigjump    : Trigger if damaged by jumping monster attack (-1/1=active)
brktrigmissile : Trigger if damaged by rocket/grenade/shalball/radiusdmg (-1/1=active)
brktrignoplayer: No player/clients can damage this breakable
brkdelaydamage : Time pause before enabling damage on this breakable
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
STARTOFF  : Will wait for trigger to spawn
NODAMAGE  : Cannot be damaged or shot, trigger only
EXPLOSION : trigger sprite/particle explosion
SILENT    : No initial breakage sound
DAMAGE    : Spawning rubble can damage (def = 2, use dmg key for touch damage)
NOMONSTER : Monsters cannot damage this breakable and/or spawning rubble will not damage monsters
NOSOUND   : Spawning rubble has no impact sounds
NOROTATE  : Spawning rubble has No Y rotation
-------- NOTES --------
Spawn breakable ojects from a bmodel
*/

//-----------------------------------------------------------------------------
/*QUAKED func_breakable_spawner (0.5 .5 .8) (-8 -8 -8) (8 8 8) x x EXPLOSION SILENT DAMAGE NOMONSTER NOSOUND NOROTATE Not_Easy Not_Normal Not_Hard Not_DM
Spawn breakable objects from a single point
-------- KEYS --------
target     : targets to fire when breakable is dead/used (only used once)
target2    : Additional trigger function (need target to be defined as well)
style      : pre-defined sound/model types - 1=rock, 2=wood, 3=glass, 4=metal, 5=brick, 6=flesh, 10=custom
brksound   : Initial breaking sound type (override style default)
brkimpsound: Impact sound type (override style default)
brkobjects : Breakable object model type (10-15=rocks, 20-22=woods, 30-32=glass, 40-42=metals, 50-54=brick, 60-62=flesh)
noise      : Initial breaking sound (unique sound file)
noise1    : Custom Rubble Impact sounds (unique sound files, must have 1 defined)
noise2    : Custom Rubble Impact sound 2
noise3    : Custom Rubble Impact sound 3
noise4    : Custom Rubble Impact sound 4
brkobj1   : Custom Rubble bmodel objects (unique models, must have 1 defined)
brkobj2   : Custom Rubble bmodel objects 2
brkobj3   : Custom Rubble bmodel objects 3
brkobj4   : Custom Rubble bmodel objects 4
health    : amount of damage to take before breaking (def 1)
count     : minimum quantity to spawn (def 4)
cnt       : random quantity to spawn (def 4) =-1 no random qty
dmg       : explosive radius damage (emits from center of func object)
pos1      : x=start particle colour, y=random range, z=quantity
brkvelbase: Base amount for velocity of broken parts (def "50 50 100")
brkveladd : Random additions for velocity of broken parts (def "100 100 150")
brkavel   : Amount of breaking object angle velocity (def 200)
brkfade   : Fade time before rubble fades away (def 4+random()x4)
angles    : direction to throw rubble (override default = impact direction)
brkgravity     : Change the gravity for rubble, useful for underwater (Value = 0-1)
brktrigjump    : Trigger if damaged by jumping monster attack (-1/1=active)
brktrigmissile : Trigger if damaged by rocket/grenade/shalball/radiusdmg (-1/1=active)
brktrignoplayer: No player/clients can damage this breakable
brkdelaydamage : Time pause before enabling damage on this breakable
brkvol      : Spawning volume vector for breakable point entity
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
EXPLOSION : trigger sprite/particle explosion
SILENT    : No initial breakage sound
DAMAGE    : Spawning rubble can damage (def = 2, use dmg key for touch damage)
NOMONSTER : Spawning rubble will not damage monsters
NOSOUND   : Spawning rubble has no impact sounds
NOROTATE  : Spawning rubble has No Y rotation
-------- NOTES --------
Spawn breakable ojects from a single point
*/

//-----------------------------------------------------------------------------
/*QUAKED func_breakable_wall (0 .5 .8) ? START_ON SOLID FADEOUT x x x x x Not_Easy Not_Normal Not_Hard Not_DM
Switchable bmodel for breakable setups with optional collision
-------- KEYS --------
targetname : trigger entity (works with entity state system)
wait       : set to -1 for trigger once condition (def=0)
waitmin    : random time to wait before fading out
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
-------- SPAWNFLAGS --------
START_ON : Will spawn visible and wait for trigger
SOLID    : Will block player/monster movement
FADEOUT  : Will fade out after a certain amount of time if visible!
-------- NOTES --------
Switchable bmodel for breakable setups with optional collision
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_breakable_vase1 (1 .5 .25) (-16 -16 -16) (16 16 24) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_vase1.mdl"); }
Breakable ceramic vase (model)
-------- KEYS --------
mdl        : Name of model to display (def = 'progs/brk_vase1.mdl')
brkobj1    : Breakable rubble 1 (def = 'progs/brk_vase1part1.mdl')
brkobj2    : Breakable rubble 2 (def = 'progs/brk_vase1part2.mdl')
brkobj3    : Breakable rubble 3 (def = 'progs/brk_vase1part3.mdl')
brkobj4    : Breakable rubble 4 (def = 'progs/brk_vase1part4.mdl')
exactskin  : Skin override of model (def 0, cannot be negative)
target     : Additional triggers to fire when model breaks
angle      : Yaw rotation of model (-1/0 = random rotation)
health     : amount of damage to take before breaking (def 1)
count      : minimum quantity to spawn (def 4)
cnt        : random quantity to spawn (def 4) final qty = count + random(cnt)
dmg        : explosive radius damage (emits from center of func object)
pos1       : x=start particle colour, y=random range, z=quantity (def '168 8 1')
bbmins     : Model bounding box MINIMUM size (def '-8 -8 -16')
bbmaxs     : Model bounding box MAXIMUM size (def '8 8 16')
brkvol     : Volume size for spawning pieces inside of (def '16 16 32')
brkmdltype : Predefined sizes (0/1 = '16 16 32' and 2/3 = '24 24 40')
brkpuff    : Spawn explosive puff of smoke and extra particles (-1 = disable)
brkvelbase : Base amount for velocity of broken parts (def '50 50 100')
brkveladd  : Random additions for velocity of broken parts (def '100 100 150')
brkavel    : Amount of breaking object angle velocity (def 200)
brkfade    : Fade time before rubble fades away (def 4+random()x4)
brkgravity : will change the gravity for rubble, useful for underwater
-------- SPAWNFLAGS --------
STARTOFF   : Will wait for trigger to spawn
NODAMAGE   : Cannot be damaged or shot, trigger only
EXPLOSION  : trigger sprite/particle explosion
SILENT     : No initial breakage sound
DAMAGE     : Spawning rubble can damage (def = 2, use dmg key for touch damage)
NOMONSTER  : monsters cannot damage this breakable and/or spawning rubble will not damage monsters
NOSOUND    : Spawning rubble has no impact sounds
NOROTATE   : Spawning rubble has No Y rotation
-------- NOTES --------
Breakable ceramic vase (model)
*/

//-----------------------------------------------------------------------------
/*QUAKED func_breakable_vase (1 .5 .25) (-16 -16 -16) (16 16 24) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_vase1.mdl"); }
Duplicate of misc_breakable_vase1
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_breakable_pot1a (1 .5 .25) (-16 -16 -16) (16 16 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot1a.mdl"); }
Breakable ceramic pot 1a (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot2a (1 .5 .25) (-16 -16 -16) (16 16 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot2a.mdl"); }
Breakable ceramic pot 2a (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot1aflr (1 .5 .25) (-20 -20 -16) (20 20 16) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot1aflr.mdl"); }
Breakable ceramic pot 1a tipped over onto floor (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot2aflr (1 .5 .25) (-20 -20 -16) (20 20 16) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot2aflr.mdl"); }
Breakable ceramic pot 2a tipped over onto floor (model)
Check misc_breakable_vase1 for keys and spawnflags
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_breakable_pot1c (1 .5 .25) (-16 -16 -16) (16 16 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot1c.mdl"); }
Breakable ceramic pot 1c (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot2c (1 .5 .25) (-16 -16 -16) (16 16 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot2c.mdl"); }
Breakable ceramic pot 2c (model)
Check misc_breakable_vase1 for keys and spawnflags
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_breakable_pot1b (1 .5 .25) (-10 -10 -16) (10 10 16) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot1b.mdl"); }
Breakable ceramic pot 1b (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot2b (1 .5 .25) (-10 -10 -16) (10 10 16) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot2b.mdl"); }
Breakable ceramic pot 2b (model)
Check misc_breakable_vase1 for keys and spawnflags
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_breakable_pot1d (1 .5 .25) (-12 -12 -16) (12 12 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot1d.mdl"); }
Breakable ceramic pot 1d (model)
Check misc_breakable_vase1 for keys and spawnflags
*/
/*QUAKED misc_breakable_pot2d (1 .5 .25) (-12 -12 -16) (12 12 32) STARTOFF NODAMAGE EXPLOSION SILENT DAMAGE NOMOSTER NOSOUND NOROTATE
{ model(":progs/brk_pot2d.mdl"); }
Breakable ceramic pot 2d (model)
Check misc_breakable_vase1 for keys and spawnflags
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_monsterbreak (.8 .5 .8) (-8 -8 -8) (8 8 8) NODELAY WAKEANIM x x x x x x Not_Easy Not_Normal Not_Hard Not_DM
Trigger (once) breakable and monster together
-------- KEYS --------
targetname : trigger entity (works with entity state system)
target     : points to func_breakable (single target)
target2    : points to a monster (single target)
wait       : time before breakable is triggered (def 0.2)
-------- SPAWNFLAGS --------
NODELAY  : No delay between monster and breakable trigger
WAKEANIM : Will do special wakeup animation when triggered
-------- NOTES --------
Trigger (once) breakable and monster together
*/

//-----------------------------------------------------------------------------
/*QUAKED trigger_explode (.8 .5 .5) (-4 -4 -4) (4 4 4) x NOPARTICLES DUST x x x x x Not_Easy Not_Normal Not_Hard Not_DM
Triggered entity producing damage + sprite explosion
-------- KEYS --------
targetname : trigger entity (works with entity state system)
dmg    : explosive radius damage (def=40, -1=no damage)
delay  : time delay to explosion (def=0s)
noise  : string name for explosion sound (def=weapons/r_exp3b.wav)
wait   : re-trigger explosions (def=-1 trigger once)
style  : 0=Explosion, 1=Plasma, 2=Poison, 3=Electric, 4=Burst (Smoke/Flame/Poison)
height : 0/1=Small(Def), 2=Medium, 3=Large, -1=Random
count  : Random amount of dust particles to spawn (1-x)
pos1   : Dust velocity X=Random, Y=UpBase, Z=UpRnd
-------- SPAWNFLAGS --------
NOPARTICLES : No old school particle explosion
DUST : Dust particle explosion (use angle for direction)
-------- NOTES --------
Triggered entity producing damage + sprite explosion
*/

//-----------------------------------------------------------------------------
/*QUAKED func_pushable (0 .5 .8) ? x DAMAGE x NOFLRCHECK FLOATING NOMONSTER STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
Moveable brushwork (pushable)
-------- KEYS --------
targetname : trigger entity (works with entity state system)
style      : sound move/impact types - 1=rock, 2=wood, 3=glass, 4=metal, 5=brick, 10=custom
noise1     : Custom move sound 1 (style=10)
noise2     : Custom move sound 2
noise3     : Custom move sound 3
bleedcolour: Impact particle colour (starting point on palette)
target     : target(s) to fire when pushable is dead (once only)
deathtarget: target(s) to fire when pushable is dead (once only)
target2    : points to a func_breakable_spawner to trigger on death
message    : Message to display when killed by player
message2   : Message to display when touched by player
wait       : Time for showing touch/death message (=-1 once, def=2)
health     : damage taken before death
death_dmg  : will explode on death (reqs health)
speed      : pushing speed (def = 1)
waitmin    : length of pushable sounds (def=0.5s)
waitmin2   : Alpha value to fade block down to when pushing
-------- SPAWNFLAGS --------
DAMAGE    : Pushable can be damaged or destroyed
NOFLRCHECK: No floor below check for extra velocity
FLOATING  : Pushable starts off floating (until touched)
NOMONSTER : Cannot be damaged by monsters
STARTOFF  : Starts off and waits for trigger
-------- NOTES --------
Moveable brushwork (pushable)
*/

//=============================================================================
//
// MONSTERS
//
//-----------------------------------------------------------------------------
/*QUAKED monster_dog (1 0 0) (-32 -32 -24) (32 32 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dog.mdl"); }
Dog (Rottweiler), 25 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Dog (Rottweiler), 25 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_eel (0.25 0 1) (-16 -16 -24) (16 16 24) AMBUSH x LIQBLOCK NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_eel.mdl"); }
Eel, 35 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
LIQBLOCK : Liquid surfaces block wakeup/sight lines
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Eel, 35 health points. 
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_fish (0.25 0 1) (-16 -16 -24) (16 16 24) AMBUSH SMALL LIQBLOCK NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_fish.mdl"); }
Rotfish, 25 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
SMALL    : Smaller version, less HP
LIQBLOCK : Liquid surfaces block wakeup/sight lines
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Rotfish, 25 health points. 
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_lostsoul (1 0 0) (-16 -16 -24) (16 16 24) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_lostsoul.mdl"); }
Lost Soul, 30 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Lost Soul, 30 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_scorpion (1 0 0) (-16 -16 -24) (16 16 16) AMBUSH x STINGER NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_scorpion.mdl"); }
Scorpion, 80/120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
STINGER  : Works like the Black crab from HL2 with a poison debuff 
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Scorpion, 80/120 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_spider (1 0 0) (-16 -16 -24) (16 16 16) AMBUSH LARGE ONCEILING NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_spiderb.mdl"); }
Spider, 30/75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
LARGE     : Large green spitting variety
ONCEILING : Start on ceiling above, waiting ...
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Spider, 30/75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_steelclaw (1 0 0) (-16 -16 -24) (16 16 16) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_steelclaw.mdl"); }
Steelclaw, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Steelclaw, 75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_voreling (1 0 0) (-16 -16 -24) (16 16 16) AMBUSH LARGE ONCEILING NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_voreling.mdl"); }
Voreling, 30/60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
LARGE     : Large purple spitting variety
ONCEILING : Start on ceiling above, waiting ...
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Voreling, 30/60 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_swampling (1 0 0) (-16 -16 -24) (16 16 16) AMBUSH LARGE ONCEILING NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_swampling.mdl"); }
Swampling, 30/60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
LARGE     : Large dark green spitting variety
ONCEILING : Start on ceiling above, waiting ...
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Swampling, 30/60 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_army (1 0 0) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_soldier.mdl"); }
Soldier, 30 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Soldier, 30 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_army_rocket (1 .35 0) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_soldier.mdl"); }
Rocket Soldier, 45 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Rocket Soldier, 45 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_army_grenade (0 1 .35) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_soldier.mdl"); }
Grenade Soldier, 60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Grenade Soldier, 60 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_army_plasma (1 0 .35) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_soldier.mdl"); }
Plasma Soldier, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Plasma Soldier, 75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dguard (1 0 0.25) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dguard.mdl"); }
Death Guard, 35 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Death Guard, 35 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_zombie (0.5 1 0.5) (-16 -16 -24) (16 16 32) Crucified Ambush OnFloor NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_zombie.mdl"); }
Zombie, 60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
Crucified : If crucified, stick the bounding box 12 pixels back into a wall to look right.
AMBUSH    : Only wake up on seeing the player, not by other monsters
ONFLOOR   : Spawn the zombie on the floor (angles = position)
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Zombie, 60 health points. 
If crucified, stick the bounding box 12 pixels back into a wall to look right.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_mummy (0.25 1 0.5) (-16 -16 -24) (16 16 32) Ambush x OnFloor NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_zombie.mdl"); }
Poison Zombie, 60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
ONFLOOR  : Spawn the zombie on the floor (angles = position)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Poison Zombie, 60 health points. 
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_boil (0.5 1 0.5) (-16 -16 -24) (16 16 32) Ambush Hanging Hobbled NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_boil.mdl"); }
Exploding Boil, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
wait         : time between random squirts of blood (def = wait + rnd x wait)
t_width      : Trigger radius for detecting a player (def = 80 / 120)
death_dmg    : Explosive radius damage on death (def = 60)
poisonous    : Green blood, gibs and poison debuff attack with radius damage
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
HANGING  : Hanging on wall upside down by spikes
HOBBLED  : Hobbled on the floor, random A/B position
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Exploding Boil, 75 health points. 
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_zombiek (0.75 1 0.5) (-16 -16 -24) (16 16 32) Ambush x OnFloor NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_zombiek.mdl"); }
Zombie Knight, 60 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
aflag        : 0 = random, 1 = Facing down, 2 = Facing up - only for onfloor setup
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
ONFLOOR  : Spawn the zombie on the floor (angles = position)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Zombie Knight, 60 health points. 
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_enforcer (.25 .5 0) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_enforcer.mdl"); }
Enforcer, 80 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Enforcer, 80 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_defender (.5 1 0) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_enforcer.mdl"); }
Defender, 100 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Defender, 100 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_pyro (.75 0 .75) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_pyro.mdl"); }
Pyro, 100 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Pyro, 100 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_fumigator (.75 0.5 .75) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_fumigator.mdl"); }
Fumigator, 100 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Fumigator, 100 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_jim (.75 0 .75) (-16 -16 -24) (16 16 24) AMBUSH x ROCKET NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_jim.mdl"); }
Fast moving flying robot, 50/100 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
ROCKET   : Fires rockets instead of lasers and has lower HP
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Fast moving flying robot, 50/100 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_turretbal (.75 0 .75) (-20 -20 -20) (20 20 20) AMBUSH TRIPLE PLASMA NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_turretbal.mdl"); }
Large surface mount turret, 180 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
t_length      : Axis restriction for ceiling/floor version
t_width       : 2nd axis restriction for wall version
attack_count  : =-1 to disable increased fire rate
turretclosing : target(s) fired when turret hides back wall/ceil/floor
turretopening : target(s) fired when turret is coming out to play
turretlocked  : Turret will not hide and remain in combat
distance      : The range at which the turret will hide (def=600)
waitmin       : Time (def=2s) will pause before hiding if cannot see enemy
waitmin2      : Time (def=2s) to wait hidden before coming out again
waitmin3      : Time (def=2s) startup delay when spawning at start of map
wakeup_angle  : Angle lock boundary adjustment when turret is closed
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
TRIPLE   : Fire triple shot instead of single (powerful blast attack)
PLASMA   : Fire plasma bolts instead of laser (high damage)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Large surface mount turret, 180 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_sweeper (.75 0 .75) (-16 -16 -24) (16 16 24) AMBUSH LASER SHIELD NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_sweeper.mdl"); }
Slow moving flying robot, 200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
LASER    : Instead of mines (good for space issues)
SHIELD   : Starts with a shield on and waits for trigger
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Slow moving flying robot, 200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_eliminator (0 1 .5) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_enforcer.mdl"); }
Eliminator, 120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Eliminator, 120 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_centurion (0 1 .5) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_centurion.mdl"); }
Centurion, 120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Centurion, 120 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_floyd (0 1 .5) (-16 -16 -24) (16 16 40) AMBUSH ROLL ASLEEP NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_floyd.mdl"); }
Floyd, 150 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
ROLL     : Start on floor and eventually explode
ASLEEP   : Start off unless shot or triggered
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Floyd, 150 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_deflector (0 1 .5) (-16 -16 -24) (16 16 40) AMBUSH PLASMA x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_deflector.mdl"); }
The Deflector, 1200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
attack_rage  : Burst mode for flame/plasma attack (def=ON, 1=ON, -1=OFF)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
PLASMA   : Plasma/Rockets attacks and skin 1
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
The Deflector, 1200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_skullwiz (0.5 0 1) (-16 -16 -24) (16 16 40) AMBUSH GUARDIAN MINION NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_skullwiz.mdl"); }
Skull Wizard, 120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : A chain of info_skullwiz_destination entities for exact teleports
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
bodyphased   : Spawn phased out and wait to see player
bodystatic   : Prevents skull wizard from teleporting
height       : Maximum Z distance to search for teleport destination
distmin      : Minimum XY distance to search for teleport destination
destmax      : Maximum XY distance to search for teleport destination
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
GUARDIAN : special version to guard the runes of power
MINION   : spawn minions (lost souls) to attack the player
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Skull Wizard, 120 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_skullwizminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_lostsoul.mdl"); }
Lost Soul Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Lost Soul Minion, used for precache only
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dcrossbow (0 0.5 1) (-16 -16 -24) (16 16 32) AMBUSH SNIPER TRACKING NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dcrossbow.mdl"); }
Crossbow Knight, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
SNIPER   : no max range limitations for enemies (sniper mode)
TRACKING : Enable tracking for the firing of bolts (really hard)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Crossbow Knight, 75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_knight (1 0 0) (-16 -16 -24) (16 16 32) AMBUSH STATUE NOTFROZEN NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_knight.mdl"); }
Knight, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
frame        : statue frame to be frozen in. (default 44)
startingpose : 5=start kneeling down, 6=start upright to attention
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
STATUE    : Stone statue until triggered
NOTFROZEN : Will start active (works with statue spawnflag)
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Knight, 75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_sword (1 0 0) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_sword.mdl"); }
Invisible Swordman, 75 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Invisible Swordman, 75 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_wizard (0.8 0 0.2) (-16 -16 -24) (16 16 40) AMBUSH x ABOVE NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_wizard.mdl"); }
Scrag (Wizard), 80 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
ABOVE    : Will try to keep above enemy and maintain some distance
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Scrag (Wizard), 80 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_tarbaby (1 0 0) (-16 -16 -24) (16 16 40) AMBUSH x LESSJUMP NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_tarbaby.mdl"); }
Spawn (Tarbaby), 80 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
death_dmg    : Damage on Death (def=120)
poisonous    : 0=Jump attack (default, 1=Poison attack)
exactskin    : 0-1=Blue, 2-3=Green1, 4-5=Green2, 6-7=Green3
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
LESSJUMP : Does not jump round so much, linked to skill level
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Spawn (Tarbaby), 80 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_gargoyle (0.8 0 0.2) (-16 -16 -24) (16 16 40) AMBUSH STATUE PERCH NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_gargoyle.mdl"); }
Gargoyle, 120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
STATUE   : Stone statue until triggered (always starts in a perched position)
PERCH    : Start in a sitting down, place 44 units out from perching edge, 4 units higher
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Gargoyle, 120 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_gaunt (0.8 0 0.2) (-16 -16 -24) (16 16 40) AMBUSH x PERCH NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_gaunt.mdl"); }
Gaunt, 120 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
PERCH    : Start in a sitting down
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Gaunt, 120 health points.
*/

/*QUAKED monster_polyp (0.8 0 0.2) (-16 -16 -24) (16 16 40) AMBUSH x PERCH NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_gaunt.mdl"); }
Polyp, 200 health points
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_ogre (0.5 0.5 0) (-32 -32 -24) (32 32 64) AMBUSH NAIL GREEN NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_ogre.mdl"); }
Ogre, 200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NAIL     : Fires 4 nails in a random pattern
GREEN    : Green leather armour and +HP
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Ogre, 200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_ogre_fishing (0.5 0.5 0) (-32 -32 -24) (32 32 64) x x GREEN x x NOGFX STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_ogrefish.mdl"); }
Fishing Ogre, 150/350 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
deathtarget  : entity to trigger upon death (useful if target field already in use)
nomonstercount : Exclude from initial monster count, will add if killed
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
-------- SPAWNFLAGS --------
GREEN    : Green leather armour and +HP
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
-------- NOTES --------
Fishing Ogre, 150/350 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_ogre_fishing_ghost (0.7 0.5 0) (-32 -32 -24) (32 32 64) x x x x x NOGFX STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_ogrefish.mdl"); }
Ghost Fishing Ogre, No health points and cannot be woken up.
-------- KEYS --------
targetname : monster/trigger name
-------- SPAWNFLAGS --------
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
-------- NOTES --------
Ghost Fishing Ogre, No health points and cannot be woken up.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_hogre (0.5 0.75 0) (-32 -32 -24) (32 32 64) AMBUSH x METAL NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_hogre.mdl"); }
Ogre, 200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
METAL    : Chain mail metal armour and +HP
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Ogre, 200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_hogremac (0.5 0.5 0) (-32 -32 -24) (32 32 64) AMBUSH x METAL NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_hogremac.mdl"); }
Ogre, 200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : will not be included in any monster count functionality
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster turret is released 
turrettarget : Target(s) to fire when turret % HP is released
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
METAL    : Chain mail metal armour and +HP
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Ogre, 200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_hell_knight (1 0 0) (-16 -16 -24) (16 16 40) AMBUSH STATUE NOTFROZEN NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_hknight.mdl"); }
Hell Knight, 250 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
frame        : statue frame to be frozen in. (default 73)
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
STATUE    : Stone statue until triggered
NOTFROZEN : Will start active (works with statue spawnflag)
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Hell Knight, 250 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_hell_pointknight (0.75 0.5 0) (-16 -16 -24) (16 16 40) AMBUSH STATUE x NOSIGHT NOIDLE NOGFX STARTOFF x Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_hknight.mdl"); }
Special Electricity Pointing Hell Knight
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
target       : target for electricity
target2      : trigger to fire when electricity stopped
pos1         : XYZ offset to start lightning (uses v_forward/v_right/v_up)
pos2         : XYZ random offset to start lightning (uses v_forward/v_right/v_up)
pos3         : Animation lightning frame set (Start/Finish/Direction)
t_length     : random wobble to electricity target origin (0=def 5)
dmg          : amount of contact damage with electricity (0=def 5)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
STATUE   : Stone statue skin
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
-------- NOTES --------
Special Electricity Pointing Hell Knight
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dknight (0.75 0.25 0) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dknight.mdl"); }
Death Knight, 250 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Death Knight, 250 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dknightghost (0.75 0.25 0) (-16 -16 -24) (16 16 40) x
{ model(":progs/mon_dknight.mdl"); }
Special ghost Death Knight
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : path_corner to walk towards
deathtarget  : trigger to fire when ghost is finished
-------- SPAWNFLAGS --------
-------- NOTES --------
Special ghost Death Knight
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_demon1 (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_demon.mdl"); }
Fiend (Demon), 300 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
poisonous    : Special skin + Poison debuff melee/range attack
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Fiend (Demon), 300 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_hogreham (0.5 1 0) (-32 -32 -24) (32 32 64) AMBUSH x METAL NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_hogreham.mdl"); }
Ogre, 300 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
METAL    : Full plate metal armour and +HP
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Ogre, 300 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dfury (0.75 0.75 0) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dfury.mdl"); }
Fury Knight, 400 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Fury Knight, 400 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dsergeant (0 0.25 1) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dsergeant.mdl"); }
Death Sergeant, 400 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Death Sergeant, 400 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_wraith (0.8 0 0.2) (-32 -32 -24) (32 32 64) AMBUSH SCORPIONS SPIDERS NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_wraith.mdl"); }
Wraith, 350 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
SCORPIONS : spawn minions (scorpions) to attack the player
SPIDERS   : spawn minions (spiders) to attack the player
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Wraith, 350 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_wraithminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_spiderb.mdl"); }
Spider Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Spider Minion, used for precache only
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_wraithminion2 (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_scorpion.mdl"); }
Scorpion Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Scorpion Minion, used for precache only
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_shalrath (1 0 0.5) (-32 -32 -24) (32 32 64) AMBUSH x MINIONS NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_shalrath.mdl"); }
Vore (Shalrath), 400 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
MINION   : spawn minions (vorelings) to attack the player
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Vore (Shalrath), 400 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_shalrathminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_voreling.mdl"); }
Voreling Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Voreling Minion, used for precache only
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_drole (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_drole.mdl"); }
Drole, 500 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Drole, 500 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_minotaur (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x MINIONS NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_minotaur.mdl"); }
Minotaur, 500 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
poisonous    : The dark/minion ver is poisonous by default (-1=red ver instead)
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
MINION   : spawn minions (gargoyle) to attack the player
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Minotaur, 500 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_golem (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH STATUE MELEEONLY NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_golem.mdl"); }
Golem, 500 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
frame        : statue frame to be frozen in. (default 48)
-------- SPAWNFLAGS --------
AMBUSH    : Only wake up on seeing the player, not by other monsters
STATUE    : Stone statue until triggered (default = Always ON)
MELEEONLY : Melee and Stomp only attacks, no rockstorm range
NOSIGHT   : No sight sound
NOIDLE    : No idle sound
NOGFX     : No spawn effect or sound when triggered
STARTOFF  : Trigger Spawn
ANGRY     : Trigger Spawn angry at the player
-------- NOTES --------
Golem, 500 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_minotaurminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_gargoyle.mdl"); }
Gargoyle Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Gargoyle Minion, used for precache only
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_freddie (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH LASER x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_freddie.mdl"); }
Freddie, 500 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
LASER    : Fires laser bolts instead of metal (glowing red) nails
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Freddie, 500 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_seeker (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x SHIELD NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_seeker.mdl"); }
Seeker, 500 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
state        : start with one arm removed 1=Left, 2=Right
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
SHIELD   : Start with shield ON and waits for trigger
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Seeker, 500 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_justice (0.75 0.75 0) (-16 -16 -24) (16 16 56) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_justice.mdl"); }
Justice, 600 health points
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : will exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Justice, 600 health points
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_baron (0.75 0.75 0) (-16 -16 -24) (16 16 40) 
{ model(":progs/mon_baron.mdl"); }
Replaced by monster_justice
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Replaced by monster_justice
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_shambler (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/shambler.mdl"); }
Shambler, 600 health points. Player rockets only do 50% damage
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
poisonous    : Green skin + Poison debuff attack on melee claws
attack_sniper: 1 = Lightning attack has no range limit (previous 600 units)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Shambler, 600 health points. Player rockets only do 50% damage
*/

//=============================================================================
// MINI Bosses
//=============================================================================
/*QUAKED monster_boglord (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH FIRE x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_bossboglord.mdl"); }
Lord of the Bog, 1200 Health Points, use FIRE spawnflags for stronger/red version
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
FIRE     : Red/Fire version with more health (2000) and Skin 2
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Lord of the Bog, 1200 Health Points, use FIRE spawnflags for stronger/red version
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_gug (1 0 0) (-32 -32 -24) (32 32 64) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_bossboglord.mdl"); }
Guglord, 2000 Health Points
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Guglord, 2000 Health Points
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_dprince (0.75 0.25 0) (-16 -16 -24) (16 16 40) AMBUSH FIRE x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dprince.mdl"); }
Dark Prince, 1200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : will exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
attack_lifetime : Time that plasma will stay active on floor for damage
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
FIRE     : fire bolts/burning attacks with skin 1
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Dark Prince, 1200 health points.
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_nour (1 0 0) (-16 -16 -24) (16 16 40) AMBUSH BOSS x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_bossnour.mdl"); }
Nouronihar, 1200 Health Points
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
delaymonstercount: Exclude from initial monster count, wait for delay spawn
attack_chance: Percentage (0-1) chance of spit attack vs bomb attack
tethertarget : target of tether entity for tethering system (boss=required)
tetherrange  : The circular range around tether point (boss def=325)
bosswave     : Total amount of boss waves (1-4) (BOSS Only)
bosswaveqty  : Total amount of health per wave (BOSS Only)
noise        : Intro burst trigger (BOSS Only)
noise1       : Wave 1 entities to trigger (BOSS Only)
noise2       : Wave 2 entities to trigger (BOSS Only)
noise3       : Wave 3 entities to trigger (BOSS Only)
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
BOSS     : Boss version (with waves + minions)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Nouronihar, 1200 Health Points
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_nourminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_wizard.mdl"); }
Wizard Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Wizard Minion, used for precache only
*/

//=============================================================================
// SPECIAL BOSS SETUPS
//=============================================================================
/*QUAKED monster_boss (1 0 0) (-80 -80 -24) (80 80 256) x
{ model(":progs/mon_bosschthon.mdl"); }
Chthon (Boss of Shareware Quake)
-------- KEYS --------
targetname : monster/trigger name
-------- SPAWNFLAGS --------
-------- NOTES --------
Chthon (Boss of Shareware Quake)
*/

//-----------------------------------------------------------------------------
/*QUAKED event_lightning (0 1 1) (-16 -16 -16) (16 16 16) x
Just for boss level. Used for killing Cthon.
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Just for boss level. Used for killing Cthon.
*/

//=============================================================================
/*QUAKED monster_firetopboss (1 0.25 0.25) (-80 -80 -24) (80 80 256) x
{ model(":progs/mon_bosschthon.mdl"); }
Chthon (Special version for Firetop Mountain)
-------- KEYS --------
targetname : monster/trigger name
-------- SPAWNFLAGS --------
-------- NOTES --------
Chthon (Special version for Firetop Mountain)
*/

//=============================================================================
/*QUAKED monster_chthon (1 0 0) (-80 -80 -24) (80 80 256) x RED GREEN
{ model(":progs/mon_bosschthon.mdl"); }
Chthon (Custom version)
-------- KEYS --------
targetname  : monster/trigger name
target      : trigger to fire on death
bosswave    : Total boss waves (1-5)
bosswaveqty : Health each wave
bosswaveuse : 1 = Let waves advance via use/triggers
resist_shells  : Shell ammo resistance (0-1)
resist_nails   : Nail ammo resistance (0-1)
resist_rockets : Rocket ammo reistance (0-1)
resist_cells   : Cell ammo resistance (0-1)
pos1      : Attack1 Speed Base/Skill/- (250 50 0)
pos2      : Attack1 Damage Base/Rnd/Splash (100 20 120)
pos3      : Attack2 Forward/Vertical/Damage (300 500 40)
dest2     : Attack2 Spawn location (0 0 96)
noise1    : Wave 1 trigger entities
noise2    : Wave 2 trigger entities
noise3    : Wave 3 trigger entities
noise4    : Wave 4 trigger entities
deathtype : Death message for the client (optional)
-------- SPAWNFLAGS --------
RED   : New red skin with plenty of upward lighting+shadow
GREEN : Green skin + slime balls instead of lava
-------- NOTES --------
Chthon (Custom version)
*/

//=============================================================================
/*QUAKED monster_eidolon (1 0 0) (-32 -32 -24) (32 32 128) x
{ model(":progs/mon_bosseidolon.mdl"); }
Boss starts behind shield
-------- KEYS --------
targetname : monster/trigger name
target : trigger to fire on death (delayed till explosion)
noise1 : Wave 1 (monster_eidolon_wavetrig) entity
noise2 : Wave 2 (monster_eidolon_wavetrig) entity
noise3 : Wave 3 (monster_eidolon_wavetrig) entity
noise4 : Wave 4 (monster_eidolon_wavetrig) entity
-------- SPAWNFLAGS --------
-------- NOTES --------
Boss starts behind shield
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_eidolon_wavetrig (0.75 0.25 1) (-40 -40 -4) (40 40 4) x
Target for boss lightning wave event
-------- KEYS --------
targetname : name of wave event (links to noise key on boss)
target     : trigger name of adds to spawn
target2    : trigger name of crystal event
-------- SPAWNFLAGS --------
-------- NOTES --------
Target for boss lightning wave event
*/

//=============================================================================
/*QUAKED monster_icegolem (1 0 0) (-32 -32 -24) (32 32 128) x
{ model(":progs/mon_bossicegolem.mdl"); }
Frozen Guardian in a Cave
-------- KEYS --------
targetname   : monster/trigger name
target       : trigger to fire on death (delayed to fade away)
tethertarget : target of tether entity (path_corner)
tetherrange  : circular range around tether point (def=400)
noise1 : Wave 1 entities to trigger
noise2 : Wave 2 entities to trigger
noise3 : Wave 3 entities to trigger
noise4 : Wave 4 entities to trigger
brkobj1: Ceiling rubble bmodel (maps/ad_brk/rock01.bsp)
brkobj2: Ceiling rubble bmodel (maps/ad_brk/rock02.bsp)
dest1  : Rubble colour range (base/qty)
dest2  : Rubble emitter offset downward (X/Y/Z def=0 0 16)
brkvol : Rubble emitter size (X/Y/Z def=160 160 8)
brkvelbase : Rubble base velocity (def=0 0 50)
brkveladd  : Rubble add velocity (def=100 100 100)
brkfade    : Rubble fade timeout (def=4)
-------- SPAWNFLAGS --------
-------- NOTES --------
Frozen Guardian in a Cave
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_icegolem_wavetrig (0.75 0.25 1) (-32 -32 -8) (32 32 8) x
Target for boss column smash wave event
-------- KEYS --------
targetname : name of wave event (links to noise key on boss)
target     : trigger name of adds to spawn
noise1     : trigger name of column 1
noise2     : trigger name of column 2
-------- SPAWNFLAGS --------
-------- NOTES --------
Target for boss column smash wave event
*/

//=============================================================================
/*QUAKED monster_judicator (1 0 0) (-32 -32 -24) (32 32 80) x x BFLAME
{ model(":progs/mon_judge.mdl"); }
The Judicator, BOSS setup with multiple waves
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
tethertarget : target of tether entity for tethering system (required)
tetherrange  : The circular range around tether point (def=325)
bosswave     : Total amount of boss waves (1-4)
bosswaveqty  : Total amount of health per wave
message      : Intro trigger
noise1       : Wave 1 entities to trigger
noise2       : Wave 2 entities to trigger
noise3       : Wave 3 entities to trigger
-------- SPAWNFLAGS --------
BFLAME   : Flame attacks use blue sprites and explosions
-------- NOTES --------
The Judicator, BOSS setup with multiple waves
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_judgeminion (1 0 0) (-16 -16 -24) (16 16 16) x
{ model(":progs/mon_gaunt.mdl"); }
Gaunt Minion, used for precache only
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Gaunt Minion, used for precache only
*/

//=============================================================================
/*QUAKED monster_mammoth (1 0 0) (-32 -32 -24) (32 32 96) x
{ model(":progs/mon_bossmammoth.mdl"); }
Monolithic floating fridgeboy!
-------- KEYS --------
targetname   : monster/trigger name
target       : trigger to fire on death (delayed to fade away)
tethertarget : target of tether entity (path_corner)
tetherrange  : circular range around tether point (def=128)
noise1 : Wave 1 entities to trigger
noise2 : Wave 2 entities to trigger (PHASE 2)
noise3 : Wave 3 entities to trigger
noise4 : Wave 4 entities to trigger (PHASE 3)
noise5 : Wave 5 entities to trigger
noise6 : Wave 6 entities to trigger (DEATH)
-------- SPAWNFLAGS --------
-------- NOTES --------
Monolithic floating fridgeboy!
*/

//=============================================================================
/*QUAKED monster_phobetor (1 0 0) (-88 -88 -24) (88 88 1000) x
{ model(":progs/mon_bossphobetor.mdl"); }
The biggest floating pillar ever!
-------- KEYS --------
targetname   : monster/trigger name
target       : trigger to fire on death (delayed to fade away)
noise1 : Wave 1 entities to trigger -Dream 1
noise2 : Wave 2 entities to trigger -Dream 2
noise3 : Wave 3 entities to trigger -Dream 3
noise4 : Wave 4 entities to trigger (PHASE 2)
noise5 : Wave 5 entities to trigger (DEATH)
-------- SPAWNFLAGS --------
-------- NOTES --------
The biggest floating pillar ever!
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_psyder (0.75 0.25 0) (-32 -32 -24) (32 32 168) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_psyder.mdl"); }
Psychic / Psionic stationary dream node, 1200 health points.
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A trigger event on death
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Psychic / Psionic stationary dream node, 1200 health points.
*/

//=============================================================================
/*QUAKED monster_oldone (1 0 0) (-128 -128 -24) (128 128 192) x
{ model(":progs/oldone.mdl"); }
Shub-Niggurath, 40000 health points
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
Shub-Niggurath, 40000 health points
*/

//=============================================================================
/*QUAKED monster_shub (1 0 0) (-128 -128 -24) (128 128 192) x DMGTRIG
{ model(":progs/oldone.mdl"); }
Shub-Niggurath (Custom version)
-------- KEYS --------
targetname  : monster/trigger name
target      : trigger to fire on death
bosswave    : Total boss waves (1-5)
bosswaveqty : Health each wave
resist_shells  : Shell ammo resistance (0-1)
resist_nails   : Nail ammo resistance (0-1)
resist_rockets : Rocket ammo reistance (0-1)
resist_cells   : Cell ammo resistance (0-1)
pos1   : Attack 1 Speed Base/Skill/- (200 20 0)
pos2   : Attack 1 Damage Base/Rnd/Splash (0 0 40)
pos3   : Attack 2 Speed/-/Damage (300 500 40)
dest1  : Attack 1 Spawn location (0 0 128)
dest2  : Attack 2 Spawn location (0 0 128)
noise1 : Wave 1 trigger entities
noise2 : Wave 2 trigger entities
noise3 : Wave 3 trigger entities
noise4 : Wave 4 trigger entities
deathtype : Death message for the client (optional)
-------- SPAWNFLAGS --------
DMGTRIG : Will start attacking if damaged
-------- NOTES --------
Shub-Niggurath (Custom version)
*/

//=============================================================================
/*QUAKED monster_shubupsd (1 0 0) (-128 -128 -192) (128 128 24) x DMGTRIG
{ model(":progs/oldone.mdl"); }
Shub-Niggurath (Up Side Down Custom version)
-------- KEYS --------
targetname  : monster/trigger name
target      : trigger to fire on death
bosswave    : Total boss waves (1-5)
bosswaveqty : Health each wave
resist_shells  : Shell ammo resistance (0-1)
resist_nails   : Nail ammo resistance (0-1)
resist_rockets : Rocket ammo reistance (0-1)
resist_cells   : Cell ammo resistance (0-1)
pos1   : Attack 1 Speed Base/Skill/- (200 20 0)
pos2   : Attack 1 Damage Base/Rnd/Splash (0 0 40)
pos3   : Attack 2 Speed/-/Damage (600 0 40)
dest1  : Attack 1 Spawn location (0 0 128)
dest2  : Attack 2 Spawn location (0 0 128)
noise1 : Wave 1 trigger entities
noise2 : Wave 2 trigger entities
noise3 : Wave 3 trigger entities
noise4 : Wave 4 trigger entities
deathtype : Death message for the client (optional)
-------- SPAWNFLAGS --------
DMGTRIG : Will start attacking if damaged
-------- NOTES --------
Shub-Niggurath (Up Side Down Custom version)
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_teleporttrain (0 0.5 0.8) (-8 -8 -8) (8 8 8) x
This is used for the final boss ONLY
Flying ball needed to teleport kill Shub-Niggurath
-------- KEYS --------
-------- SPAWNFLAGS --------
-------- NOTES --------
This is used for the final boss ONLY
Flying ball needed to teleport kill Shub-Niggurath
Originallu used bmodel train functions, setup to work like
the shalrath homing missile
*/

//=============================================================================
// Extra Quoth MOD monsters (requires assets from Quoth, QC Only)
//=============================================================================
/*QUAKED monster_death_guard (1 0 0.25) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dguardq.mdl"); }
Death Guard (Quoth), 125 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Death Guard (Quoth), 125 health points. (Assets not included with AD)
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_death_lord (0.75 0.75 0) (-16 -16 -24) (16 16 40) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_dlord.mdl"); }
Death Lord, 400 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Death Lord, 400 health points. (Assets not included with AD)
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_sentinel (.75 0 .75) (-16 -16 -24) (16 16 24) AMBUSH x NAILS NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/mon_sentinel.mdl"); }
Sentry flying robot, 75 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NAILS    : Fires red hot nails instead of lasers
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Sentry flying robot, 75 health points. (Assets not included with AD)
*/


//=============================================================================
// SPECIAL XMAS MOD (requires xmas mod pack)
//=============================================================================
/*QUAKED monster_xmas_elf (0.5 0.75 0) (-16 -16 -24) (16 16 16) AMBUSH MAGIC x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/xmas/mon_elf.mdl"); }
Xmas Raindeer, 30/75 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
MAGIC    : Magic range attack, HP+
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Xmas Elf, 30/75 health points. (Assets not included with AD)
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_xmas_snowman (0.5 0.75 0) (-16 -16 -24) (16 16 32) AMBUSH x x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/xmas/mon_snowman.mdl"); }
Xmas Snowman, 125 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
death_dmg    : Explosive damage on death 
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Xmas Snowman, 125 health points. (Assets not included with AD)
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_xmas_raindeer (0.5 0.75 0) (-16 -16 -24) (16 16 40) AMBUSH DEAD x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/xmas/mon_raindeer.mdl"); }
Xmas Raindeer, 200 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
death_dmg    : Explosive damage on death 
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
DEAD     : Sacrifice/Dead body version
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Xmas Raindeer, 200 health points. (Assets not included with AD)
*/

//-----------------------------------------------------------------------------
/*QUAKED monster_xmas_santa (0.5 0.75 0) (-16 -16 -24) (16 16 40) AMBUSH GOOD x NOSIGHT NOIDLE NOGFX STARTOFF ANGRY Not_Easy Not_Normal Not_Hard Not_DM
{ model(":progs/xmas/mon_santa.mdl"); }
Xmas Santa, 1200 health points. (Assets not included with AD)
-------- KEYS --------
targetname   : Name of monster used for triggering/reference
target       : A path_corner to walk towards or a trigger event on death
target2      : Additional trigger events to fire on death of monster
angrytarget  : something (monster/player) to get angry at once spawned
deathtarget  : entity to trigger upon death (use if target field in use)
health       : Override default health settings
exactskin    : Override default skin selection of 0 (no error checking)
nomonstercount : Exclude from initial monster count, will add if killed
infightextra : Damage multiplier for infighting damage
pain_ignore  : 1 = Ignore pain when hit by other monsters
noinfighting : Will not react to any infighting (it can look stupid)
no_liquiddmg : Blocks all liquid (slime/lava) damage checks
no_zaware    : All Z Aware projectiles will be disabled
bboxtype     : Change bbox 1=Tiny,4=Short,5=Tall,7=Wide,8=Giant,10=Massive
gibondeath   : 1 = always explode in a shower of gibs on death
bodyfadeaway : Time (secs) before body/head will fade away (default=0)
movespeed    : -1 = no movement(turret), =0/1 free movement (default)
turrethealth : = 0.0->1.0; % of HP when monster is released 
turrettarget : Target(s) to fire when monster % HP is reached
-------- SPAWNFLAGS --------
AMBUSH   : Only wake up on seeing the player, not by other monsters
GOOD     : Good version of Santa (touch trigger to rescue)
NOSIGHT  : No sight sound
NOIDLE   : No idle sound
NOGFX    : No spawn effect or sound when triggered
STARTOFF : Trigger Spawn
ANGRY    : Trigger Spawn angry at the player
-------- NOTES --------
Xmas Santa, 1200 health points. (Assets not included with AD)
*/

//=============================================================================
// EDITOR entities only
//=============================================================================
/*QUAKED func_group (0 .5 .8) ? x x x x x x x x
Editor entity only
-------- KEYS --------
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
_phong      : Will merge lightmap vertex normals (smooth lightmap edges)
-------- NOTES --------
Editor entity only
*/
//-----------------------------------------------------------------------------
/*QUAKED func_detail (.5 .5 .5) ? x x x x x x x x
Brushwork that does not seal the map or is structural (Compiler entity only)
-------- KEYS --------
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
_phong      : Will merge lightmap vertex normals (smooth lightmap edges)
-------- NOTES --------
Brushwork that does not seal the map or is structural (Compiler entity only)
*/
//-----------------------------------------------------------------------------
/*QUAKED func_detail_illusionary (.5 .5 .5) ? x x x x x x x x
Merges brushwork into world geo WITHOUT collision. (Compiler entity only)
-------- KEYS --------
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_phong      : Will merge lightmap vertex normals (smooth lightmap edges)
-------- NOTES --------
Merges brushwork into world geo WITHOUT collision. (Compiler entity only)
*/
//-----------------------------------------------------------------------------
/*QUAKED func_detail_wall (.5 .5 .5) ? x x x x x x x x
Merges brushwork into world geo with collision. (Compiler entity only)
-------- KEYS --------
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_phong      : Will merge lightmap vertex normals (smooth lightmap edges)
-------- NOTES --------
Merges brushwork into world geo with collision. (Compiler entity only)
*/

//-----------------------------------------------------------------------------
/*QUAKED misc_external_map (1 .25 .25) (-8 -8 -8) (8 8 8) x x x x x x x x
Merges brushwork into world geo. (Compiler entity only)
Only brushwork in the worldspawn of imported map is used, everything else is ignored
-------- KEYS --------
_external_map           : filename/path of external map to import
_external_map_classname : entity class to turn object into (func_detail)
_external_map_angle     : final entity angle orientation (X axis)
_external_map_scale     : final entity scale (def='1 1 1' XYZ axis)
_dirt       : -1 = will be excluded from dirtmapping
_minlight   : Minimum light level for any surface of the brush model
_mincolor   : Minimum light color for any surface (def='1 1 1' RGB)
_shadow     : Will cast shadows on other models and itself
_shadowself : Will cast shadows on itself
_phong      : Will merge lightmap vertex normals (smooth lightmap edges)
-------- NOTES --------
Merges brushwork into world geo. (Compiler entity only)
Only brushwork in the worldspawn of imported map is used, everything else is ignored
*/


//=============================================================================
// Testing/debug entities only (should not be active in finished maps)
//=============================================================================
/*QUAKED item_weapon (0 0 0) (-8 -8 -8) (8 8 8) x
*/
/*QUAKED misc_noisemaker (1 0.5 0) (-10 -10 -10) (10 10 10) x
*/
/*QUAKED noclass (0 0 0) (-8 -8 -8) (8 8 8) x
*/
/*QUAKED test_fodder (0 0.5 0.8) ? x
*/
/*QUAKED test_goaway (0 0.5 0.8) ? x
*/
/*QUAKED test_spawn (0 0 0) (-8 -8 -8) (8 8 8) x
*/
/*QUAKED test_teleport (0 0.5 0.8) ? x
*/
/*QUAKED testplayerstart (0.1 0.1 0.1) (-8 -8 -8) (8 8 8) x
*/
/*QUAKED viewthing (0.1 0.1 0.1) (-8 -8 -8) (8 8 8) x
*/
/*QUAKED trigger_onlyregistered (0.5 0 0.5) ? x
Not Used anymore
*/
