Sand of Dune v 0.4

1.- Overview
  Sand of Dune is a client-server aplication that allows to play an online
Dune board game through the net without a game master.
  One player (or another neutral person) will run the server and every player
will run the client.
  The server takes care of the following aspects of the game :
	- Generating random events : Storm movement, decks and traitors.
	- Controlling info that is not avalaible to all players and notifying
        those that have the rigth to know : Prescience powers, predict storm,
        Bene Gesserit end game prediction, battle plans, player deals, etc.
  The client is mainly a chat zone where you can tell your partners what you
do : ship tokens, alliances, etc.
  It also has several menus that give access to the services provided by
the server.
  This is an alpha version, wich means that lacks some important features and
it may contain a lot of bugs. If you catch any of them or have any suggestion
email me at ekar0@mailcity.com

2.- Installation Instructions :

  Before you can run Sand of Dune you need to download and install the Java
Runtime Enviroment :
  Windows : http://java.sun.com/j2se/1.3/jre/download-windows.html
  Linux   : http://java.sun.com/j2se/1.3/jre/download-linux.html

  Add the bin directory of the Java Runtime Enviroment to your PATH.
  Now you are ready to install Sand of Dune. Download it 
(http://www.geocities.com/ekar0) and uncompress the zip file in any
directory.
  For Windows :
  Run the server.bat batch file to start the server.
  Run the client.bat batch file to start a client.

  For Linux :
  Give the executions permisions to the scripts with this command :
	chmod a+x server.sh client.sh
  Run the server.sh script to start the server.
  Run the client.sh script to start a client.

3.- Using the server

3.1.- Starting a new game :
  Upon starting the server for the first time, you will see a window that allows 
you to choose the number of players for the game and the password for each 
one, it is important that every password is different. You can also set the 
password for guests (they can see the progress of the game and chat but can
take no game action). You can also change the port (use different ports if you 
want to run more than one server).
  After hitting OK it is time for the players to launch the client and connect
to the server. When all players have connected a new window will appear. 
  Just minimize and ignore it until you want to close the server.

3.2.- Closing the server :
  Click the "Close & Save" button. The status of the game will be saved in
a file named saveXXXXX , where XXXXX is the number of the port used.

3.3.- Finishing the game.
  If the game has finished and you no longer wish to keep the game info,
close the server and then locate and delete the saveXXXXX file.

3.4.- Continuing a game.
  If you want to continue a previously saved game, start the sever and in
the initial screen type the same port number you used when the game was
created (don't bother with the rest of the info requested in this screen,
it is ignored because it will be restored from the savefile) and hit OK.
  The server window will appear inmediatly and now players can connect.

4.- Using the client

4.1.- Connecting to the server to start the game as a player.
  In the connection window choose NONE YET as your faction, introduce your
password and the direction and port of the server.
  The Name box is currently ignored for players.
  Finally, you have 5 combo boxes to choose your preferred faction. You must
choose a different faction at every combo box. Place you most preferred
faction at the top box.
  When all players have logged you can start using the client.
  You will get a message telling what is your faction.
  Procedure to asign factions :
    A random player is selected he gets his first option.
    Another random player is selected, he gets his first option unless it has
  been already picked in wich case he gets his next option.
    And so on...

4.2.- Connecting to the server when the game has already started (because
your connection dropped off or whatever) as a player.
  In the connection window choose your faction as "your faction", introduce
your password and the direction and port of the server.
  Don't bother to change the combo boxes or name.

4.3.- Connecting to the server when the game has already started as a guest.
  In the connection window choose Guest as "your faction", introduce the
guest password, the direction and port of the server and your name.

4.4.- Using the client.

4.4.1 -The chat zone.
  The chat zone has three parts.
  A large text area where you can see messages sent to you.
  Each message begins with the name of the sender enclosed in () if it was a
private message or [] if it was a public message. Player messages are bold
and colored (red for the Emperor, yellow for the Fremen, green for the
Atreides, grey for the Harkonnen, orange for the Guild and blue for the
Bene Gesserit). Server messages are white and bold. Guest messages are
white an unbold.
  Seven checkboxes where you mark the destination of your next message, only
factions clicked will get your message. If "All" is clicked you message will
be public.
  Finally the small text area is where you type the messages you want to
send, hit RETURN to send it.

4.4.2 -The Menues (can only be used by players).

4.4.2.1.- General
  -Get/Spend Spice : Put a positive number when you gain spice and a negative 
one when you spend it. All players will be informed of the amount you 
gain/loose (butnot how much you own in total).
  -Private transfer of spice : Put the amount of spice you want to give to
another faction an wich faction receives it. All players will get informed
than a transfer of spice has been made between those two faction, but not
about the amount.
  -Get Status : Gives you a private message telling how much spice you have, 
what are your cards and traitor/s.
  -Dot positions : What positions in the board are asigned to every faction
(randomly chosen at the start of the game)

4.4.2.2.- Cards
  -Draw Treachery Card : You will get the top card in the treachery deck. All
players will get informed that you have drawn the card but you will be the
only one to know wich card is.
  -Top Treachery Card : You will receive a message telling you wich one is the
card at the top of the treachery deck. All players will know that you have done
this. If the deck is empty it is reshufled.
  -Discard Treachery card : Choose wich treachery card you want to discard.
Using a card in the battle plan does not discard it even if you loose the
battle, use this menu option.
  -Draw Spice Card : The card at the top of the deck is shown to everyone
and placed in the discard pile. If the deck is empty it is reshufled.
  -Top Spice Card : You will receive a message telling you wich one is the
card at the top of the spice card. All players will know that you have done
this.
  -Shuffle last spice card : Useful for the first turn in case that Shai-Huluds
appear. The last drawn spice card will be shuffled back in the spice deck.

4.4.2.3.- Battle
  -Make Battle plan : A dialog will appear where you can set your battle plan 
when you hit OK all players will know that your battle plan is ready (but it 
will not be displayed)
  -Reveal Partial Battle Plan : Click to show just one element of your battle 
plan (useful if the Atreides player uses his power against you).
  -Reveal Battle Plan : Click to show to all players the battle plan you made
previously.
  -Gen Traitors : Click to generate the traitors that each player can choose.
Only one player should click this and only once per game.
  -Choose Traitor : After traitors have been generated, use it to choose the
traitor in your pay. This menu option is of no use for the Harkonnen player.
  -Call Traitor : Use it to show everyone who is the traitor in your pay.
Harkonnen gets to choose wich one.
  -Random Leader : If the Harkonnen wants to capture a lider the loser player
(not the Harkonnen) has to use this button.

4.4.2.4.- Deals
  -Propose Deal : A new window will appear where you can type the deal terms.
Choose will players will be bound by this deal. When you complete this form,
all involved players will get the oportunity to accept or reject the deal.
The player who typed the deal automatically accepts it.
  -Accept/Reject : A new window will appear where you can view all deals that
have been offered to you. You can accept or reject them or just hit the X 
button in the top right corner if you don't want to take a decission now.
A deal is not considered accepted until all members of the deal accept it.
Every member will be informed when all have accepted or when one rejects.
  -Reveal Deal : A new window will appear where you can review all deals you
are bound to. You can just review them and hit the X button in the top right
corner of the window or you can reveal the terms of the deal to all players.

4.4.2.5.- Misc
  -Predict Storm : For the fremen player. Get a private message telling what
will be the next storm movement.
  -Reveal Storm Movement : Shows everyone the amount that the storm is about
to move. Should be used before moving the storm to give time to play 
whatever treachery cards are apropiate.
  -Move Storm : If it is clicked for the first time, shows a number between 0 
and 40 (the number between parenthesis is that number modulus 18) otherwise a
number between 1 and 6.
  -Weather Control : Let's you move the storm from 0 to 10 sectors.
  -Make BG Prediction : Choose the turn and faction that will win.
  -Reveal BG Prediction : Reveal the prediction to all players so that they
know that you have won the game :)

4.5.- The Dune Board window
  Since the v0.3 version an additional window has been added that displays
a the dune board.
  You can see the player positions (little colored dots).
  The position of the storm is also displayed with two yellowish ovals. The
light one displays where was last the storm and the dark one displays the
current position of the storm.
  The position of the troops is also displayed. Fedaykin and sardaukar
troops have some black lines along their edges to differentiate them from
the normal troops.
  To move your own troops click the move button, then click at the zone
you wish to move from, then click at the destination zone and finally a
diallog will appear where you can choose the amount of troops to move.
  All location positions (Polar sink, reserve and tanks are an exception)
include the sector number after their name. The sector where the storm
starts is considered sector 1 and count goes counterclockwise.

5.- License
  This software is under the GNU GENERAL PUBLIC LICENSE. See the "Copying"
file for further details.

6.- Bugs and missfeatures.
  This is the second version so expect a lot of them.

7.- Contact the author.
  ekar0@mailcity.com
