func_plat
/*QUAKED func_plat (0 .5 .8) ? PLAT_LOW_TRIGGER
speed    default 150

Plats are always drawn in the extended position, so they will light correctly.

If the plat is the target of another trigger or button, it will start out disabled in the extended position until it is trigger, when it will lower and become a normal plat.

"speed"    overrides default 200.
"accel" overrides default 500
"lip"    overrides default 8 pixel lip

If the "height" key is set, that will determine the amount the plat moves, instead of being implicitly determoveinfoned by the model's height.

"sounds"
0)    silent
1)    generic door
2)    heavy stone door
3)  for swing arm on palace level
4)  for stone bridge in palace level
5)  small/medium wood door swinging
6)  large/huge wood door swinging
7)  medium sized stone/wood door sliding
8)  large stone/wood sliding door or portcullis
9)  average metal door swinging
10) Fast sliding doors
11) Hive, Metal, Multipaneled sliding
12) Huge stone door swinging
13) Medium/large elevator
14) Crane (warehouse)
15) hammerlike pump in oglemine1
16) sliding metal table in cloudlabs
17) lab table which rotates up to ceiling - cloublabs
18) piston sound
19) short, sharp metal clang
20) something going under water
21) the bam sound

*/

******************
func_rotating
/*QUAKED func_rotating (0 .5 .8) ? START_ON REVERSE X_AXIS Y_AXIS TOUCH_PAIN STOP ANIMATED ANIMATED_FAST CRUSHER
You need to have an origin brush as part of this entity.  The center of that brush will be
the point around which it is rotated. It will rotate around the Z axis by default.  You can
check either the X_AXIS or Y_AXIS box to change that.
----------KEYS-------------
"speed" determines how fast it moves; default value is 100.
"dmg"    damage to inflict when blocked (2 default)
"sounds"
0 -    silent
1 -    generic rotate
2 - huge wheel ogles push in cloudlabs
3 - rock crusher which turns at end of conveyor on ogle2
4 - 'spanking' paddles on gauntlet
--------SPAWNFLAGS------------
REVERSE will cause the it to rotate in the opposite direction.
STOP mean it will stop moving instead of pushing entities
*/

******************
func_button
/*QUAKED func_button (0 .5 .8) ? TOUCH
When a button is touched, it moves some distance in the direction of it's angle, triggers all of it's targets, waits some time, then returns to it's original position where it can be triggered again.

"angle"        determines the opening direction
"target"    all entities with a matching targetname will be used
"speed"        override the default 40 speed
"wait"        override the default 1 second wait (-1 = never return)
"lip"        override the default 4 pixel lip remaining at end of move
"health"    if set, the button must be killed instead of touched
"sounds"
0) silent
1) Basic Button
2) Clanky Button
3) Steam Button

--------SPAWNFLAGS--------
TOUCH - player can touch button to set it off
*/

******************
func_door
/*QUAKED func_door (0 .5 .8) ? START_OPEN x CRUSHER NOMONSTER ANIMATED TOGGLE ANIMATED_FAST
TOGGLE        wait in both the start and end states for a trigger event.
START_OPEN    the door to moves to its destination when spawned, and operate in reverse.  It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
NOMONSTER    monsters will not trigger this door

"message"    is printed when the door is touched if it is a trigger door and it hasn't been fired yet
"angle"        determines the opening direction
"targetname" if set, no touch field will be spawned and a remote button or trigger field activates the door.
"health"    if set, door must be shot open
"height"    if set, tells how far up door opens
"speed"        movement speed (100 default)
"wait"        wait before returning (3 default, -1 = never return,-2 = never stop cycle)
"lip"        lip remaining at end of move (8 default)
"dmg"        damage to inflict when blocked (2 default)
"sounds"
0)    silent
1)    generic door
2)    heavy stone door
3)  for swing arm on palace level
4)  for stone bridge in palace level
5)  small/medium wood door swinging
6)  large/huge wood door swinging
7)  medium sized stone/wood door sliding
8)  large stone/wood sliding door or portcullis
9)  average metal door swinging
10) Fast sliding doors
11) Hive, Metal, Multipaneled sliding
12) Huge stone door swinging
13) Medium/large elevator
14) Crane (warehouse)
15) hammerlike pump in oglemine1
16) sliding metal table in cloudlabs
17) lab table which rotates up to ceiling - cloublabs
18) piston sound
19) short, sharp metal clang
20) something going under water
21) the bam sound
  */

******************
func_door_rotating
/*QUAKED func_door_rotating (0 .5 .8) ? START_OPEN REVERSE CRUSHER NOMONSTER ANIMATED TOGGLE X_AXIS Y_AXIS SWINGAWAY x x x x x x x
TOGGLE causes the door to wait in both the start and end states for a trigger event.

START_OPEN    the door to moves to its destination when spawned, and operate in reverse.  It is used to temporarily or permanently close off an area when triggered (not useful for touch or takedamage doors).
NOMONSTER    monsters will not trigger this door

You need to have an origin brush as part of this entity.  The center of that brush will be
the point around which it is rotated. It will rotate around the Z axis by default.  You can
check either the X_AXIS or Y_AXIS box to change that.

"distance" is how many degrees the door will be rotated.
"speed" determines how fast the door moves; default value is 100.

REVERSE will cause the door to rotate in the opposite direction.

SWINGAWAY door will always swing away from the activator...

"message"    is printed when the door is touched if it is a trigger door and it hasn't been fired yet
"angle"        determines the opening direction
"targetname" if set, no touch field will be spawned and a remote button or trigger field activates the door.
"health"    if set, door must be shot open
"speed"        movement speed (100 default)
"wait"        wait before returning (3 default, -1 = never return,-2 = never stop cycle)
"dmg"        damage to inflict when blocked (2 default)
"sounds"
0)    silent
1)    generic door
2)    heavy stone door
3)  for swing arm on palace level
4)  for stone bridge in palace level
5)  small/medium wood door swinging
6)  large/huge wood door swinging
7)  medium sized stone/wood door sliding
8)  large stone/wood sliding door or portcullis
9)  average metal door swinging
10) Fast sliding doors
11) Hive, Metal, Multipaneled sliding
12) Huge stone door swinging
13) Medium/large elevator
14) Crane (warehouse)
15) hammerlike pump in oglemine1
16) sliding metal table in cloudlabs
17) lab table which rotates up to ceiling - cloublabs
18) piston sound
19) short, sharp metal clang
20) something going under water
21) the bam sound
*/

******************
func_water
/*QUAKED func_water (0 .5 .8) ? START_OPEN
func_water is a moveable water brush.  It must be targeted to operate.  Use a non-water texture at your own risk.

START_OPEN causes the water to move to its destination when spawned and operate in reverse.

"angle"        determines the opening direction (up or down only)
"speed"        movement speed (25 default)
"wait"        wait before returning (-1 default, -1 = TOGGLE)
"lip"        lip remaining at end of move (0 default)
"sounds"    (yes, these need to be changed)
0)    no sound
1)    water
2)    lava
*/

******************
func_train
/*QUAKED func_train (0 .5 .8) ? START_ON TOGGLE BLOCK_STOPS HASORIGIN NO_CLIP PUSHPULL
Trains are moving platforms that players can ride.
The targets origin specifies the min point of the train at each corner.
The train spawns at the first target it is pointing at.
If the train is the target of a button or trigger, it will not begin moving until activated. This means if it has a targetname it won't move unless triggered.

-------KEYS------
NO_CLIP - train will not block anything.

----------SPAWNFLAGS-----------
HASORIGIN - makes train move from an origin brush rather than the lower left point of the train.
-----KEYS-------

speed -    default 100
dmg      -    default    2
noise -    looping file to play when the train is in motion
- objects/piston.wav for large steam pistons in ogle2 and cloudlabs
- objects/winch2.wav for wooden ore hauler going across river  

rotate - speed train should rotate at
wait - -1 : stop and don't move again until triggered
       -3 : stop and explode
       -4 : go through animations (only if a model)
file - specifies the train is a model.  This is the exact directory of the model.
count - number of frames in animation (only if a model)
example   models/objects/broom/tris.fm
materialtype - 
    0 = MAT_WOOD
    1 = MAT_GREYSTONE (default)
    2 = MAT_CLOTH
    3 = MAT_METAL
    9 = MAT_BROWNSTONE
    10 = MAT_NONE - just makes smoke

*/

******************
func_timer
/*QUAKED func_timer (0.3 0.1 0.6) (-8 -8 -8) (8 8 8) START_ON
"wait"            base time between triggering all targets, default is 1
"random"        wait variance, default is 0

so, the basic time between firing is a random time between
(wait - random) and (wait + random)

"delay"            delay before first firing when turned on, default is 0

"pausetime"        additional delay used only the very first time
                and only if spawned with START_ON

These can used but not touched.
*/

******************
func_door_secret
/*QUAKED func_door_secret (0 .5 .8) ? always_shoot 1st_left 1st_down
A secret door.  Slide back and then to the side.

open_once        doors never closes
1st_left        1st move is left of arrow
1st_down        1st move is down from arrow
always_shoot    door is shootebale even if targeted

"angle"        determines the direction
"dmg"        damage to inflic when blocked (default 2)
"wait"        how long to hold in the open position (default 5, -1 means hold)
"sounds"
0)    silent
1)    generic door
2)    heavy stone door
3)  for swing arm on palace level
4)  for stone bridge in palace level
5)  small/medium wood door swinging
6)  large/huge wood door swinging
7)  medium sized stone/wood door sliding
8)  large stone/wood sliding door or portcullis
9)  average metal door swinging
10) Fast sliding doors
11) Hive, Metal, Multipaneled sliding
12) Huge stone door swinging
13) Medium/large elevator
14) Crane (warehouse)
15) hammerlike pump in oglemine1
16) sliding metal table in cloudlabs
17) lab table which rotates up to ceiling - cloublabs
18) piston sound
19) short, sharp metal clang
20) something going under water
21) the bam sound
*/

******************
func_monsterspawner
/*QUAKED func_monsterspawner (0 .5 .8) (-8 -8 -8) (8 8 8) ONDEATH RANDOMBUOY PEACEFUL
Triggerable monster spawner
-----SPAWNFLAGS--------------
ONDEATH - the next monster will not spawn until the current one is dead  
RANDOMBUOY - the monster will be teleported to a random buoy that the player cannot see
PEACEFUL - Monsters are NOT spawned agry at ent that triggered spawner (monstrers will spawn angry only if the spawner was triggered by a player)
-----------KEYS--------------
count - number of monsters to spawn before stopping (default 1)
distance - radius which monster can spawn from monsterspawner
style - type of monster to spawn
 0 - nothing will spawn
 1 - RAT,
 2 - PLAGUEELF,
 3 - SPREADER,
 4 - GORGON,
 5 - CHKROKTK,
 6 - TCHEKRIK_MALE,
 7 - TCHEKRIK_FEMALE,
 8 - TCHEKRIK_MOTHERS,
 9 - HIGH_PRIESTESS,
10 - OGLE,
11 - SERAPH_OVERLORD,
12 - SERAPH_GUARD,
13 - ASSASSIN,
14 - MORCALAVIN,
15 - DRANOR,
16 - SIDHE_GUARD,
17 - SIERNAN,
18 - SSITHRA_SCOUT,
19 - SSITHRA_VICTIM,
20 - Mutant Ssithra
21 - Harpy
22 - Fish
23 - Chicken
24 - Plague Ssithra
25 - Gkrokon
26 - Giant Rat
27 - Palace Plague Guard
28 - Invisible Palace Plague Guard



wait - time to wait between spawnings (default 10)


The following fields can be applied to the func_monsterspawner so that the monsters spawned from it will have the values you give them.  The defaults are the monster's normal defaults.  Monsters who do not use buoys may not use all of these fields (ie: rats, harpies, fish, imps, etc.)

mintel - monster intelligence- this basically tells a monster how many buoys away an enemy has to be for it to give up.

melee_range - How close the player has to be, maximum, for the monster to go into melee.  If this is zero, the monster will never melee.  If it is negative, the monster will try to keep this distance from the player.  If the monster has a backup, he'll use it if too clode, otherwise, a negative value here means the monster will just stop running at the player at this distance.
    Examples:
        melee_range = 60 - monster will start swinging it player is closer than 60
        melee_range = 0 - monster will never do a mele attack
        melee_range = -100 - monster will never do a melee attack and will back away (if it has that ability) when player gets too close

missile_range - Maximum distance the player can be from the monster to be allowed to use it's ranged attack.

min_missile_range - Minimum distance the player can be from the monster to be allowed to use it's ranged attack.

bypass_missile_chance - Chance that a monster will NOT fire it's ranged attack, even when it has a clear shot.  This, in effect, will make the monster come in more often than hang back and fire.  A percentage (0 = always fire/never close in, 100 = never fire/always close in).- must be whole number

jump_chance - every time the monster has the opportunity to jump, what is the chance (out of 100) that he will... (100 = jump every time)- must be whole number

wakeup_distance - How far (max) the player can be away from the monster before it wakes up.  This just means that if the monster can see the player, at what distance should the monster actually notice him and go for him.
*/

******************
monster_chkroktk
/*QUAKED monster_chkroktk (1 .5 0) (-16 -16 -26) (16 16 26) AMBUSH ASLEEP
The  chkroktk
*/

******************
character_sidhe_guard
/*QUAKED character_sidhe_guard (1 .5 0) (-16 -16 -26) (16 16 26) AMBUSH ASLEEP
The Sidhe Guard
*/

******************