From: davidt@ccwf.cc.utexas.edu (David Teo)
Newsgroups: rec.games.netrek
Subject: gfborg 4.0 is out!
Date: 14 Aug 92 10:42:31 GMT
Reply-To: davidt@ccwf.cc.utexas.edu (David Teo)


Ok, I have not fully tested the program.  It is still being beta tested.
However, if you still wish to use it and you would like to beta test it
for me, the binary, configuration file, and help file can be found in
grind.isca.uiowa.edu
in the dir /unix/netrek/binaries.  Send me mail at davidt@cs.utexas.edu
and let me know if you have found out any bugs and I will try to fix it
and ftp the fixed version back to grind.isca.uiowa.edu.

I just sent it, so do wait awhile.

Remember, it is still being beta tested.  Use it at your own risk!

Here is the Help file :-

GrandFather Borg 4.0, By David Teo (davidt@cs.utexas.edu)

Due to popular demand, I've decided to release the Beta Testing Version
into the public.  However, do I hope the user of this program will
realize that there will be many bugs in a program as complex as this and
that not all the bugs have been found.  For instance, the program may
just crash in a game without warning.  (See Exotic Feature for Pig Borg
below)  I have taken out the ability for the borg to fake login names,
to act as a robot spy, and to change (switch on/off) their response to
the 5 spaces test.  This is probably the last borg that i'm going to
write and I do not know if I can find the time to finish it.  A feature
that I hope to add on to the Beta Testing Version is a borg parameters
window (like the pig and helix borg).

The borg can be obtained via anonymous ftp from grind.isca.uiowa.edu in
the /unix/netrek/binaries directory.  Since I only have access to the
Sun Sparcs, I will only release the SUN version at the moment.  The DEC
version, snakes version, and a version for the NeXt will be released
soon.  If I do not finish this borg, I will probably leave the code with
some of my friends and let them decide if they want to modify, to
finish, or to extend it.  I only hope that my contribution will be
recognised when they do so. 

Included in the package besides this help file are the files,
gfborgIV.sun (the binary) and .xtrekrc (the default configuration file).
If you have another .xtrekrc in your home directory, you may want to
merge the options together yourself.  What ever the case may be, try to
copy the .xtrekrc file into your home directory (unless you want to use
the -r option on the command-line).

I have incorporated most of the neat features from Sun Borg, Helix Borg,
Pig Borg, and Beef Borg into my GrandFather Borg 4.0.  However, I have
only access to the Beef Info Borg code, and other Non-Borg Client codes.
As far as the Sun, Helix, and Pig are concerned, I have tested them
(especially the Pig) and studied their help files carefully.  In this
way, I was able to imitate their ideas and formulate my own
implementations for their features.  I also wish to add that the
GrandFather Borg 4.0 is more than just a combination of Borgs and useful
clients, I have added on my own ideas and features into the borg which I
could not find in the other clients.  I have always been an ardent
admirer of the Pig Borg, and I still am.  I admire the ingenuity and
simplicity of its design and the usefulness of its features, although I
am not in total agreement with all aspects of its design.
The Grandfather Borg is designed so that Pig Borg users may become
familiarized with it as quickly as possible.

The Help :-

1)	Type on the command-line to show command-line options for the borg
            gfborg -u
           (or whatever name you (or I) called it)

2)       Press h (the normal Help Window will pop up along with help for
the borg keys)
	 It will show that shift-A or shift-Z will make the Combat borg window,
and the other borg window pop up, 
	 respectively.
3)       Move the Mouse Cursor into the Message Window and press shift-C
to obtain the CLIENT-> prompt
         Type in help, for a list of things you do with this command.  As in,
	 CLIENT->  help
         Borg and robot parameters can be set and displayed by this
command.  Just type help set or help show at
         the CLIENT-> prompt for the list of parameters.

Some of features of GrandFather Borg 4.0 :-

o Supports Galaxy Class and ATT Ships
o UDP 1.0
o Support for multiple .xtrekrc configuration files, according to
servernames (code from another client).
  The default .xtrekrc files are .xtrekrc-"servername", whatever the
full name of the server maybe.
  The Borg will search for the file in your home directory and if they
are not present, it will search
  for them in your current directory.  If the file is still not present,
it will search for the file,
  ".xtrekrc" from your home or current directory.
o Amdahl's Visible Tractors (can be switched on or off) and Scanners
(the "a" key)
- if Amdahl's Visible Tractors is switched off, the borg will try to
guess the player that you are
  tractoring or pressoring and draw the tractor beam on the local map as
dotted lines (dotted line code is a
  modified version of Amdahl's visible tractor code which I have
incorporated from another client).
- Visible Tractors can be switched on/off at the options window (Default
on) Can be set by the
  showTractorPressor option in the .xtrekrc file.
- If the server supports scanners, a small window will pop up showing
the scanned ship's fuel, damage,
  and the rest of its status in neat status bar format if you manage to
scan the ship. 
  (code from Andy Mcfadden's Client)
o Iggy and Galaxy Class Ship Bitmaps
- I have used Andy McFadden's UDP Galaxy Client Iggy Bitmaps
o Triangle appears in galactic map to show player/planet locked onto by you
  Toggle present in options window.  (Default on) Can be set by
showLock: option in the .xtrekrc file.
- Same as Andy McFadden's UDP Galaxy Client
o Ships with 0 speed will remain in a fixed position when cloaked or
when invisible
  to matter what wrong information the server tries to supply to the
borg (unless the ship
  is orbitting)
o Borg's ship speed can be shown on the local map next to the ship ID
(code from another client)
  Toggle present in options window.  (Default off) Can be set by
showMySpeed: option in the .xtrekrc file.
o Ability to define Mouse Button Keymapping like ordinary keymapping,
  including shift-Mouse Button combinations.
o Ability to define Control-Keys Keymaps dynamically or via .xtrekrc,
same as the Pig Borg.
  (See Pig Borg)
o Special Mouse Cursors for different windows and different ship status
like weapons overheated,
  or wrench cursor to show repair mode (from the Beef Code)
o Another Special Playerlist window to show ship type, login name, rank,
nickname, monitor logined
  from, number of suspected armies carrying, number of kills, and ship
speed.  In addition, it
  shows the number of players on each team and the total number of
players in the game.
o Support for moving Planets (Support for the Bronco Server Moving
Planets feature) (code from other clients)
o Support for joining the INDEPENDENT team.  I have only seen this
support in the netrek.cis.ksu.edu
  server and it doesnt allow borgs.  Anyway, I have incorporated its
client into mine too.  You
  can join Iggy's team when you press shift-B for Battleship, shift-C
for cruiser, ...., x for ATT.
  Who knows, maybe other servers will incorporate this neat feature for
their chaos night.
o Support for AutoRepeat.  If you depress a key without lifting your
finger, the key will be repeated
  continuously until you release it.  This feature can be switched
on/off by the autoKey: option in 
  the .xtrekrc file and the interval of repeat for torp detonation can
be specified by the detInterval: option.
  Strange design though, when you type autoKey: off it turns auto repeat
to on and vice versa.  (Code
  obtained from another client).  The default is for auto repeat to be
turned on. (Default: off)
o There are facilities to Log Messages addressed to Team, Personal, or
All into files.  These features
  can be turned on or off in the options window.  The sending player's
login, monitor names, and the time and
  date that the message was sent will be recorded.  The file name of the
log message can be specified
  by the messageLogFile parameter in the .xtrekrc file.  The default
file name is xtrekmlog-"servername"
  what ever the name of the current server that you are playing in.  You
can switch the specific message
  logging options on or off by setting the msglog.i:, msglog.t,
msglog.a, options for message logging to
  individual, team, and all, respectively, in your .xtrekrc file.
o There is also a Planet Protection mode, similar to the ogging mode of
the Pig Borg.  Just place your
  mouse cursor on the planet which you want to protect, and press the
"," key.  The Borg will move
  automatically to the planet and fly at a close circle (not ORBITTING)
round the planet.
o The rest of the features are briefly described below or they are
explained by the authors of the Beef,
  Helix, Sun, and Pig Borg.  References to the GrandFather Borg with
regards to their instructions 
  will be indicated.

All Borg Features are switched on by default, unless they are indicated
otherwise by a "off" or "false"
option in the configuration file.

Auto Weapons Policy :- The borg will not fire its auto weapons when it
is cloaked (not even phaser plasmas).
  However, the auto aiming weapons will decloak it, because these are
controlled by the user.  The borg will
  decloak when it tries to phaser plamas only when it is in auto pilot
mode.  This is designed to give more
  control to the user.

Combat Borg Menu (Shift-A) :-

o Auto Torps                 (ctrl-t)
o Auto Aiming Torps          (t)
 - Auto Torps take into account the following :-

1) NetLag
2) Orbitting Enemies
3) Orbitting Cloaked Enemies
4) Enemies being tractored/pressored and your own tractoring/pressoring
5) Vector Torps
6) Tracking Torps

o Auto Phaser                (ctrl-p)        
o Auto Aiming Phaser         (p)  
  - Auto Phaser take into account the following :-

1) NetLag
2) PhaserLock on cloakers by previous hit
3) PhaserLock on cloakers by your own Torp Explosion

o Auto Plasma                (none)
o Auto Aiming Plasma         (f)
o Auto Phaser-Plasmas        (ctrl-f)
o Auto Aiming Phaser-Plasmas (d)
o Smart Anti-Plasma Phaser   (ctrl-n)
- Phaser plasmas only when they will hit you

o Auto Phaser Cloakers       (ctrl-e)
o Auto Pressor Beam          (ctrl-y)
o Auto Tractor Beam          (ctrl-r)
o Autoraise Shields          (ctrl-u) 
o Auto Detonate Enemy Torps  (ctrl-d)
o Auto Detonate Own Torps    (ctrl-o)
o Vector Torps               (ctrl-v)
o Auto Dodging               (ctrl-m) or (RETURN)
o Auto Pilot                 (ctrl-a)
- Robot can attack planets, repair, refuel on them or dock onto
starbases              
o Shoot Through Border       (ctrl-s)
- Aim Auto weapons through Borders, if the server allows it         
o Move Through Border   
- For servers that allows ship to move through borders        
o Robot Cloaking
- Robot will cloak when attacking enemy planets

Combat Borg Menu Default setting in .xtrekrc (listed respectively)

Note:- Lines that start with a "#" in your .xtrekrc are comment lines. 
All Borg Options are ON by DEFAULT!  Therefore, those borg options that
are commented out by "#" are turned on by DEFAULT.  To turn these
options to off, uncomment the line.  In the same way, comment the lines
with the borg options that you wish to be turned on.

#bauto_torps:  off
#bauto_aim_torps: off
#bauto_phaser: off
#bauto_aim_phaser: off
bauto_plasma: off
#bauto_aim_plasma: off
#bauto_phaser_plasma: off
#bauto_aim_phaser_plasma: off
#bsmart_phaser_plasma: off
#bphaser_cloakers: off
#bauto_pressor: off
bauto_tractor: off
#bauto_shield: off
#bauto_det: off
#bauto_det_own: off
bvector_torps: off
#bauto_dodge: off
brobot: off
bshoot_border: off
bthru_border: off
#brobot_cloak: off

The Other Borg Menu (Shift-Z)

o AutoBomb/Beamdown to Planet  (none)

o AutoBeamup Armies             

o AutoExit Planets             (ctrl-x) 
 
o AutoRepair on Friendly Planets

o Monitor Enemy Beaming
- Just says so and so is beaming down to or up from so and so. 
        
o See Cloakers   
- Hostile and Friendly Cloakers have different ring surrounding them on
the local map (from Beef code)
- Cloaked Ships will be marked with a ? on the galactic map
e.g. ?R2  
See Ships with >= 1 Kill 
- Ships with >= 1 Kill will have their number of kills shown beneath
their ship id on the local map.
  They will also be shown in capital letters in the galactic map.  For
instance, r2 will be shown 
  on the galactic map as :-
    r2 (if r2 has < 1 kill)
    R2 (if r2 has >= 1 kill)

o See Enemy Ships with Armies
- Ships suspected of carrying armies will be marked with a * beneath
their ship id on the local map.
  They will be marked with a @ if they are uncloaked and a & if they are
cloaked, on the galactic map. 
e.g. @K2 or &K2  

o See Armies on Planets 
- Same Format as the Beef Borg.  (See Beef Borg below)
  Except that fonts are used to display the numbers.  Only Small Bold
Font and Small Italic Font are used, the default
  being lucidasanstypewriter-bold-8, and lucidasanstypewriter-8
respectively.  Small Bold used for your own planets
  and Small Italic for hostile planets.  You can redefined them in the
smboldfont: and smitalicfont: options in the
  .xtrekrc file.
- Planet armies may be shown with a ? like, ?2, to indicate that the
client has actually no info on the planet and 
  a very gross approximation shows that there may be 2 or more armies on
the planet.
  
o See Around Borders 
- To see Planets, Ships, etc. around the border.

o Report Enemy Beaming to Team 
- In the form of,
  a++, 1++, etc.

o Auto Peace     
- Tries to declare PEACE on teams with no human players (checks for
every WAR, PEACE redeclaration in the game) 
           
o Report Bombed Planets to Team
- Just says "so and so at 4" or at 3 or whatever.
- Activated whenever you leave a hostile planet after bombing or beaming down.

o Robot Team Msg (Take Planets)
- Only works when the robot is activated.  It just says "I'm going to so
and so with so and so armies, cover me."

o Amdahl's Visible Tractor - As explained above

o Borg Master Switch   (ctrl-i) or (TAB)
- Turns All Borg features that are on Borg Menus A and B off.  No matter
what their settings may be.

Other Borg Menu Default setting in .xtrekrc (listed respectively)

Note:- Lines that start with a "#" in your .xtrekrc are comment lines. 
All Borg Options are ON by DEFAULT!  Therefore, those borg options that
are commented out by "#" are turned on by DEFAULT.  To turn these
options to off, uncomment the line.  In the same way, comment the lines
with the borg options that you wish to be turned on.

#bauto_bomb: off
bauto_beamup: off
bauto_exit: off
#bauto_repair: off
bmonitor_beam: off
#bsee_cloak: off
#bsee_kills: off
#bsee_ship_army: off
#bsee_planet_army: off
bsee_border: off
brep_eships: off
bauto_peace: off
brep_bplanet: off
#brobot_tplanet: off
bamdahl_tractor: off
#bborg_on:   off

Borg features are toggled by control keys as shown.  Those features that
are shown with a non-control key
beside them are features that are activated as and when the key beside
them is pressed.  As you can see,
not all the features have keyboard toggles for them.  This is because, I
feel that the rest of the features
are not used often enough or do not need a quick keyboard toggle.

Hints on killing server robots
==============================

Do not try to use the auto pilot mode to kill them.  Server robots, like
the HunterKiller, have an unlimited supply of
fuel.  Therefore, if the battle drags on, your own robot will run out of
fuel before they do.
I would advice you to use the ogging mode provided (See ogging in the
PigBorg helpfile below) for a fast battle.

Experimental Robot (Auto Pilot) Feature
=======================================

WARNING :- This feature is highly experimental and I would advise you
against using it if you seriously want to be promoted to a high rank.

Robot can be activated by pressing Ctrl-a or through the Borg Combat
Menu.  It can also be activated by shift-middle mouse
button which will automatically turn on the going-near mode and the
robot mode at the same time.

going-near mode :- Only take effects when auto pilot is on.  It can be
used to escort friendly players or to attack a particular hostile
player, with the option of running away when it is hurted.
To activate it, just place the mouse cursor nearest the player that you
wish to robot to go near and press the shift key and the middle mouse
button at the same time.  If auto pilot was off, auto pilot will be turned on.
If the robot is hurt depending on its damage, fuel, weapon temp, and
engine temp, it will try to run away from its
enemies.  If its enemies are at a far enough distance away, it will
attempt to choose the best planet to lock onto and repair itself there. 
The going-near mode will be deactivated when the going-near target gets
killed.  Other than that, it will continue to target the player until it
is turned off.  This mode can also be selected from the CLIENT-> prompt.
For instance, CLIENT-> go j.

going-near planet mode :- Can be turned on even when auto-pilot is off. 
It can be used to guard a particular planet.  Just place the mouse
cursor over the target planet and press the "," key or do this at the
CLIENT-> prompt, CLIENT-> gop earth.

Note: The robot will run away if it is damaged (or runs out of fuel,
etc.) even if going-near mode is on.  The robot will continue to go near
a target when it is repaired, refueled, etc.

hostile mode :- This is turned on by default.  If this is off, the robot
will protect your team's quadrant.  If on, the robot will seek out
enemies to kill.  Pretty much the same as server robots.

Robots can bomb, beamup, beamdown, take planets, send distress messages
when it is out of fuel, or when it is damaged.

If Robot Cloaking option is on (Borg Combat Menu), the robot will cloak
when it tries to take enemy planets, or when it tries to bomb them. 
There is also an option (Other Borg Menu) where the robot will send a
message to its team, telling them the number of armies that it carries
and its target enemy planet that it is heading for.

If the Robot self-destructs, or if the galaxy is conquered or if it dies
because of a problem with the server daemon, it will leave the game
automatically.

WindowLess Robots
=================

Robots do not need windows to play in.  Therefore, if you type

gfborg -h servername -p portnumber -T r -S b

The robot will turn on automatic mode (without windows), it will try to
join the romulan team using a Battleship (default).
Type gfborg -u to see the commands that you can issue at the command line.

If the server does not allow it to join the romulan team, it will try to
join the Klingons, Orions, then the Feds in this order.  It always try
to join the team that you assign it to and if that is not possible, it
will iterate from that team along the choices Fed, Rom, Kli, Ori, from
left to right.

The robot will try to login as the nickname provided by the "name:"
parameter in your .xtrekrc using the password in the "password:"
parameter in your .xtrekrc.  If the password is wrong the robot will
exit with an error message.  If the name is new (not in the server
database) the robot will create an entry for that name with that
password.  If you specify that the robot should login as guest, the
robot will do so without looking at the "password:" field in your .xtrekrc.

The Borg options and parameters set in the .xtrekrc will be used by the
robot.(Auto Pilot will be turned on automatically though).  Sorry, but
you cant change Borg options or parameters while the program is running
if you are using windowless (automatic) mode.

Message Commands that can be issued to a Robot
==============================================

You must first find out the robot password (the rpw: parameter in .xtrekrc).
The default password is "gf".
Every Command must be preceded by the robot password.

For instance, (you are R2 and you need to give a command to your robot
playing as R3)

R2->R3   gf go 5
- The robot turn on going-near mode and target player 5.  This is the
sticky going-near mode where the robot will
  keep going near player 5 till you ask it to do otherwise.  If player 5
is not alive, the robot will behave as normal till player 5 joins the game.

R2->R3  gf gop earth (or ear or any short form making up of the planet's
first few characters in its name)
- The robot will protect earth.

Note: The robot will run away if it is damaged (or runs out of fuel,
etc.) even if going-near mode is on.  The robot will continue to go near
a target when it is repaired, refueled, etc.

R2->R3  gf nogo  
- Turn off the above 2 commands

R2->R3  gf host (or hostile)
- Turn on hostile mode

R2->R3  gf nohost
- Turn off hostile mode

R2->R3  gf quit
- The robot will try to run away from its enemies and find a quiet spot
to self-destruct and leave the game.

R2->R3  gf noquit
- Attempts to turn off the above command.

R2->R3  gf rep (or report)
- The robot will send you a number of messages telling you its damage,
shields, fuel, weapon temp, engine temp, and armies if it is carrying.

R2->R3  gf A I am a robot
- The robot will send a message to everyone telling them that

R2->R3  gf t I am a robot
- Robot will send a message to its own team

The robot can also send messages to individual players and to specific
teams likewise.  (You know)

The message logging can be turned on too, if you wish to record the
messages while the robot is in the game.  (See message logging).

The following are help files for the other clients as presented by their
respective authors :-

Additional comments concerning the GrandFather Borg 4.0 are appended
with the "GF: " symbol.


			       Beef 2.2

----
Features

Beef's differences from the normal blessed binary are as follows:

o All new planet bitmaps
	Planets are displayed vaguely like this:
        	    ___
	         __/   \
	        |A|  ^  7
        	 /  /*\  \
	        |F|/***\ |
        	 \ |/ \| /
	        |R|     /
        	   \___/
	         Earth

	Agri, fuel and repair are indicated by fixed boxes on the left
	of a planet; the planet's number of armies is shown in white
	at the upper or lower right.  A planet's number of armies is
	always shown on the local window; in the upper right if >= 4,
	or the lower right if <= 3.  (Independent planets have no owner
	shown, and are thus extremely obvious.)  A planet's number of
	armies is only shown on the map window if the number is not
	equal to four, and the planet is yours or an enemy's.  The
	owner insignia is always displayed.

o Breakup of Options menu
	There are now three different menus that do what this menu
	used to do, and more.  The Windows menu (mapped to 'W') maps
	and unmaps all the interesting windows.  The options menu
	(still mapped to 'O') toggles boolean values.  The Parameters
	window ('K') displays and sets all other interesting values
	that a client will need.

	The show_shields option has been removed, as have the local
	and map mode three-way toggles.  The latter are not used in
	beef, and I have no idea why anyone would want to turn off the
	former.  Let me know if you feel this option has any value.

o Message beep 
	A beep is generated every time a message comes to you or
	your team.  Toggle with "Message beep" option.

GF: There are Message beep options for messages addressed to
    ALL, to your TEAM, and to you.  You can set these by setting
    the msgbeep.i, msgbeep.t, msgbeep.a, options for message beeping
    for individual, team, or all, respectively, in your .xtrekrc file.
    The Default is for message beeping for Team and individual messages
    to be turned on and message beeping for ALL messages to be off.

o Mouse shift functionality
	Mouse clicking with the shift key down is distinguished from
	that without.  shift-left and shift-middle do planet (only)
	lock; shift-right does player-lock.  Look for mouse-mapping in
	beef 2.3.

	GF: shift-left - to lock onto a player
            shift-middle - toggles auto pilot and to go near a player
            shift-right - to lock onto a planet
            You may now remap the button keymap dynamically in the parameters
            window, or via the .xtrekrc file using the option buttonmap:
            e.g.  buttonmap: 3553

	    will make shift-left - to lock onto a planet and
                      shift-right - to lock onto a player

	    Numbers are assgined as follows :-

	    left-Button   0
            middle-Button 1
            right-Button  2
	    shift-left    3
            shift-middle  4
            shift-right   5

o Planet highlighting
	If a word is found in any message to you or your team that is
	the beginning of any planet name (and at least 3 characters
	long), that planet will be highlighted by a short animated
	sequence on the map window.  The first character in the string
	is always treated as captitalized.  (This allows you to type 
	"ori+++" instead of "Ori+++".)  Toggle with "Planet highlighting" 
	option.

o Player highlighting
	If the first word of a message to you or your team is either
	"Distress" or "Help", the sending player will be highlighted by
	a short animated sequence on the map window.  Toggle with "Player 
	highlighting" option.

        GF: I went a step ahead and created the emp and empl command for
	the CLIENT-> prompt.  Just place your cursor on the message window,
        and type shift-c and the CLIENT-> prompt will pop up.  Type help
        to see the commands that may be issued via the CLIENT-> prompt.
        The emp command will highlight any player you want if he is shown
	on your galactic map.  The empl command will highlight any planet.
	This is useful if there are many players in the game and you are looking
	for a particular player.  If you are not familiar with the locations of
	the planets you can use the empl command to highlight them.
	e.g. 
	CLIENT-> emp a
	will highlight player a
	CLIENT-> empl ear        (or any beginning letters of the name of the planet)
	will highlight Earth.
	The emp or empl commands are always available irregardless of the status of
	the highlighting option.

o Server nicknames
	You can now use server nicknames to call netrek; they are
	specified in your .xtrekrc like this:
		# server nicknames:
		Bezier:                 128.32.150.109
		Bronco:                 128.2.210.65
	The wait window and netrek window get labelled with the server
	name you are using, or nickname if that is given.

	GF: In addition, I have made it possible to specify the server's
	port number if it is not the default 2592.  For instance,

	garnet:         128.100.31.36
	garnet.port:    5555  

	The default server is fife.ecn.purdue.edu at the default port
	of 2592.  These can be changed by using the server: and port: option
	in .xtrekrc to change the default server and the default port
	respectively.  (I got the code for this particular feature from 
	another client)
	e.g.
	server:         garnet.cdf.toronto.edu
	port:           5555

	The wait window will appear as GF @ garnet, or whatever server nickname
	you give for the server that you are connecting to.  The same
	goes for the icon window.  They use the server nickname instead of
	the full server name as in garnet.cdf.toronto.edu.  The netrek
	window will appear as GrandFather @ garnet, or whatever server nickname
	you give for the server that you are connecting to.

	The title for the netrek window can also be specified by the -t option 
	at the command line or the title: option in the .xtrekrc file.
	(I got the code for this particular feature from another client too)

o Tractor/pressor toggle optional
	If you turn off the "tractor/pressor toggling" option, 'T' and
	'y' are tractor/pressor on switches *only*.  Pressing one
	while tractors or pressors are already on will switch the
	action to the new ship.  A new key '$' does tractor/pressor
	off in both modes.

o Visible status
        Ship status is shown in places other than the status line.
	The cursor changes to show repair mode, wtemped mode, and
	weapon temp.  There is a new icon for starbases with docking
	permission off.

o X11 interface improvements
	Green/Yellow/Red alert work.  The patches found in jch's
	client-hints are installed, presumably making all the X
	windows act more nicely.  Windows get appropriate labels.
	The wait window now is laid out more to my taste, and uses
	the big font for more readability.

	GF: The wait window is not laid out more to his taste because his
	taste obviously doesnt coincide with mine.  :)
	The wait window is as per normal except that the queue number
	is highlighted.

o Internal mods for speed
	Rewrote status line reporting in redraw.c.  Replaced some
	blanking calls in redraw.c by calls to a new function in
	x11window.c, W_OverlayBitmap.  Made the	warning function only
	erase as much of the line as needed, as	it overwrites the rest.

	Of course, none of these is very much of a speedup.  If you
	have any ideas on real substantial speedups possible in the
	client, write me.

o Internal mods for correctness
	Gcc doesn't seem to want to compile beef (or the vanilla
	client.)  Part of the problem was a function in defaults.c
	which I removed, called strcmpi.  It works exactly like
	strcasecmp except that it destructively modifies the strings.
	(Hp_ux users: you apparently do not have this function, and
	will have to write your own.  Mail me for code if you must.)
	Seems that gcc is smart enough to put initialized strings in
	the text portion of the program, which caused this function to
	dump core.

	Beef compiled with gcc still has weird crashes that take place
	when you get killed, that I have not yet tracked down.  (On the
	sun4 anyway) Do not compile beef with gcc yet.
	
o Internal mods for neater code
	Conglomerated the refit code in inputs.c to the beginning of
	the switch, where the flag is checked anyway.

---------------------------------------------------------------------------

	The Pig Borg 3.0

0. Naming convention
        For the clients in this borg to remain active, you must have the
        blessed animal in your name.  Yes, you must have one of the following
        strings in your name:
                pig, swine, hog, sow, boar, pork, bacon
        Uppercase, lowercase, mixed....just as long as it's there somewhere.
        Otherwise, you'll just have a standard client.

	GF: Not me!  I dont believe in that.

I. Basics - the following are the new keyboard commands; there are also
            control keys that allow specific clients to be turned on/off
            but those are described in Keybindings below.

  o Shift-K - pops up a client menu that allows you to turn
              each client on/off individually.  Default is for
              all clients to be on.
               
              The last entry closes the window.   All changes take
              affect immediately, not when the window is closed.

              The second-to-last entry allows the client to handle
              two different types of torps.  The current default is
              to expect the torps to be similiar to those on rwd4.
              Basically, vector sum torps where the change in
              speed is kept, but the angle of firing is through the
              point of aim (I call this vector speed).  If you click
              on this item, the client will toggle between expecting
              vector_speed/normal torps.

GF: The Borg Windows (there are 2) are Shift-A for Combat features
and Shift-Z for the rest.

  o Shift-X - pops up a parameter configuration window which allows
              you to tailor the client.  These changes do not take
              affect immediately, but only when you click on the
              'Incorporate Changes' menu item.  The symbol (M) next
              to an item means it is modified, but has yet to be
              incorporated.

GF: Not available yet in the Beta Testing Version, but I plan to
incorporate it.

  o g       - will print a list of those on the opposing team who
              have >= 1 kill, and, if tmode, will print a list of
              planets which should be bombed.

GF: If it does nothing means that there are none with >= 1 kill and no planets
    to bomb.

  o v       - target the player closest to the mouse, will only work if 
              your torps would be able to reach that person.  overrides 
              the target nearest player default.  If you already have
              someone targetted, it will deactivate the target selection.

GF: Automatic weapons will fire at the target, when the target is close enough.
    (Like the Helix Borg).

  o .       - targets the player closest to the mouse for ogging.  however,
              it will fire at others as you pass them.  basically, just
              an easy way to continually lock onto someone.

GF: Automatic weapons will only fire at the ogging target when he is
closer than the
    distance specified by the parameter, ogg_target_dist.  (Idea
borrowed from Helix
    Borg).  At the same time, the borg will tractor (and not pressor)
the ogging target
    if it is within range.  The borg will pressor the rest of the
players though.
    Attempts to change the direction of the borg will deactivate ogging
mode.  Setting
    certain options, like Auto Pilot, will also deactivate ogging mode.

Hints for a more effective Ogg :-

1) Make sure that you have almost maximum or maximum fuel and that you
are not too
   damaged.
2) Chose a time when the target is not close to any of his friends or
any players that
   may be hostile to you.
3) Make sure your Auto Aiming Torps is on and preferably Auto Phasers on.
   Make sure your Auto Repeat Key is on too (Can be set using the
options window).
   Make sure your Auto Dodge is on, and you may want to switch on your Auto
   Detonate Enemy Torps and Auto Detonate Own Torps too.  All these are
on by default.
4) Move quickly to it, after activating Ogg mode, but not so fast that
your ship
   may find it difficult to dodge enemy torps.
5) Preferably set Auto Phaser Cloakers on
6) You may want to cloak when you are close.  In any case, when you
press the auto aiming
   torp key with the auto aiming torp option turned on, you will
automatically decloak.
   Therefore, time yourself carefully.
7) When you feel that you are close enough, make sure you press the 't'
key or any
   key that you may have remapped for auto aiming torps and dont let go
when you think
   that you are too close for him to dodge your torps.  Your Auto
Tractor, Auto Dodge,
   Auto Phaser, Auto Detonate, and Auto Repeat will take care of the rest.
8) However, if you are too damaged or you are too low on fuel pull away
fast!  Try again
   some other time.

II. Actions

  o auto-shields
        will come up automatically when you within phaser distance of
        an enemy ship, or when the client believes you will be hit by
        a torp.  does currently come up when you're flying over a 
        hostile planet, but not when you are taking incidental damage from
        a nearby teammate getting hit.  will not come up when you are
        beaming armies up/down, nor if you are cloaked and orbiting.

GF: As with the Helix Borg, I adapted Andy McFadden's article for
autoshields as my policy.

Which is, in the words of Andy McFadden himself :-

 * STRATEGY:
 * - if we're orbiting a hostile planet, let the user decide.  We may wish
 *   to continue bombing under fire.
 * - if we're orbiting a friendly planet, let the user decide unless there
 *   are incoming torps or we take damage.  This allows us to repair or beam
 *   up even though there are enemy ships nearby.
 * - if we're cloaked, let the user raise or lower shields at will.  Don't
 *   raise them if we get within phaser range (ideally they can't see us),
 *   but bring them up if there are torps close by, we are near a hostile
 *   planet, or we take damage (from a phaser shot or exploding ship).
 * - otherwise, raise shields when something dangerous is too close, and
 *   lower them when the danger is gone.

  o torp-aiming
        torps fired from the keyboard will target the nearest hostile
        player.  torps fired from the mouse will still be conventional.
  o auto-phasers
        hostile players within a certain factor of your phaser range will
        be automatically targetted.  currently, set to 0.80 of your
        phaser range.
  o see-cloakers
        basically, just places the information from the galactic map
        on the local map.  shows you ship type....ship direction shown
        is generally wrong.
  o auto-torp firing
        will auto-fire torps at closest enemy closer than auto_torp_dist
        (currently 15M).   15M is low enough that you've probably
        screwed up if you're not already firing.

GF: I've used the close distance as proposed by the SunBorg as my
default instead.
    The default distance is 3100.  Enemy ships closer than this will cause all
    auto weapons to fire as quickly as possible.  You may reset the
"close_dist"
    parameter if you want to change this value.

  o pressor client
        will try and keep the closest hostile ship at least SHIPDAMDIST
        units away from you.  this is to prevent you from taking damage
        when your opponent blows up.

GF: Client will also pressor if the borg is being tractored (to prevent
oggers) or
    it is within "phaser_concern_ratio" of the closest enemy's phaser
range, or if its
    damage is greater than "run_damage" and if the enemy is within,
"tractor_ratio".

  o army client
        The client will attempt to report when armies are beamed up.
        The client is not depending on getting the PFBEAMUP flag, but
        is just scanning the known planets and looking for changes.

GF: Same here, but the client will supplement its information if the
server supplies
    the PFBEAMUP flag.  See the SunBorg for further explaination on
planets armies.

  o kill-and-bomb client
        basically allows you to get a quick list of the enemies w/
        kills and, if T-mode, the planets that need to be bombed.
  o plasma client
        really unfair client that will preferentially phaser all
        plasmas as soon as it can. 

GF: It has the Smart Anti-Plasma Phaser option (idea from Helix Borg). 
What this does
    when it is switched on is that it checks if it will be hit by the
plasma, if it will,
    the borg will phaser the plasma, if not, the borg will not phaser
the plasma.
 
  o det client
        dets enemy torps if it determines that you will take too much
        damage.  lots of variables, someday I'll explain them...

GF: The borg will det if it thinks it may not be able to dodge the torps
and that it may
    obtain a lesser damage if it detonates rather than not to detonate. 
If the borg thinks
    that the damage that it will incur by detonating the torps will kill
it considering its
    present shield strength and damage level, it will take its chances
on its dodging 
    and not detonate.

  o target client
        by using the target key described in section I, you can target
        a specific person.
  o info client
        show the number of kills a ship has below the ship id number in the
        tactical window.  places an asterisk next to the ship if it believes
        that the ship is carrying.  since i don't ever check for beaming down
        this just means they've picked up since the last time they died.

GF: I check for beaming down too but the information is not accurate. 
See Sun Borg.
    If the ship has 0 kill the number of kills the ship has is not shown in the
    tactical window.

  o phaser cloakers
        turns on/off auto-phasering of cloakers.
  o det misses
        dets your own torps that are beyond the targetted enemy.

GF: The parameter "det_mytorps_factor" (default 1.25) contains the how far
    your last torp is from your nearest enemy.  If it is set to 1.0, when
    your last torp misses your nearest enemy, it will detonate all its torps.

  o dodge client
        attempts to dodge the enemy torps.

GF: Borg will dodge when it thinks it will be hit by an enemy torp.  It takes
    into account of certain special situations like :-

    1) It is orbitting
    2) It is tractoring/pressoring or being tractored/pressored (not
perfect though because there is a force exerted)
    3) It has detonated the torps (it ignores those torps that it will
detonate)
    4) It is near the border and the torps will explode if the "Shoot
Through Border" option is off (as in most servers)
    5) Vector Torps
    6) Tracking Torps
    7) Torp Damage value (for different type of enemy ships)
    8) Proximity of Torps (nearer torps are given higher priority in
consideration)

    The dodging algorithm is not perfect, therefore, use it at your own risk.
    The borg will not dodge when it is orbitting an enemy planet though
and its auto shields will not come up.
    This is in accordance with Andy McFadden's shield policy to
facilitate planet taking and bombing.  The borg
    will detonate torps still though, if auto detonate is on.

  o ogg client
        doesn't really ogg...just locks onto the player and if it has
        to dodge, reestablishes the lock afterwards if possible.

GF: See the front of this help file.

III. Miscellaneous
  o fine tuning your client

GF: The default values for the borg parameters and all can be seen in
the .xtrekrc file.  Due to the fact that
    servers have different getship.c parameters and these parameters may
be crucial for the performance of the
    borg on the server, there are several ship dependent parameters like
bb_ or dd_ that are looked at whenever
    you request for a ship (at the entry window, or when refitting). 
These parameters cannot be changed, except
    in the .xtrekrc file.  I have set the bb_ parameters to what I think
would work pretty well for a server
    like rwd4.  If you want to use other ships, you have to set the
parameters for them in the .xtrekrc file.
    Look for sc_ parameters when you want to use a scout and so on.

        Many of the parameters controlling the client are adjustable.
        Use shift-X to modify particular variables to tailor the client
        to your playing style.  Listed below are many of the variables.

GF: You can only change the variables by pressing shift-c in the message
window and type set variable-name value
    or type show variable-name to see the present value.  If I do finish
the borg, I will try to make a window
    like the pig's.

        phaser_ratio - % of max phaser range at which you will auto-fire
                at the nearest opponent.
        phaser_plasma_ratio - same as above, but targetting plasmas
                instead of ships.
	torp_concern_factor - used by the shield client to determine 
		which torps are of interest.  Measured in units of
		EXPDIST (the distance at which a torp will explode).
GF: Also used to assess dodging
        torp_hit_factor - after looking at the torps within the range
                above, if any are within this distance, raise the
                shields.  units: EXPDIST
	plasma_concern_factor - same as for torps, but measured in
		units of PLASDAMDIST (the distance at which a plasma
		does damage)
        plasma_hit_factor - same as for torps.
                units: PLASDAMDIST
        pressor_act_factor - distance at which you wish to activate
                your pressors.  in general, this is used to keep enemy
                ships from blowing up on you.  measured in units of
                SHIPDAMDIST (the distance at which a ship will cause
                damage to you if it explodes)
        torp_burst_size - the number of torps that we attempt to fire
                when the keyboard torp key is pressed.  the server will
                ignore requests that arrive to closely, however.
        min_torpspeed - if using VECTOR_SPEED torps, limit the torp
                speed to this value.
GF: This parameter is only taken into account when vector torps is
switched on.  If the borg
    thinks that the speed of the vector torp to be shot is <
min_torpspeed, then the borg will not shoot.

	lag factor - attempts to compensate for lag.  Useful primarily for
	             udp connections.  Basically each unit is 1/10 second, therefore
		     for a 400ms ping time, set the lag factor to 2.
GF: Wierd things will happen and the performance of the borg will be
affected if the lag factor is set too high.
    Can be set by the lagfactor: parameter in .xtrekrc (Default is 0). 
It can also be set by the 
    "server nickname".lag: parameter in .xtrekrc.  The latter is given a
higher priority.  The lagfactor
    parameter can also be set while you are playing from the CLIENT->
prompt, like all the other parameters.

    there may be additional variables relating to autotorps and/or
    detting clients.  difficult to explain what the variables do, best
    to just experiment with them.

    there are min/max values associated w/ all these variables that are
    automatically enforced by the client.

GF: no min/max values here.

Note :- Parameters that are commented with "#" are default parameters
that are defined in the borg code.  You have to uncommented them if you
wish to redefine their values.

# Integer parameters

#enemy_exit_dist:       10000
- Distance that the borg use to judge which enemies are near somewhere
and which enemies are far.

#lagfactor:             0
- See above
#min_vtorp_speed:       10
- When vector torps is on, what is the minimum speed you want your auto
torps to be.  The borg will not shoot if it thinks
  that the torps will be travelling at speeds below this value.

#ogg_target_dist:       10000
- This is the distance when all the auto weapons will target the ogging
target (when ogging).

#plasma_dist:           35
- Distance for shooting auto plasmas

#robot_%edam:           30
- In this case, the robot will send distress call when it is 30% or more
damaged.

#robot_%efuel:          10
- In this case, the robot will send distress call when it has 10% or
less fuel left.

#runplanet:             6
- This is the speed that the robot will travelling at when running
towards a planet to bomb, or to beam-up/down armies.

#sh_up_time:            4
- This is the time that the shield, once it is raise, will remain up
until it is re-considered to be lowered again.

#torp_burst_size:        2
- Number of torps per burst.

#tt_angle_factor:       43
- Hard to explain, but it's for tracking torps aiming correction.

#tt_speed_factor:       4
- Hard to explain, but it's for tracking torps aiming correction.

#turn_factor:           318750
- It affects the doding.  Hmm...not sure how though try it yourself.

#Floating Point Parameters

#det_mytorps_factor:    1.2
- In this case, the borg will auto detonate its own torps when its last
torp is at least 1.2 times (the distance from the borg to the nearest
enemy) from the borg.  Therefore, if the nearest enemy is nearer, the
borg will try to detonate them at a nearer distance.

#etemp_concern:		0.75
- (Factor: Maximum engine temp of ship) The borg will try to run away
when its engine temp reaches that. (for robot mode)

#fuel_concern:		0.2
- (Factor: Maximum weapon temp of ship) The borg will try to run away
when its weapon temp reaches that. (for robot mode)

#phaser_cloak_ratio:    0.4
- (Factor: Its Maximum phaser range) Borg will phaser cloakers (if
option is on) if they are within that.

#phaser_concern_ratio:  0.7
- (Factor: Maximum phaser range of closest enemy) Borg will raise its
shields if it is within that from its nearest enemy.

#phaser_fuel:           0.1
- (Factor: Maximum possible fuel level of ship) Borg will not phaser if
its fuel drops below that.

#phaser_plasma_ratio:   1.0
- (Factor: Its Maximum phaser range) See above.

phaser_ratio:           0.8  #default 0.85
- (Factor: Its Maximum phaser range) See above.

#plasma_concern_factor: 2.0
- (Factor: PLASDAMDIST) See above.

#plasma_fuel:           0.5
- (Factor: maximum possible fuel level of ship) Borg will not fire
plasmas automatically if its fuel drops below that.

#plasma_hit_factor:     1.2
- (Factor: PLASDAMDIST) If enemy plasmas get within this distance from
the Borg, the Borg will think that it will be hit.  Used for Smart
Plasma Phaser and dodging.

#pressor_act_factor:    1.5
- (Factor: SHIPDAMDIST (distance that an exploding ship will cause
damage)) If enemy ships get within this distance, the borg will try to
pressor them away.

#run_damage:            0.75
- (Factor: Maximum damage level that the ship can take) The borg will
try to run if it is that damaged.

#torp_concern_factor:   20.0
- (Factor: EXPDIST) See above.

#torp_hit_factor:       1.2
- (Factor: EXPDIST) See plasma_hit_factor above.

#tractor_ratio:         1.0
- (Factor: Maximum tractor range)  If auto tractor is turned on and the
conditions are right, the borg will tractor enemy
  ships if they get within this distance.

#wtemp_concern:         0.75
- (Factor: Maximum weapon temp of ship)  If the weapon temperature gets
below this level, the borg will try to run away.  (for auto pilot)


# Borg Ship Parameters

Note:- These values are chosen in accordance with the getship.c of the
bronco server.  It you want to use other ships, you have to define your
own parameter values and test it out.

#bb torpturns:          0
- For tracking torps, set this to zero if you Battleships have only
straight torps (for auto torps and dodging)

bb_dogslow:     	3
- Speed when it is dog-fighting and needs to turn around at a large
angle. (for dodging)

bb_dogfast:		3
- Speed when it is dog-fighting and needs to turn around at a small
angle. (for dodging)

bb_runslow:		4
- Speed when it is running and needs to turn around at a large angle.
(for auto pilot)

bb_runfast:		4
- Speed when it is running and needs to turn around at a small angle.
(for auto pilot)

bb_closefast:           4
- Speed when it is attacking a close enemy and needs to turn around at a
small angle. (for auto pilot)

bb_closeslow:           3
- Speed when it is attacking a close enemy and needs to turn around at a
large angle. (for auto pilot)

bb_torp_spacing:   	700
- The spacing between individual torp bursts (for auto torps)

bb_cloak_speed:		3
- Speed of the Borg when it is cloaked.  (for auto pilot)

bb torpdist:            30
- Distance that the auto firing torps will be shot

bb sturns:              75000
- Turning factor  (the larger, the easier to turn)  (for dodging)

bb torpdamage:          40
- Damage done per torp, for a direct hit  (for dodging)

bb mass:                2300
- Mass of the ship (for dodging and shooting while tractoring/pressoring)

bb plasmadamage:        130
- Damage done per torp, for a direct hit  (for dodging)

bb plasmaturns:         1
- For tracking plasmas, set this to zero if you Battleships have only
straight plasmas (for auto plasma and dodging)

bb plasmaspeed:         15
- Speed of the BattleShip's Plasmas (for auto plasma and dodging)

bb tractstr:            3700
- Strength of its tractor/pressor beams (for dodging and shooting)

bb tractrng:            1.2
- Range of its tractor/pressor beams (for dodging and shooting)

  o establishing defaults initially
        The default is to have all clients on.  This can be overridden
        in your .xtrekrc file with lines of the form:
                shield client: off
                autotorp client: off

        basically, it is just doing a string match with the names from
        the client window.  case is not important.   However, make sure
        to include any imbedded spaces, but do not leave white space
        before the ':'.  Either 'off' or 'false' will return a negative
        value, anything else will assume the client is on.

GF: Borg toggle options are those that will start with a b in the
.xtrekrc file.

IV. Key bindings:
        As a result of several requests to be able to turn certain clients
        on/off from the keyboard I have implemented such a feature.

        First, I'll list what the keys are currently bound to and then I'll
        explain how to change them.

        *Autotorp client                ctrl-a          In general, these
        Cloaker client                  ctrl-c          bindings correlate
        Det client                      ctrl-d          pretty well with
        *Phaser cloakers                ctrl-e          the keys that perform
        Plasma client                   ctrl-f          a similiar function.
        Kill/Bomb client                ctrl-g          For example, u is the
        *Client Master                  ctrl-i (TAB)    default toggle shields
        Phaser client                   ctrl-p          commands, so ctrl-u 
        Torp client                     ctrl-t          controls the shield
        Shield client                   ctrl-u          client.  The ones
        Target client                   ctrl-v          marked by '*' do not
        Pressor client                  ctrl-y          correlate well and I
        Army client                     ctrl-z          just picked some keys.
        Info client             None (client window only)
        *Dodge client                   ctrl-m (RETURN)
        Ogg client              None (client window only)

GF: The default Key binding is indicated in the beginning of this help file.

        Well, so you hate some or all of the above default key bindings.
        How do you change them?  Basically, just as you would change
        any other keybinding.  However, while entering the ctrl-keys as a
        single character is possible, there is also a cleaner way.
        ^a will be interpreted as the single character ctrl-a, as will
        ^A.  Besides ^[a-zA-Z], you can also use '^ ' (ctrl-space) which
        is the same as NULL, at least on my keyboard.   Well, this would
        screw up your other netrek binaries, since they expect only pairs
        of printable characters so I've also added the following: &a will
        generate the single letter a, ditto with any other printable character
        (basically, the first & is just ignored).

        Therefore, if you used the combination ^a^b to map ctrl-a to ctrl-b, 
        other netrek binaries would work fine because they would first map
        the character ^ to a, but then change it to b.  So unless you actually
        use the ^ key you would be fine.  However, v^a would map v to ctrl-a
        on my client, but would screw up other binaries.  Therefore, you
        should use &v^a to accomplish this with my client.  Again, unless
        you use & or ^ you will be fine. ab would do what you expect on all
        netrek binaries.

        If you really want to you can still define & and ^ for your use,
        use something similiar to &&&a to bind & to a.   This should be
        placed at the end of the keybindings line so it will be the last 
        binding read.  Binding ^ is trickier, but can be done by placing
        ^a at the very tail end (even after the &&&a trick).  This works
        because other binaries will translate it correctly, but I'll just
        completely ignore it as I will think it is incomplete.

        For example, if you want to map ^ to a AND & to b, your bindings line
        should end with &^&a&&&b^a.   The first &^&a is for my client to
        get your binding for ^, the middle &&&b is for all binaries to get
        the & binding, and the final ^a is for other binaries to get the ^
        binding.  Whew..

GF: Well done Todd!  I like it and so I've implemented this scheme too. 
Therefore,
    the keymapping for the GrandFather Borg 4.0 will be compatible with
the Pig Borg's.  I can't
    explain it as well as he can though.  :)

V.  Key maps:
        This client has the ability to change keymaps in the middle of the
        game.  Why would you want to do this?  Well, you may want different
        functions mapped to different places when you're playing an SB.
        Additionally, you may want someone else to be able to spell you during
        those marathon trek games, but he uses a different keymap.  To make
        use of this function, in the options window where you would normally
        enter keybinding changes, enter a string in the form of "foo".  In
        your .xtrekrc file, you should have a line similar to:
                foo: drjoena.empa
        or whatever keymappings you want.  

VI.     Exotic Features
        During testing, even my code occasionally segfaulted so I put in
        a feature to reconnect me should that happen.  Well as a side effect
        I can also switch my Xdisplay to another terminal should I wish
        to move.  Note: I can switch my Xdisplay, I cannot connect from
        another machine; I still need an active connection on the original
        machine.  But, basically the feature works as follows:

        When you enter a game, you'll receive a message as follows:
           Connected to port 32764, player number 13
        then should you segfault (not w/ my code) or wish to change machines.
        --  kill the job (if not already dead), you can use the kill command
                or just kill the xwindow the game runs in
        --  restart the game with the following command from the same machine
                PigBorg -h server_name -S 32764 -P 13 -d newdisplay:0
GF:  I wouldnt call this an exotic feature, but this is a neat feature.  One
     of the many ingenuity of the Pig Borg.  Although I do not have the code
     for the Pig Borg, I figured that the -S option will be similar (if not the
     same) as the -s option in the original netrek client.  Therefore, for the
     GrandFather Borg, do this instead :-

                gfborg -h server_name -s 32764 -P 13 -d newdisplay:0.

------------------------------------------------------------------------
-----------

The Sun Borg

GF: I will show only the similar features that I didnt mention above.

  o auto-torp firing
        will auto-fire torps at closest enemy closer than autoTorpDist
        (currently 3100).   3100 is low enough that you've probably
        screwed up if you're not already firing.
  o army client
	client continually scans all planets - when number of armies
	change on a planet, client tries to figure out why.  If the
	client suspects that an army is being beamed up, a message is
	sent to the individual review window.  If an army is being beamed down,
	one army is taken off the number of armies we suspect that ship
	of carrying - Note suspected number of armies on a ship is
	put where wins and losses used to be in the player list.
	
	Enough people have add questions about this that I feel I should
	explain the algorithm that I use.  As mentioned before, the client
	scans all planets on every update.  If a planet has fewer armies
	than the previous update, the client assumes beaming is occurring.
	If a player is near the planet that has kills and owns the planet,
	then we believe that he is beaming up armies.  If the player is
	unfriendly, and the planet has less than 5 armies, and the player
	is believed to have armies, then the client believes that the
	player is beaming down armies.

	NOW - what isn't caught by the client.  Beaming to and from SB's is
	not caught.  The client can not tell how many armies an SB has, so
	it is very difficult to catch this type of beaming.  If we do not
	know the location of a player (because he is too far away from any
	teammate) then we don't know if he is orbiting the planet, so we
	can't tell if he is beaming up.  Finally, if a player beams up from
	a planet that we have no info on, then we can't find out if he is
	beaming up.

GF: Same here.  

III. Miscellaneous
  o fine tuning your client
        Many of the parameters controlling the client are adjustable.
        By sending a message to 'C', you will be talking to the client
        parser.  Basically, the command to get you started is
        C--> help

        The format of the show commands are typically:
        C--> show variable-name

        The format of the set commands are:
        C--> set variable-name value

GF: Change the C--> to CLIENT--> and there we have it :)

IV. My additions
	3) If you pull up 'P' for planet listing, the client remembers
	   each planet's status.  You will still be able to find out
	   which planets are repair, fuel, and agri even if the planet
	   is taken over.

GF: I find this feature neat and interesting therefore, I've incorporated it.
    I have also taken a step forward by also remembering the team on unknown
    planets.  If, throughout a game, you lost the information on a planet
    because it was taken over by an enemy, the borg will remember the resources
    and the enemy team that took the planet.  Therefore, in this way, your
    information can only increase and not decrease.  This feature cannot be
    turned off though.  Let me know if you think that you need a toggle switch
    for this feature because it's an easy hack to add that.  The server
    will not update us on the number of armies on the unknown planets though
    therefore, the borg only approximate on that with a ? symbol, for instance,
    ?2.  It means there are at least 2 armies on the planet (or so it thinks).
    Very rough guess work though.

	4) There is now a whole slew of messages that can be sent with
	   two quick keystrokes.  To do this, press '.' to enable the
	   fast message system.  Also, all messages are sent solely
	   to one's own team.
	
	   The next keystroke and mouse position defines the message.
	   Note: These keystrokes (with the exception of the above '.')
	    can not be keymapped.  Sorry.

	KeyStroke   Mouse Position   Message
	    '+'       enemy ship      enemy ship'++'
	    '0'       enemy ship      enemy ship 'has' #armies 'armies!'
	    '1'                       'does anybody read team messages?'
	    '2'			      'yes'
	    '3'                       'thanks'
            '4'	      any SB          SHIP 'is a SB'
	Note: 1-4 are pretty well useless
	    '5'       enemy ship      sends nothing, but picks this
				      player for the auto-ogg

	    '6'       enemy ship      'Ogg ' ENEMY SHIP
	    '7'                       'We need to BOMB more'
 	    '8'	     enemy planet     'Bomb' PLANET '- it has'
			> 4 armies        #armies
					
		     enemy planet     'Take' PLANET '- it has'
			< 5 armies        #armies
			
		     ind. planet      PLANET 'is independent'

	    '9'     enemy planet     'ESCORT needed to' PLANET
		  you have armies    'by' YOU 'with' #armies

		    enemy planet     YOU 'will escort to' PLANET
	you don't have armies	     ' - who will take?'

GF: There are automatic messages (see the front of this help file) but
    not as elaborate as these.  I think
    that these messages may be kind of irritating if used in excess.

send all comments, suggestions, and problems to
	paulsen@eniac.seas.upenn.edu

I forgot to mention that there is also a fuel reserve.  If your fuel
is below this reserve, the auto-phasers won't fire.

Rather than reproduce the documentation, I will simply describe the changes.
First, I recommend reading the docs, because they provide more detail than
what I will describe here.

Auto-aimed torpedos now take into account orbiting enemies.  Old torps
use to fire into never-never land for orbiting enemies.  No longer.
GF: I've done that too.  However, it is difficult to aim at an orbitting
    cloaked enemy but the borg will try to take care of that as best as 
    it can.

Phasers use torp explosions to fire at cloakers.

--------------------------------------------------------------------

==================== helixborg.README ====================
GF: Only the similar and relevant sections are included

Features:

	Client options window
All the toggles can be made from the options window, similar to the
Pig client.  The settable options are listed inside [] on the right in
yellow.  By clicking on one of these, the left button decreases the
parameter by -5, the middle increases by +1 and the right increases it
by +5.  Most of these values are listed in phaser damage that you
expect to do to a target, or phaser damage you expect the enemy to do
to you.  The values can be set specifically by sending a message to
the client (shift-C) and entering the parameter listed between the
brackets followed by the new value to reset it to.  They can all be
set in your .xtrekrc file.  SHIFT-K to map/unmap.

GF: I like this but I have not implemented this.

	Beast bitmaps
Bitmaps for the beef/beast client are included.  These are fairly
striaghtforward--the planets always show owner and resources both.
The resources listed down the left side of the planets from top to
bottom indicate AGRI, FUEL, and REPAIR in that order.  This may take a
small amount of getting used to, but it is a nice improvement.  Armies
for each planet are listed to the right on both local and galactic
maps.  For races that you are peaceful with, number of armies are not
displayed.  Also, if a planet has exactly 4 armies, no count is given
since this is a generally uninteresting number.  Bitmaps made by
leonard@cs.umd.edu.  Please give me feedback on these bitmaps.  If
public demand is high, I am willing to change them or offer an
alternate set as a map cycle.

GF: Same here

	Show army beaming
When an enemy player beams up armies from an IDENTIFIED planet with a
known number of armies (and he is shown on your galactic map), a
message is sent to the individual review window from the client.

	Target selection
Sending the client a message CLIENT->[kill g] will make all auto aimed
weapons target at player 'g'.  This is very useful if you want to og
someone or pick them out of a crowd.  It is especially nice when
ogging a starbase.  SHIFT-Y to select target
with mouse.  Weapons act normally until then.

GF: use a v (like the Pig Borg) instead of SHIFT-Y.
    All automatic weapons will target g (in this case).
    The automatic weapons will only fire at g when g is within range.

	Manual activation/smart defenses
Auto phaser of plasma is mapped to the detonate key (it does both).  I
don't like to waste fuel on a plasma that won't hit me, and I think it
looks really stupid to phaser wildly at a poorly aimed plasma.  Ship
will uncloak first if plasma targeted.  Also, torp detonate will raise
shields first, and not function if total hull+shield remaining is less
than [det 50] setting, the detonation threshold.  If this is set at
zero, shield raise and phaser plasma are inactived.

GF: no treshhold and all though.  It doesnt check if the plasma will hit
    you.  It just phaser plasmas that are within range.  Torp detonation
    will raise shield first if Auto Shield is on.  The toggle for this
is found in the
    auto aim phaser-plasma option in the Borg Menu A.  If the option is
off, the
    detonation key will not phaser plasmas.  I made the feature alittle
different
    from Helix because I want the user to have more control.

	Auto phaser cloakers
If you don't like to automatically initiate phaser fire on cloaked
ships, it can be turned on/off.  Only operates if auto phaser is
turned on (of course!).  Phaser hit followups from manual first hits
work on cloaked ships even if this is turned off, as long as
autophaser is on.

	Fuel reserve
Use [fuel 1400] to keep a fuel reserve of that amont to prevent
auto phaser from wasting all your fuel.  Keyboard phasers ignore this.
Will discontinue auto phaser hit follow-ups when fuel is low.

GF: Same here but it is set to a different value.  See parameters above.

	Smart phaser
If auto phaser is ON, then phasers will continue to fire at the ship
as long as you keep getting a hit and it remains within [minphaser 10]
point phaser range, and fuel reserve is not passed.  Phasers from
keyboard or autophasers fire at closest/targeted ship.  Followup fire
will also continue on cloaked ships even if auto phaser cloakers is
OFF.  If you do not like phaser fire to be INITIATED by the client,
just set [phaser 100] or higher and then it will only keep firing
after you make the first hit manually.

	Smart torps
Torps fired from the keyboard are aimed at the nearest player if he is
within your torp range.  To account for netlag, set the value [lag 2]
to indicate how many updates you are falling behind, and the torp lead
will be increased.

	Auto torp
Adjustable range by sending [torp 65] for initiating auto torp fire if
the nearest enemy is within 65 point phaser range.  You are probably
dust at this point already, but useful against battleships.  ctrl-t
toggle.

	Galaxy class and new independent/Iggy bitmaps
All modifications are from starting with the galaxy-client source.
Galaxy class ships are compatible.  Someone posted a new set of
bitmaps for independent ships a while back.  I installed them.  Nifty!

	Extra goodies
Phasers or torps fired during repair mode briefly turn off repairs to
send the weapon request, and re-activate repair mode.  Handy during orbit!
Shields turn color to indicate their strength remaining:
   100-50% white, 50-20% yellow, 20-0% red.
Distress calls gives fuel too.

	default setting in .xtrekrc
All options that can be set through the client options window can be
given as defaults in the .xtrekrc file.  On/off defaults as well as
numerical values can be set.  In addition, two other features can be
turned on initially.  The number of updates/second that you prefer as
a default is set as [updates].  Setting updates to frequent for the
galactic map is set using [frequentgmap].

Minor new features:

	Message Highlighting
If you get a distress call from a ship, you see a highlight flashing
around it on the galactic map for a few seconds.  If a planet is
mentioned at the start of a message, the planet is highlighted by a
circle that expands and contracts from the source.

-------------------------------------------------------------------

Acknowledgements:

I'll like to thank:

mobius@wam.umd.edu - for sending me the code for the various clients. 
Without him, all these features will not be present.
milutz@icaen.uiowa.edu - for making my borg public and for his
tremendously helpful comments and his effort to help me spot
			 out the bugs.

isae@iastate.edu and 
renegade@iastate.edu - for their very helpful comments and their offer
to help me finish the borg.

All the rest who had contributed by their comments and their help in
testing the borg.