mirror of
https://github.com/GoodStartLabs/AI_Diplomacy.git
synced 2026-04-19 12:58:09 +00:00
248 lines
13 KiB
Text
248 lines
13 KiB
Text
Map File Syntax
|
|
***************************
|
|
|
|
The engine already supports a number of existing map variants, each of which is implemented
|
|
by a .map file in the format described here.
|
|
|
|
***************************
|
|
General Directives
|
|
***************************
|
|
|
|
>>> # comment...
|
|
|
|
Any line that has a pound sign (#) as its first non-whitespace character will be considered
|
|
a comment, and ignored. Comments must span a complete line (that is, you may not add a comment
|
|
to the end of a non-comment line).
|
|
|
|
>>> USE[S] fileName...
|
|
|
|
This line causes another file to be immediately read in. This is used to share map information.
|
|
For example, the britain.map file USES the standard.geography file, which contains all the
|
|
geography for the standard Diplomacy map.
|
|
|
|
>>> MAP mapName
|
|
|
|
This line is identical to USE mapName.map with the additional provision that the graphical
|
|
map template (used to generate the actual visual map) will be the one having the mapName
|
|
specified. For example, the "fleetRome" map not only USEs the same map data (slightly altered)
|
|
as the standard map, but also uses the same graphical map for display (and therefore, the MAP
|
|
command is proper for that variant). By contrast, the "britain" and "crowded" maps may USE
|
|
(that is, load and then alter) the data from the standard map file, but (due to the additional
|
|
SC dots that must be depicted on the map to support these variants), they use different graphical
|
|
maps than does the standard game, so the USE command (rather than MAP) is proper for these variants.
|
|
|
|
***************************
|
|
Geographic Directives
|
|
***************************
|
|
|
|
>>> placeName = abbreviation alias...
|
|
|
|
This type of line specifies all the recognized aliases for a map location. The placeName
|
|
is the long form of the map location (the form to appear in results mailings). The abbreviation
|
|
is the engine standard abbreviation for the place-name (the form to appear in all orders when
|
|
shown to the player on his Web pages). This standard abbreviation must be exactly three
|
|
characters long and must both begin and end with an alphabetic or numeric character. Each
|
|
alias is a single word (that is, having no embedded spaces) that is to be recognized as
|
|
another name for the location in question. If you wish to specify an alias that is more
|
|
than a single word in length, you must join the separate words using plus-sign characters (+).
|
|
For example, Norwegian Sea = nwg norwegian nrg norwsea norw+sea
|
|
|
|
If an alias ends with a question-mark (?), it must not contain a plus-sign, and this indicates
|
|
that the alias (without the question-mark) is to be considered "ambiguous." Ambiguous aliases
|
|
may not be used in games that use the NO_CHECK rule (the ambiguity will be reported to the
|
|
player at the time of order-entry). For example, TYR is an ambiguous alias in the standard
|
|
game map, since it is commonly used as an alias for both Tyrolia and the Tyrrhenian Sea.
|
|
|
|
>>> COAST abbreviation [ABUTS [abut...]] -or-
|
|
>>> LAND abbreviation [ABUTS [abut...]] -or-
|
|
>>> WATER abbreviation [ABUTS [abut...]] -or-
|
|
>>> PORT abbreviation [ABUTS [abut...]] -or-
|
|
>>> SHUT abbreviation [ABUTS [abut...]] -or-
|
|
|
|
This type of line specifies the terrain type and adjacencies for the place-name whose
|
|
abbreviation is given. The terrain must be either WATER, LAND, COAST, PORT, or SHUT (impassable).
|
|
The only difference between PORT and COAST spaces is that fleets located in PORT spaces may convoy
|
|
armies as if they were in water.
|
|
|
|
The adjacency information given on this line will silently supplant (become valid instead of) any
|
|
previous such line for the same location. In this way, maps can be changed on the fly, such that
|
|
what was a LAND location can become COAST or WATER and/or can obtain different adjacencies.
|
|
|
|
The abut locations must be the standard abbreviations (the first abbreviation given after
|
|
the equals-sign in each placename line).
|
|
|
|
Specifying Army and Fleet Restrictions
|
|
===========================
|
|
This directive is case-sensitive. Army and fleet restrictions are specifyied by use of upper- and
|
|
lower-case as described below. Everything must be in upper-case except the following:
|
|
|
|
The abbreviation for any COAST location that a fleet cannot occupy must be listed entirely in
|
|
lowercase. For instance, on the standard map, Spain must be listed as spa since fleets may only
|
|
occupy either SPA/SC or SPA/NC. Specifying a location using lower-case after the same location
|
|
was given earlier using upper-case, or vice-versa, will cause the previous location's terrain type
|
|
and adjacencies to be forgotten.
|
|
|
|
In the list of adjacencies, any location that a fleet could occupy but into which a fleet cannot
|
|
move from the location in question must be listed entirely in lowercase. For example, on the standard
|
|
map, Tuscany must be listed as tus in the list of locations adjacent to VEN, since a fleet cannot
|
|
move directly from Venice to Tuscany.
|
|
|
|
In the list of adjacencies, any LAND or COAST location to which an army cannot make a direct
|
|
(non-convoyed) move from the location in question must be listed with its first character in uppercase
|
|
and the remainder in lower-case. This is useful to specify offshore islands, and therefore no example
|
|
on the standard map can be given. Consider, however, allowing an army to be convoyed into the
|
|
Tyrrhenian Sea (call it Sicily). To implement this, the Tyrrhenian Sea would be given the terrain type
|
|
PORT (to allow both fleets and armies to occupy the space and to allow fleets in that space to convoy)
|
|
and all land spaces adjacent to the Tyrrhenian Sea would list their adjacency to that space as Tys
|
|
(rather than TYS or tys) to indicate than an army may not move directly to the space despite the fact
|
|
that movement from a COAST (such as Naples) to an adjacent PORT (the Tyrrhenian) would otherwise be
|
|
allowed. Convoyed movement would be allowed, though, so an order such as A Nap-ION-TYS would be perfectly
|
|
valid.
|
|
|
|
Specifying Multi-Coast Spaces
|
|
===========================
|
|
If an area abuts a multi-coast province, its adjacencies must list only the coasts that are reachable,
|
|
and must not list the main space itself (for example, RUM is listed as being adjacent to BUL/EC, but
|
|
not to BUL itself).
|
|
|
|
The line for every coast of a province should appear in the map file before the line for the space
|
|
itself.
|
|
|
|
If the map will undergo terrain changes during play, it is important to note that the fleet-friendly
|
|
space listed last is the one on which a unit in that space will be put if a terrain modification
|
|
requires it. For example, if a fleet is in Rome when Venice becomes a WATER space, the map file will
|
|
need to direct that Rome becomes a multi-coast province by adding entries for ROM/EC, ROM/WC, and rom.
|
|
By listing ROM/WC after ROM/EC, the fleet in Rome will be placed on the west (rather than the east) coast.
|
|
|
|
>>> DROP abbreviation...
|
|
|
|
This line will remove all data that was given concerning the place(s) with the specified
|
|
abbreviation(s), including all adjacency information. That is, all record of the space will be
|
|
forgotten, and no space will be left thinking that it is adjacent to the DROPped location. DROPping
|
|
a multi-coast space, without designating any particular coast, will also DROP all information for each
|
|
of the coasts. That is, DROP SPA, used on the standard map, will remove all information on Spain, Spain
|
|
(north coast), and Spain (south coast).
|
|
|
|
***************************
|
|
Political Directives
|
|
***************************
|
|
|
|
>>> powerName [([ownWord][:[abbrev]])] [center...]
|
|
|
|
This type of line is used to specify a power name, its "ownership word" and single-letter
|
|
abbreviation (for instance, England's ownership word would be "English", and abbreviation would be "E")
|
|
and all centers that serve as the home centers for the power. If the ownWord is omitted, the powerName
|
|
is used for this purpose, and if the abbrev is omitted, the initial letter of the ownWord is used as
|
|
the abbreviation.
|
|
|
|
Any and all leading underscores (_) in a powerName will not be displayed when the power is referred
|
|
to in results and on the graphical map. This is useful to cause powers to alphabetize after others
|
|
(and thus be displayed in a specific order in the results and on the graphical map).
|
|
|
|
A plus-sign (+) appearing anywhere in the powerName indicates that the next character in the name
|
|
is to be displayed in upper-case. Any plus-sign appearing in the ownWord will be displayed as a space.
|
|
|
|
If the center is preceded (immediately, with no intervening space) by a dash (-), the center is
|
|
removed (if possible) from any pre-existing list of home centers for the power, and added to the list
|
|
of unowned supply centers. This allows for locations to lose "home center" status. Factory and partisan
|
|
sites may also be removed in this same manner.
|
|
|
|
Multiple lines for a single powerName may be used to handle long lists of centers.
|
|
|
|
This type of line sets a "current power" such that all following lines (that specify initial owned
|
|
centers and units) will apply to this power (as opposed to any other) until another powerName directive
|
|
is encountered.
|
|
|
|
>>> UNOWNED [center...] -or-
|
|
>>> NEUTRAL [center...] -or-
|
|
>>> CENTERS [center...]
|
|
|
|
This line (all three forms are synonymous) is used to list all unowned supply centers. The
|
|
UNOWNED power differs from others in that all centers listed as UNOWNED may be listed elsewhere
|
|
without error -- they are silently moved to owned status. Additionally, any "current power" is
|
|
forgotten by this line. Again, multiple lines may be used to supply a long list of unowned centers.
|
|
If you remove a center from the list of UNOWNED centers (using a dash before its name), that location
|
|
is no longer a supply center at all. For example, to make Warsaw a non-supply center on the standard
|
|
map, you would need to specify the two lines: "RUSSIA -WAR" and "UNOWNED -WAR" in that order.
|
|
|
|
>>> DUMMY [ALL] -or-
|
|
>>> DUMMY [ALL EXCEPT] powerName... -or-
|
|
>>> DUMMIES ALL -or-
|
|
>>> DUMMIES [ALL EXCEPT] powerName...
|
|
|
|
This indicates that either the current power, or all powers, or only those specified by powerName,
|
|
or again all powers other than those specified, are to be made a DUMMY power in the game. No player
|
|
will take the role of such a power. Such a power can be put into civil disorder using the CD_DUMMIES
|
|
rule.
|
|
|
|
>>> UNPLAYED [ALL] -or-
|
|
>>> UNPLAYED [ALL EXCEPT] powerName...
|
|
|
|
This line removes either the current power, all powers, the specified powerName, or on the
|
|
contrary all powers that are not specified. At the same time all information that had been
|
|
recorded for those powers is removed as well. This directive is useful to create variants for
|
|
a smaller number of players on a specific USEd map. If you remove all powers, you should add
|
|
some new powers afterwards, because a game will not start with less than two powers.
|
|
|
|
***************************
|
|
Military Directives
|
|
***************************
|
|
|
|
>>> VICTORY centerCount...
|
|
|
|
Specifies a list of the supply center counts which will determine victory, from the first
|
|
game-year forward (the final listed number is repeated for subsequent years). This line is
|
|
optional; if omitted, the VICTORY criterion is set (for all game-years) to one supply center
|
|
greater than half the number of centers on the map, unless the VICTORY_HOMES rule is used, in
|
|
which case the default is based on the number of home centers.
|
|
|
|
>>> BEGIN season year phaseType
|
|
|
|
Specifies the initial game phase. This line is optional; if it is omitted, the initial
|
|
game phase will be SPRING 1901 MOVEMENT. Only the final BEGIN listed in the map file will
|
|
be used. This allows for map files to USE other map files and then override the start phase.
|
|
|
|
>>> OWNS center...
|
|
|
|
Specifies the list of centers owned by the "current power" at the beginning of the game.
|
|
If not specified, the list of initially owned centers is set to the home centers that were
|
|
listed for the "current power."
|
|
|
|
>>> CENTERS [center...]
|
|
|
|
Same as OWNS, but forgets about any previous OWNS lines. If no center is given, the power
|
|
will start with no centers at all (if not followed by any new OWNS lines that is).
|
|
|
|
>>> INHABITS center...
|
|
|
|
Sets the home centers for this power, overwriting any that are given on the power declaration
|
|
line, including partisan and factory sites.
|
|
|
|
>>> HOME(S) [center...]
|
|
|
|
Same as INHABITS, but forgets about any previous INHABITS lines. If no center is given, the
|
|
power will start with no build sites at all (if not followed by any new INHABITS lines that is).
|
|
|
|
>>> UNITS
|
|
|
|
This line is optional. If given, all units that have been listed as initial units for the
|
|
"current power" are immediately forgotten. This can be used to alter the starting position
|
|
of a power from that given in a USEd file.
|
|
|
|
>>> unit
|
|
|
|
Specifies a unit that the current power owns at the beginning of the game. The unit will
|
|
replace any unit that may have previously been listed as beginning in that same space,
|
|
|
|
***************************
|
|
Behavioral Directives
|
|
***************************
|
|
>>> RULE[S] rule...
|
|
|
|
Specifies a rule that will be in effect for all games using this map. For example,
|
|
RULE BUILD_ANY would appear in a map file for the Chaos variant, since that variant allows players
|
|
to build new units in any unoccupied, owned supply center. If this line occurs outside of a
|
|
DIRECTIVE stanza, it will be in effect for all games using this map, regardless of any rules-variant
|
|
(payola, etc.) that the game may use. Note that if any rule name is prepended by exclamation point (!),
|
|
that rule will be turned off if possible, and this will be done after all other RULEs have been
|
|
processed.
|