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