Zion - the Way of the Quaker
Version v0.8
by nikodemos@mindspring.com

I would like to thank id software for their fine game, Lee Smith for the
amazing proqcc compiler, and SoulScythe for Scrambler!. 

QuakeC mod - server side patch - no client code necessary!

Zion is a patch designed to make both single-player and deathmatch games a
lot more interesting, challenging, and over all, fun! The modifications
presented here were designed to enhance gameplay without disrupting the
balance. Weapons like the sniper rifle offer enhanced capabilities but also
penalize the player by consuming more ammo and requiring an extensive reload
period. Other, passive modifications add to the "realism" of gameplay.

While many of these ideas may have been designed and implemented prior to
this release, the code contained within this patch is 100% original with
the exception of the original .qc files supplied by id software (c). 

Current features include:
        * ricocheting spikes
        * option for "bouncing" rockets (a MUST see!)
        * flames (explosions can catch things on fire)
        * impact: shotgun blasts, rockets knock enemies backwards
        * dud grenades ... sometimes they just ... well, you'll see!
        * realistic falling (ouch!)
        * sniper rifle with laser scope 
        * rocket overheating
        * dynamic monster allocation (DMA! heh)
        * client-side intro with help text

Installation:

Make a directory under \quake and name it what you like (uhm, may I suggest,
perhaps, "zion"?)
Unzip this progs.dat file into \quake\<your name>
If you chose zion, then your path will look like \quake\zion\progs.dat
Now run quake with the -game zion option and any other command line
parameters you normally use. If you have any special autoexec.cfg, you may
wish to copy into the \quake\zion directory as well.
Anyone connecting to your server will be able to use this patch, as it does
not contain any propietary graphics or sounds. 
Even though it was next to impossible to resist, I did NOT remove the
monster code, so you can use this in single player (gasp!). Just play!

How to use this mod:

The majority of the functions in this mod are passive, in that the user does
not have to do anything special to invoke them. This is obvious with the
impact of rockets, grenades, and bullets (knocks the enemy back), is evident
with the flames spawned by explosions, and of course the occassional dud
grenade. Spikes will rebound about three times before dying, and will slow
down in water.
For some unknown reason, the additonal velocity added to entities when struck
by the rocket has the magical effect of producing spectacular gibs. Enjoy
them!
Falls are now more realistic .. you are injured based on your vertical
velocity. The longer you fall, the harder you hit.
A breakdown of Zion features, including dynamic monster allocation, follows.

Weapon selection:
There are two special weapons, the bouncing rockets and the sniper rifle.
These weapons are toggled using impulse commands. To select the sniper rifle,
simply select the shotgun (impulse 2) and then hit impulse 2 again. To
select the bouncy rockets, simply select the rocket launcher (impulse 7) and
then hit impulse 7 again. Once the shotgun or the rocket is selected, hitting
that impulse toggles between special and ordinary weapons. Weapon cycling is
a little different: it always cycles to the currently selected weapon. For
example, if sniper rifle has been selected, then the weapon cycle will go
from axe to sniper rifle to super shotgun, etc. If you wish to reselect the
shotgun, you must cycle to the sniper rifle and then toggle with impulse 2.
The same goes for the rocket.
This may seem like a pain in the ass, but these are special weapons. We don't
want to make them too easy on you!

Sniper rifle:
The sniper rifle requires 10 shells. If you have too few, it automatically
reverts to the shotgun. If you fire a shot, then go below the necessary ammo,
you are reverted to the shotgun.
The sniper rifle features the latest in splash-beam scoping technology. A
shimmering red splash-beam will illuminate your target. This surrounds the
EXACT area that the shot will hit (ignore that damn crosshair!)
The sniper rifle takes 5 seconds to load and 3 seconds to wind down from a
shot. This means that when you select the sniper rifle, you must wait five
seconds to load and set and lock. Once it is locked, the super power of this
rifle is almost instaneous! It will thoroughly shred your opponents in half.
If it doesn't kill them, it will most certainly knock them across the room.
After it is fired, you must wait 3 seconds for it to wind down, then another
5 seconds to reload. Therefore, effectively, you must wait 8 seconds between
shots. Hey, it's worth the wait!
The sniper bullet is so powerful, it has been known to detonate the victim's
rockets and grenades.

Bouncing rockets:
New technology has brought us the latest in reinforced, impact resistant
rockets. These rockets, while depleting your ammo supply by 5, are well worth
it. The rocket is super-reinforced to bounce off almost anything. When you
fire these puppies, they will ricochet across walls, off of the ground, and
bounce around until they hit something or run out of fuel. The rocket works
by detecting heat. If it strikes near a source of heat, it will detonate.
Please note that while the majority of the time this detonation will be your
intended target, mechanisms such as doors and triggers radiate faint heat
and will detonate the rocket as well, triggering their mechanism. Also, be
very wary of tight spaces ... the rocket doesn't care who fired it, and has
no qualms about returning to destroy it's owner! Note carefully the geometry
of your surroundings, and also realize it doesn't always rebound in perfect
angles - to witness this, try firing one up a wind tunnel!
The rocket will run out of fuel after about 10 seconds. The intense heat from
the propoulsion system will cause the casing to evaporate, with no fuel left
to detonate an explosion.

Rocket Overheating:
Yes, your rockets can overheat. This is very difficult, but it can happen.
Just try sitting in one spot firing rockets continously, and you'll see what
I mean. The ignition mechanism adds 0.4 units of heat, the explosion of the
exiting rocket adds 0.6 units. The rocket fires at a maximum rate of 1 blast
every 0.8 seconds, and cools at a rate of 1 unit every second. Therefore,
you basically have, for an unheated rocket, 1 unit added every 0.8 seconds,
with 1 unit subtracted every second. You do the math. An overheated rocket
(with 3 units of heat or more) will not fire, but the ignition mechanism
still triggers, adding 0.4 units every 0.8 seconds (it will eventually cool
off). However, BEWARE! Sometimes the rocket launcher will become so hot that
the ignition switch fails but the explosives ignite, turning you into a
Christmas Tree of DEATH!

Bouncing spikes:
Those spikes don't always disintegrate! A good spike can bounce up to three
times before losing steam. This can be used to your advantage to fire around
corners, but be careful - just because they're YOUR spikes doesn't mean that
you're immune to them! Also, note that spikes fired into the water will slow
down after a short period of time due to the higher viscosity of water.

Impacts:
For every action, there is an equal and opposite reaction. While you can
brace yourself for a well-placed shot and deflect the punch vertically, your
targets do not share that luxury. Shotgun blasts, sniper rifle blasts, and
impacts from explosives will pick them up and throw them!

Flames:
The explosives in Quake are not perfect. Sometimes they splash fuel and
ignite it almost instantly, causing flames to spring up. These flames will
burn until there is nothing to consume. Be careful when launching explosives,
sometimes you may be met with a wall of flame. Generally the flames will burn
themselves out after a short period of time, but while they're active, they
hurt!

Duds:
Not all grenades are perfect! Sometimes you'll get a dud, which triggers but
does not ignite. These will flip harmlessly into the air and evaporate.

Dynamic Monster Allocation:
I was using this to test my mods on deathmatch levels, and figured, hell, why
take 'em out? Basically DMA allows you to dynamically insert monsters into
a game. There are two steps to DMA. First, the server must set the "temp1"
variable to "255". Type this command:
        temp1 255
At the server console, or launch the quake like:
        quake.exe -listen -game zion +temp1 255
This allows monster insertion. If temp1 is not set to 255, monsters cannot be
inserted!
Alternatively, typing "addmonsters" at the console sets this variable for
you (this MUST be the server console).
Please note that if you are running as a server in deathmatch mode, the
monsters have not been precached. After typing the "addmonsters" command,
you must then switch maps to have the monsters precached. If not, your
game will crash with an error, or the monsters will spawn incorrectly. A
good example would be:
        quake.exe -game zion -listen +map dm3
        addmonsters
        changelevel dm3
This loads the game as deathmatch, sets the addmonsters, then changes to the
same map, ready for insertion.
If monster insertion is turned on, simply type one of the following:
        soldier
        zombie
        knight
        wizard
on the server console, and you're in! If you are running your game on a
dedicated server, you would want to place commands in an autoexec.cfg file
or something. I have not put any remote administration in this release, so
it's kind of difficult to do much about monsters from a dedicated server.
The monsters are inserted at a random location, and this DOES NOT coincide
with the player deathmatch starts. I use a special routine that examines the
map and selects a decent location, then inserts the monster. I have not
tested this algorithm extensively yet, so you might find some monsters stuck
in walls or each other. Please let me know.
As a final note, the aliases are not triggered until the console is brought
up, so typing multiple "wizard wizard wizard" in the console will only give
you one wizard. If you want forty, instead of bringing down the console, just
"bind w wizard" and then hit w to your heart's content!

If you have any questions/concerns/suggestions/comments for this mod, please
e-mail me: nikodemos@mindspring.com. Your input is greatly appreciated!

The propietary code contained within this patch, as well as the text of this
document, are both (c) 1997 Jayke Savage (nikodemos@mindspring.com)
