[comp.sources.games] v04i098: xconq5 - version 5 of the strategy game for X-windows and curses, Part10/18

games@tekred.TEK.COM (07/01/88)

Submitted by: "Stanley T. Shebs" <shebs%defun@cs.utah.edu>
Comp.sources.games: Volume 4, Issue 98
Archive-name: xconq5/Part10



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 10 (of 18)."
# Contents:  custom.ms lib/city30.b lib/earth1.map xconq.ms
# Wrapped by billr@saab on Wed Jun 29 08:55:47 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f custom.ms -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"custom.ms\"
else
echo shar: Extracting \"custom.ms\" \(15406 characters\)
sed "s/^X//" >custom.ms <<'END_OF_custom.ms'
X.TL
XCUSTOMIZING XCONQ (Made Somewhat Simple)
X.AU
XStan Shebs
X.AI
XDepartment of Computer Science
XUniversity of Utah
X.AB
XFor advanced players who desire new challenges, \fIxconq\fP provides several
Xcustomization mechanisms.
XIt is possible to build new maps, scenarios, and historical periods.
XThis document describes the customization process in excruciating detail.
XThe reader is assumed to be familiar with \fIxconq\fP and its basic
Xdocumentation.
X.AE
X.SH
XINTRODUCTION
X.LP
X\fIXconq\fP has been designed to facilitate the construction of new maps,
Xscenarios, and historical periods.
XAll these additions happen through a single mechanism, the \fImapfile\fP,
Xwhich comes in several parts, and may also load other mapfiles.
XSaved games are very detailed mapfiles; less detailed mapfiles are more
Xsuitable as scenarios.  Maps and period descriptions are mapfiles with
Xmost sections missing.
X.LP
XMapfiles are created either by text editing,
Xby \fIxconq\fP, or by a combination of both.  
X.SH
XMAPFILES
X.LP
XA mapfile is a normal ASCII text file.  It begins with a header line of the
Xform
X.IP
X\fBXconq \fIn [+-][+-][+-][+-][+-][+-] description[;]\fR
X.LP
Xwhere \fIn\fP
Xis the number of additional mapfiles to be loaded (up to 16 or so in all),
Xeach + or -
Xindicates the presence or absence of a particular section, and the
X\fIdescription\fP
Xis free-form text (remainder of the line) describing the mapfile.
XNote that that all reading/writing in the mapfile is case-sensitive,
Xincluding the header words.
XThe sections are for version, period, map, globals, sides, and units,
Xin that order.  Most sections vary in size, and some vary also in
Xthe detail of the information they contain.  Most include extension
Xflags, which are reserved for future expansion of mapfiles.
X.LP
XAdditional notes may be included by terminating the \fIdescription\fP
Xwith a semicolon (with NO whitespace following).
XIn such a case, the following text lines
Xwill skipped over until a period "." is seen by itself on a line.
X.LP
XFollowing the header are the names of the \fIn\fP
Xmapfiles, one to a line.
XEach will be loaded into \fIxconq\fP before the rest of the current mapfile.
XThis process is recursive (at least in theory).  Any conflicts are
Xresolved by simple overwriting.  Note that this presents the possibility
Xof catastrophic conflicts if the designer is not careful to, say, match
Xunits and periods.  A file with a given name will be loaded only once;
Xa second attempt will result in a warning message, and the program will
Xcontinue on.
X.LP
XThe version section is quite simple, since it is one line;
Xexactly the version
Xstring displayed when \fIxconq\fP starts up.  This is typically only needed for
Xsaved games, but might be convenient while \fIxconq\fP versions are changing
Xincompatibly.
XWhen this section is loaded, the version is merely compared with the
Xinternal version number, and \fIxconq\fP fails if they do not match.
X.LP
XThe period section is a program in a simple postfix language,
Xwhich when executed fills in the period description.
X.LP
XThe map section includes the world dimensions and terrain.
XIt may also include information about countries at some future date.
X.LP
XThe globals section includes any global values, such as the current turn,
Xand also the win/lose conditions for a scenario.
X.LP
XThe sides section defines the sides in a game.  Required info is little
Xmore than the name of the side, but a detailed section may also include
Xthe area of the map seen by that side, and other data.
X.LP
XFinally, the units sections lists a number of units in the game.
XAgain, detail can range from type, name, and position to complete
Xdetails on its orders.
X.LP
XEach of these sections is entirely optional - \fIxconq\fP can synthesize its
Xown replacements for each.  For instance, a mapfile could specify a map
Xand two sides, or a period, or an entire game, by including the appropriate
Xsections.
XThe sections do interact somewhat, with dependencies as follows:
X.IP
XMaps, win/lose conditions in globals,
Xdetailed sides, and units depend on period.
X.IP
XDetailed and/or non-neutral units depend on sides.
X.LP
XThe following sections discuss each part of a mapfile in more detail.
XThe version secton
Xhas already been covered sufficiently.
XSince the period defines what may appear in all the other sections,
XI shall begin with it.
X.so period.ms
X.SH
XMAPS
X.LP
XMaps alone are the easiest thing to customize.  You can either do ordinary
Xtext editing to acquire the map data, then add the headers, or use the
Xonline terrain editing capability of \fIxconq\fP and save the terrain alone.
X.LP
XThe map header has the form
X.IP
X\fBMap \fIwidth height scale seen extension\fR
X.LP
Xwhere \fIwidth\fP and \fIheight\fP are the size of the map,
Xwhile the \fIscale\fP is
Xthe width of a single hex in km (measured between parallel faces).
XThe \fIseen\fP flag is \fB0\fP if the map is not known to the players,
Xand \fB1\fP if it is (this is like using \fB"-v"\fP on the command line).
XThe \fIextension\fP
Xis an extension flag, with a value of \fB0\fP for the normal map.
XOther values are reserved for extensions.
X.LP
XThe preferred way to build a map is to use the \fB"-B"\fP
Xoption of \fIxconq\fP.
XThis enables the space bar to "paint" terrain onto the map.
XThe "brush" is defined by using the terrain characters as commands
X(they will override any normal commands on the same letters).
XThe argument is also useful - if positive, it is the radius of the
Xarea to be painted with the given terrain type, if negative,
Xit is the length of a horizontal bar.  Thus, in the standard period,
Xthe sequence \fB"999. "\fP will convert all but the largest maps into open sea.
XTo save the map by itself, answer with the string "m" when "saving the game"
X(described in more detail below).
X.LP
XThe other way to build is by using a text editor and following the format
Xexactly.
XThe terrain data is a number of long lines of characters.  The length of
Xthe lines must be exactly the width of the map.  The characters for
Xterrain types are defined by the period.
XThe coordinate system is Cartesian oblique, with the y axis tilted to form
Xa 60-degree angle with the x axis.  Thus, landforms in the mapfile should
Xappear to be leaning to the left, if they are to appear upright during play.
X.LP
XMaps should have some distinguishing terrain
Xon the northern and southern edges;  also, remember that the default
Xmap shape wraps around in the east-west direction, so landforms should
Xmatch up.  If the wraparound is undesirable, a vertical stripe of
Xsome otherwise-unused type (such as outer space) is useful to block movement.
X.LP
XRun-length encoding is also available.  It is flagged by a numeric digit,
Xfollowed by any number of digits, followed by a terrain character.  The
Xterrain character will be replicated the number of times specified by the
Xdigit string.  The encoding may be freely intermixed with normal terrain,
Xbut cannot extend over line boundaries.
X.SH
XGLOBALS
X.LP
XGlobals include a number of values affecting an entire game.  The header
Xis in the following form:
X.IP
X\fBGlobals \fIgametime endtime setproduct leavemap numconds extension\fR
X.LP
Xwhere \fIgametime\fP is the elapsed turns, \fIendtime\fP is the last turn
Xof the game, \fIsetproduct\fP controls whether unit construction is changeable,
X\fIleavemap\fP allows units to leave by the map edges,
Xand \fIextension\fP is reserved for extensions (is normally \fB0\fP).
X.LP
X\fInumconds\fP specifies the number of winning/losing conditions.
XConditions are evaluated at the end of each turn (along with other
Xways to lose, such as losing all of one's units).
XA win condition results in the side achieving it winning
Xwhile all others lose.
XA losing condition knocks the side out of the game, and the other sides
Xcontinue normally.
XMultiple win and lose conditions
Xact as disjunctions - when one is satisfied, something will happen.
XThere is a limit of about 10 conditions or so.
XAll conditions include a starting and ending time for
Xwhen they are in effect, as well as the number of a side to which it
Xapplies, or \fB-1\fP it is to be applied to all sides equally.
X.LP
XThe first line of a condition is the same for all types:
X.IP
X\fI win/lose type start end side(s)\fR
X.LP
Xwhere \fIwin/lose\fP is \fB1\fP if the condition is for winning
Xand \fB0\fP for losing,
X\fIstart\fP and \fIend\fP are the starting and ending turns for testing
Xthe condition, \fIside(s)\fP is the number of a side to which the condition
Xapplies (or \fB-1\fP if it applies to any side), 
Xand \fItype\fP is the type of condition:
X.IP \fB0\fP
XTerritory; next line is one number, the amount of territory
X(above if to win, below if to lose).
X.IP \fB1\fP
XNumber of units; next line is list of numbers, one for each unit type.
XTo win, must possess at least that many of each type.
XTo lose, must be at or below that number for any one of the types
X(the default losing condition is this one, with all zeros).
X.IP \fB2\fP
XQuantity of resources; next line is a list of numbers, one for each
Xresource type.  Winning and losing is same as for unit types.
X.IP \fB3\fP
XPossession; next line is three numbers,
Xthe first two representing the coordinates of a hex, and the third
Xthe number of a unit type (or \fB-1\fP to indicate all unit types).
XTo win, must have a unit of the specified type on the hex.
XTo lose, do not have a unit on that hex.
X.LP
XEach condition has a sort of dual identity, since it is interpreted
Xslightly differently, depending on whether it is flagged for winning
Xor losing.  The logic is a little twisted perhaps - special conditions
Xshould have all cases tested carefully before a scenario is released.
X.SH
XSIDES
X.LP
XSides need relatively little information stored about them, particularly
Xfor a scenario.  The header is simple:
X.IP
X\fBSides \fInumsides detail extension\fR
X.LP
Xwhere
X.I numsides
Xis the number of sides recorded, and
X.I detail
Xis the level of detail that was recorded.
X.LP
XThe side's name can be set using the naming or \fBC\fPall command, when
Xthe cursor is not over a unit, or if an argument is supplied (this will be
Xthe number of a side, and can be used in build mode to change the names
Xof other sides).
X.LP
XThe exact contents of each level of detail are as follows:
X.IP \fB1\fP
XName of side only is saved.  This is sufficient for many scenarios.
X.IP \fB2\fP
XName, attributes, and political status and production counts (used for
Xnumbering unnamed units) saved.
X.IP \fB3\fP
XAll of above, plus view of explored part of world.
X.IP \fB4\fP
XAll of above, plus hosts and player types, plus statistics if used.
X.IP \fB9\fP
XAll possible data.  This is the level used for saved games.
X(At the moment, this is equivalent to level 4, but may include more data
Xin the future.)
X.LP
XThe data for each level begins on a new line, and some levels need several
Xlines (such as the view data).  The best way to study the layout is to
Xexamine a saved game.
X.SH
XUNITS
X.LP
XUnits have quite a few attributes, nearly all of which must be saved.
XThe header is as simple as for sides:
X.IP
X\fBUnits \fInumunits detail extension\fR
X.LP
Xwhere \fInumunits\fP is the number of units saved, \fIdetail\fP
Xis the level of detail that was recorded, and of course \fIextension\fP
Xis the usual extension with only a value of \fB0\fP.
XThere are several levels of detail:
X.IP \fB1\fP
XType, name, and position, and side.
XThe re-created units will be fully supplied and awake.
XNeutral units have a side of -1.
XUnits capable of construction will be idled, so there should be at
Xleast one movable unit present.
X.IP \fB2\fP
XAll of above, plus scalar attributes and supply amounts, all on one line.
X(Look at a saved game or the source code to interpret the numbers.)
X.IP \fB3\fP
XAll of above, plus orders and standing orders if defined.
X.IP \fB9\fP
XAll possible data.  This is the level used for saved games.
X(Same as level 3 at present.)
X.LP
XBuild mode offers a number of way to manipulate units on any side,
Xas described in the next section.
X.SH
XSCENARIOS
X.LP
XThe \fB-B\fP command line option starts up \fIxconq\fP in \fIbuild mode\fP,
Xwhere many
Xadditional actions are possible, all oriented towards the editing of
Xgame state.  All commands can be performed on any side's units, and
Xnone of the machine players will move (this can be toggled by using the
Xquit command 'Q', then saying 'n' to the confirmation question).  Build mode
Xallows some other acts:
X.IP
XMove any unit anywhere instantly, using the moveto command 'm'.
X.IP
XCreate any unit anywhere, using '\\' (prompts for unit type, argument
Xspecifies side, defaults to neutral).
X.IP
XModify terrain anywhere, as described under the map section.
X.IP
XSee all units everywhere, using 'V'
X.IP
XDo anything to any unit as if it were your own, using the usual commands.
X.LP
XOnce all desired changes have been made, you may wish to allow machine
Xplayers to move a little, just to randomize things a bit.  Then use the
Xnormal game save command.  In build mode, you will be asked to enter a
Xstring indicating sections and levels of detail.  The string should contain
Xa character for each section you want written out - 'g' for globals, 'u'
Xfor units, and so forth.  The letters 'u' and 's' must each be followed by
Xa digit indicating the level of detail desired, as described earlier.
XThe default string is \fB"ms1u1"\fP, which will write a mapfile with the map,
Xside names, and unit types/names/positions/sides, which is sufficient
Xfor many interesting scenarios.
XThe file that will be written is always called \fB"random.scn"\fP,
Xis written into the current directory, and should be renamed as desired.
XAfter sufficient playtesting, it may be added to the scenario menu, just
Xby adding its name to the file \fB"mapfiles"\fP in the library directory.
X.LP
XScenario construction is not for everybody.  Since the processes are
Xsemi-internal, the error-checking is not as extensive.  For instance,
Xyou can load a submarine with battleships as passengers.  There are
Xalso more subtle questions of balance, which are usually revealed by
Xrepeated play of the scenario.  As a rule, the lower levels of detail
Xare safer to use - level 1 details for sides and units are often
Xsimple enough to be typed in or edited by hand.
X.SH
XEXAMPLES
X.LP
XA period description with only infantry and cities:
X.DS
XXconq 0 -+---- Very simple test period
XPeriod 0
X
X"generic" period-name
X
X"standard" font
X
X"i" "infantry" "moves around" utype
X"@" "city" "makes infantry units" utype
X
X"+" "land" "green" ttype  ; must always have at least one terrain type
X
X1 @ in-country
X100 land @ favored
X
X@ first-unit
Xi first-product
X
X1 i @ make
Xtrue @ maker
X1 i @ capacity  ; makers need to be able to hold or be held by products
X
X1 i speed
X
X0 t* i moves
X
Xbegin{notes}
XThis is just a test.
XKids, don't try this at home!
Xend{notes}
X
Xend
X.DE
XA tiny map with two cities, including an "empire" period description to ensure
Xmeaningful city definitions:
X.DS
XXconq 1 --+--+ Tiny map;
Xjust an example...
X.
Xempire.per
XMap 9 5 100 1 0
X:........
X:.+++++..
X:..+^^^..
X:...+~~..
X:........
XUnits 2 1 0
X@ New Cork 2,3 -1
X@ Old York 4,1 -1
X.DE
X.SH
XLOSSAGES
X.LP
XThe \fBto-make\fP word actually specifies the amount of resource to be
Xconsumed each turn, rather than the total, which can be a problem for
Xsmall resource amounts and long construction times.  This will probably
Xbe changed to a total amount at some point in the future.
X.LP
XSeveral words are marked NIY, meaning that although they can be used,
Xthe code does not actually take them into account.
X
END_OF_custom.ms
if test 15406 -ne `wc -c <custom.ms`; then
    echo shar: \"custom.ms\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f lib/city30.b -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"lib/city30.b\"
else
echo shar: Extracting \"lib/city30.b\" \(230 characters\)
sed "s/^X//" >lib/city30.b <<'END_OF_lib/city30.b'
X#define floatcity_width 16
X#define floatcity_height 16
Xstatic short floatcity_bits[] = {
X   0x0000, 0x0000, 0x0000, 0x0000,
X   0x0000, 0x0040, 0x05d8, 0x07f8,
X   0x7fff, 0x3ffe, 0x0ff8, 0x01c0,
X   0x0080, 0x0080, 0x0080, 0x0080};
END_OF_lib/city30.b
if test 230 -ne `wc -c <lib/city30.b`; then
    echo shar: \"lib/city30.b\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f lib/earth1.map -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"lib/earth1.map\"
else
echo shar: Extracting \"lib/earth1.map\" \(7849 characters\)
sed "s/^X//" >lib/earth1.map <<'END_OF_lib/earth1.map'
XXconq 0 --+--- 1-degree-per-hex map of the earth
XMap 360 122 100 1 0
X360_
X10%..13%18.8^4.^19.__17.3^30.+^6%3+,10.+.++26%_95%5.3%35.+^%^%%,%,.+^^9.^^6_^^%^%%^^4%
X15%.%.3%.5%16.10^..3^18.^18.+^19.++10.%%3.%%3+,3.,+,14+.19%++31%4+46%16.5%41.%%^%16.^.^3_^^%%^3%^1%
X^18%.3%.4%16.6^5%4^56.++^^12.+.+%3+,3.,%,4+%%16+4%++5%+%+^7%4+13%++%%5+44%18.7%25.^13.^^20.^..^_^%^4%^2%
X%^32%8.%..3^.9%3^56.^^12.++..3+,3.,6+%%24+6%11+%++%++3%+%5+%++%4+15%^^23%+21.7%37.3%3.^%16.^.^%_^%%^%%^2%
X^3%6+9%.6%.%%.6%8.6%.11%52.++.4+10.4+7.,28+.9+%^6+%9+%%13+5%+%+8%^.+23%+..%17.7%35.3^%25.++^_^^5%1^
X%3^%%10+25%3.11%.%%.6%49.3+..4+9.+4,.,3+,11+%%15+.10+^%14+%19+%4+8%.+26%19.6%4.^.^27.^+32.^__^%%+1%
X3%3^%13+%%.%%..%%.11%3.9%.3%.5%.3%47.3+3.3+6.17+%24+.47+^^%%3+4%..29%+%%,%12.4%+31.^.^33.+..3^3%1+
X4+%%^^%13+%.%..16%..17%.5%46.3+..5+4.10+%%42+%%36+%%^%%4+3.++3%++%%+%%+%++5%3+9%,%12.3%15.^11.^.^.^38.+..%.%_1%
X%%4+%^^13+%%.%%.16%.22%48.+4.5+..8+%14+%%30+%38+%3^%++..5+%4+5%+%+%5+7%+3%,%13.%22.^.^.^48.%._1^
X.^^%%++%^%^13+%%.%.22%.7%+4%+%..%50.3+5.4+%18+%63+^5+^%^++^^19+3%7+5%+3%,.%%11.%76.%%1.
X+.++^3+^%^18+%.5%3.14%4+10.+%%+52.+.4+%++%12+4^38+~~23+3^5+4^21+%^%9+%%++4%,.%%89.2%
X4.+^3+%%^^20+%+5.+12%3+..+%%+.%3.++%%+50.17+^^4+^4+^18+.17+3~24+^^8+^^19+%^%8+%%4+3%+..%91.
X..%,+^3+3%^19+%++..%4.++8%++3.+%%+6.6+50.11+6^+^^7+^^16+.8+4~6+~~24+^^30+%^9+%%3+4%3.%9.%81.
X3.%+^%4+^%^^21+5%3.++5%++..++4%++3.+58.9+6^+^^9+^^5+.++3,12+3,~+3~..3+~~9+4.~7+4^8+^^~~9+~+~15+%%3+3%+4.%90.
X3.++^6+^^%20+%%3+..++3,5+.3+4%+.+%%+60.++%%++^^6+,8+5^++4.3+,,10+4.,5~3.4+3~+4~+.3~3^3+5^7+^^5~6+~~+3~+~12+%%3+3%13.%82.
X4.%+^++%3+^%%^3+^19+..++..6+.3+%3+..%%63.3+%++^+^5+.,++^11+4.+.,11+5.5~+3.3+~~++3~+3~+6^++11^~+9~+~~+~~+~~13+%%4+%+5.++4.%%83.
X4.%+%%7+^^%^21+..3+.4+3.+%3+4.+57.3+^^+%^++^4+4.3+.,++^^+^+^5+10.++^^5+4.~+5~.+3~+~~++^^8+6^_4^22~15+%%6+6.+%++%86.
X5.3%++3~+^~+^^%+^^18+..5+..8+62.++3^4+^^+5.+3.3+..,+^^3+3^+12.++5^+4.,4~+3~+3~4+%4^++..++^^4_^^+22~16+%%++10.++%87.
X5.%%++8~,%%++^19+.3+3.10+62.^10+10.4+.,+3^6+3.4+5.6+^+4.,4~++4~6+%%3^++^^+^^3_^^+21~+~~14+%%++101.
X6.%+^+4~+3~+^^%3^32+64.++3^5+7.++4.4+.+^^++,,+.3+^+^^8+3^4+3.~+~++7~9+3^3+7^+22~10+..7+11.++88.
X6.%++^^~+^~^3~^++^_^25+%5+65.9+..+6.++5.+..,+^+5.8+^^+^++^++^^3+4.~+10~++8^++27~14+..++..3+12.+%88.
X8.3+^+~^~~^~+^~+3^23+%^%++,+47.+17.5+3^++16.+3.,+^+..4+^^~~+^++^+6^3+5.+10~4+3^__3^+12~^^3~3^3~^~~14+7.3+11.++88.
X8.3+^~~^~~^~~^~+^_^^13+,7+%^%3+.+49.+17.7+17.+4.^+..+.5+3^4+^++3^+^++5.~+~++9~3+^^__5^6~7^~7^18+,+5.3+9.3+88.
X10.3+^~~^~~^3~+3^13+,7+%^%4+70.+8.9+..++7.^5.+.+.++..++~+5~^^3+3^++~++~+7~6^3_15^_9^22+3.3+7.5+87.
X11.3+^~^~~^4~17+,5+%%^6+76.4+5^++13.++.+8.++~~+~5+^^7+12~3^__^4_17^_7^17+,,4.3+..10+87.
X12.4+~~^5~^~+^8+%^%++,5+%+%%5+70.++^5+5^4+5.~16.++..+3~+~~4+3^14+5^+8^_^_7^_13^18+,,4.+5.++.++90.
X15.+~~+~+3~^~^~10+%++,12+71.4+7^++5~+25.+4~++~4+^^5+5~3+7^3+3^4_^_9^_11^18+,8.++.++92.
X14.+..++3~+~^~~^~~9+%%,12+15.+47.+7.4+4^11~5+5.3+12.++6~5+^^%3+8~++^++^+~5+5^4_^_4^_^^_8^19+,8.++94.
X18.~,3~+3~+~~9+%%+,10+71.3+4^17~+5.5+5.++3.++8~4+^^%++8~+~~+~+~7+5^_^3_^__14^17+,+8.+95.
X18.~~.,4~^5~11+,10+71.3+^^19~7+9~3+13~3+^^%++~+8~+~4+~+~~4+6^8_4^_4^+^10+.7+,44.~58.
X19.~~,.+3~^4~8+3.+,.6,+%63.+7.++^36~5+^12~+..3^++10~3+6~7+5^_^__^3_8^%13+.5+103.
X16.~4.~~,.+3~+4~6+12.,++64.+.+3.41~+~~.^.12~3.^5+10~++6~8+17^%^+%18+7.+52.~41.
X21.3~,.~~^4~6+15.++67.+43~+~~..13~4.9+5~++6~9+%%15^%%++%15+103.
X24.~~,+~~^~~7+14.+%+66.+44~+~~..+13~7.4+5~++6~13+%+%^^%+%5^%^++%15+7.+95.
X25.~,,3~^~~6+15.%+.+63.47~+~~..13~.~3.+3.+3~+~4+3~16+%3+%^^%%^^%^%3+%+%12+73.~29.
X26.~~.,+~~^~~4+,18.,+61.48~+~~..9~+5~..~~+10.4~20+%++^%%3^4%15+.++..+16.+80.
X27.~~.,~+^~~^3+21.,+59.48~+~~3.+8~+8~3+9.~24+%^%+^%^3%+%+%10+3.+%100.
X33.++^^4+14.5+4.,+57.31~^15~+3~3.++5~^13~+9.9+%12+.%^%++%%^5%++%5+.+5.+79.%20.
X34.+^+^4+17.3+60.33~3^11~+5~3.+5~^14~10.++.++%+%10+4.+^%3+%%^%%5+,,+91.+18.
X35.%+^+^^++6.%3+9.4+57.36~^^9~+5~4.+3~^14~14.%13+5.%%3+%+5%3+96.%16.
X29.~5.%+3^+^++5.4%14.3+54.47~++4~4.18~14.%++%%8+7.+%3+5%3+,..%+94.+14.
X37.%+%++^3+3.4%10.++..6+.++,+47.48~+5~3.16~16.11+10.%3+6%++,..+%10.+82.++13.
X40.6%++5%24.,,46.48~+3~+~+3.+13~17.%9+11.%4+6%++13.++97.
X43.9%+27.+36.+8.+44~+~~++~4+4.12~18.+%7+12.+%.++7%++12.+%%95.
X49.+%^6%22.,,43.4+~+26~++~++4~3+~+~10+3.+3~3+~~22.+%4+18.%%4+3%++11.++22.+73.
X51.++^^+4%21.+,36.+5.6+~++~+~+20~+~+~++~3+~12+^++..+^4+25.+%4+18.%6+3%+11.++,94.
X53.3+4%22.,+42.7+~+~+~++5~+~3+~++~+6~++~16+3^++.3+29.%4+12.,5.%5+4%+13.+%20.+72.
X57.++%+13.,+6.+44.13+~14+~++5~18+4^+33.5+13.%4.%+.+%+4%+11.%+,.%91.
X58.+%+10.+.+,9.+43.53+3^++~6.~~3.+20.%4+13.,4.%+3.%+%%++13.%.%%90.
X59.%+%7.++^+,5+..+.+46.+%50+3^3+~..5~20.+4.%++14.%4.%5.%%++11.%,.++%90.
X61.+3.++..++^+,^9+47.+%%47+5^3+~~3+~~25.3+..%11.,4.%6.+12.%,.,+..+12.+76.
X62.%++%5+%^+^8+%++47.3%45+3^+^^8+~27.+..%%12.%3.+%17.%,3.,3%88.
X65.+..%++%^9+5%46.4%45+5^6+3~30.%+17.%+21.%,%%+7.+17.+,.,,57.
X70.%+%^^9+^4%47.5%4+%+3%+16%16+4^7+~~31.++18.%+15.%3.%,.+%26.,5.+,53.
X70.%^%^%9+%^3%+%+%+43.5%+4%5.18%15+^^6+3~48.%..+%+12.+%%+38.,55.
X71.%^++3%7+^%^4%,3%44.%12.%%+.%+%+12%3+3%5+~~5+5~48.3%.3%11.+3%+93.
X71.+^^5%+%%5+10%,60.22%3+~.+~~5+~~49.,%+%.+%%9.+%^%%94.
X71.%^^+7%6+10%,60.23%3+.++~6+51.,%%,.+%8.3%^%+82.,,9.
X70.%%^11%++12%+60.23%+^5+~3+~53.,3%.+5.++3%^3%+5.+36.,,10.+28.~,7.
X70.%%^+25%+,59.7%,+14%10+54.%.3%7.4%^^%%+..4%+34.,,+,,19.,17.,,7.
X58.+.+9.%+^14%+6%+5%+,%53.+3.7%,12%.6+^4+58.%^%+5.4%^3%+..%5.%5.%%.+24.,,25.3,20.
X70.+%^+20%3+3%,,+%+%54.7%,13%^++.7+59.%%+%%5.5%++..5%3.%3.3%49.,4.+20.
X70.,+^^18%+3,%%3,5%+%48.+4.6%,13%^++..5+61.%%^%%.%..+%%++%,..3%10.%%..4%+6.+..+31.,26.
X71.+^^+3%+12%+,,+%3,9%+3%51.5%,12%^++..3+^++62.3%+5.3,++,..%.%6.%%3.3%4^%%+65.
X71.+^^16%+21%++5.+44.%%,+,12%^3+.6+63.3%13.+.%%13.3%^^3%+6.%56.
X72.~^^+13%++13%+3%3+3%4+47.%+15%10+16.+48.%+13.+3.%12.,,%%3^%%+,,4%3.%51.
X73.~^^13%+13%++3%++4%4+48.,15%,3+%5+68.+.,,%+23.3,3%4^%+7.%,%21.+27.
X74.~^^+17%+7%4+3%+4%4+48.+14%+,4+%4+68.7+20.%..,8%^%9.,20.+27.
X75.~~^17%+5%6+%%++3%5+19.+28.3+12%+,,3+%%4+73.+%.+.+..,+.,%+..,,%,,4.,,3%3,3^%7.%,,.%44.
X16.~59.~~^^+14%+%%++%%6+%%++3%4+49.++12%3+,4+%4+80.+.,.+,..,.,8.3,4.,+^+10.%,17.+25.
X77.~^^15%++%%++%6+%3+%%5+50.14%6+,6+101.,,6.%11.%42.
X78.~~^^+12%4+%++%%4+%3+%%5+51.+11%++5%+,6+56.+32.%.%8.,%,,18.,40.
X79.+~3^6%3+3%4+%++%%7+%%4+51.%%+3%+%%+9%++,+3%++3.+4.+81.+%+3%,3.,%3,58.
X81.~4^++3%5+3%13+%%4+52.++3%4+%+%%+3%+%++,+4%+7.++80.3+3%,4.,%%3,40.+.+13.
X82.~6^+%%5+4%11+%%++%+52.3+3%++4%3+%+%4+4%++7.++76.%%.+%3+%.,..3,++%3,55.
X27.%55.~~3^.^^3%19+%++%%+33.+17.~3+%+%+3%4+%+%%5+%%++6.3+%75.4%6+%6,++%3,18.%35.
X85.~+^^+^+3%18+%++%%+52.~3+%%++3%++%+%%10+5.%+^+%73.+3%11+3,+~++3,19.%34.
X9.%78.~5^19+%3+%+52.~~15+%7+7.%+^+%73.~,8+~~5+,,~4+3,19.+32.
X89.~^_^^23+%+53.~~20+_8.4+%72.,4~3+6~5+~5+3,52.
X90.~^__^25+53.3~19+9.++^+%70.,,15~++~++~~4+3,19.+30.
X90.~^__^25+54.3~++~++~~11+9.%^++%8.+60.3~+16~+~~+3~4+3,12.++34.
X.+89.~^^_^20+^3+55.12~9+8.%%^+%7.+59.+~3+~+21~+~~3+3,14.+32.
X91.~^_^^19+^3+56.14~8+8.%^+%66.+~+3~+16~+~+4~++~3+3,46.
X91.+~^_^21+59.11~+~~7+9.%++67.3~+23~+~~+~+~3+3,44.
X91.~~^_^19+62.3~+7~+~~6+10.++66.~+4~+14~+11~3+~++,,44.
X92.~^__^18+63.12~6+12.+68.~+5~+14~+6~+~~+~5+,,42.
X92.~^_^^13+%%++64.11~7+80.5~+21~+7~+~3+,43.
X54.+38.~^_^13+%%3+64.10~7+82.~+26~+3~+~5+43.
X93.+3^18+65.6~6+^^++82.+~~+~~+17~+8~4+%++42.
X94.+^^18+67.5~7+^+84.++25~+3~+~~++^%+13.+27.
X94.^^18+68.~+~+~6+^++84.%++~+~~+16~+8~++%^+42.
X94.+^^17+70.~+~~8+85.%++6~+~~6+5~++4~+3~+%^%+41.
X94.++^16+71.+~9+87.3+~~+~+~9.6+3~+~+~++%3+41.
X87.+7.++^11+.3+72.10+87.%8+11.++.++~~+~4+%++42.
X95.+^^12+76.++94.%%++16.+.4+~5+%+%+42.
X95.++^13+196.+~5+%^++23.++17.
X95.+%^13+197.+~4+^^%+24.+17.
X95.+%^^%11+198.10+24.++15.
X95.+^%^%7+205.+.++28.+%+13.
X96.+%^%%7+236.++%13.
X96.%^^%6+239.%+13.
X97.+%^%3+~~+209.%++24.++.+13.
X97.^.^%%+~~++209.%^+23.3+15.
X99.^^%3+~+211.%+21.+^++15.
X99.^^%++~++233.^^+17.
X99.^_^%+~~234.^^++16.
X98.%,^%4+235.++17.
X99.,^^%4+107.+126.%18.
X99.3^%4+253.
X99.%,^%4+253.
X100.^^%%++139.+114.
X100.%,^^%%+8.+.+242.
X102.^^%%+253.
X104.,^,,^251.
X104.%,,^^%%249.
X106.^3%30.+219.
X360.
X360.
X360.
X360.
X360_
END_OF_lib/earth1.map
if test 7849 -ne `wc -c <lib/earth1.map`; then
    echo shar: \"lib/earth1.map\" unpacked with wrong size!
fi
# end of overwriting check
fi
if test -f xconq.ms -a "${1}" != "-c" ; then 
  echo shar: Will not over-write existing file \"xconq.ms\"
else
echo shar: Extracting \"xconq.ms\" \(29125 characters\)
sed "s/^X//" >xconq.ms <<'END_OF_xconq.ms'
X.TL
XLIBERATING THE WORLD (Made Simple)
X.AU
XStan Shebs
X.AI
XDepartment of Computer Science
XUniversity of Utah
X.AB
XThis is an in-depth document on version 5 of the \fIxconq\fP
Xfamily of programs.
XVersion 5 is quite different from earlier versions;
Xplayers familiar with those should read everything in here,
Xespecially the section on important changes.
XAll aspects of play are covered.
XDetails on customization may be found in a companion document.
X.AE
X.SH INTRODUCTION
X.PP
X.I
XWar is a matter of vital importance to the State; the province of life
Xor death; the road to survival or ruin.  It is mandatory that it be
Xthoroughly studied.  -- SUN TZU (ca 400 BC)
X.R
X.LP
XWelcome to \fIxconq\fP,
Xa chance for you to free the world from domination by evil empires.
XIt is similar to previously distributed empire-building games,
Xbut with many more features.
XThe same basic game is available with several different interfaces.
X\fIXconq\fP
Xis a fully X-based multi-player game, allowing almost any combination
Xof human and machine players, and opening up remote X windows as necessary.
XThere is also a restricted variant \fIcconq\fP
Xthat needs the curses terminal package only, but allows only one human
Xplayer.
X.LP
XIn the standard game,
Xyou start with one city and no knowledge of the world beyond your
Ximmediate vicinity.  You must then explore, contact, and win wars against
Xall the other players, who are trying to do exactly the same things to you!
XThis is made harder by the limited information that the game supplies;
Xexcept for the vicinity of your own possessions (and for certain type of
Xunits), the entire view
Xis out-of-date, and you won't see enemies until they're close by.
X.LP
XThe "standard game" is played on a small (usually 60x30 hexes) randomly
Xgenerated map, against one machine player.  Your first
Xcity will automatically start building your first military unit (usually
Xinfantry).
XWhen it is ready, the starting city will be overwritten by a picture of
Xthe unit, which is itself surrounded by a box-shaped
Xcursor (the "unit cursor").
XThe mouse (or standard Unix direction keys) may then be used to designate
Xany location for that unit to move to.  This movement may take several
Xturns, or the unit may stop before it gets there, usually because it is
Xadjacent to something unfriendly.  To attack, just direct the unit to
Xmove into a hex that shows another unit, and see what
Xhappens (flashes, and maybe a notice at the top of the screen).
XWhen you capture some kinds of units (usually cities),
X\fIxconq\fP will ask you what sort of units
Xyou want that unit to produce; '?' will display the possibilities.
X.LP
XIn general, '?' will always work.  When typed during normal movement,
Xyou will get a series of help screens, including commands, news, and
Xunit characteristics. (This info may be written into printable files if the
Xinterface doesn't have the screen space necessary.)
X'/' will tell you what you are looking at on the screen.
X.LP
XThe foregoing is sufficient to play - just jump in and go!
XAfter a few games, it should be clear what your units can and cannot do.
XThe game will end automatically when your opponents are no longer capable
Xof winning (either they have nothing left or they have given up).
XThe following sections contain many boring details, and should be referred to
Xfor answers to questions.
X.SH
XDEFINITIONS OF TERMS
X.LP
XAn xconq game involves several \fIsides\fP,
Xeach of which has a human or machine player associated with it.
XSides may be enemies, allies, or neutral with respect to each other,
Xoften start out in a hexagonal \fIcountry\fP.
XA side owns a number of \fIunits\fP,
Xwhich includes the cities and the armed forces of that side.
XUnits may also be \fIneutral\fP, and belong to no side
X(this is different from being on a neutral side).
XUnits may be inside other units, in which case the one inside is in
X\fIoccupant\fP, and the other is a \fItransport\fP (even if it can't move).
XUnits always have \fIorders\fP that they follow, even when they appear
Xto be under manual control.  There are also \fIstanding orders\fP that
Xget passed to occupants automatically.
XThe game is divided into a number of \fIturns\fP,
Xduring which each side gets to move some or all of its units.
XAll the action happens over a \fImap\fP of a real or imaginary world that is
Xdivided into hexagonal shapes usually called \fIhexes\fP.
XEach hex has a \fIterrain\fP assumed to cover the entire hex.
XIn some games, hexes also have a \fIpopulace\fP belonging to some side.
XTerrain on the map can produce \fIresources\fP,
Xwhich are natural items ranging from water and food to gold and weapons;
Xresources being carried by a unit are also called \fIsupplies\fP.
X\fIScenarios\fP are predefined games that set up maps, sides, units, and
X\fIwin/lose conditions\fP, which define the circumstances under which
Xone or more sides win or lose in the scenario.
X.LP
XThe numbers and kinds of units, resources, and terrain are not built in;
Xthey are defined by a historical (or ahistorical!) \fIperiod\fP.
XThis means that the following sections will be somewhat vague on specific
Xunits and behaviors, since
Xthe information applies to times ranging from Ancient Greece to Star Wars.
XLater sections will describe some of 
Xthe periods that have been developed so far;
Xin addition, complete online help is available on the period in effect.
X.SH
XTHE WORLD
X.PP
X.I
XGeography defines the background to conflict.  Gold mines are usually in the
Xmountains, far from the sea.  Islands tend to be left alone, unless they
Xare on a direct path somewhere else.  A seacoast town can be strategically
Xuseless if its approach is through shallow water.  Attention to terrain
Xand its effect on one's units can make the difference between
Xwinning and losing.
X.P
X.LP
XThe world map on which you play is a cylinder of variable height and diameter.
XAlthough it is always displayed as a rectangle, you can actually
Xcircumnavigate the world.  The most northerly and southerly
Xrows of hexes are out of bounds.
XSizes can range from 20x20 "quicky" maps to the 
XEarth at 1 degree resolution between
X60 north and 60 south - no less than 360 by 120 hexes! 
XWhen starting up, you have the
Xchoice of several maps of real areas, depending on the period, or by
Xdefault you get a randomly-generated 60x30 map. You can get other sizes
Xfrom about 10x10 up to whatever your machine's memory can hold,
Xby using the \fB-M\fP option on the command line.
XThe \fB-m\fP command line option loads a named map,
Xand the \fB-x\fP option may also offer a menus of maps to use.
XPredefined maps usually have their own documentation, which is displayed
Xon one of the help screens.
X.LP
XEach individual hex of the world contains one kind of terrain,
Xwhich is assumed to more-or-less cover the entire hex.
XThe exact set of terrains depends on the historical period; the set
Xbelow is from the standard period, and is actually shared by many
Xperiods.
XMonochrome \fIxconq\fP uses icons for each type of terrain, which cannot
Xpossibly be described verbally, so use the help commands to decipher them.
X.IP
XSea (dark blue) is assumed to be deep enough for any ship.  Armies can't
Xwalk on water.
X.IP
XShallows (light blue or cyan) include shoals, reefs, rivers, and any
Xother sort of shallow water.  They restrict movement of ships and
Xmay entirely prevent passage of the largest ships.
X.IP
XPlains (light green) are generally flat and hospitable areas.
XThey usually offer no impediments to movement.
X.IP
XForest (dark green) is dense forest or jungle, and may hinder movement for
Xsome kinds of units.
X.IP
XSwamps (gray) are half water and half land, and impassable to almost
Xeverybody.
X.IP
XDesert (yellow) ranges from Saharan sands to Sonoran cacti.  It is always
Xinhospitable but fast to move through - think of armor in North Africa.
X.IP
XMountains (brown) are relatively barren and at higher elevation, thus are
Xalso inhospitable to troops.
X.IP
XIce (white) is deep snow, ice, and glaciers.  Only specially equipped
Xground units can pass over it, although most aircraft can fly over.
X.IP
XVacuum (black) is outer space, included for the purpose of doing futuristic
Xperiods.
X.LP
XEach hex is adjacent to six others, and there is no special border to cross.
XBy default, hexes represent areas about 100 km on a side, although many
Xmaps have larger or smaller scales.
X.LP
XRandomly generated maps vary in their "roughness", and in the percentages
Xof each kind of terrain.  These properties also depend on the period, and
Xit is worthwhile to have a general idea of the values.  Percentage coverage
Xis simple (for instance, the earth is 70% covered by water), but roughness
Xis more subtle; essentially the "jagginess" of the terrain.  Very rough
Xterrain has lots of sharp peaks and small islands, while smooth terrain
Xhas large flat continents.
X.LP
XSIDES
X.PP
X.I
XPolitics provides the context for war; the war being a result of failed
Xpolicy.  The leader of a country is faced with the problem of achieving
Xcertain goals, either externally- or self-imposed.  Diplomacy can sometimes
Xaccomplish the desired outcome, and is much cheaper to boot.  When it fails,
Xone country or another declares war, and any alliances immediately broaden
Xits scope.  Declaring peace again is much more difficult...
X.R
X.LP
XSides in the game can be allies or enemies in various combinations.
XAny two sides can form a formal alliance; human players do it by sending
Xthe message "alliance" to each other using the message command (see below).
XMachine players
Xare "aware" of their relative incompetence, and will usually ally with each
Xother (except in the case of a machine player attached to a display, so as
Xto facilitate debugging).
XPlayers may become neutral or declare war by sending the messages "neutral"
Xand "war" to another side.
XScenarios may sometimes set up particular patterns of alliances, although
Xthere is nothing to prevent the players from changing them around during
Xthe game.
XIf all the sides left in a game are allied, then it automatically ends.
X.LP
XSome displays distinguish alignments by using the same colors for
Xallies as for yourself, while painting neutrals and enemies in distinctive
Xcolors.  For others, you just have to remember who is on whose side.
X.LP
XNames of sides come from a scenario or are randomly generated from a list
Xof names, depending on period.  If the period doesn't define any names for
Xsides, then the list will be 100+ contemporary names (including Botswanans
Xand Peruvians).
XPlayers may also rename themselves, using a command (see below).
XSince it is usually hard
Xto remember which player has which name, many mentions of sides include
Xthe display that the side is using (or nothing if a machine player), or
Xsometimes the number of the side (especially for input).
X.LP
XWhen a side loses, for whatever reason, units are either destroyed or made
Xneutral (depending on unit and period).  In the standard period, infantry
Xis destroyed, while cities become neutral (thus easy pickings for the
Xremaining players who get to them the quickest).
X.LP
XInformal
Xalliances frequently happen in games involving more than two people, so
XI have a few words of advice.  First, an alliance between two of the
Xplayers is almost certain in a three-person game, and inevitably
Xresults in the "odd man out" being quickly defeated.  In four-person
Xgames, the alliances should be decided after looking at the map via "-v",
Xso that one pair is not hopelessly separated.  Five or more players is
Xgoing to be a free-for-all of formal and informal alliances.
XSome scenarios are designed with a particular number of players in mind;
Xhopefully they will also have some natural balance.
X.SH
XUNITS
X.PP
X.I
XWar is based on the application of force to the other side, using
Xwhatever is available; from spears and arrows to the high-tech equipment
Xavailable as a significant fraction of a nation's GNP.
X.P
X.LP
XUnits can be almost anything: armies, balloons, triremes, cavalry,
Xbattleships, bridges, headquarters, cities.
XUnits move around, attack other units, produce resources, 
Xand build more units, among
Xother things.  Individual units occupy entire hexes, and no other unit
Xcan enter that hex unless it can occupy or be occupied by the unit already
Xthere.
X.LP
XOnly some kinds of units can build other units,
Xat a rate depending on the period, the
Xunit being built, and the unit doing the building.
XThe first unit that is produced takes
Xsomewhat longer, and the very first unit built by a side can take even
Xlonger (research and development time),
Xbut then succeeding units come out at a constant rate.
XThere is no memory about production, so switching to a different type then
Xswitching back still incurs the extra startup time.
XMost units that do building will do it all the time, and only stop when
Xexplicitly directed to (such as cities), while others need to be directed
Xto build, and cannot move while doing so (such as engineers building a base).
X.LP
XOnce created, a unit moves according to its orders, and subject to various
Xconstraints - armies can't swim, ships can't walk, etc.
XUnits can sometimes be disbanded with a command (depending on the period),
Xby losing them
Xin battle, by running out of supplies, by being taken prisoner when a unit
Xis captured, or by garrisoning a captured unit.
X.LP
XEvery unit starts out with a
Xnumber of \fIhit points\fP representing its strength,
Xand possibly supplies of
Xfood, fuel etc that it carries around.
XSupplies are used up by movement, combat, and by just existing, and are
Xcreated by production on certain terrain types, or by transference from
Xsome other unit.
X.LP
XThere is only one situation under which several units
Xcan be in the same hex at once;
Xif one is a transport of some sort and the others are its passengers
Xor occupants.
XThe notion of "transport" and "occupant" is general, and covers
Xfighters on carriers, ships in port, bombs in bombers, and troops being
Xled by a general.
XOccupants board by moving
Xinto the hex occupied by the transport, but will refuse to go if the
Xtransport is full or can't carry that type of unit.  Getting on board
Xtakes a number of moves of that unit; if there are any left, it may move
Xoff or take some other action.
XTransports can also move over a occupant to take it on, but only if the
Xtransport can move on the terrain that the occupant is on.
XOccupants always move with the
Xtransport (that's what transporting is all about!),
Xbut may leave at any time if possible, either onto a valid terrain
Xor onto another transport.
XTo debark, just
Xmove the unit off (the cursor indicates that the occupant
Xand not the transport is to be moved).  Usually, you will want to put the
Xoccupant on sentry duty while moving the transport, and so must wake the
Xoccupants up before they can be moved again.
X.SH
XTHE GAME
X.LP
XGames may be predefined scenarios, which define the map, sides, and units,
Xor they may be randomly generated.  If randomly generated,
Xdepending on the period, you start with either a country-full of units
Xor just one, which may or may not have its production defined already.
XIf you start with one, the period may also define some neutral units
Xin your country, which should be captured as quickly as possible.
X.LP
XSometimes the map will be too small or have the wrong terrain, and then
X\fIxconq\fP will fail at placement and exit instantly.  There is not much
Xyou can do at that point except to try again or relax the constraints,
Xperhaps by reducing the number of sides or increasing the map size.
X(This can also be fixed by altering the period - see the customization
Xdocument for details.)  Since there is a lot of randomness in placement,
Xsecond tries are frequently successful, although tenth tries usually indicate
Xa real problem.
X.LP
XA turn consists of several phases, although only one actually involves
Xplayer interaction:
X.IP Spy\ Phase 5
XLeakage of information from one side to another.
X.IP Disaster\ Phase 5
XRevolts, surrenders, attrition, and accidents.
X.IP Build\ Phase 5
XConstruction of new units and repair of damaged ones.
X.IP Supply\ Phase 5
XProduction and distribution of resources.
X.IP Movement\ Phase 5
XAutomatic and manual movement of all units.
X.IP Consumption\ Phase 5
XDetails relating to supply usage during movement.
X.LP
XDuring the movement phase,
Xthe program iterates through all units, prompting each side to give
Xorders to any unit that is awake or becomes awake during the course of
Xits move.  One consequence is that you will not have a chance to change
Xorders, look around, or do anything else 
Xif no unit produces a unit and no units
Xwake up.  This speeds playing but can be annoying if you get overrun and
Xlose without ever getting a chance to respond (but do you deserve anything
Xelse for pursuing a "hands-off" management strategy?).  Sides that
Xlose are automatically cut out of the game.  Since one additional iteration
Xis needed to verify that somebody lost, the final winner will have to go
Xthrough an entire turn before the game will exit (doing the sentry command
Xon everything is easy and quick).
X.LP
XThe game ends when the win/lose conditions have been met; these vary
Xfrom scenario to scenario.
XFor a randomly-generated game, the end comes when no mutual enemies are left,
Xwhether by elimination or by peace.
XUsually this means
Xthat only one side is left alive, but multiple machine players (not
Xassociated with displays - the usual case) are always allied, and thus
Xmay win as a group.  This also means that a single member of the alliance
Xwill not resign until the position of the whole alliance is hopeless;
Xafter all, the WWII Allies included several brigades of Polish troops
Xafter Poland was overrun.
X.LP
XThe last player must type a key to close down the
Xwindows (this is so that they will stay up for everybody to look at).
XWhen the game closes down, the winners (if any) will be listed.
XIf the STATISTICS option has been set by the installer, \fIxconq\fP
Xwill write a file "stats.xconq" into the current directory.  This file
Xsummarizes some crucial statistics concerning combat performance, losses,
Xand other miscellany.  It is quite useful for rationalizing your
Xhumiliating defeat!
X.SH
XDISASTER PHASE
X.PP
X.I
XWar is inherently random.  Both military and civilian units desert,
Xget diseases, have accidents, defect, and surrender without a struggle.
XThese effects cannot be eliminated completely,
Xbut can be reduced by keeping one's forces out of hazardous situations
Xand by keeping morale up.
X.P
X.LP
XThree types of disasters can befall a unit during the disaster phase:
Xrevolt/surrender, attrition, and accidents.
X.LP
XRevolts and surrenders are really the same sorts of occurrence; a unit
Xchanges sides spontaneously, perhaps to neutrality, perhaps to the side
Xof a nearby enemy unit.  During every disaster phase, each unit makes
Xa revolt check.  The revolt chance is a hundredth percentage.
XWhen a unit revolts, it changes to its original side (whatever the
Xunit started out as - i.e. your initial units will never revolt).
XOccupants will either change over or be killed.
XAny construction will be cancelled, unless the scenario is one in which
Xconstruction changes are not allowed.
X.LP
XSurrender only occurs if a unit is
Xcapable of capture is present.  The capturing unit does not move.
XOccupants of the surrendering unit also change over or die.
XChance of surrender is increased by low unit morale.
X.LP
XThe chance of surrender can be greatly increased (depending on period)
Xby surrounding the unit completely.
XThis includes naval units
Xfor any sea hexes.  One of the surrounding units must be capable (even
Xif only a small chance) of capturing the unit by direct attack.
XThe siege is only in effect
Xin those turns where the unit is completely surrounded.
XWhen the unit surrenders, one of the "capture-capable" units will be randomly
Xpicked to accept the surrender, and things happen as for a direct assault
X(described below).  Note that if several sides are surrounding the same
Xunit, the selection is still random from among those sides, as long as the
Xside is an enemy.
X.LP
XAttrition is a "slow death" process applicable primarily to multi-hp
Xunits.  It takes away some number of hit points
Xeach time it occurs, and kills units only if they have no points left.
XAttrition is also specified in hundredths of a percent,
Xand depends on unit type and terrain type.
XMorale drops by 1 when attrition occurs.  A message will be displayed as well.
X.LP
XFinally, there is a chance for an accident to destroy a unit instantly and
Xtotally.  Like attrition, this depends on both unit and terrain type, and
Xis measured in hundredths of a percent.  If the accident occurs, the unit
Xis killed along with all occupants.  A message will be displayed.
X.SH
XBUILD PHASE
X.PP
X.I
XSustained efforts in a war depend vitally on the replacement and
Xrepair of forces destroyed or damaged in combat.  In total war,
Xthe production base constitutes a chief strategic target, to be
Xisolated or destroyed if possible.  Repair of units is also significant
Xsince a battle may result only in damage, but be successful nevertheless
Xif units must retire (as a cheaper alternative to new production).
XHistorically, battle damage has resulted in the termination of an
Xentire campaign.
X.P
X.LP
XDuring the build phase, units construct new units and repair damaged
Xoccupants (or themselves).
X.LP
XConstruction is straightforward; the schedule is decremented once/turn.
XWhen it has counted down to zero, the unit is created, and placed either
Xas an occupant of the builder, or the builder is made to occupy the new
Xunit.  If neither alternative works (perhaps because the builder is full
Xalready), then completion is postponed, and attempted on the next turn.
XThis will be repeated indefinitely.  If the new unit cannot be placed at
Xall, it is thrown away.  If the period specifies that the builder is to
Xguard the new unit, then the builder will be assigned to garrison the new
Xunit, and is destroyed.
X.LP
XRepair happens automatically if the damaged unit contains or is contained by
Xanother unit
Xcapable of repairing, or if the unit can repair itself.
XThe repair rate is depends on both the repairer and repairee,
Xand can happen no faster than one hp/turn.
X.SH
XSUPPLY PHASE
X.PP
X.I
XThe Allies floated to victory on a sea of oil.  -- LORD CURZON.
X.P
X.LP
XResources themselves are basically inanimate material that come in varying
Xamounts and are governed by conservation laws.  They can be produced,
Xmoved around, and consumed during various activities.
XResources originate either as supplies carried by units at the outset,
Xor more typically, through production by units.  Production rate
Xdepends on unit, resource, and terrain types, and is unaffected by
Xside changes, combat, or anything else.  Produced resources go into
Xthe producing unit's storage.
X.LP
XExcess production is discarded, unless it can be unloaded into the
Xproducer's occupying units, or distributed to nearby units via
X\fIsupply lines\fP.  Supply lines automatically exist between units
Xthat are close enough (as decreed by the period), and there is no
Xneed for explicit manipulation.
X.LP
XUnits consume their supplies, both in the course of existence,
Xand by motion/combat.
XThe rate depends on period and unit type; it consists of an overhead
Xconsumed each turn without fail, and consumption for each hex of movement.
XThe total is a max, not a sum, since units with a constant consumption
Xrate are not likely to need additional supplies to move (consider foot
Xsoldiers who eat as much sitting around as they do walking).
XSupplies may also be consumed for production and repair, again depending
Xon period and unit types, but this consumption happens during the build phase.
XConsumption is not affected by the situation of the consuming unit;
Xarmies in troop transports eat just as much as when in the field.
X.LP
XSupply line length depends on the period and the units on both ends,
Xbut is not affected by the intervening terrain.
XSupply redistribution is managed by logistics experts, who are ignorant
Xof the war effort and seek only to even everything out.
XThe redistribution method is rather adhoc; units try to get rid of all
Xtheir excess supply, and try to take up supply from other units within
Xsupply range.  Each direction is controlled independently, so for instance
Xairplanes can get automatically refueled from a nearby city, but not from
Xeach other.  No unit will transfer all of its supply via supply lines.
XNormally units in the same hex can exchange supplies, but some periods
Xcan disable this behavior, so that explicit transfer using the give and
Xtake commands is always necessary.
X.SH
XMOVEMENT AND COMBAT
X.LP
XThe movement phase is the one in which all the action happens.
XAt its outset, the phase computes the number of moves available to
Xeach unit.  This value is essentially the maximum of the unit's moves
Xon each type of terrain.  The movement phase continues until all these
Xmoves have been expended in some way or another.
X.LP
XSome periods may define a small chance of random movement, in which the
Xunit moving actually goes in some other direction than that intended.
XThis is a potentially dangerous occurrence, since the unit will be
Xdestroyed if the hex is impassable or contains another unit (whether
Xor not the other unit can take the moving one as an occupant).
X.LP
XAll combat occurs during the movement phase.
XBattles happen when one unit attempts to move onto a hex occupied by
Xan unfriendly unit.
XIn most periods, each unit attacks the other equally well, but if
X"counterattack" is not enabled, then the defender just has to sit and
Xtake the punishment.
XThe outcome
Xis determined independently for each unit, based on a probability table;
Xthis means that both draws and mutual damage/destruction are possible.
XThe odds are the same whether a unit is attacking or being attacked.
XAmmunition may be expended by each unit in each combat - if the ammo is
Xgone, then the attacker will not attack and the defender cannot defend itself.
XThe results are announced both by a message and by some flashes on the
Xscreen (the size of the flash corresponds to damage seriousness).
XDamage is assessed using hit points, and if the hit points are zero, the
Xunit is destroyed, along with any occupants.  Typically armies have only
Xone hit point each, so they are destroyed if hit.
XUnits with multiple hit points may be \fIcrippled\fP if their hit points
Xdrop below a period-specified level.  Crippled units move more slowly
X(in proportion to their damage), have reduced transport volume, cannot
Xrepair anything, and do not make progress on any construction.
XThe final outcome of combat
Xdepends on whether the defender was destroyed.  If so, the attacker will
Xmove into the defender's position (if possible), otherwise no movement
Xwill happen.
X.LP
XIf a unit
Xis hit sufficiently hard, that is
Xconsidered a "nuke" and you get more spectacular visual effects, plus
Xthe hex is converted into desert or something else desolate.
X.LP
XSome units are capable of capturing other units, with a probability depending
Xon the types of both units involved.  If the capture attempt is successful,
Xthe capturer will move into the hex if possible, either as occupant or
Xtransport.  In some periods, the capturer may be all or partially disbanded,
Xto serve as guards.
XThe regular attack as described above always happens first.
X.SH
XORDERS
X.PP
X.I
XA perennial feature of the highest level of command is its inherent
Xcomplexity.  Although the use of subordinates reduces the bewiderment
Xsomewhat, the commander-in-chief must still keep in mind hundreds of
Xapparently unrelated facts; the state of the weather, the past performance
Xof units, the current goals of the war, and many other things.
XIt is very important that lower-level units be able to operate on their
Xown as much as possible.
X.R
X.LP
XAlthough units have been said to "move", in actuality they follow orders,
Xsome kinds of which specify movement.  When you are moving a unit
Xhex-by-hex, it is following the order "Awake",
Xwhich just means that every turn it asks what to do next.
XThere are many kinds of orders.  Some, such as movement in a given direction,
Xor to a given place, take parameters, but all take a repetition, which
Xtells for how many turns the unit will carry out the order.
X(For some orders, the repetition is not particularly meaningful,
Xand is ignored.)
XRepetition is always specified as a prefix numeric argument to commands.
X.LP
XOrders that a unit can do include:
X.IP Awake 10
Xask for a movement or other command.
X.IP Sentry 10
Xsit at the present location as long as the repetition says.
X.IP MoveDir 10
Xmove in the given direction.
X.IP MoveTo 10
Xtry to move to the given location.
X.IP FollowCoast 10
Xattempt to follow a coastline.
X.IP FollowLeader 10
Xmove towards another given unit (which must be one of your own).
X.IP Patrol 10
Xgo back and forth between two points.
X.LP
XMost movement commands just give these orders to the unit currently being
Xprompted about.  In addition, a unit may be given "standing orders", which
Xwill be passed to any unit of a particular type entering or produced in that
Xunit.  This is useful for a variety of purposes, such as staging fighter
Xplanes up to the front lines or sending ships out on standard patrols.
X.so xconq2.ms
END_OF_xconq.ms
if test 29125 -ne `wc -c <xconq.ms`; then
    echo shar: \"xconq.ms\" unpacked with wrong size!
fi
# end of overwriting check
fi
echo shar: End of archive 10 \(of 18\).
cp /dev/null ark10isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 18 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0