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