***************************************
**           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



