Make AI less likely to stop building wonder
[freeciv.git] / data / experimental / terrain.ruleset
blob85e7ffe60f51b27bf88c671b2382240d19b32977
1 ; This is the experimental ruleset. See doc/README.experimental
2 ; for a detailed description.
4 ; Modifying this file:
5 ; You should not modify this file except to make bugfixes or
6 ; for other "maintenance".  If you want to make custom changes,
7 ; you should create a new datadir subdirectory and copy this file
8 ; into that directory, and then modify that copy.  Then use the
9 ; command "rulesetdir <mysubdir>" in the server to have freeciv
10 ; use your new customized file.
12 ; Note that the freeciv AI may not cope well with anything more
13 ; than minor changes.
15 [datafile]
16 description="Experimental terrain data for Freeciv"
17 options="+Freeciv-2.6-ruleset"
19 [control]
20 ; Names for custom terrain flags. There can be up to 8 of these.
21 ; name          = rule name; In some circumstances user may see this
22 ;                 as part of some sentences, so try to make it descriptive
23 ;                 and sensible.
24 ; helptxt       = displayed in the help for terrains with this flag (optional)
25 flags =
26   { "name", "helptxt"
27     _("Oil"), _("Has Oil Well instead of Mine.")
28     _("NoPollution"), _("No Pollution nor Fallout appear here.")
29   }
31 [parameters]
33 ; Percentage of "land" tiles required to be adjacent to a water tile before
34 ; it may be "reclaimed" into a land tile (0-101; 0=anywhere, default 101=nowhere)
35 ocean_reclaim_requirement = 30
37 ; Percentage of "water" tiles required to be adjacent to a land tile before
38 ; it may be "channeled" into a water tile (0-101; 0=anywhere, default 101=nowhere)
39 land_channel_requirement = 10
41 ; Percentage of unfrozen tiles (no "Frozen" flag) required to be adjacent
42 ; to a frozen tile before it can thaw (0-101; 0=anywhere, default 101=nowhere)
43 thaw_requirement = 0
45 ; Percentage of frozen tiles ("Frozen" flag) required to be adjacent to an
46 ; unfrozen tile before it can freeze (0-101; 0=anywhere, default 101=nowhere)
47 freeze_requirement = 0
49 ; Bodies of water up to this size are considered freshwater lakes, if there is
50 ; also terrain type(s) with flag "FreshWater" in the ruleset.
51 lake_max_size = 14
53 ; How many native tiles first startunit must be able to reach.
54 ; 0 to disable check.
55 min_start_native_area = 0
57 ; How many fragments each movement point has.
58 ; For example road movement costs are relative to this.
59 move_fragments = 9
61 ; How many move_fragments IgTer unit movement costs
62 igter_cost = 3
64 ; Whether diagonal movement has increased cost
65 ; The cost increase is more accurate with larger values for move_fragments
66 pythagorean_diagonal = FALSE
68 ; There is no resources in the middle of the oceans, only near coast
69 ocean_resources = FALSE
71 ; /* <-- avoid gettext warnings
73 ; The individual terrain types, one per section.
74 ; Roughly sorted by identifier.
75 ; The actual tag used (the * in [terrain_*]) must be unique for each terrain,
76 ; and may be used in debug output when reading this file.
78 ; Notes:
80 ; name                 = translatable name as seen by user; if "unused", it is
81 ;                        not used, but is included for conversion and/or the
82 ;                        editor.
83 ; rule_name            = (optional) name for savegames, rulesets etc; if not
84 ;                        present, 'name' is used. Since the name used in
85 ;                        savegames must not change, use this when renaming a
86 ;                        terrain after a ruleset has been released.
87 ; graphic              = preferred graphic; Tilespec [tile_*] section
88 ;                        with 'tag' matching this will be used.
89 ; graphic_alt          = alternate graphic. When no tilespec 'tag' matching
90 ;                        preferred graphic is not found, this will be used.
91 ;                        Otherwise may be "-"
92 ; identifier           = single-character identifier used in savegames. This
93 ;                        must be unique for each terrain.
94 ; class                = Terrain class terrain belongs to: "Land" or "Oceanic"
95 ; movement_cost        = in whole movement points, not move_fragments;
96 ;                        typically 1 to 3
97 ; defense_bonus        = percent added to defense; typically 0% to 200%
98 ; food                 = normal food production
99 ; shield               = normal shield production
100 ; trade                = normal trade production
101 ; resources            = list of possible resources on this terrain
102 ; road_food_incr_pct   = percent of road food_incr applied to this terrain
103 ; road_shield_incr_pct = percent of road shield_incr applied to this terrain
104 ; road_trade_incr_pct  = percent of road trade_incr applied to this terrain
105 ; base_time            = time to build bases; if 0, cannot build any bases.
106 ;                        Nonzero values only affect bases with build_time 0.
107 ; road_time            = time to build roads; if 0, cannot build any roads.
108 ;                        Nonzero values only affect roads with build_time 0.
109 ; irrigation_result    = result of irrigation; one of:
110 ;                        "no"  -- cannot irrigate
111 ;                        "yes" -- can irrigate
112 ;                        terrain section -- irrigation changes to that terrain
113 ; irrigation_food_incr = increment to food if tile is irrigated
114 ; irrigation_time      = time to irrigate; if 0, cannot irrigate
115 ;                        Nonzero values only affect extras with build_time 0.
116 ; mining_result        = result of mining; one of:
117 ;                        "no"  -- cannot mine
118 ;                        "yes" -- can mine
119 ;                        terrain section -- mining changes to that terrain
120 ; mining_shield_incr   = increment to shields if tile is mined
121 ; mining_time          = time to mine; if 0, cannot mine
122 ;                        Nonzero values only affect extras with build_time 0.
123 ; transform_result     = result of transformation; one of:
124 ;                        "no"  -- cannot transform
125 ;                        terrain section -- transformation changes to that
126 ;                          terrain
127 ; transform_time       = time to transform; if 0, cannot transform
128 ; pillage_time         = time to pillage extra from the tile (0 = impossible)
129 ;                        Nonzero values only affect extras with removal_time 0.
130 ; clean_pollution_time = time to clean pollution (0 = impossible)
131 ;                        Nonzero values only affect extras with removal_time 0.
132 ; clean_fallout_time   = time to clean fallout (0 = impossible)
133 ;                        Nonzero values only affect extras with removal_time 0.
134 ; animal               = unit type that can appear as animal on the terrain
135 ; warmer_wetter_result = result of global warming for wet terrains; one of:
136 ;                        "no"  -- no change; does not count for warming
137 ;                        "yes" -- no change; counts for warming
138 ;                        terrain section -- warming changes to that terrain
139 ; warmer_drier_result  = result of global warming for dry terrains;
140 ;                        see warmer_wetter_result
141 ; cooler_wetter_result = result of nuclear winter for wet terrains;
142 ;                        see warmer_wetter_result
143 ; cooler_drier_result  = result of nuclear winter for dry terrains;
144 ;                        see warmer_wetter_result
145 ; native_to            = List of unit classes that can move here
146 ; flags                = General flags for this terrain. List taken from the
147 ;                        following, and/or any user flags defined above:
148 ;   - NoBarbs          = Barbarians will not be spawned here.
149 ;   - NoCities         = Cities may not be built or found on this terrain.
150 ;   - Starter          = Players will only be started on "Starter" terrain.
151 ;                        (Currently this cannot be Oceanic terrain.)
152 ;   - CanHaveRiver     = Set to 1 if this terrain can have river on it (the
153 ;                        actual chance of river generation is controlled
154 ;                        separately).
155 ;   - UnsafeCoast      = This terrain does not provide a safe voyage for
156 ;                        units with flag "Trireme"
157 ;   - FreshWater       = This terrain is used for small bodies of water.
158 ;                        If this becomes adjacent to non-FreshWater terrain,
159 ;                        the whole contiguous FreshWater area will be flooded
160 ;                        with the non-FreshWater terrain.
161 ;   - NotGenerated     = Map generator never places this terrain type. It can
162 ;                        be added from editor only, or by ingame events
163 ;                        (lua scripting)
164 ;   - NoZoc            = Units on this terrain are not generating or subject
165 ;                        to zoc
166 ;   - NoFortify        = Units cannot fortify on this terrain
167 ;   - Frozen           = Frozen/polar terrain. For water tiles, Frozen terrain
168 ;                        is generated near poles. Conversion between frozen
169 ;                        and unfrozen terrain can be controlled with
170 ;                        thaw_requirement/freeze_requirement, and Frozen
171 ;                        terrain is shown differently on the overview map.
172 ; property_*           = specific property % values used by mapgen. Most
173 ;                        terrains will have 0 for most values. Properties
174 ;                        other than ocean_depth are only used for land tiles.
175 ;  - mountainous       = degree to which this terrain is mountainous
176 ;  - green             = how much life this terrain has
177 ;  - foliage           = how much thick undergrowth the terrain has
178 ;  - tropical          = how "tropical" the terrain is (high temperature)
179 ;  - temperate         = how "temperate" the terrain is (med temperature)
180 ;  - cold              = how "cold" the terrain is (low temperature)
181 ;  - frozen            = how "frozen" the terrain is (very low temperature)
182 ;                        (does not necessarily have to have the "Frozen" flag)
183 ;  - wet               = how "wet" the terrain is (moisture)
184 ;  - dry               = how "dry" the terrain is (moisture)
185 ;  - ocean_depth       = the depth of an ocean, as an average level
186 ; color.r              = color of the terrain (red value)
187 ; color.g              = color of the terrain (green value)
188 ; color.b              = color of the terrain (blue value)
189 ; helptext             = optional help text string; should escape all raw
190 ;                        newlines so that xgettext parsing works
192 ; */ <-- avoid gettext warnings
194 [terrain_inaccesible]
195 name                 = _("Inaccessible")
196 graphic              = "inaccessible"
197 graphic_alt          = "arctic"
198 identifier           = "i"
199 class                = "Land"
200 movement_cost        = 0
201 defense_bonus        = 0
202 food                 = 0
203 shield               = 0
204 trade                = 0
205 road_food_incr_pct   = 0
206 road_shield_incr_pct = 0
207 road_trade_incr_pct  = 0
208 base_time            = 0
209 road_time            = 0
210 irrigation_result    = "no"
211 irrigation_food_incr = 0
212 irrigation_time      = 0
213 mining_result        = "no"
214 mining_shield_incr   = 0
215 mining_time          = 0
216 transform_result     = "no"
217 transform_time       = 0
218 pillage_time         = 0
219 clean_pollution_time = 0
220 clean_fallout_time   = 0
221 animal               = "None"
222 warmer_wetter_result = "no"
223 warmer_drier_result  = "no"
224 cooler_wetter_result = "no"
225 cooler_drier_result  = "no"
226 flags                = "NotGenerated", "NoPollution", "NoCities", "UnsafeCoast", "Frozen"
227 color.r              = 25
228 color.g              = 25
229 color.b              = 25
230 helptext             = _("\
231 No unit can enter this terrain, nor can any city work its tiles.\
234 [terrain_lake]
235 name                 = _("Lake")
236 graphic              = "lake"
237 graphic_alt          = "coast"
238 identifier           = "+"
239 class                = "Oceanic"
240 movement_cost        = 1
241 defense_bonus        = 0
242 food                 = 1
243 shield               = 0
244 trade                = 2
245 resources            = "Fish"
246 road_trade_incr_pct  = 0
247 base_time            = 1
248 road_time            = 0
249 irrigation_result    = "no"
250 irrigation_food_incr = 0
251 irrigation_time      = 0
252 mining_result        = "no"
253 mining_shield_incr   = 0
254 mining_time          = 0
255 transform_result     = "Swamp"
256 transform_time       = 36
257 pillage_time         = 1
258 clean_pollution_time = 3
259 clean_fallout_time   = 3
260 animal               = "None"
261 warmer_wetter_result = "no"
262 warmer_drier_result  = "Swamp"
263 cooler_wetter_result = "Glacier"
264 cooler_drier_result  = "Tundra"
265 native_to            = "Sea", "Air", "Missile", "Helicopter", "Trireme"
266 flags                = "NoCities", "NoBarbs", "NoPollution", "FreshWater", "NoZoc", "NoFortify"
267 property_ocean_depth = 0
268 color.r              = 46
269 color.g              = 120
270 color.b              = 182
271 helptext             = _("\
272 Lakes are substantial bodies of fresh water.\
275 [terrain_ocean]
276 name                 = _("Ocean")
277 graphic              = "coast"
278 graphic_alt          = "-"
279 identifier           = " "
280 class                = "Oceanic"
281 movement_cost        = 1
282 defense_bonus        = 0
283 food                 = 1
284 shield               = 0
285 trade                = 2
286 resources            = "Fish", "Whales"
287 road_trade_incr_pct  = 0
288 base_time            = 1
289 road_time            = 0
290 irrigation_result    = "no"
291 irrigation_food_incr = 0
292 irrigation_time      = 0
293 mining_result        = "no"
294 mining_shield_incr   = 0
295 mining_time          = 0
296 transform_result     = "Swamp"
297 transform_time       = 36
298 pillage_time         = 1
299 clean_pollution_time = 3
300 clean_fallout_time   = 3
301 animal               = "None"
302 warmer_wetter_result = "no"
303 warmer_drier_result  = "Swamp"
304 cooler_wetter_result = "Glacier"
305 cooler_drier_result  = "Glacier"
306 native_to            = "Sea", "Air", "Missile", "Helicopter", "Trireme"
307 flags                = "NoCities", "NoPollution", "UnsafeCoast", "NoZoc", "NoFortify"
308 property_ocean_depth = 32
309 color.r              = 0
310 color.g              = 46
311 color.b              = 137
312 helptext             = _("\
313 Shallow oceans are mostly found near coastlines, and are often rich\
314  sources of food and other resources.\
317 [terrain_deep_ocean]
318 name                 = _("Deep Ocean")
319 graphic              = "floor"
320 graphic_alt          = "coast"
321 identifier           = ":"
322 class                = "Oceanic"
323 movement_cost        = 1
324 defense_bonus        = 0
325 food                 = 1
326 shield               = 0
327 trade                = 2
328 ;resources            = "none"
329 road_trade_incr_pct  = 0
330 base_time            = 1
331 road_time            = 0
332 irrigation_result    = "no"
333 irrigation_food_incr = 0
334 irrigation_time      = 0
335 mining_result        = "no"
336 mining_shield_incr   = 0
337 mining_time          = 0
338 transform_result     = "no"
339 transform_time       = 0
340 pillage_time         = 1
341 clean_pollution_time = 3
342 clean_fallout_time   = 3
343 animal               = "None"
344 warmer_wetter_result = "no"
345 warmer_drier_result  = "no"
346 cooler_wetter_result = "no"
347 cooler_drier_result  = "no"
348 native_to            = "Sea", "Air", "Missile", "Helicopter"
349 flags                = "NoCities", "NoPollution", "UnsafeCoast", "NoZoc", "NoFortify"
350 property_ocean_depth = 87
351 color.r              = 0
352 color.g              = 33
353 color.b              = 129
354 helptext             = _("\
355 Deep oceans cover much of the world away from coastlines, and only\
356  seaworthy units (not including Triremes) can travel on them.\
359 [terrain_glacier]
360 name                 = _("Glacier")
361 graphic              = "arctic"
362 graphic_alt          = "-"
363 identifier           = "a"
364 class                = "Land"
365 movement_cost        = 2
366 defense_bonus        = 0
367 food                 = 0
368 shield               = 0
369 trade                = 0
370 resources            = "Ivory", "Oil"
371 road_trade_incr_pct  = 0
372 base_time            = 1
373 road_time            = 4
374 irrigation_result    = "no"
375 irrigation_food_incr = 0
376 irrigation_time      = 0
377 mining_result        = "yes"
378 mining_shield_incr   = 1
379 mining_time          = 10
380 transform_result     = "Tundra"
381 transform_time       = 24
382 pillage_time         = 1
383 clean_pollution_time = 3
384 clean_fallout_time   = 3
385 animal               = "None"
386 warmer_wetter_result = "Tundra"
387 warmer_drier_result  = "Tundra"
388 cooler_wetter_result = "no"
389 cooler_drier_result  = "no"
390 native_to            = "Land", "Big Land", "Air", "Missile", "Helicopter"
391 flags                = "NoBarbs", "NoCities", "CanHaveRiver", "Oil", "Frozen"
392 property_frozen      = 100
393 color.r              = 232
394 color.g              = 232
395 color.b              = 232
396 helptext             = _("\
397 Glaciers are found only in the most northerly or southerly\
398  reaches of the world.  They are very cold, and hence difficult to\
399  work with.\
400 "), _("\
401 Oil Wells can be built when Refining is known.\
404 [terrain_desert]
405 name                 = _("Desert")
406 graphic              = "desert"
407 graphic_alt          = "-"
408 identifier           = "d"
409 class                = "Land"
410 movement_cost        = 1
411 defense_bonus        = 0
412 food                 = 0
413 shield               = 1
414 trade                = 0
415 resources            = "Oasis", "Oil"
416 road_trade_incr_pct  = 100
417 base_time            = 1
418 road_time            = 2
419 irrigation_result    = "yes"
420 irrigation_food_incr = 1
421 irrigation_time      = 5
422 mining_result        = "yes"
423 mining_shield_incr   = 1
424 mining_time          = 5
425 transform_result     = "Plains"
426 transform_time       = 24
427 pillage_time         = 1
428 clean_pollution_time = 3
429 clean_fallout_time   = 3
430 animal               = "None"
431 warmer_wetter_result = "Grassland"
432 warmer_drier_result  = "no"
433 cooler_wetter_result = "Plains"
434 cooler_drier_result  = "Tundra"
435 native_to            = "Land", "Big Land", "Air", "Missile", "Helicopter"
436 flags                = "CanHaveRiver", "Oil"
437 property_dry         = 100
438 property_tropical    = 50
439 property_temperate   = 20
440 color.r              = 214
441 color.g              = 185
442 color.b              = 106
443 helptext             = _("\
444 Deserts are regions of extreme dryness, making agriculture and\
445  trade very difficult.\
446 "), _("\
447 Oil Wells can be built when Construction is known.\
450 [terrain_forest]
451 name                 = _("Forest")
452 graphic              = "forest"
453 graphic_alt          = "-"
454 identifier           = "f"
455 class                = "Land"
456 movement_cost        = 2
457 defense_bonus        = 50
458 food                 = 1
459 shield               = 2
460 trade                = 0
461 resources            = "Pheasant", "Silk"
462 road_trade_incr_pct  = 0
463 base_time            = 1
464 road_time            = 4
465 irrigation_result    = "Plains"
466 irrigation_food_incr = 0
467 irrigation_time      = 5
468 mining_result        = "Swamp"
469 mining_shield_incr   = 0
470 mining_time          = 15
471 transform_result     = "Grassland"
472 transform_time       = 24
473 pillage_time         = 1
474 clean_pollution_time = 3
475 clean_fallout_time   = 3
476 animal               = "None"
477 warmer_wetter_result = "Jungle"
478 warmer_drier_result  = "Plains"
479 cooler_wetter_result = "Swamp"
480 cooler_drier_result  = "Tundra"
481 native_to            = "Land", "Air", "Missile", "Helicopter"
482 flags                = "Starter", "CanHaveRiver"
483 property_cold        = 20
484 property_wet         = 20
485 property_foliage     = 50
486 property_temperate   = 50
487 color.r              = 43
488 color.g              = 107
489 color.b              = 19
490 helptext             = _("\
491 Forests are densely wooded, making agriculture somewhat\
492  problematic.\
495 [terrain_grassland]
496 name                 = _("Grassland")
497 graphic              = "grassland"
498 graphic_alt          = "-"
499 identifier           = "g"
500 class                = "Land"
501 movement_cost        = 1
502 defense_bonus        = 0
503 food                 = 2
504 shield               = 0
505 trade                = 0
506 resources            = "Resources"
507 road_trade_incr_pct  = 100
508 base_time            = 1
509 road_time            = 2
510 irrigation_result    = "yes"
511 irrigation_food_incr = 1
512 irrigation_time      = 5
513 mining_result        = "Forest"
514 mining_shield_incr   = 0
515 mining_time          = 10
516 transform_result     = "Hills"
517 transform_time       = 24
518 pillage_time         = 1
519 clean_pollution_time = 3
520 clean_fallout_time   = 3
521 animal               = "None"
522 warmer_wetter_result = "Lake"
523 warmer_drier_result  = "Desert"
524 cooler_wetter_result = "Glacier"
525 cooler_drier_result  = "Tundra"
526 native_to            = "Land", "Big Land", "Air", "Missile", "Helicopter"
527 flags                = "Starter", "CanHaveRiver"
528 property_green       = 50
529 property_temperate   = 50
530 color.r              = 11
531 color.g              = 138
532 color.b              = 4
533 helptext             = _("\
534 Grasslands afford exceptional agricultural opportunities.\
537 [terrain_hills]
538 name                 = _("Hills")
539 graphic              = "hills"
540 graphic_alt          = "-"
541 identifier           = "h"
542 class                = "Land"
543 movement_cost        = 2
544 defense_bonus        = 100
545 food                 = 1
546 shield               = 0
547 trade                = 0
548 resources            = "Coal", "Wine"
549 road_trade_incr_pct  = 0
550 base_time            = 1
551 road_time            = 4
552 irrigation_result    = "yes"
553 irrigation_food_incr = 1
554 irrigation_time      = 10
555 mining_result        = "yes"
556 mining_shield_incr   = 3
557 mining_time          = 10
558 transform_result     = "Plains"
559 transform_time       = 24
560 pillage_time         = 1
561 clean_pollution_time = 3
562 clean_fallout_time   = 3
563 animal               = "None"
564 warmer_wetter_result = "no"
565 warmer_drier_result  = "no"
566 cooler_wetter_result = "no"
567 cooler_drier_result  = "no"
568 native_to            = "Land", "Air", "Missile", "Helicopter"
569 flags                = "Starter", "CanHaveRiver"
570 property_green       = 50
571 property_mountainous = 30
572 color.r              = 24
573 color.g              = 97
574 color.b              = 5
575 helptext             = _("\
576 In addition to being amenable to agriculture, Hills are frequently\
577  rich in resources.\
580 [terrain_jungle]
581 name                 = _("Jungle")
582 graphic              = "jungle"
583 graphic_alt          = "-"
584 identifier           = "j"
585 class                = "Land"
586 movement_cost        = 2
587 defense_bonus        = 50
588 food                 = 1
589 shield               = 0
590 trade                = 0
591 resources            = "Gems", "Fruit"
592 road_trade_incr_pct  = 0
593 base_time            = 1
594 road_time            = 4
595 irrigation_result    = "Grassland"
596 irrigation_food_incr = 0
597 irrigation_time      = 15
598 mining_result        = "Forest"
599 mining_shield_incr   = 0
600 mining_time          = 15
601 transform_result     = "Plains"
602 transform_time       = 24
603 pillage_time         = 1
604 clean_pollution_time = 3
605 clean_fallout_time   = 3
606 animal               = "None"
607 warmer_wetter_result = "Lake"
608 warmer_drier_result  = "Desert"
609 cooler_wetter_result = "Swamp"
610 cooler_drier_result  = "Tundra"
611 native_to            = "Land", "Air", "Missile", "Helicopter"
612 flags                = "CanHaveRiver"
613 property_foliage     = 50
614 property_tropical    = 50
615 property_wet         = 50
616 color.r              = 55
617 color.g              = 156
618 color.b              = 38
619 helptext             = _("\
620 Jungles are densely overgrown, making agriculture somewhat\
621  problematic.\
624 [terrain_mountains]
625 name                 = _("Mountains")
626 graphic              = "mountains"
627 graphic_alt          = "-"
628 identifier           = "m"
629 class                = "Land"
630 movement_cost        = 3
631 defense_bonus        = 200
632 food                 = 0
633 shield               = 1
634 trade                = 0
635 resources            = "Gold", "Iron"
636 road_trade_incr_pct  = 0
637 base_time            = 1
638 road_time            = 6
639 irrigation_result    = "no"
640 irrigation_food_incr = 0
641 irrigation_time      = 0
642 mining_result        = "yes"
643 mining_shield_incr   = 1
644 mining_time          = 10
645 transform_result     = "Hills"
646 transform_time       = 24
647 pillage_time         = 1
648 clean_pollution_time = 3
649 clean_fallout_time   = 3
650 animal               = "None"
651 warmer_wetter_result = "no"
652 warmer_drier_result  = "no"
653 cooler_wetter_result = "no"
654 cooler_drier_result  = "no"
655 native_to            = "Land", "Air", "Missile", "Helicopter"
656 flags                = "CanHaveRiver"
657 property_mountainous = 70
658 color.r              = 129
659 color.g              = 127
660 color.b              = 118
661 helptext             = _("\
662 Mountains are regions of extreme altitude, making agriculture and\
663  trade very difficult.\
666 [terrain_plains]
667 name                 = _("Plains")
668 graphic              = "plains"
669 graphic_alt          = "-"
670 identifier           = "p"
671 class                = "Land"
672 movement_cost        = 1
673 defense_bonus        = 0
674 food                 = 1
675 shield               = 1
676 trade                = 0
677 resources            = "Buffalo", "Wheat"
678 road_trade_incr_pct  = 100
679 base_time            = 1
680 road_time            = 2
681 irrigation_result    = "yes"
682 irrigation_food_incr = 1
683 irrigation_time      = 5
684 mining_result        = "Forest"
685 mining_shield_incr   = 0
686 mining_time          = 15
687 transform_result     = "Grassland"
688 transform_time       = 24
689 pillage_time         = 1
690 clean_pollution_time = 3
691 clean_fallout_time   = 3
692 animal               = "None"
693 warmer_wetter_result = "Lake"
694 warmer_drier_result  = "Desert"
695 cooler_wetter_result = "Glacier"
696 cooler_drier_result  = "Tundra"
697 native_to            = "Land", "Big Land", "Air", "Missile", "Helicopter"
698 flags                = "Starter", "CanHaveRiver"
699 property_green       = 50
700 property_temperate   = 50
701 color.r              = 122
702 color.g              = 156
703 color.b              = 46
704 helptext             = _("\
705 Plains are very broad, sparse regions, which makes trade slightly\
706  inconvenient.\
709 [terrain_swamp]
710 name                 = _("Swamp")
711 graphic              = "swamp"
712 graphic_alt          = "-"
713 identifier           = "s"
714 class                = "Land"
715 movement_cost        = 2
716 defense_bonus        = 50
717 food                 = 1
718 shield               = 0
719 trade                = 0
720 resources            = "Peat", "Spice"
721 road_trade_incr_pct  = 0
722 base_time            = 1
723 road_time            = 4
724 irrigation_result    = "Grassland"
725 irrigation_food_incr = 0
726 irrigation_time      = 15
727 mining_result        = "Forest"
728 mining_shield_incr   = 0
729 mining_time          = 15
730 transform_result     = "Lake"
731 transform_time       = 36
732 pillage_time         = 1
733 clean_pollution_time = 3
734 clean_fallout_time   = 3
735 animal               = "None"
736 warmer_wetter_result = "Lake"
737 warmer_drier_result  = "Desert"
738 cooler_wetter_result = "Glacier"
739 cooler_drier_result  = "Tundra"
740 native_to            = "Land", "Air", "Missile", "Helicopter"
741 flags                = "CanHaveRiver"
742 property_wet         = 100
743 property_tropical    = 10
744 property_temperate   = 10
745 property_cold        = 10
746 color.r              = 48
747 color.g              = 85
748 color.b              = 97
749 helptext             = _("\
750 Swamps suffer from an over-abundance of water, making agriculture\
751  somewhat problematic.\
754 [terrain_tundra]
755 name                 = _("Tundra")
756 graphic              = "tundra"
757 graphic_alt          = "-"
758 identifier           = "t"
759 class                = "Land"
760 movement_cost        = 1
761 defense_bonus        = 0
762 food                 = 1
763 shield               = 0
764 trade                = 0
765 resources            = "Game", "Furs"
766 road_trade_incr_pct  = 0
767 base_time            = 1
768 road_time            = 2
769 irrigation_result    = "yes"
770 irrigation_food_incr = 1
771 irrigation_time      = 5
772 mining_result        = "no"
773 mining_shield_incr   = 0
774 mining_time          = 0
775 transform_result     = "Desert"
776 transform_time       = 24
777 pillage_time         = 1
778 clean_pollution_time = 3
779 clean_fallout_time   = 3
780 animal               = "None"
781 warmer_wetter_result = "Lake"
782 warmer_drier_result  = "Desert"
783 cooler_wetter_result = "Glacier"
784 cooler_drier_result  = "no"
785 native_to            = "Land", "Big Land", "Air", "Missile", "Helicopter"
786 flags                = "Starter", "NoBarbs", "CanHaveRiver"
787 property_cold        = 50
788 color.r              = 188
789 color.g              = 188
790 color.b              = 188
791 helptext             = _("\
792 Tundra are broad, cold regions, fit for some agriculture and little\
793  else.\
796 ; The individual resource types, one per section.
797 ; Roughly sorted by identifier.
798 ; The actual tag used (the * in [resource_*]) must be unique for each resource,
799 ; and may be used in debug output when reading this file.
801 ; Notes:
803 ; name                 = name as seen by user; if "unused", it is not used,
804 ;                        but is included for conversion and/or the editor.
805 ; graphic              = tag specifying preferred graphic
806 ; graphic_alt          = tag for alternate garphic if preferred graphic is not 
807 ;                        present; especially if preferred graphic is non-standard, 
808 ;                        this should be a standard tag.  Otherwise can use eg "-" 
809 ;                        for no alternate graphic.
810 ; identifier           = single-character identifier used in savegames.  This
811 ;                        must be unique for each resource, and changing it will
812 ;                        break savegame compatibility.
813 ; food                 = increased food production
814 ; shield               = increased shield production
815 ; trade                = increased trade production
817 [resource_gold]
818 name        = _("Gold")
819 graphic     = "ts.gold"
820 graphic_alt = "-"
821 identifier  = "$"
822 trade       = 6
823 # glacier, hills, mountains.
825 [resource_iron]
826 name        = _("Iron")
827 graphic     = "ts.iron"
828 graphic_alt = "-"
829 identifier  = "/"
830 shield      = 3
831 # mountains.
833 [resource_game]
834 name        = _("?animals:Game")
835 graphic     = "ts.tundra_game"
836 graphic_alt = "-"
837 identifier  = "e"
838 food        = 2
839 shield      = 1
840 # tundra.
842 [resource_furs]
843 name        = _("Furs")
844 graphic     = "ts.furs"
845 graphic_alt = "-"
846 identifier  = "u"
847 food        = 1
848 trade       = 3
849 # tundra-only (beaver pelts).
851 [resource_coal]
852 name        = _("Coal")
853 graphic     = "ts.coal"
854 graphic_alt = "-"
855 identifier  = "c"
856 shield      = 2
857 # hills.
859 [resource_fish]
860 name        = _("Fish")
861 graphic     = "ts.fish"
862 graphic_alt = "-"
863 identifier  = "y"
864 food        = 2
865 # ocean.
867 [resource_fruit]
868 name        = _("Fruit")
869 graphic     = "ts.fruit"
870 graphic_alt = "-"
871 identifier  = "f"
872 food        = 3
873 trade       = 1
874 # jungle.
876 [resource_gems]
877 name        = _("Gems")
878 graphic     = "ts.gems"
879 graphic_alt = "-"
880 identifier  = "g"
881 trade       = 4
882 # jungle.
884 ; "h" reserved for strategic horses
886 [resource_buffalo]
887 name        = _("Buffalo")
888 graphic     = "ts.buffalo"
889 graphic_alt = "-"
890 identifier  = "b"
891 shield      = 2
892 # plains (horses => buffalo => cattle).
894 [resource_wheat]
895 name        = _("Wheat")
896 graphic     = "ts.wheat"
897 graphic_alt = "-"
898 identifier  = "j"
899 food        = 2
900 # plains.
902 ; "k" reserved for (cane) sugar
904 ; "l" reserved for tobacco
906 ; "m" reserved for marble
908 [resource_oasis]
909 name        = _("Oasis")
910 graphic     = "ts.oasis"
911 graphic_alt = "-"
912 identifier  = "o"
913 food        = 3
914 # desert.
916 [resource_peat]
917 name        = _("Peat")
918 graphic     = "ts.peat"
919 graphic_alt = "-"
920 identifier  = "a"
921 shield      = 4
922 # swamp (petroleum => peat => petroleum).
924 [resource_pheasant]
925 name        = _("Pheasant")
926 graphic     = "ts.pheasant"
927 graphic_alt = "-"
928 identifier  = "p"
929 food        = 2
930 # forest, forested.
932 ; "r" reserved for rubber
934 [resource_bonus]
935 name        = _("Resources")
936 graphic     = "ts.grassland_resources"
937 graphic_alt = "-"
938 identifier  = "r"
939 shield      = 1
940 # grassland.
942 [resource_icy_ivory]
943 name        = _("Ivory")
944 graphic     = "ts.arctic_ivory"
945 graphic_alt = "-"
946 identifier  = "i"
947 food        = 1
948 shield      = 1
949 trade       = 4
950 # glacier (seals => walrus).
952 [resource_silk]
953 name        = _("Silk")
954 graphic     = "ts.silk"
955 graphic_alt = "-"
956 identifier  = "s"
957 trade       = 3
958 # forest, wooded.
960 [resource_spice]
961 name        = _("Spice")
962 graphic     = "ts.spice"
963 graphic_alt = "-"
964 identifier  = "t"
965 food        = 2
966 trade       = 4
967 # swamp-only.
969 ; "u" reserved for uranium
971 [resource_whales]
972 name        = _("Whales")
973 graphic     = "ts.whales"
974 graphic_alt = "-"
975 identifier  = "v"
976 food        = 1
977 shield      = 1
978 # ocean (sea).
980 [resource_wine]
981 name        = _("Wine")
982 graphic     = "ts.wine"
983 graphic_alt = "-"
984 identifier  = "w"
985 trade       = 4
986 # hills-only.
988 [resource_oil]
989 name        = _("Oil")
990 graphic     = "ts.oil"
991 graphic_alt = "-"
992 identifier  = "x"
993 shield      = 3 ; glacier used to have 4
994 # glacier, desert
997 [extraui]
999 ; Player visible names of the base gui types.
1000 ui_name_base_fortress = _("?gui_type:Build Fortress/Buoy")
1001 ui_name_base_airbase = _("?gui_type:Build Airbase")
1003 ; /* <-- avoid gettext warnings
1005 ; Each extra, including bases and roads, must have a section here.
1006 ; Bases and roads have additional sections for their specific features below.
1009 ; Extra types:
1011 ; name                    = translatable name as seen by user
1012 ; rule_name               = (optional) name for savegames, rulesets etc; if not
1013 ;                           present, 'name' is used. Since the name used in
1014 ;                           savegames must not change, use this when renaming
1015 ;                           an extra after a ruleset has been released.
1016 ; category                = How UI should categorize this extra. One of
1017 ;                           "Infra", "Natural", "Nuisance", or "Bonus"
1018 ; causes                  = events that can create extra type.
1019 ;                           "Irrigation", "Mine", "Hut", "Pollution", "Fallout",
1020 ;                           "Base", or "Road"
1021 ; rmcauses                = events that can remove extra type.
1022 ;                           "CleanPollution", "CleanFallout", or "Pillage"
1023 ; graphic                 = tag specifying preferred graphic
1024 ; graphic_alt             = tag for alternate graphic if preferred graphic is
1025 ;                           not present. Can use eg "-" for no alternate
1026 ;                           graphic
1027 ; activity_gfx            = tag specifying graphic for unit building extra
1028 ;                           This can be "None" to indicate that graphic sprite
1029 ;                           is not needed.
1030 ; act_gfx_alt             = tag for alternative graphic for unit building extra
1031 ; act_gfx_alt2            = tag for second alternative graphic for unit building extra
1032 ; rmact_gfx               = tag specifying graphic for unit removing extra
1033 ;                           This can be "None" to indicate that graphic sprite
1034 ;                           is not needed.
1035 ; rmact_gfx_alt           = tag for alternative graphic for unit removing extra
1036 ; reqs                    = requirements to build the extra (see effects.ruleset
1037 ;                           and README.effects for help on requirements)
1038 ; rmreqs                  = requirements to remove the extra
1039 ; buildable               = Can extra be built? Defaults to TRUE
1040 ; build_time              = how long it takes a unit to build this extra.
1041 ;                           Value of 0 (default) means that terrain- and
1042 ;                           build activity specific time is used instead.
1043 ; build_time_factor       = This setting take effect only if build_time is 0.
1044 ;                           Terrain and activity specific build time will be
1045 ;                           multiplied by this value (default 1)
1046 ; removal_time            = how long it takes a unit to remove this extra.
1047 ;                           Value of 0 (default) means that terrain- and
1048 ;                           removal activity specific time is used instead.
1049 ; removal_time_factor     = This setting take effect only if removal_time is 0.
1050 ;                           Terrain and activity specific removal time will be
1051 ;                           multiplied by this value (default 1)
1052 ; defense_bonus           = Percent added to defense when tile has the extra
1053 ;                           (default none)
1054 ; native_to               = List of unit classes that are considered to
1055 ;                           be inside the extra when they are on same tile
1056 ; conflicts               = List of extras that cannot be on the same tile.
1057 ;                           Bases with non-zero border_sq automatically conflict
1058 ;                           with each other.
1059 ; hidden_by               = List of extra types that will make this extra
1060 ;                           type not to show on UI if both present.
1061 ; flags
1062 ;   - "NativeTile"        = Native units consider tile native regardless of
1063 ;                           terrain
1064 ;   - "Refuel"            = Native units can use tile as refuel point
1065 ;   - "TerrChangeRemoves" = Extra gets removed when ever terrain changes even
1066 ;                           if target terrain could support it
1067 ;   - "AlwaysOnCityCenter" = City center tiles always have this extra type
1068 ;                           regardless of its other requirements
1069 ;   - "AutoOnCityCenter"  = City center tiles will automatically have this
1070 ;                           extra type if the player can build it
1071 ;   - "ConnectLand"       = Road style gfx on Oceanic tiles are drawn to
1072 ;                           connect to adjacent Land tiles even if they have
1073 ;                           no extra. This affects appearance only
1074 ;   - "GlobalWarming"     = Instances of this extra on map count towards
1075 ;                           Global Warming
1076 ;   - "NuclearWinter"     = Instances of this extra on map count towards
1077 ;                           Nuclear Winter
1078 ;   - "ShowFlag"          = Draw owner's flag
1079 ;   - "NaturalDefense"    = Extra's defense bonus will be counted to "Natural"
1080 ;                           defense layer. The defense bonus of all the extras
1081 ;                           located at the tile, native to defending unit,
1082 ;                           is calculated as a 1 + sum of bonuses from the extras
1083 ;                           on the default "Fortification" defense layer multiplied
1084 ;                           by the 1 + sum of bonuses from the extras on the
1085 ;                           "Natural" layer.
1086 ; helptext                = optional help text string; should escape all raw
1087 ;                           newlines so that xgettext parsing works
1089 ; */ <-- avoid gettext warnings
1091 [extra_irrigation]
1092 name           = _("Irrigation")
1093 category       = "Infra"
1094 causes         = "Irrigation"
1095 rmcauses       = "Pillage"
1096 graphic        = "tx.irrigation"
1097 graphic_alt    = "-"
1098 activity_gfx   = "unit.irrigation"
1099 act_gfx_alt    = "unit.irrigate"
1100 act_gfx_alt2   = "-"
1101 rmact_gfx      = "None"
1102 rmact_gfx_alt  = "-"
1103 build_time     = 0
1104 removal_time   = 0
1105 conflicts      = "Mine", "Oil Well"
1106 hidden_by      = "Farmland"
1108 [extra_mine]
1109 name           = _("Mine")
1110 category       = "Infra"
1111 causes         = "Mine"
1112 rmcauses       = "Pillage"
1113 graphic        = "tx.mine"
1114 graphic_alt    = "-"
1115 activity_gfx   = "unit.mine"
1116 act_gfx_alt    = "unit.plant"
1117 act_gfx_alt2   = "-"
1118 rmact_gfx      = "None"
1119 rmact_gfx_alt  = "-"
1120 reqs           =
1121     { "type", "name", "range", "present"
1122       "TerrainFlag", "Oil", "Local", FALSE
1123     }
1124 build_time     = 0
1125 removal_time   = 0
1126 conflicts      = "Irrigation", "Farmland"
1128 [extra_oil_well]
1129 name           = _("Oil Well")
1130 category       = "Infra"
1131 causes         = "Mine"
1132 rmcauses       = "Pillage"
1133 graphic        = "tx.oil_mine"
1134 graphic_alt    = "tx.mine"
1135 activity_gfx   = "unit.oil_mine"
1136 act_gfx_alt    = "unit.mine"
1137 act_gfx_alt2   = "unit.plant"
1138 rmact_gfx      = "None"
1139 rmact_gfx_alt  = "-"
1140 reqs           =
1141     { "type", "name", "range"
1142       "TerrainFlag", "Oil", "Local"
1143     }
1144 build_time     = 0
1145 removal_time   = 0
1146 conflicts      = "Irrigation", "Farmland"
1148 [extra_pollution]
1149 name           = _("Pollution")
1150 category       = "Nuisance"
1151 causes         = "Pollution"
1152 rmcauses       = "CleanPollution"
1153 graphic        = "tx.pollution"
1154 graphic_alt    = "-"
1155 activity_gfx   = "None"
1156 act_gfx_alt    = "-"
1157 act_gfx_alt2   = "-"
1158 rmact_gfx      = "unit.pollution"
1159 rmact_gfx_alt  = "-"
1160 reqs           =
1161     { "type", "name", "range", "present"
1162       "TerrainFlag", "NoPollution", "Local", FALSE
1163     }
1164 removal_time   = 0
1165 flags          = "GlobalWarming"
1167 [extra_hut]
1168 name           = _("Minor Tribe Village")
1169 rule_name      = "Hut"
1170 category       = "Bonus"
1171 causes         = "Hut"
1172 ;rmcauses       = ""
1173 graphic        = "tx.village"
1174 graphic_alt    = "-"
1175 activity_gfx   = "None"
1176 act_gfx_alt    = "-"
1177 act_gfx_alt2   = "-"
1178 rmact_gfx      = "None"
1179 rmact_gfx_alt  = "-"
1180 reqs           =
1181     { "type", "name", "range"
1182       "TerrainClass", "Land", "Local"
1183     }
1184 helptext = _("\
1185 Villages (also called \"huts\") are primitive communities spread \
1186 across the world at the beginning of the game. Any land unit can enter \
1187 a village, making the village disappear and deliver a random response. \
1188 If the village proves hostile, it could produce barbarians or the unit \
1189 entering may simply be destroyed. If they are friendly, the player \
1190 could receive gold, a new technology, a military unit (occasionally a \
1191 settler; and sometimes a unit that the player cannot yet create), or \
1192 even a new city.\
1193 "), _("\
1194 Later in the game, helicopters may also enter villages, but overflight \
1195 by other aircraft will cause the villagers to take fright and disband.\
1198 [extra_farmland]
1199 name           = _("Farmland")
1200 category       = "Infra"
1201 causes         = "Irrigation"
1202 rmcauses       = "Pillage"
1203 graphic        = "tx.farmland"
1204 graphic_alt    = "-"
1205 activity_gfx   = "unit.farmland"
1206 act_gfx_alt    = "unit.irrigation"
1207 act_gfx_alt2   = "unit.irrigate"
1208 rmact_gfx      = "None"
1209 rmact_gfx_alt  = "-"
1210 reqs           =
1211     { "type", "name", "range"
1212       "Tech", "Refrigeration", "Player"
1213       "Extra", "Irrigation", "Local"
1214     }
1215 build_time     = 0
1216 removal_time   = 0
1217 conflicts      = "Mine", "Oil Well"
1219 [extra_fallout]
1220 name           = _("Fallout")
1221 category       = "Nuisance"
1222 causes         = "Fallout"
1223 rmcauses       = "CleanFallout"
1224 graphic        = "tx.fallout"
1225 graphic_alt    = "-"
1226 activity_gfx   = "None"
1227 act_gfx_alt    = "-"
1228 act_gfx_alt2   = "-"
1229 rmact_gfx      = "unit.fallout"
1230 rmact_gfx_alt  = "-"
1231 reqs           =
1232     { "type", "name", "range", "present"
1233       "TerrainFlag", "NoPollution", "Local", FALSE
1234     }
1235 removal_time   = 0
1236 flags          = "NuclearWinter"
1238 [extra_fortress]
1239 name           = _("Fortress")
1240 category       = "Infra"
1241 causes         = "Base"
1242 rmcauses       = "Pillage"
1243 graphic        = "base.fortress"
1244 graphic_alt    = "-"
1245 activity_gfx   = "unit.fortress"
1246 act_gfx_alt    = "-"
1247 act_gfx_alt2   = "-"
1248 rmact_gfx      = "None"
1249 rmact_gfx_alt  = "-"
1250 reqs           =
1251     { "type", "name", "range", "present"
1252       "Tech", "Construction", "Player", TRUE
1253       "TerrainClass", "Land", "Local", TRUE
1254       "UnitFlag", "Settlers", "Local", TRUE
1255       "CityTile", "Center", "Local", FALSE
1256     }
1257 build_time     = 3
1258 removal_time   = 0
1259 defense_bonus  = 100
1260 native_to      = "Land", "Big Land"
1261 helptext       = _("\
1262 Fortresses improve defense for land units. Among other effects, a land \
1263 unit remaining in a fortress for a whole turn without moving recovers \
1264 a quarter of its hit points. With Invention, fortresses gain watchtowers \
1265 from which land units can see further afield.\
1268 [extra_airbase]
1269 name           = _("Airbase")
1270 category       = "Infra"
1271 causes         = "Base"
1272 rmcauses       = "Pillage"
1273 graphic        = "base.airbase"
1274 graphic_alt    = "-"
1275 activity_gfx   = "unit.airbase"
1276 act_gfx_alt    = "-"
1277 act_gfx_alt2   = "-"
1278 rmact_gfx      = "None"
1279 rmact_gfx_alt  = "-"
1280 reqs           =
1281     { "type", "name", "range", "present"
1282       "Tech", "Radio", "Player", TRUE
1283       "TerrainClass", "Land", "Local", TRUE
1284       "UnitFlag", "Airbase", "Local", TRUE
1285       "CityTile", "Center", "Local", FALSE
1286     }
1287 build_time     = 3
1288 removal_time   = 0
1289 native_to      = "Air", "Helicopter", "Missile"
1290 flags          = "Refuel"
1291 helptext       = _("\
1292 Airbases allow your air units to land and refuel. Air units in an \
1293 airbase may be attacked by land units.\
1296 [extra_buoy]
1297 name           = _("Buoy")
1298 category       = "Infra"
1299 causes         = "Base"
1300 rmcauses       = "Pillage"
1301 graphic        = "base.buoy"
1302 graphic_alt    = "base.fortress"
1303 activity_gfx   = "unit.buoy"
1304 act_gfx_alt    = "unit.fortress"
1305 act_gfx_alt2   = "-"
1306 rmact_gfx      = "None"
1307 rmact_gfx_alt  = "-"
1308 reqs           =
1309     { "type", "name", "range", "present"
1310       "Tech", "Radio", "Player", TRUE
1311       "TerrainClass", "Oceanic", "Local", TRUE
1312       "UnitFlag", "Airbase", "Local", TRUE
1313       "CityTile", "Center", "Local", FALSE
1314     }
1315 build_time     = 3
1316 removal_time   = 0
1317 flags          = "ShowFlag"
1318 helptext       = _("\
1319 Buoys may be built in the ocean (by units on a sea-going vessel).\
1322 [extra_ruins]
1323 name           = _("Ruins")
1324 category       = "Bonus"
1325 causes         = "Base"
1326 rmcauses       = "Pillage"
1327 graphic        = "base.ruins"
1328 graphic_alt    = "-"
1329 activity_gfx   = "None"
1330 act_gfx_alt    = "-"
1331 act_gfx_alt2   = "-"
1332 rmact_gfx      = "None"
1333 rmact_gfx_alt  = "-"
1334 reqs           =
1335     { "type", "name", "range", "present"
1336       "TerrainClass", "Land", "Local", TRUE
1337       "CityTile", "Center", "Local", FALSE
1338     }
1339 buildable      = FALSE
1340 removal_time   = 0
1341 flags          = "TerrChangeRemoves"
1342 helptext       = _("\
1343 Ruins mark the former site of a city that was destroyed or abandoned. \
1344 They have no effect on gameplay.\
1347 [extra_road]
1348 name           = _("Road")
1349 category       = "Infra"
1350 causes         = "Road"
1351 rmcauses       = "Pillage"
1352 graphic        = "road.road"
1353 graphic_alt    = "-"
1354 activity_gfx   = "unit.road"
1355 act_gfx_alt    = "-"
1356 act_gfx_alt2   = "-"
1357 rmact_gfx      = "None"
1358 rmact_gfx_alt  = "-"
1359 reqs           =
1360     { "type", "name", "range"
1361       "UnitFlag", "Settlers", "Local"
1362       "TerrainClass", "Land", "Local"
1363     }
1364 build_time     = 0
1365 removal_time   = 0
1366 native_to      = "Land", "Big Land"
1367 flags          = "NativeTile", "AutoOnCityCenter"
1368 hidden_by      = "Railroad", "Maglev"
1369 helptext       = _("\
1370 Roads allow your land units to move more quickly, and allow heavy\
1371  Big Land units such as Catapults and Freight to travel through\
1372  otherwise difficult terrain such as Mountains and Forest. On some\
1373  terrain, roads also provide a trade bonus.\
1374 "), _("\
1375 Building roads on river tiles requires knowledge of Bridge Building.\
1376  City center tiles automatically get roads (unless they are on a river\
1377  tile and you do not yet know Bridge Building).\
1380 [extra_railroad]
1381 name           = _("Railroad")
1382 category       = "Infra"
1383 causes         = "Road"
1384 rmcauses       = "Pillage"
1385 graphic        = "road.rail"
1386 graphic_alt    = "-"
1387 activity_gfx   = "unit.rail"
1388 act_gfx_alt    = "unit.road"
1389 act_gfx_alt2   = "-"
1390 rmact_gfx      = "None"
1391 rmact_gfx_alt  = "-"
1392 reqs           =
1393     { "type", "name", "range"
1394       "Tech", "Railroad", "Player"
1395       "Extra", "Road", "Local"
1396       "UnitFlag", "Settlers", "Local"
1397       "TerrainClass", "Land", "Local"
1398     }
1399 build_time     = 3
1400 removal_time   = 0
1401 native_to      = "Land", "Big Land"
1402 flags          = "NativeTile", "AutoOnCityCenter"
1403 hidden_by      = "Maglev"
1404 helptext       = _("\
1405 Once you learn the Railroad technology, you may upgrade your roads\
1406  to railroads. Units travel considerably faster along railroads than\
1407  along roads.\
1408 "), _("\
1409 A railroad also increases any shield resources produced by a tile.\
1410  A tile whose road is upgraded to a railroad retains any trade bonus\
1411  from the road as well.\
1412 "), _("\
1413 City center tiles with roads are automatically upgraded to railroads\
1414  when you learn the Railroad technology.\
1417 [extra_maglev]
1418 name           = _("Maglev")
1419 category       = "Infra"
1420 causes         = "Road"
1421 rmcauses       = "Pillage"
1422 graphic        = "road.maglev"
1423 graphic_alt    = "road.rail"
1424 activity_gfx   = "unit.maglev"
1425 act_gfx_alt    = "unit.road"
1426 act_gfx_alt2   = "-"
1427 rmact_gfx      = "None"
1428 rmact_gfx_alt  = "-"
1429 reqs           =
1430     { "type", "name", "range"
1431       "Tech", "Superconductors", "Player"
1432       "Extra", "Railroad", "Local"
1433       "UnitFlag", "Settlers", "Local"
1434       "TerrainClass", "Land", "Local"
1435     }
1436 build_time     = 3
1437 removal_time   = 0
1438 native_to      = "Land"
1439 flags          = "NativeTile", "AutoOnCityCenter"
1440 helptext       = _("\
1441 With sufficient technology, you may build magnetic levitation systems\
1442  along your railroad routes. Land units expend no movement points\
1443  when riding a maglev; you may ride indefinitely. (As may your enemies!)\
1444 "), _("\
1445 Your regular railroads are still used to carry heavy Big Land\
1446  units for which the maglev system is unsuitable, and they continue\
1447  to provide production and trade bonuses.\
1448 "), _("\
1449 City center tiles with railroads are automatically upgraded to maglev\
1450  when you learn about Superconductors.\
1453 [extra_river]
1454 name           = _("River")
1455 category       = "Natural"
1456 causes         = "Road"
1457 ;rmcauses       = ""
1458 graphic        = "road.river"
1459 graphic_alt    = "-"
1460 activity_gfx   = "None"
1461 act_gfx_alt    = "-"
1462 act_gfx_alt2   = "-"
1463 rmact_gfx      = "None"
1464 rmact_gfx_alt  = "-"
1465 buildable      = FALSE
1466 defense_bonus  = 50
1467 native_to      = "Land", "Big Land", "Trireme"
1468 flags          = "NativeTile"
1469 ; /* xgettext:no-c-format */
1470 helptext       = _("\
1471 Any land terrain type may have a River on it. A River adds 1\
1472  trade to the resources produced by that tile. It also increases a tile's\
1473  defense factor by 50%.\
1474 "), _("\
1475 Land units may move along rivers for faster travel (but not diagonally),\
1476  and heavy Big Land units such as Catapults and Freight may travel\
1477  along them through otherwise difficult terrain. Triremes may also\
1478  travel up rivers (although later boats cannot).\
1479 "), _("\
1480 Roads, railroads, and maglev can only be built on River tiles if your\
1481  civilization has learned Bridge Building technology.\
1484 ; /* <-- avoid gettext warnings
1486 ; Base types:
1488 ; extra                   = name of the extra this base section is part of
1489 ; gui_type                = How gui should handle this base.
1490 ;                           Value can be "Fortress", "Airbase", or "Other"
1491 ; border_sq               = Base will claim land ownership up to this radius,
1492 ;                           -1 to disable. If enabled, base cannot exist in city tile.
1493 ; vision_main_sq          = Base will have main layer vision to this radius
1494 ; vision_invis_sq         = Base will have invisible layer vision to this radius
1495 ; flags
1496 ;   - "NoAggressive"      = Units inside are not considered aggressive if there`s
1497 ;                           friendly city within 3 tiles
1498 ;   - "NoStackDeath"      = Units inside do not die all at once when attacked
1499 ;   - "DiplomatDefense"   = Diplomats inside get bonus to diplomatic defense
1500 ;   - "ParadropFrom"      = Paradrop can be initiated from base
1502 ; */ <-- avoid gettext warnings
1504 [base_fortress]
1505 extra          = "Fortress"
1506 gui_type       = "Fortress"
1507 border_sq      = 5
1508 flags          = "NoAggressive", "NoStackDeath", "DiplomatDefense"
1510 [base_airbase]
1511 extra          = "Airbase"
1512 gui_type       = "Airbase"
1513 flags          = "NoStackDeath", "ParadropFrom"
1515 [base_buoy]
1516 extra          = "Buoy"
1517 gui_type       = "Fortress"
1518 vision_main_sq = 5
1520 [base_ruins]
1521 extra          = "Ruins"
1522 gui_type       = "Other"
1524 ; /* <-- avoid gettext warnings
1526 ; Road types:
1528 ; extra                   = name of the extra this road section is part of
1529 ; first_reqs              = additional requirements to build the first part of
1530 ;                           the road, when none of the adjacent tiles have any
1531 ;                           integrating roads (see effects.ruleset and
1532 ;                           README.effects for help on requirements)
1533 ; move_cost               = how much movement it takes to travel
1534 ;                           via this road (in fractional move points, as
1535 ;                           defined by move_fragments)
1536 ;                           -1 means that road provides no speed bonus.
1537 ; move_mode               = how movement costs are applied
1538 ;   - "Cardinal"   = Road cost applies only on cardinal moves
1539 ;   - "Relaxed"    = Road cost is normal for cardinal, double for diagonal moves
1540 ;   - "FastAlways" = Road cost applies always between two tiles with the roads
1541 ;                    (default)
1542 ; food_incr_const         = food production added to tile regardless of terrain
1543 ; shield_incr_const       = shield production added to tile regardless of
1544 ;                           terrain
1545 ; trade_incr_const        = trade production added to tile regardless of
1546 ;                           terrain
1547 ; food_incr               = food production added to tile; multiplied by
1548 ;                           terrain-specific road_food_incr_pct
1549 ; shield_incr             = shield production added to tile; multiplied by
1550 ;                           terrain-specific road_shield_incr_pct
1551 ; trade_incr              = trade production added to tile; multiplied by
1552 ;                           terrain-specific road_trade_incr_pct
1553 ; food_bonus              = percent added to food production
1554 ; shield_bonus            = percent added to shield production
1555 ; trade_bonus             = percent added to trade production
1556 ;   In summary, output bonuses from roads are given by the formula:
1557 ;   (base_prod + roads.incr_const + roads.incr*terrain.incr_pct) * roads.bonus
1558 ; compat_special          = what kind of pre-2.5 special this road corresponds
1559 ;                           to, if any: "Road", "Railroad", "River, or "None".
1560 ;                           Used for UI and loading old savegames
1561 ; integrates              = list of road types that are suitable next steps
1562 ;                           for travel from this road type
1563 ; flags
1564 ;   - "RequiresBridge"    = Technology with "Bridge" flag needed to build this
1565 ;                           road on the same tile as another road with
1566 ;                           "PreventsOtherRoads" flag (usually rivers)
1567 ;   - "PreventsOtherRoads" = Prevents "RequiresBridge" roads being built on
1568 ;                           the same tile as this one without appropriate tech
1569 ;   - "River"             = Automatically generated by map generator, always
1570 ;                           flowing from land tiles to ocean
1571 ;   - "UnrestrictedInfra" = Use of the enemy owned road is not restricted
1572 ;                           even if server setting 'restrictinfra' is set
1573 ;   - "JumpFrom"          = Move to a tile nativity providing "JumpTo"
1574 ;                           road is considered native
1575 ;   - "JumpTo"            = Move from a tile nativity providing "JumpFrom"
1576 ;                           road is considered native
1578 ; */ <-- avoid gettext warnings
1580 [road_road]
1581 extra          = "Road"
1582 move_cost      = 3
1583 food_incr      = 0
1584 shield_incr    = 0
1585 trade_incr     = 1
1586 food_bonus     = 0
1587 shield_bonus   = 0
1588 trade_bonus    = 0
1589 compat_special = "Road"
1590 flags          = "RequiresBridge"
1592 [road_railroad]
1593 extra          = "Railroad"
1594 move_cost      = 1
1595 food_incr      = 0
1596 shield_incr    = 0
1597 trade_incr     = 0
1598 food_bonus     = 0
1599 shield_bonus   = 50
1600 trade_bonus    = 0
1601 compat_special = "Railroad"
1602 flags          = "RequiresBridge"
1604 [road_maglev]
1605 extra          = "Maglev"
1606 move_cost      = 0
1607 food_incr      = 0
1608 shield_incr    = 0
1609 trade_incr     = 0
1610 food_bonus     = 0
1611 shield_bonus   = 0
1612 trade_bonus    = 0
1613 flags          = "RequiresBridge"
1615 [road_river]
1616 extra          = "River"
1617 move_cost      = 3
1618 move_mode      = "Cardinal"
1619 trade_incr_const = 1
1620 compat_special = "River"
1621 flags          = "River", "PreventsOtherRoads", "UnrestrictedInfra"