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