Torenoorlog Manual
==================

Copyright (C) 2007 Lode Vandevenne

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

What's new?
-----------

08 december 2007:

Renamed the game from Tower Wars into Torenoorlog, because that's a more unique name.

01 december 2007:

Only a few little tweaks. But a noticable change is that the user sendable monsters
are cheaper to send.

17 november 2007:

-Audio. Has to be enabled by checking the audio checkbox
-Extra monster type
-More little fixes and tweaks
-Released the source code under GPL. The game is in torenoorlog.cpp and torenoorlog.h.
All the other .cpp and .h files are helper libraries under a different license. It
compiles under Linux with g++ and under windows using Dev-C++. The .dev project
file is also included.

14 november 2007:

-Mouse controls: now, in both single and multiplayer mode, you can select a tower
in the selector, and a tile on the map, with the mouse. In multiplayer, for a fair
game, players should discuss who, if anyone, may use the mouse instead of the full
keyboard controls. Building, upgrading and selling command is still given with
keyboard.
-Tweaks in the stats of towers and monsters
-Tower levels printed now start at 1 instead of 0. Internally they start at 0, but
the shown level is 1 higher because towers becoming level 1 after upgrade is weird.
-Vareous other little things everywhere

About
-----

Torenoorlog is a tower defense game for one or two players. In two player mode, both
players play at one keyboard on one computer, each using one half of the keyboard.

The goal of the game is to survive the longest. You survive by not letting monsters
reach the end. For every monster that escapes, you lose a life. Monsters will appear
in waves at the green start squares, and try to reach the red end square.

You can build towers that will try to shoot the monsters before they reach the end.
The towers also serve as a way to block the path of the monsters. Try to create a
maze to have the monsters take the longest route to the end!

Torenoorlog is the Dutch word for tower war.

Installation
------------

Just unzip the .zip file in a folder. Then, in Windows double click torenoorlog.exe,
or in Linux open a terminal in the folder and type ./torenoorlog_linux_bin to run the
game.

Starting the game from the main menu
------------------------------------

In the main menu you can choose the game settings, such as 1 or 2-player game
and the difficulty.

To then start the game, in the main menu, press "start". Then you're in the buildup
phase: you can already build towers with the little gold you have. Then, in the
Game Controls window, press "start" again. Then the waves of monsters will start
appearing and you're in the game!

Building Towers
---------------

Due to the two-player nature of the game, it isn't played with the mouse but
with the keyboard, which may be a bit unusual at first. The mouse can
optionally be used to select tiles and towers though.

To build a tower, you need to move the world selector to the square where you
want to build the tower and hit the build key. The controls are indicated below.

To upgrade a tower, move the selector above it and hit the upgrade key.

To sell a tower, move the selector above it and hit the sell key. Selling can
give money back, but can also COST money! This is because there is a juggling
penalty, which is a cost paid for selling towers. The juggling penalty tries to
discourage the "juggling" strategy.

You cannot built towers in the following cases:

-you can't build on start and end tiles
-you can never block the path of the monsters, there must always be a way free
-if you don't have enough gold

If your world selector is above a tower, at the bottom informative texts the
stats of this already built tower are shown, as well as the stats and of the
upgraded version, if any. The selling price of this tower is also shown at
informative texts at the top.

If your world selector is on an empty spot, the stats of the new tower you can
build are shown instead.

Slow-Towers
-----------

Some tower types will not attack monsters but make them slower instead.

Some monsters are immune to this effect.

Slower monsters take longer to reach the end and so will receive more damage.

The slow-effect is only temporary however.

Attacking the other player
--------------------------

In two player mode, an extra option becomes available: the option to attack the
other player. To do this, set the tower selector cursor to one of the monsters
on the right side. Then use the build key that you normally use to build towers
and a wave of this monstertype will be sent to the other player.

The stats and cost of a monster wave to send are shown in the informative texts.

Game Options
------------

When starting a new game, you can choose between single player or two player mode.

You can also choose a difficulty mode:

-sandbox (practice): you start with 10x more lives and 100x more gold
-easy: monsters have 1.5 times less health
-normal: the default mode, exact stats are used
-hard: monsters have 1.5 times more health
-nightmare: monsters have 2 times more health

Controls
--------

The controls can be modified in the xml file "controls.txt".

Here are the default controls:

Player 1:

-move the world cursor: w, a, s, d (if they're accidentially set to "qzsd" I
  forgot to update the controls.txt file before releasing, those are for azerty,
  feel free to change)
-build a tower or send monsters to opponent: t
-move the tower/monster selector: r, y
-upgrade tower: u
-sell tower: v
-send next wave (if other player is ready too): n

Player 2:

-move the world cursor: arrows
-build a tower or send monsters to opponent: keypad 5
-move the tower/monster selector: keypat 4 and 6
-upgrade tower: keypad 8
-sell tower: keypad 2
-send next wave (if other player is ready too): keypad enter

You can also use the mouse to place the tower selector or world map selector.

Game XML File
-------------

The file "tw.txt" contains the game in XML format. You can describe monstertypes
and towertypes in it, as well as vareous parameters such as the exponential
and linear increase in monster health and gold rewards.

The stock tw.txt file comes with comments in it that indicate which XML tag
does what.

These comments may also explain some of the details of the game.

Tips
----

-make mazes to let monsters need more time to reach the end

-it's better to have a few very good towers in a short maze, than a lot of cheap
  towers in a long maze: a more expensive tower will cost more gold, but
  generally be better than multiple cheaper towers that cost the same combined

-the position of the expensive good towers in the maze is important

-the rest of the maze should be made out of the cheapest towers as it's only
  meant to lenghten the path of the monsters

-towers can be upgraded, upgrades are worth it!

-there is a cheat code... it requires holding a GUI button down and pressing a
certain combination of 3 keyboard keys at the same time

-"juggling" is a strategy where you make monsters take forever to reach the
exit by selling and building towers in certain spots, making the monsters update
their path all the time. This strategy is made less profitable due to the
juggling penalty. The juggling penalty can be disabled by editing the game's
XML file though.

Source Code
-----------

The source code is included in the .zip file in which this game is released. The
source code is released under GPL.

There are two dependencies on external libraries: SDL and OpenGL.

Under Linux, it can be compiled to "a.out" with the following command:
g++ *.cpp -lSDL -lGL -Wall -Wextra -pedantic -ansi -O3

Under Windows, it can be compiled with mingw32. There is a torenoorlog.dev file
included for the DevC++ IDE under Windows. If you don't have it already, install
Bloodshed Dev-C++. Next install the SDL developer files for Windows mingw32.
Then open the .dev file and press F9 to build & run.

See? Linux is easier to use than Windows: the explanation for how to compile
it in Linux is simply "type this command", in Windows it involves a lot of
installation stuff ;)

Contact
-------

You can contact me through lode dot vandevenne at google's mail.

Copyright (c) 2007 by Lode Vandevenne
