@database WormWars.guide
@author James R. Jacobs
@(c) © Amigan Software 2001. Freely distributable.
@node Main "Worm Wars"

                        @{b}#*=======================*#
                        #|   W O R M   W A R S   |#
                        #|     for the Amiga     |#
                        #|      Version 6.6      |#
                        #|    Sat 21 Apr 2001    |#
                        #|                       |#
                        #|   by James R. Jacobs  |#
                        #*=======================*#@{ub}

                            @{" Overview          " link Over}
                            @{" New Features      " link Feat}
                            @{" Usage             " link Usag}
                            @{" Other Information " link Info}

                            @{" Title Screen      " link Titl}
                            @{" Field Editor      " link Edit}
                            @{" How to Play       " link Play}
@endnode
@node Over "Overview"

Worm Wars is an arcade game for 0-4 players. It combines the
playability of its basic concepts with 32 interesting object types,
11 species of creature, and other enhancements.

1-4 worms travel around a rectangular maze leaving a deadly trail
behind them, competing and sometimes cooperating with other creatures,
collecting letters to advance to the next level.

The integral field editor allows you to load, edit and save user
fieldsets, for greater lasting attraction. There is support for
playing MED and IFF 8SVX files as music and sound effects respectively.
Custom fonts and backgrounds are used.

It is enjoyable either for one player, or for competitive multiplayer
games, and demo mode is available. Amiga or human control can be specified
for any worm. Two keyboard players and four joystick players are supported.
It is system-friendly, style compliant and it multitasks.
@endnode
@node Feat "New Features"

    . New creature: @{"octopus" link Octo}.
    . Improved @{"field editor" link Edit}.
    . New @{"CLI argument" link Argu}: QUIET.
    . Miscellaneous bugfixes.
@endnode
@node Usag "Usage"

    @{" System Requirements " link Requ}
    @{" Startup             " link Star}
@endnode
@node Requ "System Requirements"

@{b}Hardware@{ub}             Required        PAL/DblPAL capability
                                     about 512K free RAM
                     Recommended     Colour monitor
                                     68020+
                                     Joystick
                                     Mouse
                                     about 1Mb free RAM
                                     Keyboard with numeric keypad
                                     Battery-backed clock
                                     Parallel port joystick adapter
@{b}Firmware@{ub}             Required        Kickstart R2.04+
                                         exec.library V36+
                                         dos.library V37+
                                         gadtools.library V37+
                                         intuition.library V37+
                                         icon.library
                     Recommended     Kickstart R3.1+
@{b}Software@{ub}             Required        Workbench/CLI R2.04+
                                         asl.library V37+
                     Recommended     OS3.5+
                                     amigaguide.library
                                     MEDPlayer.library (included)

Worm Wars can run in a 15Hz PAL screen, or, if you have an AGA machine
with VGA/multisync monitor, you can promote it to a DblPAL screen.
Apparently in DblPAL mode the sound effects are slightly distorted.

You need at least Installer 42.9 to run the installation script.

We strongly recommend a 68020+, as the turbo rendering routines require a
68020+.
@endnode
@node Star "Startup"

    @{" Workbench ToolTypes " link Work}
    @{" CLI arguments       " link Argu}

@{b}Startup@{ub}

If the joyport cannot be allocated on startup, the blue worm cannot be
selected for human control.

The default behaviour is to load the music and sound effects automatically
at startup. The -f and -m CLI arguments prevent loading of the
sound effects and/or music respectively, until needed for use.

If @{b}WormWars.font@{ub} cannot be loaded at startup, Topaz 8 is used.

If the specified default fieldset cannot be loaded at startup,
a blank, five-level fieldset is used instead, with a treasury floored
with silver.
@endnode
@node Work "Workbench ToolTypes"

The following can be specified in the game's .info file. All are optional.

  TOOLPRI=<priority>             eg. TOOLPRI=5
     FILE=<fieldset>             eg. FILE=foo.fset
    GREEN=HUMAN|AMIGA|NONE       eg. GREEN=HUMAN
      RED=HUMAN|AMIGA|NONE
     BLUE=HUMAN|AMIGA|NONE
   YELLOW=HUMAN|AMIGA|NONE
     NOFX                        eg. NOFX
  NOMUSIC
  NOICONS
 OVERHEAD
  SHUFFLE
    QUIET

These are equivalent to the relevant @{"CLI arguments" link Argu}.

If you double-click on a fieldset file, the game will load with that
fieldset. ToolTypes are then, of course, taken from the fieldset's .info
file.
@endnode
@node Argu "CLI Arguments"

@{b}Command Information@{ub}

                                  @{b}WormWars@{ub}

@{b}Format:         WormWars@{ub} [-p=<@{i}priority@{ui}>] [-f|nofx] [-m|nomusic]
                [-i|noicons] [-o|overhead] [-s|shuffle]
                [green=KYBD|JOY|AMIGA|NONE] [red=KYBD|JOY|AMIGA|NONE]
                [blue=JOY|AMIGA|NONE] [yellow=JOY|AMIGA|NONE]
                [[file=]<@{i}fieldset@{ui}>]]

@{b}Template:       WORMWARS@{ub} -F=NOFX/S,-M=NOMUSIC/S,-I=NOICONS/S,
                -P=PRI/K/N,-O=OVERHEAD/S,-S=SHUFFLE/S,-Q=QUIET,GREEN/K,
                RED/K,BLUE/K,YELLOW/K,FILE

@{b}Purpose:@{ub}        To run the Worm Wars game.

@{b}Specification:@{ub}

    -p:         the priority that Worm Wars will be run at.
                Higher priorities can help the game to run
                closer to full speed. Lower priorities can
                help the system multitask, by giving less
                processor time to Worm Wars.

                The allowable range is -128 to +5, with the
                default being 0.

    -f:         don't bother loading sound effects until asked.

    -m:         don't bother loading music until asked.

    -i:         don't create icons when saving.

    -o:         select overhead viewpoint at startup.

    -s:         shuffle levels.

    -q:         don't report errors during startup.

    colour=KYBD|JOY|AMIGA|NONE:
                the initial controls for the worms. For example,
                GREEN=KYBD will select keyboard control for the
                green worm. Unless otherwise specified, RED=KYBD,
                YELLOW=AMIGA, GREEN=NONE and BLUE=NONE. Of course, KYBD
                is not available for the blue and yellow worms.

    <@{i}fieldset@{ui}>: the pathname of your default fieldset. This
                is taken exactly as entered; an '@{b}.fset@{ub}'
                extension is not automatically appended. This is
                loaded relevant from the current directory. If no
                argument is given, the default is @{b}PROGDIR:WormWars.fset@{ub}.

    ?:          displays the command line argument format, instead
                of running the game.

    The order of the arguments are interchangeable.

@{b}Examples:@{ub}

    @{b}WormWars /foo.fset@{ub}       load @{b}foo.fset@{ub} from parent
                             directory, and run at priority level 0

    @{b}WormWars@{ub} -f -p-3 @{b}bar.fset@{ub}
                             load @{b}bar.fset@{ub} from current
                             directory, and run at priority
                             level -3, without loading sound effects

    @{b}WormWars HD1:foo.fset@{ub} -m -f -p4 -o
                             load @{b}foo.fset@{ub} from root
                             directory of @{b}HD1:@{ub}, and run at
                             priority level +4, without loading music or
                             sound effects, and set overhead viewpoint

    @{b}WormWars@{ub} -p+5 @{b}/fsets/bar.fset@{ub}
                             load @{b}bar.fset@{ub} from @{b}fsets/@{ub}
                             sibling directory, and run at priority
                             level +5

    @{b}WormWars@{ub} ?               display command format
@endnode
@node Titl "Title Screen"

@{b}Keys@{ub}

Esc F1 F2 F3 F4 .. .. .. .. .. ..
.... 1 2 3 4 . . . . . . . . . <-   ... Hel   . . . .
..... Q . . . . . . I O . . . Ret             . . . .
... .. A S . F . . . . . . . . ur      .      4 . . .
Shift . . . . . . N M . . ? Shift    . . .    1 2 3 E
   .. .. -----Spacebar---- Am ..              -.- . n

@{b}1@{ub}-@{b}4@{ub} or @{b}F1@{ub}-@{b}F4@{ub} cycles the relevant worm @{"controls" link Ctrl} through the various
control options. If @{b}Shift@{ub} is held as a qualifier, it cycles backwards.
@{b}Return@{ub} or @{b}Enter@{ub} begins the game.
@{b}M@{ub} toggles the music on or off.
@{b}F@{ub} toggles the sound effects on or off.
@{b}I@{ub} toggles the viewpoint between overhead and isometric 3D.
@{b}S@{ub} toggles level shuffling on or off.

@{b}Menu@{ub}

 Project|New           @{b}Amiga-N@{ub}             Creates a blank, 5-level
                                          fieldset titled @{b}WormWars.fset@{ub}.
 Project|Open...       @{b}Amiga-O@{ub}             Loads a fieldset.
 Project|Revert        @{b}Amiga-R@{ub}             Reloads the current fieldset.
 Project|Save          @{b}Amiga-S@{ub}
 Project|Save As...    @{b}Amiga-A@{ub}
 Project|Delete...     @{b}Amiga-D@{ub}             Deletes a fieldset.
 Project|Quit          @{b}Amiga-Q@{ub}, @{b}Esc@{ub}        Exits to CLI/Workbench.
Settings|Create Icons? @{b}Amiga-I@{ub}             Create icons when saving?
    Help|Creatures...                     List of creatures.
    Help|Objects...                       List of objects.
    Help|Manual...                        Opens this document.
    Help|About...      @{b}Amiga-?@{ub}, @{b}Help@{ub}       Credits window.

@{b}Gadgets@{ub}

    @{u}Key   Colour  Human Controls        Letters@{uu}

    @{"  1   Green   Joystick 3/Left Keyboard  " link Ctrl}    @{" C and L " link Lett}
    @{"  2   Red     Joystick 4/Right Keyboard " link Ctrl}    @{" O and E " link Lett}
    @{"  3   Blue    Joystick 2                " link Ctrl}    @{" M and T " link Lett}
    @{"  4   Yellow  Joystick 1                " link Ctrl}    @{" P and E " link Lett}

Any combination of controls is acceptable, but at least one worm must
exist.
@endnode
@node Edit "Field Editor"

The field editor allows you to load, edit and/or save the playfields
which the worms compete on.

You are allowed to have up to 50 levels in each fieldset. The bonus level,
that is, level 0, is not considered in the count of levels.

The high score table is loaded and saved as part of the fieldset file:
there is a different high score table for each fieldset. Making any
modification to the fieldset will clear all the fieldset's high scores.

If you are have modified your field since you saved it and want to do
something which will lose the changes you will be asked to confirm your
intent.

@{"Hints" link Hint}

@{b}Keys@{ub}

Esc F1 F2 F3 F4 F5 F6 F7 .. .. ..
.... 1 2 3 4 5 6 7 8 9 0 . . . ..   Del Hel   ( ) . .
..... Q . E R T . . I O . . . Ret             7 8 9 .
Ctr .. A S . F . . . . . . . . ur      U      4 5 6 .
Shift . . C . . . N M . . ? Shift    L D R    1 2 3 E
   Al .. -----Spacebar---- Am Al              -0- . n

        @{b}F1@{ub}      empty
        @{b}F2@{ub}      silver
        @{b}F3@{ub}      gold
        @{b}F4@{ub}      dynamite
        @{b}F5@{ub}      wood
        @{b}F6@{ub}      stone
        @{b}F7@{ub}      metal

@{b}M@{ub} toggles the music on or off.
@{b}F@{ub} toggles the sound effect on or off.

@{b}Delete@{ub} and @{b}Help@{ub} change the current level (lower and higher,
respectively). When @{b}shifted@{ub}, they change to level 1 or the
final level, respectively.

@{b}C@{ub} centres the cursor in the centre of the field.

@{b}X@{ub} and @{b}Y@{ub} are symmetry functions. The cursor will move to the other side of
the field, at the same distance from the other edge as it was originally
from the original edge. This is useful for making symmetrical fields.

@{b}Numeric .@{ub} stamps the current brush at the current cursor location.

@{b}Numeric 0@{ub} toggles `sticky mode'. This means that the `brush'
is held down: any single-square keyboard cursor movements will alter
squares that the cursor passes over to the current brush. Toggling
sticky mode `on' also does a `stamp' of the current brush at the current
cursor location.

@{b}F1@{ub}-@{b}F7@{ub}, when un@{b}shift@{ub}ed, change your brush type to the
appropriate type, as if the gadget had been clicked. When @{b}shifted@{ub},
the level will be filled with the requested square type, without change to
the current brush.

@{b}Alphanumeric 1@{ub}-@{b}7@{ub} change the square under the cursor to
the relevant type, without affecting the current brush.

The @{b}cursor keys@{ub} or @{b}numeric keypad@{ub} move the cursor around the field.
The default movement is one square. (If sticky mode is on, copies of the
brush are left behind). Holding @{b}Alt@{ub} moves the cursor in increments of
five squares. Holding @{b}Shift@{ub} or @{b}Ctrl@{ub} moves the cursor to the
relevant edge of the field. (The cursor is shown as a white square, or in
sticky mode as a red square.)

@{b}Numeric (@{ub} and @{b})@{ub} cycle the brush and square under the
cursor  through the available @{"objects" link Obje}, lower and higher, respectively.

@{b}Menu@{ub}

 Project|New           @{b}Amiga-N@{ub}            Clears the fieldset.
 Project|Open...       @{b}Amiga-O@{ub}            Loads a fieldset.
 Project|Revert        @{b}Amiga-B@{ub}            Reloads the current fieldset.
 Project|Save          @{b}Amiga-S@{ub}            Saves current fieldset.
 Project|Save As...    @{b}Amiga-A@{ub}            Saves with new filename.
 Project|Delete...     @{b}Amiga-D@{ub}            Deletes a fieldset.
 Project|Quit          @{b}Amiga-Q@{ub}, @{b}Shift-Esc@{ub} Exits to CLI/Workbench.
    Edit|Cut           @{b}Amiga-X@{ub}
    Edit|Copy          @{b}Amiga-C@{ub}
    Edit|Paste         @{b}Amiga-V@{ub}
    Edit|Erase         @{b}Amiga-E@{ub}            Clears this level.
    Edit|Delete                           Deletes this level.
    Edit|Insert                           Inserts blank level here.
    Edit|Append                           Adds blank level to end.
Settings|Create Icons? @{b}Amiga-I@{ub}            Create icons when saving?
    Help|Creatures...                     List of creatures.
    Help|Objects...                       List of objects.
    Help|Manual...                        Opens this document.
    Help|About...      @{b}Amiga-?@{ub}, @{b}Help@{ub}       Credits window.

Remember that the menus, and their @{b}Amiga@{ub}-key shortcuts, are
unavailable whilst the pointer is over the playfield.

@{b}Joystick control@{ub}

A joystick plugged into port `2' can be used in the field editor.
Directional controls move the cursor in single square increments.
Holding the directional controls continue to move the cursor. The
firebutton stamps the current brush at the current location. Holding
down the firebutton whilst moving the stick, to produce lines of
squares, is not yet supported, though autofire can emulate this behaviour.

You will need to use the keyboard and/or mouse to control other
functions of the field editor, such as file operations, changing the
brush, etc.

@{b}Mouse control@{ub}

The gadgets to the left of the field will change your current `brush' to
the appropriate type. This brush is assigned to the left mouse button,
and the keyboard and joystick. The pointer imagery will be altered to
reflect your brush type, for some brush types.

The right mouse button, when over the playfield, will function as
`empty' rather than bringing up the menus.

Clicking on the field will change the current cursor location to the
chosen square, and change that square to the current brush (or to `empty'
if the right mouse button is clicked).

You can click on any object in the Help|Objects... requester, and that
object will become your current brush.

@{i}Teleports:@{ui}

Two teleports may be defined in the field editor. These @{"teleports" link Tele}
will teleport to each other during gameplay. They are independent of any
teleports that may be created randomly as the game progresses. You use the
@{b}T@{ub} key for teleports.

@{i}Start:@{ui}

The starting location for all worms. This is invisible during
gameplay. Usually it is best left where it is, in the centre of the
field. You use the @{b}S@{ub} key to set the starting location.
                                _
                               / \\
                                |
                                |
                               Blue
                   <--- Green START Red --->
                              Yellow
                                |
                                |
                               \\_/

@{i}Octopi:@{ui}

Each level may have up to 12 octopi. You use the @{b}O@{ub} key for octopi.

@endnode
@node Hint "Hints"

All worms start from the same square. Worms may emerge from it
in any orthagonal direction. Leave enough space. Fields should not give an
unfair advantage to any particular worms. The easiest way to ensure this
is through the use of symmetry.

Mazes one square wide are difficult. 3-5 squares width is usually more
appropriate for less skilled players.

Point-squares (ie. silver and gold) should be used with restraint, and
generally only as a reward for difficult maneouvering. The average field
should give have only about 5% point-square density. Richer fields can be
made for experienced players, but they should be as a reward for skill.

Goats only fire when they are on the edge of the stone/wood/metal/tail/
slime, but they move quasi-randomly. Therefore, some configurations will
be more deadly than others. For example, thin lines provide maximum
contact between worms and goats, and thick square areas will quickly
generate new goats.

Lightly sprinkle your treasury with objects. Use objects very sparingly
or not at all in other levels.

Metal squares which are aligned with each other can be deadly and
enjoyable, as fragments can bounce between one and the other endlessly
until a collision occurs. Remember also that metal is unjumpable.
@endnode
@node Info "Other Information"

        @{" Contact Details    " link Cont}
        @{" Platforms          " link Plat}
        @{" Development System " link Deve}
        @{" Source Code        " link Code}
        @{" History            " link Hist}
        @{" Other Software     " link Prod}
@endnode
@node Cont "Contact Details"

@{b}Licence@{ub}

Worm Wars for Amiga is freeware. It is available as a service to the Amiga
community. There are no limits on usage, distribution or modification,
except that you are not allowed to modify and/or distribute it for
commercial purposes or port it away from the Amiga without consent.

Permission is hereby granted to the Amiga community in general to use
and distribute this program as they deem appropriate.

@{b}Bugs@{ub}

Amiga development and style guidelines have been adhered to, using the
official Amiga Developer CD 2.1 as authoritive reference.

Please contact us immediately if any bugs are found. You can use our
utility, Report+, to generate bug reports for Worm Wars, though this is
not required.

@{b}Submissions@{ub}

Fieldsets, music (ST/MED format), samples (IFF 8SVX/WAV), backgrounds
(2-colour IFF ILBM 640*256) or even modified versions of the game can be
submitted and may be distributed with a future release, with
acknowledgements to the contributor(s).

Users are invited to contribute suggestions for the future of the game.
Special thanks to Jilles Tjoelker for his turbo draw routines, suggestions
and bug reports.

@{b}Sound effects@{ub}

The game uses IFF 8SVX files for its sound effects. Full IFF 8SVX support
is not required for the purposes of the game, and therefore the following
rules are imposed on the samples:

Must be an IFF 8SVX FORM (ie. not CAT or LIST).
No compression schemes are allowed.
Maximum sample size is 128K.
Must be `one shot' style rather than `musical note' style sample.
Only the first (highest, longest) octave is used.
Must be a single channel (ie. monaural) sample.
8SVX.VHDR and 8SVX.BODY chunks are, of course, required.
All other chunks (eg. generic IFF chunk PROP; standard IFF chunks
    NAME, (C), ANNO, AUTH; proposed IFF chunk END; standard IFF.8SVX
    chunks ATAK, RLSE; extended IFF.8SVX chunks CHAN, PAN, SEQN, FADE)
    are ignored.
Sample rate is taken from the 8SVX.VHDR chunk.
The volumes of the samples are set from within the program.

IFF 8SVX or WAV files submitted to Amigan Software as contributions can, if
necessary, be converted by us to fit these restrictions.

@{b}Future@{ub}

Amigan Software have demonstrated their commitment to the Amiga for
many years. We intend to continue development regardless of the market
situation of the Amiga.

@{b}Contact details@{ub}

@{b}EMail@{ub}       james_jacobs@altavista.net

@{b}Website@{ub}     http://users.interact.net.au/~cjaj/amigan.html

@{b}Mail@{ub}        James Jacobs
                     Amigan Software
                     11 Yate Gdns
                     RIVETT ACT 2611
                     Australia

@{b}Voice@{ub}       +61 (02) 6287 4917
@endnode
@node Deve "Amiga Development System"

@{b}Hardware@{ub}    Virtual A1200 (14MHz MC68020+FPU on 133MHz Pentium)
            1.2Gb 3.5" IDE hard disk (compressed to 2.4Gb)
            2Mb chip RAM
            8Mb fast RAM
            1Mb RTG RAM
            56Kbps Dynalink (Rockwell) modem
            ESS MF-1868 (SoundBlaster Pro-compatible) sound card
            AcerView 56L digital colour monitor running as
                15Hz PAL (640*512)
            Battery-backed clock
@{b}Firmware@{ub}    Kickstart 3.1
@{b}Software@{ub}    WinUAE 0.8.6 R6 and 0.8.14 R1
            Fellow 0.3.5
            AmigaOS 3.9
            SAS/C 6.58 with SLink and SAS/C Editor and CodeProbe
            Amiga Developer CD 2.1
            AmigaGuide Writer 1.02
            Amiga Lint 2.0b
            Autodoc 1.0
            BlowUp
            CheckGuide
            CodeWatcher 1.4
            CXXC 1.4
            CygnusEd Professional 4.2
            Deluxe Paint 5
            Gguide2txt
            IFF 2 Source 1.0
            IO_Torture
            KingCon 1.3
            LhA 1.51
            MungWall
            OctaMED 5 and MEDPlayer Programmer's Sources
            PatchWork
            Picasso96 2.0
            PrintA
            Report 40.2
            Report+
            Sashimi
            SmartCrash
            SoundBox 2.9 beta
            StackCheck
            StackSnoop
            StackWatch
            VirusChecker ][ 2.2 (BF 2.18)
            Worm Wars 6.6

Thanks to all those whose software was used to create Worm Wars.
@endnode
@node Code "Source Code"

The Amiga version is written in hybrid C/assembler (SAS/C 6.58), whilst
the IBM-PC version is written in hybrid C/C++ (Microfilth Visual C++ 5.0),
using Microfilth Foundation Classes.

Both platforms use the same game engine, written in C, with API calls for
the relevant OS in other modules.

SAS/C 6.58 source code is provided, with which you may do as you wish for
non-commercial purposes.

The Amiga source files are:

system.c        Amiga-specific code, including all AmigaOS calls.
system.o        Object file of system.c.
engine.c        Code common to the Amiga and IBM-PC versions.
engine.o        Object file of engine.c
diff.h          Header file used by both modules. Amiga-specific.
same.h          Header file common to both modules and both platforms.
ww.s            AmigaDOS script to link modules into executable.
SCOPTIONS       SAS/C options we prefer to compile with.
libproto.h      MEDPlayer.library C header.
stdafx.h        Required for IBM-PC compatibility. :-(
bkgrnd.ilbm     Backdrop graphics in IFF ILBM format.
wormwars.ilbm   Other graphics in IFF ILBM format.
qdraw020.h      Header file for turbo draw routines.
qdraw020.asm    Assembler source for turbo draw routines.
qdraw020.o      Object file for turbo draw routines, for overhead view.
qdraw020iso.o   Object file for turbo draw routines, for isometric 3D view.
assemble.s      AmigaDOS script to assemble turbo draw routines.
fe.c            Field editor.
amiga.h         Header file for Amiga system-specific modules.
@endnode
@node Hist "History"

6.6        [Amiga 2.04+].                        Sat 21 Apr 2001.
6.5        [Amiga 2.04+].                        Sun 31 Dec 2000.
6.4        [Amiga 2.04+][Windows 95/98/NT/2000]. Sat  7 Oct 2000.
6.3a       [Amiga 2.04+][Windows 95/98/NT/2000]. Fri 18 Aug 2000.
6.3        [Amiga 2.04+][Windows 95/98/NT/2000]. Tue  8 Aug 2000.
6.2        [Amiga 2.04+][Windows 95/98/NT/2000]. Thu 22 Jun 2000.
6.1        [Amiga 2.04+].                        Thu 15 Jun 2000.
6.0a       [Amiga 2.04+][Windows 95/98/NT/2000]. Thu  8 Jun 2000.
6.0        [Amiga 2.04+][Windows 95/98/NT/2000]. Thu  1 Jun 2000.
5.61       [Amiga 2.04+][Windows 95/98/NT/2000]. Wed 26 Apr 2000.
5.6        [Amiga 2.04+][Windows 95/98/NT/2000]. Wed 19 Apr 2000.
5.51a      [Amiga 2.04+][Windows 95/98/NT/2000]. Wed 29 Mar 2000.
5.51       [Amiga 2.04+].                        Tue 28 Mar 2000.
5.5        [Amiga 2.04+][Windows 95/98/NT/2000]. Tue 14 Mar 2000.
5.4        [Amiga 2.04+][Windows 95/98/NT/2000]. Sun  5 Mar 2000.
5.3        [Amiga 2.04+].                        Sun 13 Feb 2000.
5.21       [Amiga 2.04+][Windows 95/98/NT/2000]. Wed  5 Jan 2000.
5.2        [Amiga 2.04+].                        Wed 29 Dec 1999.
5.1a       [Windows 95/98/NT/2000].              Tue 28 Dec 1999.
5.1        [Amiga 2.04+][Windows 95/98/NT/2000]. Tue 23 Nov 1999.
5.0a       [Windows 95/98/NT/2000].              Tue  2 Nov 1999.
5.0        [Amiga 2.04+][Windows 95/98/NT/2000]. Mon  1 Nov 1999.
4.4        [Amiga 2.04+][Windows 95/98/NT/2000]. Wed 22 Sep 1999.
4.3a       [Windows 95/98/NT/2000].              Wed  8 Sep 1999.
4.3        [Amiga 2.04+][Windows 95/98/NT/2000]. Sun  5 Sep 1999.
4.2        [Amiga 2.04+][Windows 95/98/NT/2000]. Sat  7 Aug 1999.
4.1        [Amiga 2.04+][Windows 95/98/NT/2000]. Sun  6 Jun 1999.
4.0        [Amiga 2.04+].                        Sun  1 Nov 1998.
3.3        [Amiga 2.04+].                        Wed 29 Jul 1998.
3.2        [Amiga 2.04+].                        Tue  3 Dec 1996.
3.1        [Amiga 2.04+].                        Tue 16 Apr 1996.
3.0        [Amiga 2.04+].                        Thu 18 Jan 1996.
2.2        [Amiga 1.2+].                         Sun  5 Feb 1995.
2.1        [Amiga 1.2+].                         Tue 27 Dec 1994.
2.0        [Amiga 1.2+].                         Sat  3 Dec 1994.
1.7        [Amiga 1.2+].                         Wed 26 Oct 1994.
1.6        [Amiga 1.2+].                         Sun  9 Oct 1994.
1.5a       [Amiga 1.2+].                         Thu 25 Aug 1994.
1.5        [Amiga 1.2+].                         Sun 10 Jul 1994.
1.4        [MS-DOS].                             Wed  9 Mar 1994.
1.3        [MS-DOS].                             Fri 11 Feb 1994.
1.2        [MS-DOS].                             Thu  4 Nov 1993.
1.1        [MS-DOS].                                        1993.
1.0        [MS-DOS].                                        1993.
@endnode
@node Prod "Other Software"

@{b}Report 4.5+@{ub}

Report+ is a freeware ReAction/GadTools-based utility with twelve
functions:

 1. It is an enhanced, reverse-engineered, 100% byte-compatible
    replacement for the official Commodore bug reporting tool (40.2).
 2. It can generate/edit Aminet-style readmes.
 3. It can administer the Amiga Certified Software Engineer test.
 4. It can generate C-style autodocs.
 5. It can access the official manufacturer and product ID registries.
 6. It can view IFF FORMs and their component chunks.
 7. It can convert between various end-of-line (EOL) formats, optionally
    also detabulating.
 8. It can show directory byte usage for any path.
 9. It can edit A3000/A4000-type battery-backed memory.
10. It can check your OS3.1/3.5/3.9 installation for missing or surplus
    files.
11. It can generate/edit Amiga Games Database (AGDB) reviews.
12. It can perform batch processing on icons (OS3.5+ only).

@{b}Worm Wars 6.4 for Windows 95/98/NT/2000@{ub}

The Amiga version of Worm Wars has long been popular in the Amiga
community, acknowledged as the premier snake game for many years.
It was also available to the masses of benighted Windows users. That
version includes dockable toolbars, a status bar and automatic
saving/reloading of configuration information.
@endnode
@node Play "How to Play"

Worm Wars is an arcade game for 0-4 human players. Each player
@{"controls" link Ctrl} a @{"worm" link Worm}. They move around a semi-toroidal
rectangular (53x39) playfield, leaving their tails behind them. Each
@{"worm" link Worm} aims to amass the most @{"points" link Scor}, to
@{"complete" link Lett} the levels and to survive as long as possible.
The rightmost column is not actually part of the fieldset but rather
indicates the vertical position of the current letter and all worms.

        @{" Worms      " link Worm}    @{" Controls    " link Ctrl}
        @{" Orbs       " link Orbs}    @{" Letters     " link Lett}
        @{" Goats      " link Goat}    @{" Objects     " link Obje}
        @{" Protectors " link Prot}    @{" Scoring     " link Scor}
        @{" Slime      " link Slim}    @{" Strategy    " link Stra}
        @{" Drips      " link Drip}    @{" High Scores " link High}
        @{" Penguins   " link Peng}
        @{" Whirlwinds " link Whir}    @{" Fragments   " link Frag}
        @{" Dogs       " link Dogs}    @{" Teleports   " link Tele}
        @{" Clouds     " link Clou}    @{" Timebombs   " link Time}
        @{" Octopi     " link Octo}
@endnode
@node Ctrl "Controls"

@{b}In-game keyboard controls@{ub}

Esc .. .. .. .. .. .. .. .. .. ..
.... . . . . . . . . . . . . . ..  ... ...    . . . .
..... Q W E . . . . . . P . . ...             7 8 9 .
... .. A S D F . . . . . . . . ..     U       4 5 6 .
Shift . Z X C . . . M . . . Shift   L D R     1 2 3 E
   .. .. -----Spacebar---- .. ..              -0- . n

     Green worm                    Either    Red worm

@{b}Esc@{ub} exits to the @{"title screen" link Titl}.
@{b}Shift-Esc@{ub} exits to CLI/Workbench.
@{b}P@{ub} pauses until @{b}P@{ub} is pressed again.
@{b}M@{ub} toggles the music on and off.
@{b}F@{ub} toggles the sound effects on and off.

@{b}Worm control principles@{ub}

Worm control is an acquired skill and is the single most important factor
in playing successfully and enjoyably.

A worm has direction and speed. It is unable to ever stop completely,
unless frozen by @{"ice" link Ices}, but its speed is adjustable between
three settings. Normally, it can turn 90° in any direction and moves
orthagonally (north, south, east, west), but a @{"nitro" link Nitr}
will enable 45° and 135° turns and diagonal movement.

The worm can pass through most types of square, though some cause damage.
Some squares slow the worm down, halving its speed for every square
traversed (to a minimum of `slow'). Stone, metal, goats and blocked
@{"teleports" link Tele} will block the worm's motion as well as slow it.

Control of the worms is by keypresses; that is, press and release in a
normal keystroke motion. There is no reason to ever hold down any key.
Only fresh keystrokes are ever looked at by the program. Also, holding
down a key may lock out your input (see below).

For joystick control, it is best to nudge the joystick briefly in the
direction you want, and let it return to the central upright position.

Each move, a worm is able to do any one of five things:

    .   fire (in the current direction);
    .   change direction;
    .   change speed (one speed in either direction);
    .   jump; or
    .   nothing.

The worm will move one square regardless. This means you can:

fire in your current direction and move in your current direction,
change direction               and move in the new direction,
change speed                   and move in your current direction.
jump                           leaping 2-4 squares and then landing, in
                               your current direction.
nothing                        and move in your current direction. 

Speed changes are accomplished using the same keys as for turning.
Pressing the direction you are already travelling increases your
speed; pressing against that direction decreases your speed.

@{b}Keyboard [green and red]@{ub}

If only one human is selected for the keyboard, all three sets of
keyboard controls are available for that player, whether it is the
green or red worm. When only one human is selected for the keyboard,
we suggest using the cursor keypad, as it has the best rollover
properties (ie. you can press a key whilst another is already held
down). However, the cursor keypad obviously does not support diagonal
movement.

Two players may use the keyboard, playing at each end. If there are
two humans selected for the keyboard, the @{b}cursor keypad@{ub} cannot be
used, due to keyboard hardware limitations. The green worm must use
the leftmost controls (@{b}QWEASDZXC@{ub}, @{b}spacebar@{ub}) and the red worm
must use the rightmost controls (the @{b}numeric keypad@{ub}).

Note that the leftmost and rightmost controls do not rollover properly,
due to keyboard hardware limitations. This means that you must release
all keys before pressing another one, or the new keystroke is ignored
and so is all further input from that player until all keys are released.
The other player's keystrokes are completely unaffected by what you do;
you can only cause this problem for yourself.

@{b}X@{ub} and @{b}C@{ub} are both down-right for the green worm.
@{b}Spacebar@{ub} is the firebutton for the green worm.

@{b}5@{ub} and @{b}2@{ub} are both down for the red worm.
@{b}0@{ub} and @{b}Enter@{ub} on the @{b}numeric keypad@{ub} are both
firebuttons for the red worm.

@{b}Joystick [all]@{ub}

The green and red worms can use joysticks plugged into a parallel port
joystick adapter. These extra joystick ports are ports `3' and `4',
respectively. This uses direct hardware access, rather than using the
parallel.device. Therefore, allocation can never fail.

The blue worm can use a joystick plugged into port `2'. If the joystick
could not be allocated during initialization then human control will be
unavailable.

The yellow worm can use a joystick plugged into port `1'. This uses
direct hardware access, rather than using the gameport.device. Therefore
allocation can never fail.
@endnode
@node Lett "Letters"

There will always be one, neither more nor less, letter onscreen at
any given time. When a worm collects it, another, which that worm
needs, will appear.

The main objective of the game is to complete all the levels.
The level will be completed and the next loaded as soon as a worm has all
eight letters, which together spell the word COMPLETE. All worms will then
lose all their letters. The worm which completed the level receives
these points:

    100 x old level
     10 x seconds remaining
      1 x tail squares of your colour onscreen

Only worms and their @{"protectors" link Prot} go on to the next level;
other creatures perish. Each level is faster than the last, and creatures
are faster and more frequent.

Only 2:00 (two minutes) are allocated for each level. After that time
has elapsed, the speed of all current creatures will be doubled, and the
frequency of all future creatures will be doubled.
@endnode
@node Obje "Objects"

         @{u}Type            Points    Frequency@{uu}

        @{" Affixer    " link Affi}      60      Very rare
        @{" Ammo       " link Ammo}      20      Common
        @{" Armour     " link Armo}      20      Common
        @{" Bias       " link Bias}      50      Common
        @{" Bomb       " link Bomb}      30      Common
        @{" Bonus      " link Bonu}      10      Common
        @{" Clock      " link Cloc}      60      Very rare
        @{" Converter  " link Conv}      50      Uncommon
        @{" Cutter     " link Cutt}      80      Uncommon
        @{" Cyclone    " link Cycl}      90      Uncommon
        @{" Freedom    " link Free}      30      Rare
        @{" Grower     " link Grow}      50      Uncommon
        @{" Healer     " link Heal}      90      Very rare
        @{" Ice        " link Ices}      60      Very rare
        @{" Life       " link Life}      50      Uncommon
        @{" Lightning  " link Ligh}      40      Uncommon
        @{" Magnet     " link Magn}      80      Rare
        @{" Missile    " link Miss}      40      Uncommon
        @{" Multiplier " link Mult}      50      Rare
        @{" Nitro      " link Nitr}      10      Uncommon
        @{" Powerup    " link Powe}      30      Uncommon
        @{" Protector  " link Prot}      50      Rare
        @{" Pulse      " link Puls}      40      Uncommon
        @{" Pusher     " link Push}      50      Uncommon
        @{" Remnants   " link Remn}      40      Uncommon
        @{" Sideshot   " link Side}      30      Rare
        @{" Slayer     " link Slay}      40      Rare
        @{" Slower     " link Slow}      40      Rare
        @{" Switcher   " link Swit}      70      Rare
        @{" Tongue     " link Tong}      20      Uncommon
        @{" Treasure   " link Trea}     100      Very rare
        @{" Umbrella   " link Umbr}     100      Very rare
@endnode
@node Affi "Affixer"

@{b}Affixer@{ub}

This causes your @{"protectors" link Prot} to stop rotating and
zigzagging. They are `fixed' into position at whatever position they
were in at the time. This makes them more useful, as you can more easily
predict where they will be at any given time in advance.
@endnode
@node Ammo "Ammo"

@{b}Ammo@{ub}

Ammo provides 2-6 bullets.

Bullets are fired by pressing your appropriate fire @{"control" link Ctrl}.
If a bullet is available, you will fire. This bullet is instantaneous. If
you have no bullets, you may @{"jump" link Worm}.

The width of your bullet depends on @{"powerups" link Powe}. Normally,
it is 1 square wide, but it can be up to 7 squares wide. In reality,
up to 7 @{i}independent@{ui} bullets are fired.

A bullet which hits a @{"teleport" link Tele} will be teleported and continue on its way.
You will get the teleport @{"skill bonus" link Scor}, too. That segment of
the bullet will thereafter leave a trail of gold behind it.

A bullet which goes through the same teleport twice, or is reflected off
metal twice, will be destroyed.

In the absence of obstructions, a bullet continues going until it reaches
the edge of the field.
@endnode
@node Armo "Armour"

@{b}Armour@{ub}

Armour will protect worms from being hurt by many different causes.
For a list of them, @{"click" link Worm}.

Armour is only temporary. Its power counts down at a constant rate, and
can be extended by the acquisition of more armour. It is a @{"mode" link Worm}.

While you are in armour @{"mode" link Worm} your head-image will be different.
When your armour is nearly gone your head will flash.
@endnode
@node Bias "Bias"

@{b}Bias@{ub}

Provides these benefits:

    @{"missiles" link Miss} will not chase you.
    you can @{"shoot" link Ammo} through wood.
    whenever you @{"shoot" link Ammo} you will also launch a @{"missile" link Miss},
        if possible.
    vampirism: whenever you cause a @{"worm" link Worm} to take damage,
        you gain as many lives as they lost. Whenever you kill an
        @{"orb" link Orbs}, @{"goat" link Goat}, @{"penguin" link Peng}, friendly @{"drip" link Drip}, or
        @{"octopus" link Octo}, you gain a life.
    any bombblast by you will turn squares to silver, not empty.
    when you get a switcher, enemy remnants are also switched to your
        own colour.
    when you do enclosure, squares are changed to gold.
    when you get a grower, dynamite is also grown.

Bias counts down at a constant rate. It can be extended by the
acquisition of more bias. You can use bias in conjunction with one of
the @{"modes" link Worm}.
@endnode
@node Bomb "Bomb"

@{b}Bomb@{ub}

As soon as you go over one of these the bomb will go off, clearing the
area around you. The blast radius is random, but is always constrained
by the field edges.
@endnode
@node Bonu "Bonus"

@{b}Bonus@{ub}

You will be given a random @{"letter" link Lett}. It may be one you already
have. You do not receive @{"skill points" link Scor} for @{"letter" link Lett} collection,
only your points for collecting this @{"object" link Obje}.
@endnode
@node Cloc "Clock"

@{b}Clock@{ub}

If there is still any time remaining, the amount of time remaining is
increased.
@endnode
@node Conv "Converter"

@{b}Converter@{ub}

This will instantly convert all currently active @{"fragments" link Frag} into
friendly @{"missiles" link Miss}.
@endnode
@node Cutt "Cutter"

@{b}Cutter@{ub}

This allows you to `cut' or `tunnel' your way through such things as tail.
Every move, the squares in front of you, the two to your side and the two
diagonally in front behave as though affected by a @{"bombblast" link Bomb},
except that objects are not destroyed.

    ...
    .#.
     |
     |

One thing to keep in mind is that whilst you have cutter you cannot make
enclosures. Cutter counts down at a constant rate.
@endnode
@node Cycl "Cyclone"

@{b}Cyclone@{ub}

When you get this, a @{"whirlwind" link Whir} will be created somewhere on the
playfield. It is just as dangerous to you as to everything else.
@endnode
@node Free "Freedom"

@{b}Freedom@{ub}

Whilst this object is operating, you will leave remnants behind your head
instead of tail. Your amount of freedom counts down, and getting freedom
will of course add to the amount remaining.
@endnode
@node Grow "Grower"

@{b}Grower@{ub}

Grower will cause all gold and silver onscreen to `grow', expanding into
their neighbouring squares if those neighbouring squares are empty.

If you have bias, any dynamite onscreen will also grow.
@endnode
@node Heal "Healer"

@{b}Healer@{ub}

If you have less than your starting lives (100), boosts you back to 100.
If you have 100 or more, boosts you to 200.
@endnode
@node Ices "Ice"

@{b}Ice@{ub}

Ice will freeze all @{"orbs" link Orbs}, @{"goats" link Goat}, @{"drips" link Drip},
@{"fragments" link Frag}, @{"missiles" link Miss}, @{"penguins" link Peng}, timebombs,
@{"whirlwinds" link Whir} and enemy @{"worms" link Worm} for a short period of time.
There is no defence against ice. Additional ice will be added onto your
amount remaining.
@endnode
@node Life "Life"

@{b}Life@{ub}

Life provides 2-6 lives.
@endnode
@node Ligh "Lightning"

@{b}Lightning@{ub}

When you get lightning, most squares adjacent to your tail flash
momentarily. This will harm:

        unarmoured enemy worm heads
        unarmoured orbs                 replaced by bonus
        goats                           replaced by bonus
        slime                           replaced by empty
        fragments                       replaced by empty
        drips                           replaced by empty
        objects                         replaced by empty
        penguin                         replaced by empty
        enemy missiles                  reaplced by empty

The things that are not flashed are:

        stone
        metal
        wood
        letters
        skulls
@endnode
@node Magn "Magnet"

@{b}Magnet@{ub}

This causes some or all objects to travel towards you in a guided fashion.
Apart from the fact that these objects are now `magnetized' (ie. moving)
they remain normal objects in every other respect. Objects which are
magnetized may not be remagnetized by other worms.
@endnode
@node Miss "Missile"

@{b}Missile@{ub}

Missiles are automatically guided. They hunt the following things:

        worms
        enemy missiles
        orbs
        goats

The missile hunts whatever is nearest, and recalculates its target
every move.

Missiles will not cross field edges.

If you collect a missile whilst there is nothing for it to chase, you will
receive only points; no missile will be generated.
@endnode

@node Mult "Multiplier"

@{b}Multiplier@{ub}

Each time you get a multiplier, your scoring will be doubled. If you
get more than one, it is doubled again each time. You can collect up
to three (3) multipliers.

Your object points for actually getting the multiplier @{i}are@{ui}
affected by the new multiplier itself.

        @{u}Multipliers     Scoring@{uu}

             0             *1
             1             *2
             2             *4
             3             *8

At the end of each level, your multiplier will be reduced by one
(ie. half).
@endnode
@node Nitr "Nitro"

@{b}Nitro@{ub}

You will be able to move diagonally, and will be able to use the `very
slow' speed. Nitro cannot be lost.
@endnode
@node Powe "Powerup"

@{b}Powerup@{ub}

This is power for your @{"bullets" link Ammo}. Each bullet you fire becomes wider,
requiring less aiming accuracy and causing more general devastation.

        @{u}Symbol          Meaning@{uu}

        <number>        bullet number
        :               worm head, facing up (north)
        @{i}:@{ui}               worm head, facing up-right (northeast)
        #               worm tail

        1              213            42135          6421357
        1              213            42135          6421357
        1              213            42135          6421357
        1              213            42135          6421357
        :               :               :               :
        #               #               #               #
        #               #               #               #

     Single           Triple        Quintuple       Septuple
 (no powerups)    (one powerup)  (two powerups) (three or more)

            1              312            53124          7531246
           1              312            53124          7531246
          1              312            53124          7531246
         1              312             3124            31246
        @{i}:               :@{ui}2              @{i}:@{ui}24             @{i}:@{ui}246
       #               #               #               #  6
      #               #               #               #
@endnode
@node Prot "Protector"

@{b}Protector@{ub}

Acquisition of this item will give you a companion who stays near you,
collecting @{"objects" link Obje} for you exactly as if you had moved
over them yourself, and defending you from some forms of damage.

You can have up to three protectors. The first two orbit around
your head. The third will be a `nose', suspended three squares in
front of your head, which zigzags. The rate of orbiting/zigzagging is
the same as the worm's speed; that is, they move when the head moves.

Protectors are invisible over friendly tail, friendly remnants and
teleports.

An @{"affixer" link Affi} will stop the protectors from rotating and
zigzagging.
@endnode
@node Puls "Pulse"

@{b}Pulse@{ub}

7 fragments are fired outwards when a pulse is collected, similar to
an orb exploding. If another worm's pulse fragments are still onscreen,
less than 7 fragments will be generated.
@endnode
@node Push "Pusher"

@{b}Pusher@{ub}

This enables you to push stone, goats, metal and tail. You will push the
square in whatever direction you are facing. Pushing is similar to the
pushing of @{"timebombs" link Time}. You can push things off the field if
you so desire. You are not allowed to push more than one square at a
time. You can push over objects and empty/silver/gold. Pusher is kept
only until the end of the level.
@endnode
@node Remn "Remnants"

@{b}Remnants@{ub}

This enables your bullets to leave their remnants behind them as they
travel.

These images of the bullet do no harm to the worm that fired it,
nor to any other creature except enemy unarmoured worms. Remnants are
kept only until the end of the level.
@endnode
@node Side "Sideshot"

@{b}Sideshot@{ub}

This means that whenever you fire, in addition to any forward bullets you
will also fire a bullet to each side.
@endnode
@node Slay "Slayer"

@{b}Slayer@{ub}

Slayers are used instantly. They will destroy all @{"goats" link Goat},
@{"slime" link Slim}, @{"drips" link Drip}, @{"orbs" link Orbs} (by explosion),
@{"penguins" link Peng}, @{"octopi" link Octo} and enemy @{"missiles" link Miss}, and cause damage to all @{"unarmoured" link Armo}
enemy worms.
@endnode
@node Slow "Slower"

@{b}Slower@{ub}

Slower will slow all fragments, orbs, goats, drips and penguins to half
their previous speed. The speed of these is reset at the start of each
level.
@endnode
@node Swit "Switcher"

@{b}Switcher@{ub}

All tail onscreen is instantly changed to your own colour. The main
benefit of this is that you take much less damage over your tail
than over an enemy tail, and also that you will receive more points
at the end of the level.
@endnode
@node Tong "Tongue"

@{b}Tongue@{ub}

Tongue allows you to go through wood and @{"worms" link Worm} (heads or tails) without
taking damage.

Whenever a worm with tongue goes over a tail square it receives:

        5 points    if it eats friendly tail. Tail turns to silver.
       10 points    if it eats enemy tail. Tail turns to gold.

Your @{"protectors" link Prot} will not eat any tails while you are in
tongue mode, to help you maximize your score.

Tongue is only temporary. Its power counts down at a constant rate, but
can be extended by the acquisition of more tongue. It is a @{"mode" link Worm}.

While you are in tongue @{"mode" link Worm} your head-image will be
different. When your tongue is nearly gone your head will flash.
@endnode
@node Trea "Treasure"

@{b}Treasure@{ub}

The worms will enter a bonus level for a limited amount of time.
At the conclusion, the next level is reached. The full time bonus
(2:00, which is 1200 points) is given at the end of the treasury.

There are three types of bonus level: treasury, drips and penguins.
@endnode
@node Umbr "Umbrella"

@{b}Umbrella@{ub}

This skips 2-3 levels.
@endnode
@node Stra "Strategy"

Goats prefer to be near free space (empty, gold or silver), so that
they can shoot.

Faster speeds are useful for:

    racing another creature for a letter or object;
    hunting another creature when you have tongue or armour;
    evading missiles and fragments;
    laying tails to trap other creatures;
    creating gold/silver with tongue;
    amassing more square-points by moving;
    amassing more square-points at level completion;
    making large jumps;
    causing protectors to rotate faster.

Slower speeds are useful for:

    making small jumps;
    waiting in a certain region of the screen;
    not filling the playfield;
    enclosure;
    easier control.

You will get more points by shooting something than killing it by other
methods, and more from collecting real letters than getting bonuses.

Remember that bullets, bombs, missiles, fragments and drips will @{i}not@{ui}
wrap around playfield edges. If you do, they cannot follow.

Certain objects work well together. Eg.:

    bullets, powerups and bias;
    multipliers and armour;
    tongue and grower;
    treasure and ice;
    protectors and affixer.

To avoid a missile, get a worm, orb, enemy missile or goat, or a solid
barrier such as stone or metal, between you and it.

Going quickly between teleports yields many points. It is easier when
done using tongue.

When you shoot an orb, it will explode, so it is better to be some
distance away when doing so.

Shooting an orb (which will explode) or timebomb (which will detonate)
can be a useful way of harming, or putting pressure on, an enemy
creature which is at the opposite end of the field. However, note that
you can be harmed by this. If you have at least triple shot, you can
safely shoot an orb if you are not directly lined up with it (and you
do not move into the path of the fragments). For shooting timebombs, it
is best to be as far away from it as possible.

A good way to handle slime is to encapsulate it with your tail, so it
cannot spread.

When you have armour, it is good to go over wood as that is an easy way to
destroy it.
@endnode
@node High "High Scores"

High scores are part of the @{b}.fset@{ub} file. To save them, save the
fieldset. Any changes to the fieldset will automatically clear the
high scores.

The Amiga worms have names which honour the four original Amiga
designers. Even on the IBM-PC version. :-D
@endnode
@node Worm "Worms"

Worms can be controlled by humans or the Amiga. For information on
how to control them, @{"click" link Ctrl}.

A worm consists of a head, one square in size, and a tail, which is
formed in the wake of the head's passing. As the worm moves, the tail
stretches out behind its head. Collision with any part of a worm by the
head normally results in damage (to the head).

Worms can move in the four cardinal orthagonal directions and at three
speeds; getting a @{"nitro" link Nitr} allows diagonal movement and another
speed (very slow).

Worms begin with 100 lives. Whenever you are taking damage your head will
flash as a skull. When 0 lives is reached, the worm is dead and the skull
is permanent. Every 1,000 points you will be awarded an extra life.

@{b}Modes@{ub}

@{"Armour" link Armo} and @{"tongue" link Tong} are mutually exclusive `modes'.
You can only have one in use (and therefore counting down in strength) at
a time, and it will be whatever was most recently collected. The head's
appearance indicates whether it is in a `mode', and also the direction it
is currently travelling. It will flash when the current mode is at low
strength. When the strength reaches zero, the other mode is automatically
engaged, if above zero.

@{b}Skulls@{ub}

If a worm or @{"protector" link Prot} collects the skull of a dead worm,
the collecting worm will get everything the dead worm had, in addition of
course to what it already had itself:

    . multiplier
    . bias
    . powerups
    . ammo
    . armour
    . tongue
    . nitro
    . affixer
    . remnant
    . sideshot
    . pusher

Skulls absorb any @{"bullets" link Ammo}, @{"missiles" link Miss}, @{"drips" link Drip} or @{"fragments" link Frag},
and are immune to @{"bombblasts" link Bomb}.

@{b}Jumping@{ub}

A worm with no @{"ammo" link Ammo} can jump instead. If the destination
is stone, metal, a @{"goat" link Goat} or a blocked @{"teleport" link Tele} you will not
jump, and metal cannot even be jumped over. The distance varies according
to your speed, and is shown below.

          @{u}Name                  Speed               Jump distance@{uu}

        * Very slow             quarter speed       1
        . Slow                  half speed          2
        . Normal                normal              3
        . Fast                  double speed        4

* Very slow speed is only available if you have @{"nitro" link Nitr}.

@{b}Pain@{ub}

        @{u}Method              Damage     Notes@{uu}

        enemy drip          5 lives    unless biased
        whirlwind           5
        blocked teleport    5          worm motion is stopped
        metal               3          worm motion is stopped
        goat                2          worm motion is stopped
        stone               1          worm motion is stopped

`Worm motion is stopped': Every move in which the worm takes damage from
that cause, its speed is halved (to a minimum of `slow'). The worm is
unable to actually enter the square.

@{"Unarmoured" link Armo} worms can also die by the following methods:

        remnant             5          worm is slowed
        worm bullet         5
        enemy missile       5
        enemy protector     5
        orb                 5
        dog                 5
        fragment            3          if armoured, fragment is reflected
        bombblast           3
        lightning           3
        enemy slayer        2
        slime               2
        wood                1          worm is slowed

@{"Untongued" link Tong} worms can also die by the following methods:

        worm head           5
        worm tail           1          worm is slowed

@{b}Enclosure@{ub}

If your tail forms an exact square which measures 4x4-9x9 including
the tail (2x2-7x7 of interior area, respectively), this is known as
enclosure. Any squares within the closed area which are empty, silver, gold
or enemy tail are converted to your tail. You receive 10 points for each
enclosed square which is thus converted. The right of enclosure is one
which is shared by all worms; it is a basic ability.

Note that enclosure is only checked for when the worm's head is at a
corner of the square. And remember also that the enclosure @{b}must@{ub} be
square: the same size in both x and y dimensions. This is the skill of
enclosure.

        @{u}Symbol          Meaning@{uu}

        :               worm head
        #               worm tail
        .               enclosed area

        @{u}3x3 interior    4x4 interior     5x5 interior@{uu}
        #####           ######           #######
        #...#           #....#           #.....#
        #...#           #....#           #.....#
        #...#           #....#           #.....#
        ####:           #....#           #.....#
                        #####:           #.....#
                                         ######:
@endnode
@node Orbs "Orbs"

Orbs are controlled by the Amiga. They move diagonally and bounce whenever
they hit a tail, metal, stone, wood or @{"goat" link Goat}, so their
motion is be predictable. Orbs have their own scores, which are added to
the scores of those that kill them.

@{b}Objects@{ub}

Objects can be used by orbs, as follows:

    Affixer     This will remove any affixer from any worms.
    Ammo        The orb will explode, unless it is armoured.
    Armour      Same as worm.
    Bias        This will remove all bias from all worms.
    Bomb        Same as worm.
    Bonus       The orb will split.
    Clock       The time remaining is reduced.
    Cyclone     Doubles the orb's speed.
    Freedom     All remnants onscreen will change to empty.
    Grower      All wood onscreen will `grow', expanding into their
                squares if those neighbouring squares are empty.
    Healer      The orb will split.
    Ice         The orb will split.
    Life        The orb will split.
    Lightning   The orb will explode, if unarmoured.
    Magnet      Any magnetized objects become demagnetized.
    Missiles    All missiles will be destroyed.
    Multiplier  Same as worm.
    Nitro       Doubles the orb's speed.
    Powerup     Doubles the orb's speed.
    Protector   This will slay all protectors.
    Pulse       The orb will explode, if unarmoured.
    Pusher      This will remove any pusher from all worms.
    Remnants    This will remove any remnants from all worms.
    Sideshot    This will remove any sideshot from all worms.
    Slayer      The orb will explode, if unarmoured.
    Slower      Double's the orb's speed.
    Switcher    All tail onscreen is instantly changed to wood.
    Tongue      This will allow the orb to pass through wood and tails
                instead of bouncing off them.
    Treasure    The orb will split.
    Umbrella    The orb will split.

@{b}Splitting@{ub}

The orb will split into up to four orbs, depending on the number of orbs
already in play.

Each orb wilil be an exact clone of the original in all attributes,
except starting direction but including score. Once born, they are
completely independent, of course.

@{b}Modes@{ub}

@{"Armour" link Armo} and @{"tongue" link Tong} are mutually exclusive `modes'.
An orb can only have one in use (and therefore counting down in strength)
at a time, and it will be whatever was most recently collected. When the
strength of it reaches zero, the other mode is automatically engaged, if
above zero. The orb's colour indicates the `mode' the orb is in:

        @{u}Colour          Mode@{uu}

        Yellow          None
        Blue            Tongue
        Red             Armour

@{b}Collisions@{ub}

An orb with tongue passes through and destroys @{"slime" link Slim}. 
An orb with armour bounces off slime. An orb with neither dies.

All orbs can be slain in these ways:

        @{u}Notes   Cause@{uu}

        *       Any worm gets a @{"slayer" link Slay}. @{i}All@{ui} orbs @{"explode" link Frag}.
        #       Becoming trapped (unable to move).
        #       Collision with another orb.
        #       Collision with @{"worm tail" link Worm}.
        .       Collision with an @{"armoured" link Armo} worm.
        .       Collision with a @{"protector" link Prot}.
        .       Collision with a @{"whirlwind" link Whir}.

@{"Unarmoured" link Armo} orbs can also be slain in these ways:

        *       @{"Worm bullets" link Ammo}.
        *       @{"Fragments" link Frag}.
        *       The orb collects @{"ammo" link Ammo} or @{"slayer" link Slay}.
        *       @{"Drips" link Drip}.
        #       @{"Bombblasts" link Bomb}.
        #       @{"Missiles" link Miss}.
        #       @{"Lightning" link Ligh}.
        .       Collision with an @{"unarmoured" link Armo} worm.
        .       Collision with @{"slime" link Slim}.

        @{u}Symbol  Explanation@{uu}

        *:      The orb @{"explodes" link Frag}.
        #:      A @{"bonus" link Bonu} is left at the site of death.
@endnode
@node Goat "Goats"

Goats walk along the top of stone, metal, wood, tails and slime, firing
@{"fragments" link Frag} randomly when they are at an edge (next to
somewhere they can't go). Goats prefer to be at an edge and tend to move
towards and stay at one. When not at an edge, they cannot fire.

Goats can be slain in these ways:

        @{" Worm bullet " link Ammo}
        @{" Fragment    " link Frag}
        @{" Slayer      " link Slay}
        @{" Orb         " link Orbs} bouncing off it
        @{" Bombblast   " link Bomb}
        @{" Missile     " link Miss}
        @{" Drip        " link Drip}
        @{" Lightning   " link Ligh}
        @{" Whirlwind   " link Whir}
        @{" Dog         " link Dogs}

Dead goats turn into @{"bonuses" link Bonu}.
@endnode
@node Slim "Slime"

Slime may be randomly created at during play. This slime can `grow' into
some adjacent squares over time. It never moves, only grows.
@endnode
@node Drip "Drips"

Drips appear near the top of the field, and fall downwards. They can be any
of the four colours (green, red, blue and yellow).

Drips of your own colour are worth points. Drips of the wrong colour hurt
you. In either case, the drip is destroyed.
@endnode
@node Frag "Fragments"

Fragments are generated by:

        @{"orb" link Orbs} explosions.
        @{"pulse" link Puls} explosions.
        @{"goats" link Goat} firing.

Fragments travel until they are absorbed or reach the field edges.
@endnode
@node Peng "Penguin"

Penguins are randomly created, independent creatures which move randomly.
They are not aggressive but will harm things that collide with them. They
only ever move onto empty (or silver/gold) squares.
@endnode
@node Whir "Whirlwind"

These are created when a worm collects the @{"cyclone" link Cycl} object.
They move very quickly in a random fashion, though they tend to drift
slightly upwards over time. They are one of the more dangerous types of
creature.

They destroy protectors, orbs, goats, penguins, missiles, slime, drips,
fragments, metal, stone, wood and tail. They destroy timebombs without
detonating them. They are immune to lightning, bullets, bombblasts,
fragments. They are affected by slayer and teleports. They harm worms,
whether armoured or not, without being themselves destroyed. If they leave
the playfield they are destroyed.
@endnode
@node Dogs "Dog"

These appear randomly. They wait patiently until a worm passes over them.
Then they begin to awaken and soon they chase the worm along its tail.
They cannot cross field edges.
@endnode
@node Clou "Cloud"

These appear randomly. They only ever move horizontally, left and right,
changing direction at each end of the playfield. Occasionally they will
shoot out a pair of fragments: one up and one down.
@endnode
@node Tele "Teleport"

These always come in pairs. Going through one will teleport you to the
other, and bestow points also.

If a teleport is blocked (there is stone, metal or a @{"goat" link Goat} next to
its partner on the side where you would emerge) then the teleport cannot
be used and is dangerous. You will slow down from hitting it and not be
able to use it. It is obviously possible for a teleport to be blocked to
some approaches and unblocked to others.

@{"Protectors" link Prot} are invisible over teleports.

Two teleports may be defined in the @{"field editor" link Edit}; another
two may appear randomly during play. These two sets are completely
independent of one another.
@endnode
@node Time "Timebomb"

This ticks from 9 down to 0 before detonating. During ticking, it can be
pushed around by worm heads. If pushed off the field edges, 100 points
are given and the timebomb is destroyed without detonation. If pushed
against anything, or shot, or hit by most things, it will detonate
immediately, with harmful consequences to anything within its radius.
Points are never awarded for timebomb blasts. The explosion is the same
as a normal @{"bomb" link Bomb}.
@endnode
@node Octo "Octopus"

These are created with the @{"field editor" link Edit}. Up to 12 can be
created for each level. They can also appear randomly during play. They
do not move. Occasionally they will decide to spin around, firing
fragments as they do so. They can be killed only by worm bullets,
protectors and slayers.
@endnode
@node Scor "Scoring"

@{b}Square points@{ub}

    @{b}All@{ub}

          1    Empty
          5    Dynamite
         10    Silver
         20    Gold
        100    Skull
        100    Letter

    @{"Objects" link Obje} are worth various amounts of points.

    @{b}Worms and orbs@{ub}

         20    Teleport

    @{b}Worms and protectors@{ub}

        100    Drip of your colour

@{b}Skill points@{ub}

    @{b}All@{ub}

         50    Kill a penguin.
         50    Kill a goat.
         75    Kill an octopus.
        100    Hurt an enemy worm, without hurting yourself.

    Orbs are worth their scores to anything that kills them.

    @{b}Worms@{ub}

          5    For each square you turn to silver with tongue.
         10    For each square you turn to gold with tongue.
         10    For each enclosed square which is converted.
         50    You hurt something (worm, orb, goat, penguin or octopus)
               by shooting.
        100    You push a timebomb off the field edges.

There are also @{"level" link Lett} completion bonuses.

All points are multiplied by the number of worms selected for human and
Amiga control, and of course by any @{"multipliers" link Mult}.
@endnode
