Make AI less likely to stop building wonder
[freeciv.git] / data / civ2 / terrain.ruleset
blob4ae268b35474d0f00a32e84c901f39b84c62b18e
2 ; Modifying this file:
3 ; You should not modify this file except to make bugfixes or
4 ; for other "maintenance".  If you want to make custom changes,
5 ; you should create a new datadir subdirectory and copy this file
6 ; into that directory, and then modify that copy.  Then use the
7 ; command "rulesetdir <mysubdir>" in the server to have freeciv
8 ; use your new customized file.
10 ; Note that the freeciv AI may not cope well with anything more
11 ; than minor changes.
13 [datafile]
14 description="Civ2 tile_type data for Freeciv"
15 options="+Freeciv-2.6-ruleset"
17 [control]
18 ; Names for custom terrain flags. There can be up to 8 of these.
19 ; name          = rule name; In some circumstances user may see this
20 ;                 as part of some sentences, so try to make it descriptive
21 ;                 and sensible.
22 ; helptxt       = displayed in the help for terrains with this flag (optional)
23 ;flags =
24 ;  { "name", "helptxt"
25 ;  }
27 [parameters]
29 ; Percentage of "land" tiles required to be adjacent to a water tile before
30 ; it may be "reclaimed" into a land tile (0-101; 0=anywhere, default 101=nowhere)
31 ocean_reclaim_requirement=101
33 ; Percentage of "water" tiles required to be adjacent to a land tile before
34 ; it may be "channeled" into a water tile (0-101; 0=anywhere, default 101=nowhere)
35 land_channel_requirement=101
37 ; Percentage of unfrozen tiles (no "Frozen" flag) required to be adjacent
38 ; to a frozen tile before it can thaw (0-101; 0=anywhere, default 101=nowhere)
39 thaw_requirement = 0
41 ; Percentage of frozen tiles ("Frozen" flag) required to be adjacent to an
42 ; unfrozen tile before it can freeze (0-101; 0=anywhere, default 101=nowhere)
43 freeze_requirement = 0
45 ; Bodies of water up to this size are considered freshwater lakes, if there is
46 ; also terrain type(s) with flag "FreshWater" in the ruleset.
47 lake_max_size = 0
49 ; How many native tiles first startunit must be able to reach.
50 ; 0 to disable check.
51 min_start_native_area = 0
53 ; How many fragments each movement point has.
54 ; For example road movement costs are relative to this.
55 move_fragments = 3
57 ; How many move_fragments IgTer unit movement costs
58 igter_cost = 1
60 ; Whether diagonal movement has increased cost 
61 ; The cost increase is more accurate with larger values for move_fragments
62 pythagorean_diagonal = FALSE
64 ; /* <-- avoid gettext warnings
66 ; The individual terrain types, one per section.
67 ; Roughly sorted by identifier.
68 ; The actual tag used (the * in [terrain_*]) must be unique for each terrain,
69 ; and may be used in debug output when reading this file.
71 ; Notes:
73 ; name                 = translatable name as seen by user; if "unused", it is
74 ;                        not used, but is included for conversion and/or the
75 ;                        editor.
76 ; rule_name            = (optional) name for savegames, rulesets etc; if not
77 ;                        present, 'name' is used. Since the name used in
78 ;                        savegames must not change, use this when renaming a
79 ;                        terrain after a ruleset has been released.
80 ; graphic              = preferred graphic; Tilespec [tile_*] section
81 ;                        with 'tag' matching this will be used.
82 ; graphic_alt          = alternate graphic. When no tilespec 'tag' matching
83 ;                        preferred graphic is not found, this will be used.
84 ;                        Otherwise may be "-"
85 ; identifier           = single-character identifier used in savegames. This
86 ;                        must be unique for each terrain.
87 ; class                = Terrain class terrain belongs to: "Land" or "Oceanic"
88 ; movement_cost        = in whole movement points, not move_fragments;
89 ;                        typically 1 to 3
90 ; defense_bonus        = percent added to defense; typically 0% to 200%
91 ; food                 = normal food production
92 ; shield               = normal shield production
93 ; trade                = normal trade production
94 ; resources            = list of possible resources on this terrain
95 ; road_food_incr_pct   = percent of road food_incr applied to this terrain
96 ; road_shield_incr_pct = percent of road shield_incr applied to this terrain
97 ; road_trade_incr_pct  = percent of road trade_incr applied to this terrain
98 ; base_time            = time to build bases; if 0, cannot build any bases.
99 ;                        Nonzero values only affect bases with build_time 0.
100 ; road_time            = time to build roads; if 0, cannot build any roads.
101 ;                        Nonzero values only affect roads with build_time 0.
102 ; irrigation_result    = result of irrigation; one of:
103 ;                        "no"  -- cannot irrigate
104 ;                        "yes" -- can irrigate
105 ;                        terrain section -- irrigation changes to that terrain
106 ; irrigation_food_incr = increment to food if tile is irrigated
107 ; irrigation_time      = time to irrigate; if 0, cannot irrigate
108 ;                        Nonzero values only affect extras with build_time 0.
109 ; mining_result        = result of mining; one of:
110 ;                        "no"  -- cannot mine
111 ;                        "yes" -- can mine
112 ;                        terrain section -- mining changes to that terrain
113 ; mining_shield_incr   = increment to shields if tile is mined
114 ; mining_time          = time to mine; if 0, cannot mine
115 ;                        Nonzero values only affect extras with build_time 0.
116 ; transform_result     = result of transformation; one of:
117 ;                        "no"  -- cannot transform
118 ;                        terrain section -- transformation changes to that
119 ;                          terrain
120 ; transform_time       = time to transform; if 0, cannot transform
121 ; pillage_time         = time to pillage extra from the tile (0 = impossible)
122 ;                        Nonzero values only affect extras with removal_time 0.
123 ; clean_pollution_time = time to clean pollution (0 = impossible)
124 ;                        Nonzero values only affect extras with removal_time 0.
125 ; clean_fallout_time   = time to clean fallout (0 = impossible)
126 ;                        Nonzero values only affect extras with removal_time 0.
127 ; animal               = unit type that can appear as animal on the terrain
128 ; warmer_wetter_result = result of global warming for wet terrains; one of:
129 ;                        "no"  -- no change; does not count for warming
130 ;                        "yes" -- no change; counts for warming
131 ;                        terrain section -- warming changes to that terrain
132 ; warmer_drier_result  = result of global warming for dry terrains;
133 ;                        see warmer_wetter_result
134 ; cooler_wetter_result = result of nuclear winter for wet terrains;
135 ;                        see warmer_wetter_result
136 ; cooler_drier_result  = result of nuclear winter for dry terrains;
137 ;                        see warmer_wetter_result
138 ; native_to            = List of unit classes that can move here
139 ; flags                = General flags for this terrain. List taken from the
140 ;                        following, and/or any user flags defined above:
141 ;   - NoBarbs          = Barbarians will not be spawned here.
142 ;   - NoCities         = Cities may not be built or found on this terrain.
143 ;   - Starter          = Players will only be started on "Starter" terrain.
144 ;                        (Currently this cannot be Oceanic terrain.)
145 ;   - CanHaveRiver     = Set to 1 if this terrain can have river on it (the
146 ;                        actual chance of river generation is controlled
147 ;                        separately).
148 ;   - UnsafeCoast      = This terrain does not provide a safe voyage for
149 ;                        units with flag "Trireme"
150 ;   - FreshWater       = This terrain is used for small bodies of water.
151 ;                        If this becomes adjacent to non-FreshWater terrain,
152 ;                        the whole contiguous FreshWater area will be flooded
153 ;                        with the non-FreshWater terrain.
154 ;   - NotGenerated     = Map generator never places this terrain type. It can
155 ;                        be added from editor only, or by ingame events
156 ;                        (lua scripting)
157 ;   - NoZoc            = Units on this terrain are not generating or subject
158 ;                        to zoc
159 ;   - NoFortify        = Units cannot fortify on this terrain
160 ;   - Frozen           = Frozen/polar terrain. For water tiles, Frozen terrain
161 ;                        is generated near poles. Conversion between frozen
162 ;                        and unfrozen terrain can be controlled with
163 ;                        thaw_requirement/freeze_requirement, and Frozen
164 ;                        terrain is shown differently on the overview map.
165 ; property_*           = specific property % values used by mapgen. Most
166 ;                        terrains will have 0 for most values. Properties
167 ;                        other than ocean_depth are only used for land tiles.
168 ;  - mountainous       = degree to which this terrain is mountainous
169 ;  - green             = how much life this terrain has
170 ;  - foliage           = how much thick undergrowth the terrain has
171 ;  - tropical          = how "tropical" the terrain is (high temperature)
172 ;  - temperate         = how "temperate" the terrain is (med temperature)
173 ;  - cold              = how "cold" the terrain is (low temperature)
174 ;  - frozen            = how "frozen" the terrain is (very low temperature)
175 ;                        (does not necessarily have to have the "Frozen" flag)
176 ;  - wet               = how "wet" the terrain is (moisture)
177 ;  - dry               = how "dry" the terrain is (moisture)
178 ;  - ocean_depth       = the depth of an ocean, as an average level
179 ; color.r              = color of the terrain (red value)
180 ; color.g              = color of the terrain (green value)
181 ; color.b              = color of the terrain (blue value)
182 ; helptext             = optional help text string; should escape all raw
183 ;                        newlines so that xgettext parsing works
185 ; */ <-- avoid gettext warnings
187 [terrain_ocean]
188 name                 = _("Ocean")
189 graphic              = "coast"
190 graphic_alt          = "-"
191 identifier           = " "
192 class                = "Oceanic"
193 movement_cost        = 1
194 defense_bonus        = 0
195 food                 = 1
196 shield               = 0
197 trade                = 2
198 resources            = "Fish", "Whales"
199 road_trade_incr_pct  = 0
200 base_time            = 1
201 road_time            = 0
202 irrigation_result    = "no"
203 irrigation_food_incr = 0
204 irrigation_time      = 0
205 mining_result        = "no"
206 mining_shield_incr   = 0
207 mining_time          = 0
208 transform_result     = "no"
209 transform_time       = 0
210 pillage_time         = 1
211 animal               = "None"
212 warmer_wetter_result = "no"
213 warmer_drier_result  = "no"
214 cooler_wetter_result = "no"
215 cooler_drier_result  = "no"
216 native_to            = "Sea", "Air", "Missile", "Helicopter"
217 flags                = "UnsafeCoast", "NoCities", "NoZoc", "NoFortify"
218 property_ocean_depth = 36
219 color.r              = 0
220 color.g              = 46
221 color.b              = 137
222 helptext             = _("\
223 Oceans cover much of the world.\
226 [terrain_glacier]
227 name                 = _("Glacier")
228 graphic              = "arctic"
229 graphic_alt          = "-"
230 identifier           = "a"
231 class                = "Land"
232 movement_cost        = 2
233 defense_bonus        = 0
234 food                 = 0
235 shield               = 0
236 trade                = 0
237 resources            = "Ivory", "Icy Oil"
238 road_trade_incr_pct  = 0
239 base_time            = 1
240 road_time            = 4
241 irrigation_result    = "no"
242 irrigation_food_incr = 0
243 irrigation_time      = 0
244 mining_result        = "yes"
245 mining_shield_incr   = 1
246 mining_time          = 10
247 transform_result     = "Tundra"
248 transform_time       = 24
249 pillage_time         = 1
250 animal               = "None"
251 warmer_wetter_result = "no"
252 warmer_drier_result  = "no"
253 cooler_wetter_result = "no"
254 cooler_drier_result  = "no"
255 native_to            = "Land", "Air", "Missile", "Helicopter"
256 flags                = "NoBarbs", "CanHaveRiver", "Frozen"
257 property_frozen      = 100
258 color.r              = 232
259 color.g              = 232
260 color.b              = 232
261 helptext             = _("\
262 Glaciers are found only in the most northerly or southerly\
263  reaches of the world.  They are very cold, and hence difficult to\
264  work with.\
267 [terrain_desert]
268 name                 = _("Desert")
269 graphic              = "desert"
270 graphic_alt          = "-"
271 identifier           = "d"
272 class                = "Land"
273 movement_cost        = 1
274 defense_bonus        = 0
275 food                 = 0
276 shield               = 1
277 trade                = 0
278 resources            = "Oasis", "Oil"
279 road_trade_incr_pct  = 100
280 base_time            = 1
281 road_time            = 2
282 irrigation_result    = "yes"
283 irrigation_food_incr = 1
284 irrigation_time      = 5
285 mining_result        = "yes"
286 mining_shield_incr   = 1
287 mining_time          = 5
288 transform_result     = "Plains"
289 transform_time       = 24
290 pillage_time         = 1
291 animal               = "None"
292 warmer_wetter_result = "Swamp"
293 warmer_drier_result  = "no"
294 cooler_wetter_result = "no"
295 cooler_drier_result  = "no"
296 native_to            = "Land", "Air", "Missile", "Helicopter"
297 flags                = "CanHaveRiver"
298 property_dry         = 100
299 property_tropical    = 50
300 property_temperate   = 20
301 color.r              = 214
302 color.g              = 185
303 color.b              = 106
304 helptext             = _("\
305 Deserts are regions of extreme dryness, making agriculture and\
306  trade very difficult.\
309 [terrain_forest]
310 name                 = _("Forest")
311 graphic              = "forest"
312 graphic_alt          = "-"
313 identifier           = "f"
314 class                = "Land"
315 movement_cost        = 2
316 defense_bonus        = 50
317 food                 = 1
318 shield               = 2
319 trade                = 0
320 resources            = "Pheasant", "Silk"
321 road_trade_incr_pct  = 0
322 base_time            = 1
323 road_time            = 4
324 irrigation_result    = "Plains"
325 irrigation_food_incr = 0
326 irrigation_time      = 5
327 mining_result        = "no"
328 mining_shield_incr   = 0
329 mining_time          = 0
330 transform_result     = "Grassland"
331 transform_time       = 24
332 pillage_time         = 1
333 animal               = "None"
334 warmer_wetter_result = "Jungle"
335 warmer_drier_result  = "Desert"
336 cooler_wetter_result = "no"
337 cooler_drier_result  = "no"
338 native_to            = "Land", "Air", "Missile", "Helicopter"
339 flags                = "Starter", "CanHaveRiver"
340 property_cold        = 20
341 property_wet         = 20
342 property_foliage     = 50
343 property_temperate   = 50
344 color.r              = 43
345 color.g              = 107
346 color.b              = 19
347 helptext             = _("\
348 Forests are densely wooded, making agriculture somewhat\
349  problematic.\
352 [terrain_grassland]
353 name                 = _("Grassland")
354 graphic              = "grassland"
355 graphic_alt          = "-"
356 identifier           = "g"
357 class                = "Land"
358 movement_cost        = 1
359 defense_bonus        = 0
360 food                 = 2
361 shield               = 0
362 trade                = 0
363 resources            = "Resources"
364 road_trade_incr_pct  = 100
365 base_time            = 1
366 road_time            = 2
367 irrigation_result    = "yes"
368 irrigation_food_incr = 1
369 irrigation_time      = 5
370 mining_result        = "Forest"
371 mining_shield_incr   = 0
372 mining_time          = 10
373 transform_result     = "Hills"
374 transform_time       = 24
375 pillage_time         = 1
376 animal               = "None"
377 warmer_wetter_result = "Swamp"
378 warmer_drier_result  = "Desert"
379 cooler_wetter_result = "Desert"
380 cooler_drier_result  = "Tundra"
381 native_to            = "Land", "Air", "Missile", "Helicopter"
382 flags                = "Starter", "CanHaveRiver"
383 property_green       = 50
384 property_temperate   = 50
385 color.r              = 11
386 color.g              = 138
387 color.b              = 4
388 helptext             = _("\
389 Grasslands afford exceptional agricultural opportunities.\
392 [terrain_hills]
393 name                 = _("Hills")
394 graphic              = "hills"
395 graphic_alt          = "-"
396 identifier           = "h"
397 class                = "Land"
398 movement_cost        = 2
399 defense_bonus        = 100
400 food                 = 1
401 shield               = 0
402 trade                = 0
403 resources            = "Coal", "Wine"
404 road_trade_incr_pct  = 0
405 base_time            = 1
406 road_time            = 4
407 irrigation_result    = "yes"
408 irrigation_food_incr = 1
409 irrigation_time      = 10
410 mining_result        = "yes"
411 mining_shield_incr   = 3
412 mining_time          = 10
413 transform_result     = "Plains"
414 transform_time       = 24
415 pillage_time         = 1
416 animal               = "None"
417 warmer_wetter_result = "no"
418 warmer_drier_result  = "no"
419 cooler_wetter_result = "no"
420 cooler_drier_result  = "no"
421 native_to            = "Land", "Air", "Missile", "Helicopter"
422 flags                = "Starter", "CanHaveRiver"
423 property_green       = 50
424 property_mountainous = 30
425 color.r              = 24
426 color.g              = 97
427 color.b              = 5
428 helptext             = _("\
429 In addition to being amenable to agriculture, Hills are frequently\
430  rich in resources.\
433 [terrain_jungle]
434 name                 = _("Jungle")
435 graphic              = "jungle"
436 graphic_alt          = "-"
437 identifier           = "j"
438 class                = "Land"
439 movement_cost        = 2
440 defense_bonus        = 50
441 food                 = 1
442 shield               = 0
443 trade                = 0
444 resources            = "Gems", "Fruit"
445 road_trade_incr_pct  = 0
446 base_time            = 1
447 road_time            = 4
448 irrigation_result    = "Grassland"
449 irrigation_food_incr = 0
450 irrigation_time      = 15
451 mining_result        = "Forest"
452 mining_shield_incr   = 0
453 mining_time          = 15
454 transform_result     = "Plains"
455 transform_time       = 24
456 pillage_time         = 1
457 animal               = "None"
458 warmer_wetter_result = "no"
459 warmer_drier_result  = "no"
460 cooler_wetter_result = "Desert"
461 cooler_drier_result  = "Tundra"
462 native_to            = "Land", "Air", "Missile", "Helicopter"
463 flags                = "CanHaveRiver"
464 property_foliage     = 50
465 property_tropical    = 50
466 property_wet         = 50
467 color.r              = 55
468 color.g              = 156
469 color.b              = 38
470 helptext             = _("\
471 Jungles are densely overgrown, making agriculture somewhat\
472  problematic.\
475 [terrain_mountains]
476 name                 = _("Mountains")
477 graphic              = "mountains"
478 graphic_alt          = "-"
479 identifier           = "m"
480 class                = "Land"
481 movement_cost        = 3
482 defense_bonus        = 200
483 food                 = 0
484 shield               = 1
485 trade                = 0
486 resources            = "Gold", "Iron"
487 road_trade_incr_pct  = 0
488 base_time            = 1
489 road_time            = 6
490 irrigation_result    = "no"
491 irrigation_food_incr = 0
492 irrigation_time      = 0
493 mining_result        = "yes"
494 mining_shield_incr   = 1
495 mining_time          = 10
496 transform_result     = "Hills"
497 transform_time       = 24
498 pillage_time         = 1
499 animal               = "None"
500 warmer_wetter_result = "no"
501 warmer_drier_result  = "no"
502 cooler_wetter_result = "no"
503 cooler_drier_result  = "no"
504 native_to            = "Land", "Air", "Missile", "Helicopter"
505 flags                = "CanHaveRiver"
506 property_mountainous = 70
507 color.r              = 129
508 color.g              = 127
509 color.b              = 118
510 helptext             = _("\
511 Mountains are regions of extreme altitude, making agriculture and\
512  trade very difficult.\
515 [terrain_plains]
516 name                 = _("Plains")
517 graphic              = "plains"
518 graphic_alt          = "-"
519 identifier           = "p"
520 class                = "Land"
521 movement_cost        = 1
522 defense_bonus        = 0
523 food                 = 1
524 shield               = 1
525 trade                = 0
526 resources            = "Buffalo", "Wheat"
527 road_trade_incr_pct  = 100
528 base_time            = 1
529 road_time            = 2
530 irrigation_result    = "yes"
531 irrigation_food_incr = 1
532 irrigation_time      = 5
533 mining_result        = "Forest"
534 mining_shield_incr   = 0
535 mining_time          = 15
536 transform_result     = "Grassland"
537 transform_time       = 24
538 pillage_time         = 1
539 animal               = "None"
540 warmer_wetter_result = "Swamp"
541 warmer_drier_result  = "Desert"
542 cooler_wetter_result = "Desert"
543 cooler_drier_result  = "Tundra"
544 native_to            = "Land", "Air", "Missile", "Helicopter"
545 flags                = "Starter", "CanHaveRiver"
546 property_dry         = 50
547 property_green       = 50
548 property_temperate   = 50
549 color.r              = 122
550 color.g              = 156
551 color.b              = 46
552 helptext             = _("\
553 Plains are very broad, sparse regions, which makes trade slightly\
554  inconvenient.\
557 [terrain_swamp]
558 name                 = _("Swamp")
559 graphic              = "swamp"
560 graphic_alt          = "-"
561 identifier           = "s"
562 class                = "Land"
563 movement_cost        = 2
564 defense_bonus        = 50
565 food                 = 1
566 shield               = 0
567 trade                = 0
568 resources            = "Peat", "Spice"
569 road_trade_incr_pct  = 0
570 base_time            = 1
571 road_time            = 4
572 irrigation_result    = "Grassland"
573 irrigation_food_incr = 0
574 irrigation_time      = 15
575 mining_result        = "Forest"
576 mining_shield_incr   = 0
577 mining_time          = 15
578 transform_result     = "Plains"
579 transform_time       = 24
580 pillage_time         = 1
581 animal               = "None"
582 warmer_wetter_result = "no"
583 warmer_drier_result  = "Desert"
584 cooler_wetter_result = "no"
585 cooler_drier_result  = "Tundra"
586 native_to            = "Land", "Air", "Missile", "Helicopter"
587 flags                = "CanHaveRiver"
588 property_wet         = 100
589 property_tropical    = 10
590 property_temperate   = 10
591 property_cold        = 10
592 color.r              = 48
593 color.g              = 85
594 color.b              = 97
595 helptext             = _("\
596 Swamps suffer from an over-abundance of water, making agriculture\
597  somewhat problematic.\
600 [terrain_tundra]
601 name                 = _("Tundra")
602 graphic              = "tundra"
603 graphic_alt          = "-"
604 identifier           = "t"
605 class                = "Land"
606 movement_cost        = 1
607 defense_bonus        = 0
608 food                 = 1
609 shield               = 0
610 trade                = 0
611 resources            = "Game", "Furs"
612 road_trade_incr_pct  = 0
613 base_time            = 1
614 road_time            = 2
615 irrigation_result    = "yes"
616 irrigation_food_incr = 1
617 irrigation_time      = 5
618 mining_result        = "no"
619 mining_shield_incr   = 0
620 mining_time          = 0
621 transform_result     = "Desert"
622 transform_time       = 24
623 pillage_time         = 1
624 animal               = "None"
625 warmer_wetter_result = "no"
626 warmer_drier_result  = "no"
627 cooler_wetter_result = "Glacier"
628 cooler_drier_result  = "Glacier"
629 native_to            = "Land", "Air", "Missile", "Helicopter"
630 flags                = "Starter", "NoBarbs", "CanHaveRiver"
631 property_cold        = 50
632 color.r              = 188
633 color.g              = 188
634 color.b              = 188
635 helptext             = _("\
636 Tundra are broad, cold regions, fit for some agriculture and little\
637  else.\
640 ; The individual resource types, one per section.
641 ; Roughly sorted by identifier.
642 ; The actual tag used (the * in [resource_*]) must be unique for each resource,
643 ; and may be used in debug output when reading this file.
645 ; Notes:
647 ; name                 = name as seen by user; if "unused", it is not used,
648 ;                        but is included for conversion and/or the editor.
649 ; graphic              = tag specifying preferred graphic
650 ; graphic_alt          = tag for alternate garphic if preferred graphic is not 
651 ;                        present; especially if preferred graphic is non-standard, 
652 ;                        this should be a standard tag.  Otherwise can use eg "-" 
653 ;                        for no alternate graphic.
654 ; identifier           = single-character identifier used in savegames.  This
655 ;                        must be unique for each resource, and changing it will
656 ;                        break savegame compatibility.
657 ; food                 = increased food production
658 ; shield               = increased shield production
659 ; trade                = increased trade production
661 [resource_gold]
662 name        = _("Gold")
663 graphic     = "ts.gold"
664 graphic_alt = "-"
665 identifier  = "$"
666 trade       = 6
667 # mountains.
669 [resource_iron]
670 name        = _("Iron")
671 graphic     = "ts.iron"
672 graphic_alt = "-"
673 identifier  = "/"
674 shield      = 3
675 # mountains.
677 [resource_game]
678 name        = _("?animals:Game")
679 graphic     = "ts.tundra_game"
680 graphic_alt = "-"
681 identifier  = "e"
682 food        = 2
683 shield      = 1
684 # tundra.
686 [resource_furs]
687 name        = _("Furs")
688 graphic     = "ts.furs"
689 graphic_alt = "-"
690 identifier  = "u"
691 food        = 1
692 trade       = 3
693 # tundra-only (beaver pelts).
695 [resource_coal]
696 name        = _("Coal")
697 graphic     = "ts.coal"
698 graphic_alt = "-"
699 identifier  = "c"
700 shield      = 2
701 # hills.
703 ; "d" reserved for dyes
705 ; "e" reserved for (elephant) ivory
707 [resource_fish]
708 name        = _("Fish")
709 graphic     = "ts.fish"
710 graphic_alt = "-"
711 identifier  = "y"
712 food        = 2
713 # ocean.
715 [resource_fruit]
716 name        = _("Fruit")
717 graphic     = "ts.fruit"
718 graphic_alt = "-"
719 identifier  = "f"
720 food        = 3
721 trade       = 1
722 # jungle.
724 [resource_gems]
725 name        = _("Gems")
726 graphic     = "ts.gems"
727 graphic_alt = "-"
728 identifier  = "g"
729 trade       = 4
730 # jungle.
732 [resource_buffalo]
733 name        = _("Buffalo")
734 graphic     = "ts.buffalo"
735 graphic_alt = "-"
736 identifier  = "b"
737 shield      = 2
738 # plains (horses => buffalo => cattle).
740 [resource_wheat]
741 name        = _("Wheat")
742 graphic     = "ts.wheat"
743 graphic_alt = "-"
744 identifier  = "j"
745 food        = 2
746 # plains.
748 [resource_oasis]
749 name        = _("Oasis")
750 graphic     = "ts.oasis"
751 graphic_alt = "-"
752 identifier  = "o"
753 food        = 3
754 # desert.
756 [resource_peat]
757 name        = _("Peat")
758 graphic     = "ts.peat"
759 graphic_alt = "-"
760 identifier  = "a"
761 shield      = 4
762 # swamp (petroleum => peat => petroleum).
764 [resource_pheasant]
765 name        = _("Pheasant")
766 graphic     = "ts.pheasant"
767 graphic_alt = "-"
768 identifier  = "p"
769 food        = 2
770 # forest.
772 [resource_bonus]
773 name        = _("Resources")
774 graphic     = "ts.grassland_resources"
775 graphic_alt = "-"
776 identifier  = "r"
777 shield      = 1
778 # grassland.
780 [resource_icy_ivory]
781 name        = _("Ivory")
782 graphic     = "ts.arctic_ivory"
783 graphic_alt = "-"
784 identifier  = "i"
785 food        = 1
786 shield      = 1
787 trade       = 4
788 # glacier (seals => walrus).
790 [resource_silk]
791 name        = _("Silk")
792 graphic     = "ts.silk"
793 graphic_alt = "-"
794 identifier  = "s"
795 trade       = 3
796 # forest.
798 [resource_spice]
799 name        = _("Spice")
800 graphic     = "ts.spice"
801 graphic_alt = "-"
802 identifier  = "t"
803 food        = 2
804 trade       = 4
805 # swampy.
807 [resource_whales]
808 name        = _("Whales")
809 graphic     = "ts.whales"
810 graphic_alt = "-"
811 identifier  = "v"
812 food        = 1
813 shield      = 1
814 # ocean (sea).
816 [resource_wine]
817 name        = _("Wine")
818 graphic     = "ts.wine"
819 graphic_alt = "-"
820 identifier  = "w"
821 trade       = 4
822 # hilly.
824 [resource_icy_oil]
825 name        = _("Oil")
826 rule_name   = "Icy Oil"
827 graphic     = "ts.oil"
828 graphic_alt = "-"
829 identifier  = "x"
830 shield      = 4
831 # glacier-only.
833 [resource_desert_oil]
834 name        = _("Oil")
835 graphic     = "ts.oil"
836 graphic_alt = "-"
837 identifier  = "P"
838 shield      = 3
839 # desert-only, special processing, see savegame map_load().
842 [extraui]
844 ; Player visible names of the base gui types.
845 ui_name_base_fortress = _("?gui_type:Build Land base")
846 ui_name_base_airbase = _("?gui_type:Build Airforce base")
848 ; /* <-- avoid gettext warnings
850 ; Each extra, including bases and roads, must have a section here.
851 ; Bases and roads have additional sections for their specific features below.
854 ; Extra types:
856 ; name                    = translatable name as seen by user
857 ; rule_name               = (optional) name for savegames, rulesets etc; if not
858 ;                           present, 'name' is used. Since the name used in
859 ;                           savegames must not change, use this when renaming
860 ;                           an extra after a ruleset has been released.
861 ; category                = How UI should categorize this extra. One of
862 ;                           "Infra", "Natural", "Nuisance", or "Bonus"
863 ; causes                  = events that can create extra type.
864 ;                           "Irrigation", "Mine", "Hut", "Pollution", "Fallout",
865 ;                           "Base", or "Road"
866 ; rmcauses                = events that can remove extra type.
867 ;                           "CleanPollution", "CleanFallout", or "Pillage"
868 ; graphic                 = tag specifying preferred graphic
869 ; graphic_alt             = tag for alternate graphic if preferred graphic is
870 ;                           not present. Can use eg "-" for no alternate
871 ;                           graphic
872 ; activity_gfx            = tag specifying graphic for unit building extra
873 ;                           This can be "None" to indicate that graphic sprite
874 ;                           is not needed.
875 ; act_gfx_alt             = tag for alternative graphic for unit building extra
876 ; act_gfx_alt2            = tag for second alternative graphic for unit building extra
877 ; rmact_gfx               = tag specifying graphic for unit removing extra
878 ;                           This can be "None" to indicate that graphic sprite
879 ;                           is not needed.
880 ; rmact_gfx_alt           = tag for alternative graphic for unit removing extra
881 ; reqs                    = requirements to build the extra (see effects.ruleset
882 ;                           and README.effects for help on requirements)
883 ; rmreqs                  = requirements to remove the extra
884 ; buildable               = Can extra be built? Defaults to TRUE
885 ; build_time              = how long it takes a unit to build this extra.
886 ;                           Value of 0 (default) means that terrain- and
887 ;                           build activity specific time is used instead.
888 ; build_time_factor       = This setting take effect only if build_time is 0.
889 ;                           Terrain and activity specific build time will be
890 ;                           multiplied by this value (default 1)
891 ; removal_time            = how long it takes a unit to remove this extra.
892 ;                           Value of 0 (default) means that terrain- and
893 ;                           removal activity specific time is used instead.
894 ; removal_time_factor     = This setting take effect only if removal_time is 0.
895 ;                           Terrain and activity specific removal time will be
896 ;                           multiplied by this value (default 1)
897 ; defense_bonus           = Percent added to defense when tile has the extra
898 ;                           (default none)
899 ; native_to               = List of unit classes that are considered to
900 ;                           be inside the extra when they are on same tile
901 ; conflicts               = List of extras that cannot be on the same tile.
902 ;                           Bases with non-zero border_sq automatically conflict
903 ;                           with each other.
904 ; hidden_by               = List of extra types that will make this extra
905 ;                           type not to show on UI if both present.
906 ; flags
907 ;   - "NativeTile"        = Native units consider tile native regardless of
908 ;                           terrain
909 ;   - "Refuel"            = Native units can use tile as refuel point
910 ;   - "TerrChangeRemoves" = Extra gets removed when ever terrain changes even
911 ;                           if target terrain could support it
912 ;   - "AlwaysOnCityCenter" = City center tiles always have this extra type
913 ;                           regardless of its other requirements
914 ;   - "AutoOnCityCenter"  = City center tiles will automatically have this
915 ;                           extra type if the player can build it
916 ;   - "ConnectLand"       = Road style gfx on Oceanic tiles are drawn to
917 ;                           connect to adjacent Land tiles even if they have
918 ;                           no extra. This affects appearance only
919 ;   - "GlobalWarming"     = Instances of this extra on map count towards
920 ;                           Global Warming
921 ;   - "NuclearWinter"     = Instances of this extra on map count towards
922 ;                           Nuclear Winter
923 ;   - "ShowFlag"          = Draw owner's flag
924 ;   - "NaturalDefense"    = Extra's defense bonus will be counted to "Natural"
925 ;                           defense layer. The defense bonus of all the extras
926 ;                           located at the tile, native to defending unit,
927 ;                           is calculated as a 1 + sum of bonuses from the extras
928 ;                           on the default "Fortification" defense layer multiplied
929 ;                           by the 1 + sum of bonuses from the extras on the
930 ;                           "Natural" layer.
931 ; helptext                = optional help text string; should escape all raw
932 ;                           newlines so that xgettext parsing works
934 ; */ <-- avoid gettext warnings
936 [extra_irrigation]
937 name           = _("Irrigation")
938 category       = "Infra"
939 causes         = "Irrigation"
940 rmcauses       = "Pillage"
941 graphic        = "tx.irrigation"
942 graphic_alt    = "-"
943 activity_gfx   = "unit.irrigation"
944 act_gfx_alt    = "unit.irrigate"
945 act_gfx_alt2   = "-"
946 rmact_gfx      = "None"
947 rmact_gfx_alt  = "-"
948 build_time     = 0
949 removal_time   = 0
950 conflicts      = "Mine"
951 hidden_by      = "Farmland"
953 [extra_mine]
954 name           = _("Mine")
955 category       = "Infra"
956 causes         = "Mine"
957 rmcauses       = "Pillage"
958 graphic        = "tx.mine"
959 graphic_alt    = "-"
960 activity_gfx   = "unit.mine"
961 act_gfx_alt    = "unit.plant"
962 act_gfx_alt2   = "-"
963 rmact_gfx      = "None"
964 rmact_gfx_alt  = "-"
965 build_time     = 0
966 removal_time   = 0
967 conflicts      = "Irrigation", "Farmland"
969 [extra_pollution]
970 name           = _("Pollution")
971 category       = "Nuisance"
972 causes         = "Pollution", "Fallout"
973 rmcauses       = "CleanPollution"
974 graphic        = "tx.pollution"
975 graphic_alt    = "-"
976 activity_gfx   = "None"
977 act_gfx_alt    = "-"
978 act_gfx_alt2   = "-"
979 rmact_gfx      = "unit.pollution"
980 rmact_gfx_alt  = "-"
981 reqs           =
982     { "type", "name", "range", "present"
983       "Terrain", "Ocean", "Local", FALSE
984     }
985 removal_time   = 0
986 flags          = "GlobalWarming"
988 [extra_hut]
989 name           = _("Minor Tribe Village")
990 rule_name      = "Hut"
991 category       = "Bonus"
992 causes         = "Hut"
993 ;rmcauses       = ""
994 graphic        = "tx.village"
995 graphic_alt    = "-"
996 activity_gfx   = "None"
997 act_gfx_alt    = "-"
998 act_gfx_alt2   = "-"
999 rmact_gfx      = "None"
1000 rmact_gfx_alt  = "-"
1001 reqs           =
1002     { "type", "name", "range"
1003       "TerrainClass", "Land", "Local"
1004     }
1005 helptext = _("\
1006 Villages (also called \"huts\") are primitive communities spread \
1007 across the world at the beginning of the game. Any land unit can enter \
1008 a village, making the village disappear and deliver a random response. \
1009 If the village proves hostile, it could produce barbarians or the unit \
1010 entering may simply be destroyed. If they are friendly, the player \
1011 could receive gold, a new technology, a military unit (occasionally a \
1012 settler; and sometimes a unit that the player cannot yet create), or \
1013 even a new city.\
1014 "), _("\
1015 Later in the game, helicopters may also enter villages, but overflight \
1016 by other aircraft will cause the villagers to take fright and disband.\
1019 [extra_farmland]
1020 name           = _("Farmland")
1021 category       = "Infra"
1022 causes         = "Irrigation"
1023 rmcauses       = "Pillage"
1024 graphic        = "tx.farmland"
1025 graphic_alt    = "-"
1026 activity_gfx   = "unit.farmland"
1027 act_gfx_alt    = "unit.irrigation"
1028 act_gfx_alt2   = "unit.irrigate"
1029 rmact_gfx      = "None"
1030 rmact_gfx_alt  = "-"
1031 reqs           =
1032     { "type", "name", "range"
1033       "Tech", "Refrigeration", "Player"
1034       "Extra", "Irrigation", "Local"
1035     }
1036 build_time     = 0
1037 removal_time   = 0
1038 conflicts      = "Mine"
1040 [extra_fortress]
1041 name           = _("Fortress")
1042 category       = "Infra"
1043 causes         = "Base"
1044 rmcauses       = "Pillage"
1045 graphic        = "base.fortress"
1046 graphic_alt    = "-"
1047 activity_gfx   = "unit.fortress"
1048 act_gfx_alt    = "-"
1049 act_gfx_alt2   = "-"
1050 rmact_gfx      = "None"
1051 rmact_gfx_alt  = "-"
1052 reqs           =
1053     { "type", "name", "range", "present"
1054       "Tech", "Construction", "Player", TRUE
1055       "TerrainClass", "Land", "Local", TRUE
1056       "UnitFlag", "Settlers", "Local", TRUE
1057       "CityTile", "Center", "Local", FALSE
1058     }
1059 build_time     = 3
1060 removal_time   = 0
1061 defense_bonus  = 100
1062 native_to      = "Land"
1063 helptext       = _("\
1064 Fortresses improve defense for land units. Among other effects, a land \
1065 unit remaining in a fortress for a whole turn without moving recovers \
1066 a quarter of its hit points.\
1069 [extra_airbase]
1070 name           = _("Airbase")
1071 category       = "Infra"
1072 causes         = "Base"
1073 rmcauses       = "Pillage"
1074 graphic        = "base.airbase"
1075 graphic_alt    = "-"
1076 activity_gfx   = "unit.airbase"
1077 act_gfx_alt    = "-"
1078 act_gfx_alt2   = "-"
1079 rmact_gfx      = "None"
1080 rmact_gfx_alt  = "-"
1081 reqs           =
1082     { "type", "name", "range", "present"
1083       "Tech", "Radio", "Player", TRUE
1084       "TerrainClass", "Land", "Local", TRUE
1085       "UnitFlag", "Airbase", "Local", TRUE
1086       "CityTile", "Center", "Local", FALSE
1087     }
1088 build_time     = 3
1089 removal_time   = 0
1090 native_to      = "Air", "Helicopter", "Missile"
1091 flags          = "Refuel"
1092 helptext       = _("\
1093 Airbases allow your air units to land and refuel. Air units in an \
1094 airbase may be attacked by land units.\
1097 [extra_road]
1098 name           = _("Road")
1099 category       = "Infra"
1100 causes         = "Road"
1101 rmcauses       = "Pillage"
1102 graphic        = "road.road"
1103 graphic_alt    = "-"
1104 activity_gfx   = "unit.road"
1105 act_gfx_alt    = "-"
1106 act_gfx_alt2   = "-"
1107 rmact_gfx      = "None"
1108 rmact_gfx_alt  = "-"
1109 reqs           =
1110     { "type", "name", "range"
1111       "UnitFlag", "Settlers", "Local"
1112       "TerrainClass", "Land", "Local"
1113     }
1114 build_time     = 0
1115 removal_time   = 0
1116 native_to      = "Land"
1117 hidden_by      = "Railroad"
1118 flags          = "AlwaysOnCityCenter"
1119 helptext       = _("\
1120 Roads allow your land units to move more quickly, and on some terrain,\
1121  also provide a trade bonus.\
1122 "), _("\
1123 Building roads on river tiles requires knowledge of Bridge Building.\
1124  City center tiles automatically get roads, and are an exception to\
1125  this requirement.\
1128 [extra_railroad]
1129 name           = _("Railroad")
1130 category       = "Infra"
1131 causes         = "Road"
1132 rmcauses       = "Pillage"
1133 graphic        = "road.rail"
1134 graphic_alt    = "-"
1135 activity_gfx   = "unit.rail"
1136 act_gfx_alt    = "unit.road"
1137 act_gfx_alt2   = "-"
1138 rmact_gfx      = "None"
1139 rmact_gfx_alt  = "-"
1140 reqs           =
1141     { "type", "name", "range"
1142       "Tech", "Railroad", "Player"
1143       "Extra", "Road", "Local"
1144       "UnitFlag", "Settlers", "Local"
1145       "TerrainClass", "Land", "Local"
1146     }
1147 build_time     = 3
1148 removal_time   = 0
1149 native_to      = "Land"
1150 flags          = "AutoOnCityCenter"
1151 helptext       = _("\
1152 Once you learn the Railroad technology, you may upgrade your roads\
1153  to railroads. Units expend no movement points when moving along a\
1154  railroad; you may ride a railroad indefinitely. (As may your enemies!)\
1155 "), _("\
1156 A railroad also increases any shield resources produced by a tile.\
1157  A tile whose road is upgraded to a railroad retains any trade bonus\
1158  from the road as well.\
1159 "), _("\
1160 City center tiles with roads are automatically upgraded to railroads\
1161  when you learn the Railroad technology.\
1164 [extra_river]
1165 name           = _("River")
1166 category       = "Natural"
1167 causes         = "Road"
1168 ;rmcauses       = ""
1169 graphic        = "road.river"
1170 graphic_alt    = "-"
1171 activity_gfx   = "None"
1172 act_gfx_alt    = "-"
1173 act_gfx_alt2   = "-"
1174 rmact_gfx      = "None"
1175 rmact_gfx_alt  = "-"
1176 buildable      = FALSE
1177 defense_bonus  = 50
1178 native_to      = "Land"
1179 flags          = "NaturalDefense"
1180 ; /* xgettext:no-c-format */
1181 helptext       = _("\
1182 Any land terrain type may have a River on it.  A River adds 1\
1183  trade to the resources produced by that tile.  It also increases a tile's\
1184  defense factor by 50%.  Finally, land units may move along a River (but\
1185  not diagonally) for fast travel.\
1186 "), _("\
1187 Roads and railroads can only be built on River tiles if your\
1188  civilization has learned Bridge Building technology.\
1191 ; /* <-- avoid gettext warnings
1193 ; Base types:
1195 ; extra                   = name of the extra this base section is part of
1196 ; gui_type                = How gui should handle this base.
1197 ;                           Value can be "Fortress", "Airbase", or "Other"
1198 ; border_sq               = Base will claim land ownership up to this radius,
1199 ;                           -1 to disable. If enabled, base cannot exist in city tile.
1200 ; vision_main_sq          = Base will have main layer vision to this radius
1201 ; vision_invis_sq         = Base will have invisible layer vision to this radius
1202 ; flags
1203 ;   - "NoAggressive"      = Units inside are not considered aggressive if there`s
1204 ;                           friendly city within 3 tiles
1205 ;   - "NoStackDeath"      = Units inside do not die all at once when attacked
1206 ;   - "DiplomatDefense"   = Diplomats inside get bonus to diplomatic defense
1207 ;   - "ParadropFrom"      = Paradrop can be initiated from base
1209 ; */ <-- avoid gettext warnings
1211 [base_fortress]
1212 extra         = "Fortress"
1213 gui_type      = "Fortress"
1214 flags         = "NoAggressive", "NoStackDeath", "DiplomatDefense"
1216 [base_airbase]
1217 extra         = "Airbase"
1218 gui_type      = "Airbase"
1219 flags         = "NoStackDeath", "ParadropFrom"
1221 ; /* <-- avoid gettext warnings
1223 ; Road types:
1225 ; extra                   = name of the extra this road section is part of
1226 ; first_reqs              = additional requirements to build the first part of
1227 ;                           the road, when none of the adjacent tiles have any
1228 ;                           integrating roads (see effects.ruleset and
1229 ;                           README.effects for help on requirements)
1230 ; move_cost               = how much movement it takes to travel
1231 ;                           via this road (in fractional move points, as
1232 ;                           defined by move_fragments)
1233 ;                           -1 means that road provides no speed bonus.
1234 ; move_mode               = how movement costs are applied
1235 ;   - "Cardinal"   = Road cost applies only on cardinal moves
1236 ;   - "Relaxed"    = Road cost is normal for cardinal, double for diagonal moves
1237 ;   - "FastAlways" = Road cost applies always between two tiles with the roads
1238 ;                    (default)
1239 ; food_incr_const         = food production added to tile regardless of terrain
1240 ; shield_incr_const       = shield production added to tile regardless of
1241 ;                           terrain
1242 ; trade_incr_const        = trade production added to tile regardless of
1243 ;                           terrain
1244 ; food_incr               = food production added to tile; multiplied by
1245 ;                           terrain-specific road_food_incr_pct
1246 ; shield_incr             = shield production added to tile; multiplied by
1247 ;                           terrain-specific road_shield_incr_pct
1248 ; trade_incr              = trade production added to tile; multiplied by
1249 ;                           terrain-specific road_trade_incr_pct
1250 ; food_bonus              = percent added to food production
1251 ; shield_bonus            = percent added to shield production
1252 ; trade_bonus             = percent added to trade production
1253 ;   In summary, output bonuses from roads are given by the formula:
1254 ;   (base_prod + roads.incr_const + roads.incr*terrain.incr_pct) * roads.bonus
1255 ; compat_special          = what kind of pre-2.5 special this road corresponds
1256 ;                           to, if any: "Road", "Railroad", "River, or "None".
1257 ;                           Used for UI and loading old savegames
1258 ; integrates              = list of road types that are suitable next steps
1259 ;                           for travel from this road type
1260 ; flags
1261 ;   - "RequiresBridge"    = Technology with "Bridge" flag needed to build this
1262 ;                           road on the same tile as another road with
1263 ;                           "PreventsOtherRoads" flag (usually rivers)
1264 ;   - "PreventsOtherRoads" = Prevents "RequiresBridge" roads being built on
1265 ;                           the same tile as this one without appropriate tech
1266 ;   - "River"             = Automatically generated by map generator, always
1267 ;                           flowing from land tiles to ocean
1268 ;   - "UnrestrictedInfra" = Use of the enemy owned road is not restricted
1269 ;                           even if server setting 'restrictinfra' is set
1270 ;   - "JumpFrom"          = Move to a tile nativity providing "JumpTo"
1271 ;                           road is considered native
1272 ;   - "JumpTo"            = Move from a tile nativity providing "JumpFrom"
1273 ;                           road is considered native
1275 ; */ <-- avoid gettext warnings
1277 [road_road]
1278 extra          = "Road"
1279 move_cost      = 1
1280 food_incr      = 0
1281 shield_incr    = 0
1282 trade_incr     = 1
1283 food_bonus     = 0
1284 shield_bonus   = 0
1285 trade_bonus    = 0
1286 compat_special = "Road"
1287 flags          = "RequiresBridge"
1289 [road_railroad]
1290 extra          = "Railroad"
1291 move_cost      = 0
1292 food_incr      = 0
1293 shield_incr    = 0
1294 trade_incr     = 0
1295 food_bonus     = 0
1296 shield_bonus   = 50
1297 trade_bonus    = 0
1298 compat_special = "Railroad"
1299 flags          = "RequiresBridge"
1301 [road_river]
1302 extra          = "River"
1303 move_cost      = 1
1304 move_mode      = "Cardinal"
1305 trade_incr_const = 1
1306 compat_special = "River"
1307 flags          = "River", "PreventsOtherRoads", "UnrestrictedInfra"