                    ***************************************
                    **           LORD OF HOSTS           **
                    **           =============           **
                    ***************************************
                    **     © April 1991 Tim Pietzcker    **
                    ***************************************


WHAT IS "LORD OF HOSTS" ?
=========================

Lord  Of  Hosts  (from now on referred to as "Lord") is a strategy game for two
players.   It's  played on a 8x8 board.  Each player controls seven knights and
one  king.   The  goal  of  the game is to manoeuvre the opponent's king into a
situation  in which he can no longer move, i.e.  to checkmate him.  Another way
of winning the game is to capture six of the opponent's knights.

ONE THING THAT SHOULD BE MENTIONED FIRST
========================================

I've  made extensive use of CygnusSoft's "req.library" in this program.  So, in
order to be able to start Lord_Of_Hosts, you need the req.library in your LIBS:
directory.   I've  included  the req.library (V1.4) in this distribution.  Just
execute  the  supplied  script file Install_ReqLib (either from a Shell or from
the  WorkBench)  before  the first time you run "Lord" if you don't already use
this library yourself.

DISCLAIMER AND COPYRIGHT NOTES
==============================

This  program is supplied as is without representation or warranty of any kind,
either  expressed  or  implied.  I won't take any responsibility for any damage
that might be caused through the use (or better, misuse) of this program.

Lord Of Hosts is NOT public domain!  It is Copyright © 1991 Tim Pietzcker.  ALL
RIGHTS RESERVED.  However, these files may be freely copied for a SMALL nominal
fee providing they remain together and in their original form.  (a small fee is
LESS  than  seven dollars.   I pay no more than 1,50 DM (about $1) for a public
domain  disk.   If  you  pay more, it's your own problem.) Lord Of Hosts may be
distributed in the Fred Fish series.  Distribution in ANY other series requires
written permission from the author (see my address at the bottom of this file).

(And Mr. Stefan O. from Essen, Germany shouldn't even try to get it.)

                      ***********************************
                      *Don't support PD software piracy!*
                      ***********************************

RULES
=====

The  rules  are  fairly simple.  On each piece, there's a number indicating how
many  squares  this  piece HAS GOT TO move.  After the move, a different number
may appear on this piece.  The pieces may move only horizontally or vertically,
*NOT*  diagonally.   One  right-angle turn per move is permitted.  For example,
one piece bearing the number 3 that is standing in the middle of the board may
   - move 3 squares up
   - move 1 square down and 2 to the left
   - move 2 squares to the right and 1 square up
   - etc.

There are only a few restrictions:  Firstly, a piece cannot jump over any other
piece.   Then,  it's  not  possible  to go forwards and backwards in one single
move.   There  is also a situation in which an otherwise legal move will not be
permitted:  When a player's king is threatened by an enemy's piece ("CHECK !"),
only  moves that lead the king out of this threat are valid.  It's just like in
chess.   Similarly,  if a player attempts to move his king to a square on which
he  could  be  beaten,  or  if  he  tries to do a move that exposes his king to
danger, he will not be able to do so.

Any  piece  can capture an enemy's knight simply by moving onto the square that
the  knight  is  occupying.   Remember  that this is a way of winning the game:
beat six knights and victory is yours.

The  idea  of  check  and  checkmate  is directly taken from chess.  So, if you
manage to create a situation that leaves the opponent's king no escape, you win
the game.  Of course, the computer will tell you so if this happens.

As  soon as one player does a move after which his opponent's king is beatable,
a  message  is  displayed "Player x announces 'CHECK!'".  As long as it doesn't
also say "Player y's King is checkmated!", there is at least one valid move for
player y left.

Well, that's about all for the rules. There also is a menu option "Rules" to be
found in the "Game" menu (keyboard shortcut RIGHT-AMIGA-?).

ONE WORD ABOUT THE MOUSE POINTER
================================

Since  this  is a mouse-controlled two player game, I had to find a way to give
both  players  a  chance  to  move  the  mouse pointer (one after the other, of
course).   Since fewest Amiga users have got two mice, I decided to have player
1  take  the  mouse  and  to have player 2 take a joystick.  After player 1 has
finished  his  move,  the  mouse will be switched off internally and player 2's
joystick will become the new "mouse mover".  So don't panic if the system seems
to  have  crashed (a motionless mouse pointer IS a frightening thing, I admit);
just give your joystick a little nudge and watch the pointer float majestically
over  the  screen  (I'm getting carried away with this, sorry).  The joystick's
fire button will act just like the mouse's select button (the left one, okay?).
Unfortunately,  joysticks don't have menu buttons yet, so if you really have to
make  a  menu selection while the joystick is controlling the pointer, you have
to depress RIGHT-Alt-RIGHT-AMIGA to simulate the menu button.

If  you  don't  like  the JoyMouse's speed, you can change it by selecting "Set
JoyMouse  Speed"  (Special  Menu), keyboard shortcut AMIGA-J.  And if you don't
like  the  idea of mouse/joystick swapping, you can turn the whole thing off by
selecting "JoyMouse Off" (also Special Menu).

And  if  you don't have a joystick or if you are a fanatic keyboard addict, you
can  still  use  the  keyboard  to  move the mouse pointer (left AMIGA key plus
cursor keys [plus optional SHIFT key]).

HOW TO PLAY LORD OF HOSTS
=========================

This  is  really  easy.   First,  select "Begin Game" (Game Menu).  You will be
asked  to  enter  your  and  your  opponent's names.  After you've done so, the
computer  consults  his  random number generator to decide who starts the game.
Click  on  "Resume".  You can always see whose turn it is by looking at the two
boxes  containing the players' names.  The words "Player 1" turn blue when it's
player 1's move.  The same applies to player 2.

Player 1 gets the red pieces; player 2 gets the white ones.

Let's suppose player 1 starts the game.  He should now choose the piece that he
wants to move.  This is done as follows:
   - move the mouse pointer over the piece
   - click the left mouse button (or the joystick fire button).
A box will be drawn around this piece to show that it's the active one.  Player
1  can  now  either change the active piece by clicking on a different piece of
his  or  select  the  piece's  destination square (also by clicking on it).  If
there is a valid way to move the active piece there, the move will be executed,
and player 2 will now get control over the mouse pointer.  That's it.

AND NOW FOR ALL THE EXTRAS
==========================

The  Amiga  is  an extraordinary computer.  Therefore a game for the Amiga must
have extraordinary features.  And here they are:

 * Full Undo/Redo. Take back as many moves as you want and/or replay them.

 * Three different help modes for each player.

 * Load/Save Game facility. All the Undo/Redo information will also be saved.

 * Four different kinds of boards - Infinite variability => Every game is
   different from the last one.

 * On-line help facility.

Detailed description of the extras
==================================

UNDO / REDO (Special Menu):
   Selecting  Undo (shortcut:  AMIGA-U) takes back the last move.  Selecting it
   again  takes  back  the  move before that one.  And so on.  The limit to the
   number  of undo opeations is 500.  In other words, a game that last over 501
   moves can not be undone upto the first move.  However, this limit is so high
   that I doubt whether anyone can reach it in a normal game.

   Redo  (shortcut:   AMIGA-R)  does just the opposite:  The last move that has
   been  undone is "played back".  This can only work if no new moves have been
   made since the last undo operation.

LOAD / SAVE GAME (Game Menu):
   Selecting  Load  Game  (AMIGA-L) will bring up the CygnusSoft File Requester
   which is the best one that I've ever seen (I didn't program it, Bruce Dawson
   and  Colin  Fox did)!  On the left side, the files and subdirectories within
   the current directory are displayed.  On the right side there is the list of
   all  mounted  devices  (DF0:,  RAM:, RAD:, C:, LIBS:, etc.) There's a Parent
   gadget  to  get you one level up in the directory tree and some other rather
   self-  explanatory things.  Select a game file by double clicking on it.  If
   a  directory  is changed by a different program, "Lord" will not be aware of
   it until you reload that directory using the "Get Dir" gadget.

   Saving  a game is just as easy:  Select "Save Game" (AMIGA-S), change to the
   desired  directory  and  enter  the  filename under which the game should be
   saved.  If the file already exists, you will be asked to confirm whether you
   really want to write over the old file.  Remember that the old contents of a
   file are lost when it's overwritten.

HELP MODES:
   Normally, none of the players receives any help from the computer.  However,
   it might be desirable to find out what value a certain piece will have after
   a move.  On the standard board, it is possible to deduce this value (I won't
   tell you how, haha!), but if you want to get a hint anyway, you can instruct
   the computer either
      - to  show you  the new value if the piece has visited this square before
        (i.e., it "knows" this square's value)    or
      - to show  you the new value in any case, regardless of whether the piece
        has been there before or not.
   This  works  as  follows:   In  the  Special Menu, there are two menu items,
   "Player  1  Help  Mode" and "Player 2 Help Mode".  Choose between "No Help",
   "Show  Known  Values",  and  "Show  All  Values".   If you choose one of the
   "Show..." subitems, the way to move a piece will change:
      - Select the piece you want to move.
      - Select the destination square.
      If  the  move is valid, the piece will move there.  If you selected "Show
      Known  Values"  and  the value is not known, a question mark will be dis-
      played.   Otherwise,  the  new  value  will  be displayed.  Now the words
      "Player  1/2"  will  change from blue to yellow.  This indicates that the
      computer  is  now  waiting for you to confirm or to cancel the move.  You
      can now
      - confirm  the move by clicking again on the destination square. If there
        was a question mark, it will be replaced by the new value.
      - Alternatively,  you can cancel the move by clicking on any other square
        but the destination square.  The move  will be taken back,  allowing to
        select a new destination or even a different piece to move with.

DIFFERENT BOARD TYPES:
   "Lord"  is  based  on  a  board game.  On this board, the pieces' values are
   determined  by  little  magnets  hidden  under  the  board.  This leads to a
   regular  pattern  of  values (that you can find out by reading the program's
   source  code  or simply by playing the game (if you're smart enough)).  This
   board  is  simulated  by  "Lord".   It's called the Standard Board.  If this
   board is rotated by 90°, the patterns change.  There's a menu called "Board"
   in  which  you can change the type of board.  The two items "Standard Board"
   and "Standard Rotated 90°" have just been explained.
   Since  the  generation  of (pseudo) random numbers is possible, you can also
   select a "Random Board".  Random Boards come in two flavors:
   - Balanced:  When generating the random value patterns, the computer ensures
     that  the  values  are distributed evenly. So, each knight gets exactly 16
     squares  where  his value will be 1,  16x2,  16x3 and 16x4. The kings gets
     32 squares of 1s and 32 squares of 2s.
   - Unbalanced:  The computer  doesn't force  himself to distribute the values
     evenly.  Thus it is possible that p.e. one piece has a value of 4 on every
     single square (but highly improbable [1 against 3.4028e38]).

ON-LINE-HELP:
   There's a menu item "Rules" (mentioned earlier).
   Also,  the item "Explain Invalid Move" (Special Menu, AMIGA-E) will tell you
   why the last unsuccessful attempt to move had failed.


THAT'S IT !
===========

Exit "Lord" by selecting "Quit" (Game Menu, AMIGA-Q). Hope you enjoyed it!

ABOUT THE REQ.LIBRARY
=====================

Quoted from the Req.library doc file:

"Req.library  was written by Colin Fox (of Pyramyd Designs) an Bruce Dawson (of
CygnusSoft  Software).   Req.library  is  a freely distributable library [...].
Req.library  is not public domain.  The requester library and all documentation
and example programs are all copyright 1989."

I only included the files necessary to compile "Lord".  In order to get all the
files  plus  docs  etc.   buy  Fred Fish's disk #419.  Better yet, buy CygnusEd
Professional.

REQUESTER KEYBOARD SHORTCUTS
============================

Instead  of  using the mouse to answer the requesters, you can also type 'y' or
'v'  as  a  shortcut  to  a  "Resume" or "Ok" gadget; ESC, 'n', 'b' or 'q' as a
shortcut  to a "Cancel" or "Next Page" gadget; and finally 'm' as a shortcut to
the "Prev Page" gadget.

PROGRAMMER INFO
===============

Lord Of Hosts was developed on an AMIGA 2000A (Kickstart 1.3, 3.5MByte RAM).
It works with Kick 1.2. However, I've had no chance to find out whether it
works with Kick 2.0. Don't know why it shouldn't.

All the files necessary to compile Lord_Of_Hosts (Aztec C V5.0) are included in
this  release.  Start up your C environment, CD to the directory containing the
source codes and enter 'Make Lord'.

I  have  modified the req.h and reqglue.o files (supplied with CEDPro) in order
for them to work with Aztec C 5.0.

Lord  Of  Hosts has been tested on several different machines without any error
showing  up.   If  something  doesn't  work  on your Amiga, please let me know,
telling me everything about your system configuration and the error.

I  don't  think  it  would  be  difficult  to  port Lord Of Hosts to Lattice C.
However, I haven't tried yet.

CREDITS
=======

Many thanks are due to:
   - Bruce Dawson and Colin Fox for the req.library
   - CygnusSoft for CEDPro, the best editor for the Amiga.
     If you are a programmer and haven't bought CEDPro yet, DO IT!
   - Manx for Aztec C 5.0 and the source level debugger (Guru go home!)
   - Dan Silva for DPaint that I used to design the game's graphics
   - Kevin Bjorke for NewGetImage (Demo Version 1.3) that translated the DPaint
     brushes into C structures
   - My brothers, Jan & Ulf for beta testing all the bugs out of this game
     (knock on wood)

MY ADDRESS
==========

Send  all  comments,  suggestions,  bug  reports,  dollar bills and accelerator
boards to:

Tim Pietzcker
Schwarzwaldstr. 52
W-7819 Denzlingen
Germany
