Reclamation Overview
--------------------

Reclamation is a CTF-like teamplay mod in which the object is to "own" as
much territory as possible. In the current incarnation, ownership is
marked by claiming flags, which are distributed throughout the level.
Each team begins with one flag in their home base, and all other flags
are neutral and can be identified by the white shell around them.

Flags are claimed by simply walking up and touching a neutral or enemy
flag. In order to prove ownership of the surrounding territory, one
must spend several seconds devoting complete attention to the flag.
The result is that the player is turned to face the flag and is unable
to move or shoot for the duration of the conversion. While converting
a flag, a counter showing the remaining conversion time will appear in 
the HUD with a CD icon. If bodily harm becomes imminent, one may
disengage from a flag by tapping the fire button - however, all
conversion time acquired so far is lost for that flag. While conversion
is in progress, a colored shell of the attacking team's color will flash
around the flag. Once conversion is complete, a new flag of the
conqueror's color appears.

Players taking excessive damage respawn in their home base, where they
may quickly arm themselves and return to the front. I recommend that
Weapons Stay be turned on.

Reclamation depends on the models, sounds, and icons from Id's CTF, 
therefore the pak file for CTF must be in the same directory as the
Reclamation gamex86.dll. I have yet to figure out how to get Quake2
to let the server use one directory and the client another, so I
strongly recommend using "ctf" as the directory for Reclamation (the
zip file is set up to do this automatically - note that this _will_ 
overwrite the normal ctf dll, so make backups).

To start a server, just use the normal CTF startup shortcut, or

quake2 +set dedicated 1 +set game ctf +exec server.cfg

Batch files have been provided to start a listen server (reclam.bat)
or a dedicated server (reclam-ded.bat) if needed.

Server Commands (accessed via "sv <cmd>")
---------------

flag_setup - puts the game in a mode where touching flags has
   no effect and players may instantiate new flags; useful for 
   setting up a level


Client Commands
---------------

dumpflags - lists all flags on the maps along with their origins; if
 an argument is supplied, it is considered a filename and the flags
 are written to the file as entity specs, e.g.,

  {
  "classname" "item_flag_neutral"
  "origin" "1000.0 -100.5 -32.0"
  }

The spawn<type>flag commands are only useful in flag_setup mode:

spawnneutralflag - spawns a neutral flag at the player's location
spawnredflag - spawns a red flag at the player's location
spawnblueflag - spawn a blue at the player's location
spawnteamflag - spawns a flag for the player's team at his location

Variables
---------

claimtime - number of seconds required to convert a flag
 [Default:  5]
ownership - % of flags needed to win a level; should be between 50-100
 [Default: 75]
usemaplist - determines whether or not to use "maps.lst" for map rotation
 [Default: 0]

Entities
--------

Reclamation supports the following commonly used entities from various
flavors of CTF:

item_flag_team1
item_flag_team2
item_flag_red
item_flag_blue
info_flag_blue
info_flag_red
info_player_red
info_player_blue
info_player_team1
info_player_team2

I have also included a new entity which I call a BFG Sentry. The purpose
of the BFG Sentry is to help guard the base, since the nature of the game
doesn't allow very many players on defense. Essentially, the sentry is
a big green ball that zaps any enemies that come too close. For a
particularly satisfying suicide, grapple onto the enemy's sentry. The
classnames are bfg_sentry1 and bfg_sentry2, for the red and blue teams
respectively.

I've placed a few sentries in base1 and q2ctf1, just to see how they 
work out. If they prove to be popular and useful, they are pretty 
easy to add.

Entity Files
------------

Reclamation supports the notion of alternate and auxiliary entity
files. If a file of the form <mapname>.ent exists in the directory
...\quake2\<gamedir>\ent, the entities in that file will be loaded
instead of those specified in the map. 

If a file exists of the form <mapname>.ant (for Auxiliary eNTities),
the entities in that file will be loaded in addition to those loaded
via the map or the aforementioned alternate entity file.

Included are alternate entity files for most, if not all, of the
base q2 maps and id CTF maps. These basically include
setups for standard CTF play (they are actually from LMCTF) and
place a red flag, a blue flag, team spawn locations, and various weapons 
in order to provide balanced bases. 

Also included are auxiliary entity files for many of the maps containing
neutral flags. These are kinda required for interesting Reclamation play :).
I did all of these by basically walking through each level and saying
to myself "here's a good spot" and dropping a flag. I was hoping to have
some sort of automatic process to perform the flag distribution, but I
think the human touch may be required to find the right balance. 

Map Queue
---------

If a file called maps.lst exists in the game directory, the levels 
specified are traversed. The file should contain only the map names,
separated by white space. Do not include ".bsp" or the description
of the map, as in the original maps.lst in baseq2. Example:

base1
q2ctf2
mine1


Things to Do/Fix
----------------

The player can still turn around while converting a flag, sort of.
 The client will keep track of where the player should be facing, and
 will turn the player accordingly as soon as the player disengages
 from the flag. It's disorienting, and a real pain when trying to
 get away from the flag early.

Random flag placement

Analytical flag placement - some sort of algorithm that examines the
 structure of the level and finds appropriate sectors

Advancing front flag conversion - you can only convert a flag that is
 "next" to one belonging to your team. This will enforce coherent
 regions of ownership, and maybe involve lines of supply, etc. It will
 also avoid the case of one lone wolf sneaking behind enemy lines and
 snatching up territory. The big problem is determining the connectivity
 of the flags.

Better entity placement - I would like to have bases that are really 
 hard for the enemy to take over, with stockpiles of weapons/ammo.
 A better distribution of respawn spots might be good too. 

Acknowledgements
----------------

This mod was based on Id's CTF 1.02 code.

Thanks to the LMCTF crew for the entity files. 

Kudos and two railgun spanks to my playtesters (blood relations
first ;]): RifRaff, Crush, THE-CONSULTANT, Bobo the Technician, and Lohdog.

Please send comments, bug reports, etc. to kieren@netdoor.com

The latest version can be found at

  http://www2.netdoor.com/~kieren

