The Colossus File Formats

NOTE: THIS IS COMPLETELY OUT OF DATE. WE HAVE SWITCHED TO XML.

Romain Dolbeau

Introduction

This file documents file formats for the various datafile used by Colossus. In all these files, comments start with a "#" and extend to the end-of-line.
All files, and the two subdirectory "Battlelands" and "images" should be in the same directory. Default files live in "Default", "Default/images" and "Default/Battelands".

1 The README file

This file describe the variant. It can be either a pure text file or a HTML file. It must be named README, README.txt (both should be pure text) or README.html (should be HTML) and live in the same directory as the VAR file (see below, section ). It's displayed in the opening dialog.

2 MAP file format (default file used: "Default/Default.map")

This file defines the Colossus Masterboard ; what terrain type to use for an hex and what sort of exit to which hex. It's composed first of a pair of integers represanting the map size (horizontally then vertically), and then of a succession of lines:
<case_label> <terrain_name> <exit_1_label> <exit_1_type> <exit_2_label> <exit_2_type> <exit_3_label> <exit_3_type> <X_pos> <Y_pos>
All of those should be on one line.
NOTE: Put at least MAXPLAYERS (see below the VAR file, section ) towers currently, as having less Towers than players is going to cause problems. The upper number is not constrained (or isn't supposed to be), and neither are the labels. For readability reasons, it's probably better to use 100 to 900 as the labels for the first 9 towers.
WARNING: The way the Hex are displayed (pointy part upside or downside) depend on the parity of the X+Y sum. It is possible to create a perfectly legit MAP where all the Hex are upside-down ! Should this happen, the only way to fix this 'feature' currently, is to move everything one column right or one row down, i.e., force the reversal of the parity. Sorry about that, the problem hasn't yet been solved.

3 TER file format (default file used: "Default/Default.ter")

This file define the Colossus Recruit Trees ; what can recruit and be recruited on what terrain. it's composed of a succession of line of four different kind. The first two are mandatory (at least one of each should appear), the other two are optional (default values are supplied).

The first kind is:

<terrain_color> <terrain_name> <regular_recruit> ( <recruiter_needed> <recruit>)+ <terrain_display_name >?
The last two as a pair can be repeated any number of time. Any later creature can recruit a previous one or itself. A creature can recruit the next one only if they are numerous enough, as indicated by the <recruiter_needed> of the recruit.
Three specials names exist (pseudo-creature):
Note that for Lord and Titan, only one recruiter is needed, and the number before the recruits indicate how many of the creatures before Lord or Titan are needed.
When <recruiter_needed> is 0 (zero), then the creature can be recruited, but the recruiter will remain anonymous. This is useful only if the recruiter is Anything or AnyNonLord, of course. Don't use with a regular recruiter.
When <recruiter_needed> is -1 (minus one), then the creature can recruit, but cannot be recruited. Such creature, and the pseudo-creature above, are ignored for the purpose of normal recruitements. If you put Titan as a recruiter, it should always be -1, as beeing able to recruit Titan is going to cause lots of trouble.
Exemple: if you use 0 Anything 3 ogre 0 Titan 2 Gargoyle, you will be able to recruit an Ogre with any 3 creatures or with a Gargoyle, and you will be able to recruits a gargoyle with two Ogres or the Titan. You won't be able to recruit Anything or Titan, of course.
Any line that will be used as a Tower (See Battlelands below) should follow these rules: There should always be at least 3 regular creatures, recruitable with zero of Anything, at the begining. The line should be marked as "non-regular" recruitments. The 3 creatures will be used as starting creatures for the Player starting in that kind of Tower.
Both <terrain_name> and <terrain_display_name> can be either purely alphabetical, or alphanumerical plus spaces between doublequotes ""'. If a filename is involved, all spaces will be replaced by underscores "_".

The second kind is:

ACQUIRABLE <point_value> <acquirable_name> (( <terrain_name>,)* <terrain_name>)?
ACQUIRABLE is the literal string ACQUIRABLE
Note that all <point_value> must be even multiple of the first <point_value> ; other values are erroneous and will be flagged as such. Also, the first acquirable creature should be a Lord, and is recruited in the starting stack (it's the 'primary' acquirable creature).
Multiple line can be present, in which case, the behavior is the same as if all the Acquirable where on one line. Order of Acquirable is not important, except for the first one, which defines the reference for <point_value> and the primary acquirable creature.

The third kind is:

TITANIMPROVE <point_value>
To give the amount of points required for the Titan to improve by one. Said differently, Titan power is equal to 6 + ( <player_points> / <above_value>). The default supplied value is 100.

The fourth kind is:

TITANTELEPORT <point_value>
To give the amount of points required for the Titan to be able to Titan Teleport. The default supplied value is 400.

4 CRE file format (default file used: "Default/Default.cre")

This file define the Colossus Creatures ; it's composed of a succession of lines:
<name> <power> <skill> <rangestrikes> <flies> <nativeBramble> <nativeDrift> <nativeBog > <nativeSandDune> <nativeSlope> <nativeVolcano> <nativeRiver> <nativeStone> <nativeTree> <waterDwelling> <magicMissile> <summonable> <lord > <demilord> <maxCount> <pluralName> ( <baseColorName>)?
all on one line.
Both <name> and <pluralName> can be either purely alphabetical, or alphanumerical plus spaces between doublequotes ""'. If a filename is involved, all spaces will be replaced by underscores "_".

5 Battleland file format (files used: by terrain name under "Battlelands")

These files define the Colossus Battlelands. they're composed of a succession of lines:
<X_pos> <Y_pos> <terrain_name> <terrain_elevation> ( <border_number> <border_type >)*
all on one line.
Any cas not mentioned in this file is assumed to be of type 'p', at elevation '0', and no border.
finally. between 0 and 6 pair of the form <border_number> <border_type>, where <border_number> is between 0 and 5 and <border_type> is currently one of: d, c, s, w, r (Dune, Cliff, Slope, Wall, River).
Lake, Stone and River are non-standard hazards:
Also, non-Tree Native attacking a Tree Native in a Tree lose one skill (but not rangestriker).
NOTE: There is a graphical tool, designed to allow easy creations of Battlelands. It doesn't handle Startlist yet (see below).
One more line exists: the startlist. It's a single line containing first the word STARTLIST, then a space-separated list of hex labels (one letter followed by one digit, displayed in each hexagon of the Battleland). This is where the Defender will enter the terrain. For instance, in the usual Titan Tower, the line used is:
STARTLIST D4 C4 E4 D3 C3 E3 D5
Also, the line imply the Attacker will enter by the bottom side. This is usually used for Tower, but can be used for other terrain as well.
Towers are denoted by the keyword TOWER by itself on a line. The terrain is then considered a Tower, i.e. you can Tower Teleport from it, and players are allowed to start in it.

6 HINT file format (default file used: "Default/Default.hin")

This file lists some hints to the Colossus AI on how to play the game.
The file is cut off into sections, each specifying behavior for one kind of AI. Any hints appearing before a section name is assumed to belong to section "AllAI:". A section name is a name ending in "AI:" ; known values are "AllAI:", "OffensiveAI:" and "DefensiveAI:". Any section name can be used, but if none of the AI is aware of a section, it won't be used. All AI will used hints from section "AllAI" as a last resort, after trying zero, one or more other section(s). Note that some AIs may ignore hints entirely, and some may decide to change the used sections in the middle of the game :-) A hint belongs to the last section whose name appears before the hint.
Each hint is a line of one of the forms:
RECRUIT <terrain_name> <recruiter_name> <recruiter_number> <recruitee_name> <optional_condition >
INITIALSPLIT <hex_label> <decimal_value> "(" <split_creature_name> * ")" *
RECRUITVALUE <creature_name> <value_offset>
where for RECRUIT:
and <optional_condition> is an optional condition builded with the following <condition_node>:
If the recruitee's name is "nothing" or "Nothing", then the hint suggests not recruiting there.
where for INITIALSPLIT:
At the moment, there should be exactly two lists of exactly four creatures in the hint. The 8 creatures should be exactly one Titan, one Angel (those two in different stacks), and 2 of each of the three starting creatures of the Tower.
Each split for a given Tower is checked in order, and the first to pass the test is used, so the last one for each Tower should always use "1.0" as the probability.
where for RECRUITVALUE
The <creature_name> is the name of the affected creature, and the <value_offset> is how many points to add/retire to the normal value. This only affect the AI estimation of the recruitment value of the crature: a creature with a big positive value will be recruited before anything else, a creature with a big negative value will be recruited after anything else.

7 VAR file format (default file used: "Default/Default.var")

This file contains a variant definition, i.e. which MAP, CRE and TER file should be used and other informations such as which other variants are required.
Six different lines can exist, in any number and order (only the last one of each type is used):
CRE: <cre_filename>
MAP: <map_filename>
TER: <ter_filename>
HINT: <comma-separated list of hint_filenames>
DEPEND: <comma-separated list of dependecies>
MAXPLAYERS: <max number of players>
Note: if one of the first three type is missing, the Default file is implied. if DEPEND is missing, no dependencies are implied. In all case, the "Default" directory is looked-up last, so mentioning "Default" as a dependency is not required.
Note: Do not use a MAXPLAYERS value higher than the number of Tower in the MAP file, this will crash Colossus. If MAXPLAYERS isn't specified, 6 is the default value used. If MAXPLAYERS is too big for Colossus, the default maximum will be used instead to avoid crashing.
Exemple: A variant that use creatures from ExtTitan, Battlelands from Badlands and a local map could be described as:
CRE:ExtTitan.cre
MAP:MyBadlandsExtTitan.map
TER:Badlands.ter
DEPEND:ExtTitan,Badlands

8 Images files under "images"

9 Miscellaneous stuff

A variant can customize the legion marker appearances and names. Legion markers are 56x56 GIF files that lives in "images" and are named with the marker short color name (see ) followed by its number (between 01 and 12), i.e. the first marker of the black set is Bk01.gif. The short name is mapped to a long name in the file "MarkersName", a java property file. A variant can supply its own "MarkersName", either fully or partially redefining the marker's names (the default mapping is used for missing entries).