This is the mail archive of the
xconq7@sources.redhat.com
mailing list for the Xconq project.
logistics game
- To: xconq7 at sources dot redhat dot com
- Subject: logistics game
- From: Jim Kingdon <kingdon at panix dot com>
- Date: Mon, 15 Jan 2001 16:40:57 -0500 (EST)
OK, here's my first cut at a logistics game which is based on the
standard game. I've played it a bit and to a first approximation I
achieved what I had in mind. Whether that actually makes for a good
game is a separate question :-).
I present it as diffs from the standard game, but the patched files
are supposed to go in log.g and logunit.g, not to replace standard.g
and stdunit.g.
--- standard.g Sun Dec 31 18:40:00 2000
+++ log.g Tue Jan 2 18:02:46 2001
@@ -1,7 +1,7 @@
-(game-module "standard"
- (title "Standard Game")
+(game-module "log"
+ (title "Logistics Game")
(version "7.3+")
- (blurb "The standard Xconq game, loosely based on WW II ca 1945")
+ (blurb "Like the standard Xconq game, but you need to establish supply lines")
(instructions "Take over the world before you get taken over!")
(variants
(world-seen false)
@@ -77,7 +77,7 @@
)
)
-(include "stdunit")
+(include "logunit")
(include "nat-names")
@@ -104,8 +104,6 @@
(title "")
(do last-side-wins)
)
-
-(set scorefile-name "standard.xcq")
(add u* see-terrain-if-captured 10)
(add town see-terrain-if-captured 50)
--- stdunit.g Fri Dec 8 23:34:02 2000
+++ logunit.g Mon Jan 15 13:26:32 2001
@@ -1,9 +1,9 @@
-(game-module "stdunit"
- (blurb "base module for standard game")
+(game-module "logunit"
+ (blurb "base module for log.g game")
)
-;;; New format version of the standard game. This file is just types and
-;;; tables, is not a complete game (see "standard" for that).
+;;; This file is just types and tables, is not a complete game (see
+;;; "log" for that).
(unit-type infantry (image-name "soldiers")
(help "marches around and captures things"))
@@ -23,14 +23,25 @@
(help "carries fighters and bombers around"))
(unit-type battleship (image-name "bb") (char "B")
(help "the most powerful ship"))
-(unit-type nuclear-bomb (name "nuclear bomb") (image-name "bomb") (char "N")
- (help "leveler of cities (and anything else)"))
(unit-type base (image-name "airbase") (char "/")
(help "airbase plus port"))
(unit-type town (image-name "town20") (char "*")
(help "smaller than a city"))
(unit-type city (image-name "city20") (char "@")
(help "capital of a side"))
+(unit-type farm (image-name "barn") (char "#") (help "produces food"))
+(unit-type refinery (image-name "refinery") (char "%") (help "produces fuel"))
+(unit-type ammo-factory (image-name "shell") (char "!")
+ (help "produces ammo"))
+(unit-type tanker (image-name "ca") (char "T")
+ (help "transfers food, fuel, and ammo"))
+;; need to rethink this. As it is now, roads aren't really important
+;; enough to make it all that important to bother (and armor is less
+;; important in that logistics prevent it from covering big distances,
+;; and one needs infantry around to build). Figure out some way to make
+;; roads more useful? Or something else along these lines?
+(unit-type engineer (image-name "worker") (char "e")
+ (help "builds roads"))
(define i infantry)
(define a armor)
@@ -41,24 +52,36 @@
(define t troop-transport)
(define cv carrier)
(define bb battleship)
-(define nuke nuclear-bomb)
(define / base)
(define * town)
(define @ city)
-
+(define # farm)
+(define % refinery)
+(define ! ammo-factory)
+(define T tanker)
+(define e engineer)
+
+; The danger in having a lot of materials is that they are redundant
+; with each other. It doesn't provide any challenge, just tedium.
+; My main goal in having as many as we do is to slow expansion.
(material-type fuel
- (help "basic supply that all units need"))
+ (help "basic supply that units need to move"))
(material-type ammo
(help "generic supply used in combat"))
+(material-type food
+ (help "basic supply that all units need"))
+
+;; I thiink that supply-on-creation defaults to zero, which is
+;; what I want.
(include "stdterr")
-(define ground (i a))
+(define ground (i a engineer))
(define aircraft (f b))
-(define ship (d s t cv bb))
+(define ship (d s t cv bb tanker))
(define cities (* @))
(define places (/ * @))
-(define movers (i a f b d s t cv bb nuke))
+(define movers (i a f b d s t cv bb tanker engineer))
(define water (sea shallows))
(define land (swamp plains forest desert mountains))
@@ -69,6 +92,9 @@
(ground water true)
(armor swamp true)
(places water true)
+ ;; We'll allow farms, refineries, or ammo-factories on most terrain
+ ;; albeit with productivity differences.
+ ((farm refinery ammo-factory) water true)
(ship land true)
(ship road true)
;; Only aircraft can deal with ice.
@@ -89,13 +115,12 @@
(add t capacity 6)
(add cv capacity 4)
(add places capacity (20 40 80))
+(add (farm refinery ammo-factory) capacity 5)
(table unit-size-as-occupant
;; Disable occupancy by default.
(u* u* 100)
- ;; Bombers can carry one infantry or one nuke.
- ((i nuke) b 1)
- ;; Transports can carry 6 armor or infantry.
+ ;; Transports can carry 6 armor, infantry, or engineers.
(ground t 1)
((f b) cv (1 2))
;; Bases can hold 10 of most unit types, but up to 20 fighters.
@@ -103,6 +128,12 @@
(fighter / 1)
;; City types have lots of capacity for everything.
(movers cities 1)
+ ;; Need to hold a moderate number of units or else it would be too
+ ;; hard to move through them to get somewhere.
+ ;; Maybe they should take up less than the whole cell?
+ ;; Problem with allowing occupants is that they may shield their
+ ;; occupants from attack too much.
+ (movers (farm refinery ammo-factory) 1)
)
;;; Unit-terrain capacities.
@@ -117,13 +148,17 @@
;; Allow aircraft to pass over towns instead of landing.
(aircraft t* 0)
(places t* 16)
+ ((farm refinery ammo-factory) t* 16)
)
;;; Unit-material capacities.
(table unit-storage-x
- (u* fuel ( 6 10 18 36 100 100 200 400 200 0 200 500 900))
- (u* ammo ( 6 4 3 3 20 10 20 40 40 0 100 200 400))
+ ;; this determines how long a unit can survive on its own
+ (u* food ( 6 10 6 18 100 100 200 400 200 200 500 900 200 0 0 500 6))
+ ;; this one is important for movers; it sets the range.
+ (u* fuel ( 6 10 18 36 100 100 200 400 200 200 500 900 0 200 0 500 6))
+ (u* ammo ( 6 4 3 3 20 10 20 40 40 100 200 400 0 0 60 200 0))
)
;;; Vision.
@@ -143,27 +178,21 @@
(table see-chance-adjacent
;; Submarines are always hard to see.
(u* s 10)
- ;; A bomb in a truck is rather small and inconspicuous.
- (u* nuke 10)
)
;;; Actions.
-(add u* acp-per-turn (1 2 9 6 3 3 2 4 4 1 0 1 1))
+(add u* acp-per-turn (1 2 9 6 3 3 2 4 4 0 1 1 0 0 0 2 1))
;;; Movement.
(add places speed 0)
+(add (farm refinery ammo-factory) speed 0)
;; Don't be too picky about mp usage.
(add u* free-mp 1)
-;; Aircraft should always be able to land, and this in conjunction
-;; with the entry cost will result in airplanes being able to land at
-;; any time during their time, but always having to wait until the
-;; next turn to take off again.
-
(add aircraft free-mp (9 6))
(table mp-to-enter-terrain
@@ -171,7 +200,7 @@
(a (swamp forest mountains) 99)
;; No special trouble to get on a road
;; (such as when using to cross a river).
- (a road 0)
+ (ground road 0)
(ground water 99)
(ship land 99)
;; Don't let ships use roads. This might seem unnecessary,
@@ -182,9 +211,10 @@
(ship road 99)
(u* ice 99)
(aircraft ice 1)
- ;; Armor take an extra ACP to cross a river; everyone else is unaffected
+ ;; In this game, armor and infantry can only cross a river if
+ ;; engineers build a bridge
(u* river 0)
- (a river 1)
+ ((i a) river 99)
)
(table mp-to-leave-terrain
@@ -203,7 +233,6 @@
(table material-to-move
(movers fuel 1)
- (nuke fuel 0)
)
(table mp-to-enter-unit
@@ -220,34 +249,16 @@
(table consumption-per-move
(movers fuel 1)
- ;; Nukes are "important", a country would never risk them running out.
- (nuke fuel 0)
)
;;; Construction.
-;; Nuclear weapons must be developed before they can be built.
-
-(add nuke tech-max 60)
-(add nuke tech-to-build 60)
-
-;; Only cities can develop nukes.
-
-(table acp-to-develop (@ nuke 1))
-
-(table tech-per-develop (@ nuke 1.00))
-
-;; Limit the amount of gain possible due to a concentrated effort.
-;; Note that this will only have an effect in games with many cities.
-
-(add nuke tech-per-turn-max 3)
-
;; Basically, units take about as many turns to complete as their cp.
-(add u* cp (4 7 8 16 10 16 12 30 40 20 5 1 1))
+(add u* cp (4 7 8 16 10 16 12 30 40 5 1 1 9 9 9 16 10))
(table acp-to-create
- (i / 1)
+ (i (/ farm refinery ammo-factory) 1)
(cities movers 1)
)
@@ -256,7 +267,7 @@
)
(table acp-to-build
- (i / 1)
+ (i (/ farm refinery ammo-factory) 1)
(cities movers 1)
)
@@ -301,38 +312,46 @@
(add (cv bb /) hp-recovery 0.50)
(add cities hp-recovery 1.00)
+(add (farm refinery ammo-factory) hp-recovery 1.00)
+
+;; Terrain alteration. The idea behind having a separate (expensive)
+;; engineer type and the cost is to make it hard to build roads.
+;; I'd kind of like to have a road take multiple turns to build but
+;; I don't think xconq can do that.
+(table acp-to-add-terrain
+ (engineer road 1)
+ )
+;; But the engineers need the ability to store that material.
+;; and do we want to extend their range that much?
+;(table material-to-add-terrain
+; (engineer fuel 50)
+; )
;;; Production.
(table base-production
- (ground fuel 1)
- ;; This is not too realistic, but otherwise keeping tanks fueled
- ;; is a major hassle. This is supposed to be a game, not an
- ;; exercise in logistics (play "empire.g" if you want that).
- (a fuel 2)
- (places fuel (10 20 50))
- (places ammo (5 10 20))
+ ; Cities, towns, and bases just transfer supplies, don't produce them.
+ (farm food 100)
+ (refinery fuel 100)
+ (ammo-factory ammo 30)
)
(table productivity
- ;; Plains are assumed to be settled and have fuel stocks.
- (i (swamp desert mountains) 0)
- ;; It *is* worthwhile to make players think about logistics
- ;; when operating in the desert.
- (a desert 0)
(/ land (0 100 50 20 20))
(* land (0 100 50 20 20))
(@ land (0 100 50 20 20))
+ (farm land (0 100 50 20 20))
+ (refinery land (0 100 50 20 20))
+ (ammo-factory land (0 100 50 20 20))
)
+;; Making it so that farms, refineries and ammo-factories do not
+;; consume food keeps life simple - that way they don't need any
+;; storage or in-length on food, which in turn prevents them from
+;; being supply depots (albeit minor ones).
(table base-consumption
- ;; Note that armor does *not* have a base consumption;
- ;; tanks that don't move don't need fuel. (Infantry
- ;; still needs fuel, because an infantry unit in real life
- ;; has a large number of personnel, and fuel represents
- ;; their general energy and food consumption.)
- ((i f b) fuel (1 3 2))
- (ship fuel 1)
+ ((f b) fuel (3 2))
+ (movers food 1)
)
(table hp-per-starve
@@ -341,6 +360,12 @@
(armor fuel 0.05)
(ship fuel 0.10)
(places fuel 0.05)
+
+ ((i f b) food 1.00)
+ ;; Immobilized tanks eventually rust...
+ (armor food 0.05)
+ (ship food 0.10)
+ (places food 0.05)
)
(table consumption-as-occupant
@@ -350,7 +375,7 @@
;;; Combat.
-(add u* hp-max (1 1 1 2 3 2 3 4 8 1 10 20 40))
+(add u* hp-max (1 1 1 2 3 2 3 4 8 10 20 40 20 20 20 2 1))
;; Units are generally crippled, moving at half speed,
;; at about 1/2 of hp-max, sometimes rounding up, sometimes down.
@@ -361,6 +386,7 @@
(add t speed-damage-effect ((1 50) (2 50) (3 100)))
(add cv speed-damage-effect ((1 50) (2 50) (3 100) (4 100)))
(add bb speed-damage-effect ((1 50) (4 50) (5 100) (8 100)))
+(add T speed-damage-effect ((1 50) (2 50) (3 100)))
(table acp-to-attack
;; Places can defend, but not attack.
@@ -370,19 +396,24 @@
;;; The main hit table.
(table hit-chance
- (i u* ( 50 40 20 15 20 20 30 20 9 40 80 60 40))
- (a u* ( 60 50 30 30 30 20 30 20 20 50 90 70 50))
- (f u* ( 15 25 60 70 20 30 20 50 40 80 100 100 100))
- (b u* ( 20 20 10 9 30 50 50 70 60 50 90 95 99))
- (d u* ( 5 5 10 5 60 70 60 40 20 0 99 90 80))
- (s u* ( 0 0 10 5 40 10 60 40 50 0 0 0 0))
- (t u* ( 20 5 10 5 40 40 40 30 9 0 0 0 0))
- (cv u* ( 30 20 40 10 30 30 40 20 20 0 0 0 0))
- (bb u* ( 50 50 50 20 70 50 90 50 90 0 100 100 100))
-; (nuke u* 100) ; doesn't really matter
- (/ u* ( 10 10 20 20 20 20 30 20 20 0 0 0 0))
- (* u* ( 30 20 50 40 40 0 30 20 20 0 0 0 0))
- (@ u* ( 50 40 70 60 50 0 30 20 50 0 0 0 0))
+; i a f b d s t cv bb / * @ # % ! T e
+ (i u* ( 50 40 20 15 20 20 30 20 9 80 60 40 10 10 10 20 50))
+ (a u* ( 60 50 30 30 30 20 30 20 20 90 70 50 20 20 20 30 50))
+ (f u* ( 15 25 60 70 20 30 20 50 40 100 100 100 15 15 15 20 15))
+ (b u* ( 20 20 10 9 30 50 50 70 60 90 95 99 20 20 20 30 30))
+ (d u* ( 5 5 10 5 60 70 60 40 20 99 90 80 5 5 5 60 5))
+ (s u* ( 0 0 10 5 40 10 60 40 50 0 0 0 5 5 5 60 5))
+ (t u* ( 20 5 10 5 40 40 40 30 9 0 0 0 0 0 0 30 0))
+ (cv u* ( 30 20 40 10 30 30 40 20 20 0 0 0 0 0 0 30 0))
+ (bb u* ( 50 50 50 20 70 50 90 50 90 100 100 100 40 40 40 80 50))
+ (/ u* ( 10 10 20 20 20 20 30 20 20 0 0 0 0 0 0 20 10))
+ (* u* ( 30 20 50 40 40 0 30 20 20 0 0 0 0 0 0 30 20))
+ (@ u* ( 50 40 70 60 50 0 30 20 50 0 0 0 0 0 0 40 30))
+ (# u* ( 10 10 20 20 20 20 30 20 20 0 0 0 0 0 0 20 10))
+ (% u* ( 10 10 20 20 20 20 30 20 20 0 0 0 0 0 0 20 10))
+ (! u* ( 10 10 20 20 20 20 30 20 20 0 0 0 0 0 0 20 10))
+ (T u* ( 20 5 10 5 40 40 40 30 9 0 0 0 0 0 0 30 5))
+ (e u* ( 50 40 20 15 20 20 30 20 9 10 10 10 10 10 10 20 50))
)
(table damage
@@ -398,6 +429,11 @@
(bb cities (3 4))
)
+;; Note that I do not allow capturing farms, refineries, and ammo-factories.
+;; This is because if you can, then starting to take over the enemy's
+;; territory solves your logistics problems. It's an easy way out.
+;; Similarly, they are intended to be relatively difficult to destroy
+;; although I'm not sure I have that balance quite right.
(table capture-chance
(i places (70 50 30))
(a places (90 70 50))
@@ -433,7 +469,7 @@
(i places 80)
(a places 60)
; bases benefit more from protection.
- (ground / (50 40))
+ ((i a) / (50 40))
)
;; Combat requires ammo, and uses it up.
@@ -442,27 +478,6 @@
(table hit-by (u* ammo 1))
-;;; Detonation.
-
-;; Nukes work by detonation rather than by conventional attack actions.
-
-(add nuke acp-to-detonate 1)
-
-(add nuke hp-per-detonation 1)
-
-(table detonation-damage-at (nuke u* 60))
-
-(table detonation-damage-adjacent (nuke u* 1))
-
-(table detonation-terrain-damage-chance
- (nuke (plains forest) 100)
- )
-
-(table terrain-damaged-type
- (plains desert 1)
- (forest desert 1)
- )
-
;;; Disbanding.
;; This does movers in one shot except battleships, which historically
@@ -490,18 +505,31 @@
(table out-length
;; Net consumers of supply should never give any up automatically.
- ((i a b f nuke) m* -1)
- ;; Cities and towns can share things around.
+ ((i a b f) m* -1)
+ ;; I thought about (tanker m* 3) and likewise for in-length, the idea
+ ;; being that you'd build whole fleets of them, but that is probably
+ ;; a bit excessive.
+ (tanker m* 6)
+ ;; Cities, towns, and bases are good at sharing things around.
(/ m* 6)
- (cities m* 12)
+ ;; In the standard game this is 12, but the problem is that if you are
+ ;; capturing the enemy's towns, there is a good chance the one you
+ ;; captured will be within 12 hexes of one of your towns. I'd rather
+ ;; make you use a tanker or build some bases or something (this *is*
+ ;; a logistics game).
+ (cities m* 6)
+ (farm food 6)
+ (refinery fuel 6)
+ (ammo-factory ammo 6)
)
(table in-length
;; Supply to ground units can go a couple hexes away.
(ground m* 3)
+ (tanker m* 6)
;; Cities and bases can get their supplies from some distance away.
(/ m* 6)
- (cities m* 12)
+ (cities m* 6)
)
;; Fate of units when a side loses.
@@ -518,20 +546,17 @@
;;; Scoring.
;; Most units aren't worth much, but ground units can capture
-;; cities, carriers and battleships are powerful, and nukes are
-;; devastating, especially when stockpiled.
+;; cities, carriers and battleships are powerful.
(add u* point-value 0)
(add (i a) point-value 1)
(add (cv bb) point-value 1)
-(add nuke point-value 5)
(add cities point-value (5 25))
;;; Texts.
(set action-notices '(
((disband infantry self done) (actor " goes home"))
- ((disband u* bomb done) (actor " dismantles " actee))
((disband u* u* done) (actee " disbands"))
((destroy u* ground) (actor " defeats " actee "!"))
((destroy u* aircraft) (actor " shoots down " actee "!"))
@@ -552,6 +577,14 @@
;;; Initial setup.
(add cities start-with (5 1))
+;; This is a kludge whose purpose is to make the AI
+;; work. The AI isn't clever enough to build ammo-factories,
+;; farms, and refineries, at least in the game I tried.
+;; Even with bases in the standard game, it is odd.
+(add farm start-with 1)
+(add refinery start-with 1)
+(add ammo-factory start-with 1)
+
(set country-radius-min 3)
(set country-separation-min 16)
(set country-separation-max 48)
@@ -560,9 +593,12 @@
(table favored-terrain
(u* t* 0)
- (@ plains 100)
+ (@ land 20)
(* land 20)
- (* plains 40)
+; (* plains 40)
+ (farm plains 100)
+ (refinery plains 100)
+ (ammo-factory plains 100)
)
(table independent-density
@@ -576,6 +612,9 @@
(add land independent-people-chance 50)
+;; Now that engineers can build roads, might want to tweak these
+;; so that there are fewer roads at the start of the game. I'll
+;; leave it as is for the moment.
(table road-chance
(city (town city) (80 100))
(town (town city) ( 2 5))
@@ -591,9 +630,18 @@
(add town spur-chance 90)
(add town spur-range 2)
-;; A game's starting units will be full by default.
-
-(table unit-initial-supply (u* m* 9999))
+;; Give the player enough supplies to last until they can build their
+;; farms and refineries.
+;; I'd like to make them build all their own ammo, but the handling of
+;; supply low conditions is just too annoying. There's also the
+;; question of making them build an ammo factory before they capture
+;; independent towns, but I think that is a feature, not a bug
+;; (slightly less of a windfall to start near an independent town, for
+;; one thing).
+(table unit-initial-supply
+ (u* fuel 200)
+ (u* food 200)
+ (u* ammo 50))
;; Default doctrine.
@@ -603,7 +651,7 @@
)
(doctrine place-doctrine
- (construction-run (u* 99) ((carrier battleship) 3) (nuke 1)))
+ (construction-run (u* 99) ((carrier battleship) 3)))
(side-defaults
(default-doctrine default-doctrine)
@@ -611,21 +659,21 @@
)
(game-module (notes (
- "This game is the most commonly played one in Xconq. It"
- "represents units of about 1945, from infantry to atomic bombs."
- ""
- "Opinions differ about optimal strategy for this game. In general,"
- "blitzkrieg works, and can win the game in a hurry. The problem is to"
- "muster enough force before striking. One full troop transport is not"
- "enough; the invasion will melt away like ice cream on a hot sidewalk,"
- "unless"
- "reinforcements (either air or land) show up quickly. Air cover is very"
- "important. While building up an invasion force, airborne assaults using"
- "bombers and infantry can provide useful diversions, although it can be"
- "wasteful of bombers. Human vs human games on a 60x30 world generally"
- "last about 100 turns, usually not enough time or units to build atomic"
- "bombs or battleships, and not a big enough world to really need carriers,"
- "although bases for staging are quite useful."
+ "This game is based on the standard game, but requires more attention
+ "to logistics."
+; ""
+; "Opinions differ about optimal strategy for this game. In general,"
+; "blitzkrieg works, and can win the game in a hurry. The problem is to"
+; "muster enough force before striking. One full troop transport is not"
+; "enough; the invasion will melt away like ice cream on a hot sidewalk,"
+; "unless"
+; "reinforcements (either air or land) show up quickly. Air cover is very"
+; "important. While building up an invasion force, airborne assaults using"
+; "bombers and infantry can provide useful diversions, although it can be"
+; "wasteful of bombers. Human vs human games on a 60x30 world generally"
+; "last about 100 turns, usually not enough time or units to build atomic"
+; "bombs or battleships, and not a big enough world to really need carriers,"
+; "although bases for staging are quite useful."
)))
(add i notes '(
@@ -683,20 +731,13 @@
"Battleships are very effective against cities and armies,"
"at least the ones on the coast."
))
-(add nuke notes '(
- "Atomic bombs. The Final Solution; but they are not easy to use. A bomb"
- "takes a long time to produce, moves very slowly by itself, and is easily"
- "destroyed by other units. The plus side is instant destruction for any unit"
- "of any size! Bombs are imagined to be transported by a team of scientists,"
- "and can go on any sort of terrain without running out of supplies."
- ))
(add / notes '(
"A base serves as a combination camp, airbase, and port."
"Bases cannot build units, although they can repair some damage."
))
(add * notes '(
- "Towns are the staple of territory. They can build, repair, produce"
- "fuel and ammo, and serve as a safe haven for quite a few units."
+ "Towns are the staple of territory. They can build, repair,"
+ "and serve as a safe haven for quite a few units."
))
(add @ notes '(
"Cities are very large, powerful, and well defended. They are"
@@ -704,6 +745,29 @@
"and San Francisco are cities, Salt Lake City and San Antonio are towns."
"Yeah, San Antonio has a lot of people, but it's still insignificant,"
"nyah nyah.) A city is worth five towns, point-wise."
+ ))
+(add farm notes '(
+ "Fail to have enough farms and your units will starve."
+ "You'll want to start the game by building at least one."
+ ))
+(add refinery notes '(
+ "Units need fuel to move, so building at least one refinery"
+ "is a high priority."
+ ))
+(add ammo-factory notes '(
+ "An ammo factory builds the ammunition which you need to attack"
+ "(including to capture independent towns)."
+ ))
+(add tanker notes '(
+ "This lets you transfer supplies across the sea where the distance"
+ "is too great to just do it between cities, towns and bases directly."
+ "Can make the initial stages of exploring or colonizing another island"
+ "much more practical."
+ ))
+(add engineer notes '(
+ "The engineer has only one trick, but it can be a very useful one, and"
+ "that is to construct roads. Especially over rivers, which are otherwise"
+ "impassable by infantry and armor."
))
;(set unseen-color "orange")