Make AI less likely to stop building wonder
[freeciv.git] / data / alien / terrain.ruleset
blob82e8231e9163920a35ae2c67a745d79249f31c76
1 ; This is Alien World terrain ruleset.
3 ; Modifying this file:
4 ; You should not modify this file except to make bugfixes or
5 ; for other "maintenance".  If you want to make custom changes,
6 ; you should create a new datadir subdirectory and copy this file
7 ; into that directory, and then modify that copy.  Then use the
8 ; command "rulesetdir <mysubdir>" in the server to have freeciv
9 ; use your new customized file.
11 ; Note that the freeciv AI may not cope well with anything more
12 ; than minor changes.
14 [datafile]
15 description="Alien World tile_type data for Freeciv"
16 options="+Freeciv-2.6-ruleset"
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     _("Radiating"), _("Terrain has alien radiation.")
27     _("NoPollution"), _("No Pollution nor Fallout appear here.")
28   }
30 [parameters]
32 ; Percentage of "land" tiles required to be adjacent to an ocean tile before
33 ; it may be "reclaimed" into a land tile (0-101; 0=anywhere, 101=nowhere)
34 ocean_reclaim_requirement = 30
36 ; Percentage of "ocean" tiles required to be adjacent to a land tile before
37 ; it may be "channeled" into an ocean tile (0-101; 0=anywhere, 101=nowhere)
38 land_channel_requirement = 10
40 ; Percentage of unfrozen tiles (no "Frozen" flag) required to be adjacent
41 ; to a frozen tile before it can thaw (0-101; 0=anywhere, default 101=nowhere)
42 ;thaw_requirement = 101
44 ; Percentage of frozen tiles ("Frozen" flag) required to be adjacent to an
45 ; unfrozen tile before it can freeze (0-101; 0=anywhere, default 101=nowhere)
46 ;freeze_requirement = 101
48 ; Bodies of water up to this size are considered freshwater lakes, if there is
49 ; also terrain type(s) with flag "FreshWater" in the ruleset.
50 lake_max_size = 0
52 ; How many native tiles first startunit must be able to reach.
53 ; 0 to disable check.
54 min_start_native_area = 15
56 ; How many fragments each movement point has.
57 ; For example road movement costs are relative to this.
58 move_fragments = 4
60 ; How many move_fragments IgTer unit movement costs
61 igter_cost = 2
63 ; Whether diagonal movement has increased cost 
64 ; The cost increase is more accurate with larger values for move_fragments
65 pythagorean_diagonal = FALSE
67 ; There are resources in the middle of the oceans, not only near coast
68 ocean_resources = TRUE
70 ; /* <-- avoid gettext warnings
72 ; Below: The individual terrain types, one per section.
74 ; The actual tag used (the * in [terrain_*]) must be unique for each terrain,
75 ; and may be used in debug output when reading this file.
77 ; Notes:
79 ; name                 = translatable name as seen by user; if "unused", it is
80 ;                        not used, but is included for conversion and/or the
81 ;                        editor.
82 ; rule_name            = (optional) name for savegames, rulesets etc; if not
83 ;                        present, 'name' is used. Since the name used in
84 ;                        savegames must not change, use this when renaming a
85 ;                        terrain after a ruleset has been released.
86 ; graphic              = preferred graphic; Tilespec [tile_*] section
87 ;                        with 'tag' matching this will be used.
88 ; graphic_alt          = alternate graphic. When no tilespec 'tag' matching
89 ;                        preferred graphic is not found, this will be used.
90 ;                        Otherwise may be "-"
91 ; identifier           = single-character identifier used in savegames. This
92 ;                        must be unique for each terrain.
93 ; class                = Terrain class terrain belongs to: "Land" or "Oceanic"
94 ; movement_cost        = in whole movement points, not move_fragments;
95 ;                        typically 1 to 3
96 ; defense_bonus        = percent added to defense; typically 0% to 200%
97 ; food                 = normal food production
98 ; shield               = normal shield production
99 ; trade                = normal trade production
100 ; resources            = list of possible resources on this terrain
101 ; road_food_incr_pct   = percent of road food_incr applied to this terrain
102 ; road_shield_incr_pct = percent of road shield_incr applied to this terrain
103 ; road_trade_incr_pct  = percent of road trade_incr applied to this terrain
104 ; base_time            = time to build bases; if 0, cannot build any bases.
105 ;                        Nonzero values only affect bases with build_time 0.
106 ; road_time            = time to build roads; if 0, cannot build any roads.
107 ;                        Nonzero values only affect roads with build_time 0.
108 ; irrigation_result    = result of irrigation; one of:
109 ;                        "no"  -- cannot irrigate
110 ;                        "yes" -- can irrigate
111 ;                        terrain name -- irrigation changes to that terrain
112 ; irrigation_food_incr = increment to food if tile is irrigated
113 ; irrigation_time      = time to irrigate; if 0, cannot irrigate
114 ;                        Nonzero values only affect extras with build_time 0.
115 ; mining_result        = result of mining; one of:
116 ;                        "no"  -- cannot mine
117 ;                        "yes" -- can mine
118 ;                        terrain name -- mining changes to that terrain
119 ; mining_shield_incr   = increment to shields if tile is mined
120 ; mining_time          = time to mine; if 0, cannot mine
121 ;                        Nonzero values only affect extras with build_time 0.
122 ; transform_result     = result of transformation; one of:
123 ;                        "no"  -- cannot transform
124 ;                        terrain section -- transformation changes to that
125 ;                          terrain
126 ; transform_time       = time to transform; if 0, cannot transform
127 ; pillage_time         = time to pillage extra from the tile (0 = impossible)
128 ;                        Nonzero values only affect extras with removal_time 0.
129 ; clean_pollution_time = time to clean pollution (0 = impossible)
130 ;                        Nonzero values only affect extras with removal_time 0.
131 ; clean_fallout_time   = time to clean fallout (0 = impossible)
132 ;                        Nonzero values only affect extras with removal_time 0.
133 ; animal               = unit type that can appear as animal on the terrain
134 ; warmer_wetter_result = result of global warming for wet terrains; one of:
135 ;                        "no"  -- no change; doesn''t count for warming
136 ;                        "yes" -- no change; counts for warming
137 ;                        terrain name -- warming changes to that terrain
138 ; warmer_drier_result  = result of global warming for dry terrains;
139 ;                        see warmer_wetter_result
140 ; cooler_wetter_result = result of nuclear winter for wet terrains;
141 ;                        see warmer_wetter_result
142 ; cooler_drier_result  = result of nuclear winter for dry terrains;
143 ;                        see warmer_wetter_result
144 ; native_to            = List of unit classes that can move here
145 ; flags                = General flags for this terrain. List taken from the
146 ;                        following, and/or any user flags defined above:
147 ;   - NoBarbs          = Barbarians will not be spawned here.
148 ;   - NoCities         = Cities may not be built or found on this terrain.
149 ;   - Starter          = Players will only be started on "Starter" terrain.
150 ;                        (Currently this cannot be Oceanic terrain.)
151 ;   - CanHaveRiver     = Set to 1 if this terrain can have river on it (the
152 ;                        actual chance of river generation is controlled
153 ;                        separately).
154 ;   - UnsafeCoast      = This terrain does not provide a safe coast for
155 ;                        units with flag "Trireme"
156 ;   - FreshWater       = This terrain is used for small bodies of water.
157 ;                        If this becomes adjacent to non-FreshWater terrain,
158 ;                        the whole contiguous FreshWater area will be flooded
159 ;                        with the non-FreshWater terrain.
160 ;   - NotGenerated     = Map generator never places this terrain type. It can
161 ;                        be added from editor only, or by ingame events
162 ;                        (lua scripting)
163 ;   - NoZoc            = Units on this terrain are not generating or subject
164 ;                        to zoc
165 ;   - NoFortify        = Units cannot fortify on this terrain
166 ;   - Frozen           = Frozen/polar terrain. For water tiles, Frozen terrain
167 ;                        is generated near poles. Conversion between frozen
168 ;                        and unfrozen terrain can be controlled with
169 ;                        thaw_requirement/freeze_requirement, and Frozen
170 ;                        terrain is shown differently on the overview map.
171 ; property_*           = specific property % values used by mapgen. Most
172 ;                        terrains will have 0 for most values. Properties
173 ;                        other than ocean_depth are only used for land tiles.
174 ;  - mountainous       = degree to which this terrain is mountainous
175 ;  - green             = how much life this terrain has
176 ;  - foliage           = how much thick undergrowth the terrain has
177 ;  - tropical          = how "tropical" the terrain is (high temperature)
178 ;  - temperate         = how "temperate" the terrain is (med temperature)
179 ;  - cold              = how "cold" the terrain is (low temperature)
180 ;  - frozen            = how "frozen" the terrain is (very low temperature)
181 ;                        (does not necessarily have to have the "Frozen" flag)
182 ;  - wet               = how "wet" the terrain is (moisture)
183 ;  - dry               = how "dry" the terrain is (moisture)
184 ;  - ocean_depth       = the depth of an ocean, as a percentage
185 ; color.r              = color of the terrain (red value)
186 ; color.g              = color of the terrain (green value)
187 ; color.b              = color of the terrain (blue value)
188 ; helptext             = optional help text string; should escape all raw
189 ;                        newlines so that xgettext parsing works
191 ; */ <-- avoid gettext warnings
193 [terrain_inaccesible]
194 name                 = _("Inaccessible")
195 graphic              = "inaccessible"
196 graphic_alt          = "arctic"
197 identifier           = "i"
198 class                = "Land"
199 movement_cost        = 0
200 defense_bonus        = 0
201 food                 = 0
202 shield               = 0
203 trade                = 0
204 road_food_incr_pct   = 0
205 road_shield_incr_pct = 0
206 road_trade_incr_pct  = 0
207 base_time            = 0
208 road_time            = 0
209 irrigation_result    = "no"
210 irrigation_food_incr = 0
211 irrigation_time      = 0
212 mining_result        = "no"
213 mining_shield_incr   = 0
214 mining_time          = 0
215 transform_result     = "no"
216 transform_time       = 0
217 pillage_time         = 0
218 clean_pollution_time = 0
219 clean_fallout_time   = 0
220 animal               = "None"
221 warmer_wetter_result = "no"
222 warmer_drier_result  = "no"
223 cooler_wetter_result = "no"
224 cooler_drier_result  = "no"
225 flags                = "NotGenerated", "NoPollution", "NoCities", "UnsafeCoast", "Frozen"
226 color.r              = 25
227 color.g              = 25
228 color.b              = 25
229 helptext             = _("\
230 No unit can enter this terrain, nor can city work the tile.\
233 [terrain_grassland]
234 name                 = _("Grassland")
235 graphic              = "grassland"
236 graphic_alt          = "-"
237 identifier           = "g"
238 class                = "Land"
239 movement_cost        = 1
240 defense_bonus        = 0
241 food                 = 2
242 shield               = 0
243 trade                = 0
244 resources            = "Resources"
245 road_trade_incr_pct  = 100
246 base_time            = 1
247 road_time            = 2
248 irrigation_result    = "yes"
249 irrigation_food_incr = 1
250 irrigation_time      = 5
251 mining_result        = "no"
252 mining_shield_incr   = 0
253 mining_time          = 10
254 transform_result     = "no"
255 transform_time       = 24
256 pillage_time         = 1
257 clean_pollution_time = 3
258 clean_fallout_time   = 3
259 animal               = "None"
260 warmer_wetter_result = "no"
261 warmer_drier_result  = "no"
262 cooler_wetter_result = "no"
263 cooler_drier_result  = "no"
264 native_to            = "Earthly", "Native", "Burrowing", "Antigravity", "Amphibious", "Missile"
265 flags                = "Starter", "CanHaveRiver"
266 property_temperate   = 50
267 property_green       = 50
268 color.r              = 10
269 color.g              = 123
270 color.b              = 2
271 helptext             = _("\
272 For some reason, there is Earth like grass and animals around.\
275 [terrain_alien_forest]
276 name                 = _("Alien Forest")
277 graphic              = "alien_forest"
278 graphic_alt          = "forest"
279 identifier           = "f"
280 class                = "Land"
281 movement_cost        = 2
282 defense_bonus        = 50
283 food                 = 1
284 shield               = 2
285 trade                = 0
286 resources            = "Huge Plant"
287 road_trade_incr_pct  = 0
288 base_time            = 1
289 road_time            = 5
290 irrigation_result    = "no"
291 irrigation_food_incr = 0
292 irrigation_time      = 10
293 mining_result        = "Radiating Rocks"
294 mining_shield_incr   = 0
295 mining_time          = 10
296 transform_result     = "no"
297 transform_time       = 24
298 pillage_time         = 1
299 clean_pollution_time = 3
300 clean_fallout_time   = 3
301 animal               = "None"
302 warmer_wetter_result = "no"
303 warmer_drier_result  = "no"
304 cooler_wetter_result = "no"
305 cooler_drier_result  = "no"
306 native_to            = "Native", "Burrowing", "Antigravity", "Missile"
307 flags                = "CanHaveRiver", "Radiating"
308 property_dry         = 60
309 property_foliage     = 50
310 color.r              = 43
311 color.g              = 107
312 color.b              = 19
313 helptext             = _("\
314 These forests are filled with strange alien organisms. This planet's \
315 radiation makes it impossible for Earthly organisms to survive here.\n\n\
316 Cities can work these tiles only when Organic Structures is known. \
317 Inventing Alien Rights gives +1 production bonus to Alien Forest tiles.\
320 [terrain_radiating_rocks]
321 name                 = _("Radiating Rocks")
322 graphic              = "radiating_rocks"
323 graphic_alt          = "desert"
324 identifier           = "d"
325 class                = "Land"
326 movement_cost        = 2
327 defense_bonus        = 50
328 food                 = 0
329 shield               = 3
330 trade                = 0
331 resources            = "Glowing Rocks"
332 road_trade_incr_pct  = 0
333 base_time            = 1
334 road_time            = 7
335 irrigation_result    = "Alien Forest"
336 irrigation_food_incr = 0
337 irrigation_time      = 10
338 mining_result        = "no"
339 mining_shield_incr   = 0
340 mining_time          = 10
341 transform_result     = "no"
342 transform_time       = 24
343 pillage_time         = 1
344 clean_pollution_time = 3
345 clean_fallout_time   = 3
346 animal               = "None"
347 warmer_wetter_result = "no"
348 warmer_drier_result  = "no"
349 cooler_wetter_result = "no"
350 cooler_drier_result  = "no"
351 native_to            = "Native", "Burrowing", "Antigravity", "Missile"
352 flags                = "CanHaveRiver", "Radiating"
353 property_dry         = 70
354 property_tropical    = 50
355 color.r              = 205
356 color.g              = 92
357 color.b              = 92
358 helptext             = _("\
359 Planet's radiation makes it impossible for Earth organisms to survive here.\
360 \n\n\
361 Cities can work these tiles only when Organic Structures is known.\
364 [terrain_hills]
365 name                 = _("Hills")
366 graphic              = "hills"
367 graphic_alt          = "-"
368 identifier           = "h"
369 class                = "Land"
370 movement_cost        = 2
371 defense_bonus        = 150
372 food                 = 1
373 shield               = 1
374 trade                = 0
375 resources            = "Alien Mine"
376 road_trade_incr_pct  = 0
377 base_time            = 1
378 road_time            = 6
379 irrigation_result    = "yes"
380 irrigation_food_incr = 1
381 irrigation_time      = 10
382 mining_result        = "yes"
383 mining_shield_incr   = 1
384 mining_time          = 10
385 transform_result     = "Grassland"
386 transform_time       = 40
387 pillage_time         = 1
388 clean_pollution_time = 3
389 clean_fallout_time   = 3
390 animal               = "None"
391 warmer_wetter_result = "no"
392 warmer_drier_result  = "no"
393 cooler_wetter_result = "no"
394 cooler_drier_result  = "no"
395 native_to            = "Earthly", "Native", "Burrowing", "Antigravity", "Amphibious", "Missile"
396 flags                = "CanHaveRiver"
397 property_mountainous = 50
398 color.r              = 142
399 color.g              = 121
400 color.b              = 63
401 helptext             = _("\
402 Hills just like on Earth.\
405 [terrain_thick_mountains]
406 name                 = _("Thick Mountains")
407 graphic              = "mountains"
408 graphic_alt          = "-"
409 identifier           = "m"
410 class                = "Land"
411 movement_cost        = 3
412 defense_bonus        = 200
413 food                 = 0
414 shield               = 1
415 trade                = 0
416 resources            = "Alien Mine"
417 road_trade_incr_pct  = 0
418 base_time            = 1
419 road_time            = 12
420 irrigation_result    = "no"
421 irrigation_food_incr = 0
422 irrigation_time      = 0
423 mining_result        = "yes"
424 mining_shield_incr   = 1
425 mining_time          = 17
426 transform_result     = "no"
427 transform_time       = 24
428 pillage_time         = 1
429 clean_pollution_time = 3
430 clean_fallout_time   = 3
431 animal               = "None"
432 warmer_wetter_result = "no"
433 warmer_drier_result  = "no"
434 cooler_wetter_result = "no"
435 cooler_drier_result  = "no"
436 native_to            = "Earthly", "Native", "Antigravity", "Amphibious", "Missile"
437 property_mountainous = 70
438 color.r              = 167
439 color.g              = 77
440 color.b              = 38
441 helptext             = _("\
442 What are these mountains made of?!? Diamond drill makes no scratch on them.\n\n\
443 Burrowing units are unable to burrow through these mountains, \
444 but at least Burrowing technology makes mining them possible.\
447 [terrain_ocean]
448 name                 = _("Ocean")
449 graphic              = "ocean"
450 graphic_alt          = "coast"
451 identifier           = " "
452 class                = "Oceanic"
453 movement_cost        = 1
454 defense_bonus        = 0
455 food                 = 1
456 shield               = 1
457 trade                = 0
458 resources            = "Fish"
459 road_trade_incr_pct  = 0
460 base_time            = 1
461 road_time            = 1
462 irrigation_result    = "no"
463 irrigation_food_incr = 0
464 irrigation_time      = 0
465 mining_result        = "no"
466 mining_shield_incr   = 0
467 mining_time          = 0
468 transform_result     = "no"
469 transform_time       = 36
470 pillage_time         = 1
471 clean_pollution_time = 3
472 clean_fallout_time   = 3
473 animal               = "None"
474 warmer_wetter_result = "no"
475 warmer_drier_result  = "no"
476 cooler_wetter_result = "no"
477 cooler_drier_result  = "no"
478 native_to            = "Sea", "Amphibious", "Antigravity", "Missile"
479 flags                = "UnsafeCoast", "NoZoc", "NoFortify"
480 property_ocean_depth = 35
481 color.r              = 0
482 color.g              = 0
483 color.b              = 200
484 helptext             = _("\
485 This is normal oceanic terrain.\
488 [terrain_boiling_ocean]
489 name                 = _("Boiling Ocean")
490 graphic              = "boiling_ocean"
491 graphic_alt          = "floor"
492 identifier           = "b"
493 class                = "Oceanic"
494 movement_cost        = 1
495 defense_bonus        = 0
496 food                 = 1
497 shield               = 1
498 trade                = 0
499 resources            = "Thermal Vent", "Fish"
500 road_trade_incr_pct  = 0
501 base_time            = 1
502 road_time            = 1
503 irrigation_result    = "no"
504 irrigation_food_incr = 0
505 irrigation_time      = 0
506 mining_result        = "no"
507 mining_shield_incr   = 0
508 mining_time          = 0
509 transform_result     = "no"
510 transform_time       = 36
511 pillage_time         = 1
512 clean_pollution_time = 3
513 clean_fallout_time   = 3
514 animal               = "None"
515 warmer_wetter_result = "no"
516 warmer_drier_result  = "no"
517 cooler_wetter_result = "no"
518 cooler_drier_result  = "no"
519 native_to            = "Amphibious", "Antigravity", "Missile"
520 flags                = "UnsafeCoast", "NoZoc", "NoCities", "NoFortify"
521 property_ocean_depth = 70
522 color.r              = 30
523 color.g              = 30
524 color.b              = 220
525 helptext             = _("\
526 This ocean is boiling. No ship without special equipment can enter.\n\n\
527 Cities can work these tiles only when Thermal Module is known, and \
528 city can never be located on Boiling Ocean.\
531 ; The individual resource types, one per section.
532 ; Roughly sorted by identifier.
533 ; The actual tag used (the * in [resource_*]) must be unique for each resource,
534 ; and may be used in debug output when reading this file.
536 ; Notes:
538 ; name                 = name as seen by user; if "unused", it is not used,
539 ;                        but is included for conversion and/or the editor.
540 ; graphic              = tag specifying preferred graphic
541 ; graphic_alt          = tag for alternate garphic if preferred graphic is not 
542 ;                        present; especially if preferred graphic is non-standard, 
543 ;                        this should be a standard tag.  Otherwise can use eg "-" 
544 ;                        for no alternate graphic.
545 ; identifier           = single-character identifier used in savegames.  This
546 ;                        must be unique for each resource, and changing it will
547 ;                        break savegame compatibility.
548 ; food                 = increased food production
549 ; shield               = increased shield production
550 ; trade                = increased trade production
552 [resource_resources]
553 name        = _("Resources")
554 graphic     = "ts.resources"
555 graphic_alt = "ts.grassland_resources"
556 food        = 0
557 shield      = 1
558 trade       = 1
559 identifier  = "r"
561 [resource_alien_mine]
562 name        = _("Alien Mine")
563 graphic     = "ts.alien_mine"
564 graphic_alt = "ts.gold"
565 food        = 0
566 shield      = 2
567 trade       = 1
568 identifier  = "a"
570 [resource_huge_plant]
571 name        = _("Huge Plant")
572 graphic     = "ts.huge_plant"
573 graphic_alt = "ts.pheasant"
574 food        = 2
575 shield      = 0
576 trade       = 0
577 identifier  = "p"
579 [resource_thermal_vent]
580 name        = _("Thermal Vent")
581 graphic     = "ts.thermal_vent"
582 graphic_alt = "ts.whales"
583 food        = 0
584 shield      = 5
585 trade       = 0
586 identifier  = "t"
588 [resource_fish]
589 name        = _("Fish")
590 graphic     = "ts.fish"
591 graphic_alt = "-"
592 food        = 2
593 shield      = 0
594 trade       = 0
595 identifier  = "f"
597 [resource_glowing_rocks]
598 name        = _("Glowing Rocks")
599 graphic     = "ts.glowing_rocks"
600 graphic_alt = "ts.spice"
601 food        = 0
602 shield      = 2
603 trade       = 2
604 identifier  = "g"
607 [extraui]
609 ; Player visible names of the base gui types.
610 ui_name_base_fortress = _("?gui_type:Build Land base")
611 ui_name_base_airbase = _("?gui_type:Build Airforce base")
613 ; /* <-- avoid gettext warnings
615 ; Each extra, including bases and roads, must have a section here.
616 ; Bases and roads have additional sections for their specific features below.
619 ; Extra types:
621 ; name                    = translatable name as seen by user
622 ; rule_name               = (optional) name for savegames, rulesets etc; if not
623 ;                           present, 'name' is used. Since the name used in
624 ;                           savegames must not change, use this when renaming
625 ;                           an extra after a ruleset has been released.
626 ; category                = How UI should categorize this extra. One of
627 ;                           "Infra", "Natural", "Nuisance", or "Bonus"
628 ; causes                  = events that can create extra type.
629 ;                           "Irrigation", "Mine", "Hut", "Pollution", "Fallout",
630 ;                           "Base", or "Road"
631 ; rmcauses                = events that can remove extra type.
632 ;                           "CleanPollution", "CleanFallout", or "Pillage"
633 ; graphic                 = tag specifying preferred graphic
634 ; graphic_alt             = tag for alternate graphic if preferred graphic is
635 ;                           not present. Can use eg "-" for no alternate
636 ;                           graphic
637 ; activity_gfx            = tag specifying graphic for unit building extra
638 ;                           This can be "None" to indicate that graphic sprite
639 ;                           is not needed.
640 ; act_gfx_alt             = tag for alternative graphic for unit building extra
641 ; act_gfx_alt2            = tag for second alternative graphic for unit building extra
642 ; rmact_gfx               = tag specifying graphic for unit removing extra
643 ;                           This can be "None" to indicate that graphic sprite
644 ;                           is not needed.
645 ; rmact_gfx_alt           = tag for alternative graphic for unit removing extra
646 ; reqs                    = requirements to build the extra (see effects.ruleset
647 ;                           and README.effects for help on requirements)
648 ; rmreqs                  = requirements to remove the extra
649 ; buildable               = Can extra be built? Defaults to TRUE
650 ; build_time              = how long it takes a unit to build this extra.
651 ;                           Value of 0 (default) means that terrain- and
652 ;                           build activity specific time is used instead.
653 ; build_time_factor       = This setting take effect only if build_time is 0.
654 ;                           Terrain and activity specific build time will be
655 ;                           multiplied by this value (default 1)
656 ; removal_time            = how long it takes a unit to remove this extra.
657 ;                           Value of 0 (default) means that terrain- and
658 ;                           removal activity specific time is used instead.
659 ; removal_time_factor     = This setting take effect only if removal_time is 0.
660 ;                           Terrain and activity specific removal time will be
661 ;                           multiplied by this value (default 1)
662 ; defense_bonus           = Percent added to defense when tile has the extra
663 ;                           (default none)
664 ; native_to               = List of unit classes that are considered to
665 ;                           be inside the extra when they are on same tile
666 ; conflicts               = List of extras that cannot be on the same tile.
667 ;                           Bases with non-zero border_sq automatically conflict
668 ;                           with each other.
669 ; hidden_by               = List of extra types that will make this extra
670 ;                           type not to show on UI if both present.
671 ; flags
672 ;   - "NativeTile"        = Native units consider tile native regardless of
673 ;                           terrain
674 ;   - "Refuel"            = Native units can use tile as refuel point
675 ;   - "TerrChangeRemoves" = Extra gets removed when ever terrain changes even
676 ;                           if target terrain could support it
677 ;   - "AlwaysOnCityCenter" = City center tiles always have this extra type
678 ;                           regardless of its other requirements
679 ;   - "AutoOnCityCenter"  = City center tiles will automatically have this
680 ;                           extra type if the player can build it
681 ;   - "ConnectLand"       = Road style gfx on Oceanic tiles are drawn to
682 ;                           connect to adjacent Land tiles even if they have
683 ;                           no extra. This affects appearance only
684 ;   - "GlobalWarming"     = Instances of this extra on map count towards
685 ;                           Global Warming
686 ;   - "NuclearWinter"     = Instances of this extra on map count towards
687 ;                           Nuclear Winter
688 ;   - "ShowFlag"          = Draw owner's flag
689 ;   - "NaturalDefense"    = Extra's defense bonus will be counted to "Natural"
690 ;                           defense layer. The defense bonus of all the extras
691 ;                           located at the tile, native to defending unit,
692 ;                           is calculated as a 1 + sum of bonuses from the extras
693 ;                           on the default "Fortification" defense layer multiplied
694 ;                           by the 1 + sum of bonuses from the extras on the
695 ;                           "Natural" layer.
696 ; helptext                = optional help text string; should escape all raw
697 ;                           newlines so that xgettext parsing works
699 ; */ <-- avoid gettext warnings
701 [extra_irrigation]
702 name           = _("Irrigation")
703 category       = "Infra"
704 causes         = "Irrigation"
705 rmcauses       = "Pillage"
706 graphic        = "tx.irrigation"
707 graphic_alt    = "-"
708 activity_gfx   = "unit.irrigation"
709 act_gfx_alt    = "unit.irrigate"
710 act_gfx_alt2   = "-"
711 rmact_gfx      = "None"
712 rmact_gfx_alt  = "-"
713 build_time     = 0
714 removal_time   = 0
715 conflicts      = "Mine"
716 hidden_by      = "Farmland"
718 [extra_mine]
719 name           = _("Mine")
720 category       = "Infra"
721 causes         = "Mine"
722 rmcauses       = "Pillage"
723 graphic        = "tx.mine"
724 graphic_alt    = "-"
725 activity_gfx   = "unit.mine"
726 act_gfx_alt    = "unit.plant"
727 act_gfx_alt2   = "-"
728 rmact_gfx      = "None"
729 rmact_gfx_alt  = "-"
730 build_time     = 0
731 removal_time   = 0
732 conflicts      = "Irrigation", "Farmland"
734 [extra_pollution]
735 name           = _("Pollution")
736 category       = "Nuisance"
737 causes         = "Pollution"
738 rmcauses       = "CleanPollution"
739 graphic        = "tx.pollution"
740 graphic_alt    = "-"
741 activity_gfx   = "None"
742 act_gfx_alt    = "-"
743 act_gfx_alt2   = "-"
744 rmact_gfx      = "unit.pollution"
745 rmact_gfx_alt  = "-"
746 reqs           =
747     { "type", "name", "range", "present"
748       "TerrainFlag", "NoPollution", "Local", FALSE
749     }
750 removal_time   = 0
751 flags          = "GlobalWarming"
753 [extra_capsule]
754 name           = _("Space Capsule")
755 category       = "Bonus"
756 causes         = "Hut"
757 ;rmcauses       = ""
758 graphic        = "tx.capsule"
759 graphic_alt    = "tx.village"
760 activity_gfx   = "None"
761 act_gfx_alt    = "-"
762 act_gfx_alt2   = "-"
763 rmact_gfx      = "None"
764 rmact_gfx_alt  = "-"
765 reqs           =
766     { "type", "name", "range"
767       "TerrainClass", "Land", "Local"
768     }
769 helptext = _("\
770 Space Capsules have landed to the surface of Deneb Seven's \
771 Any unit can enter tile with a capsule to open it. Capsule disappears \
772 from the map in the process. \
773 There can be gold, blueprints of new technologies, equipment for a unit, \
774 or it can even provide starting kit for a new base on the spot. \
775 Unfortunately it's also possible that Madmen or Lunatics have already \
776 found the capsule, and are there ready to kill anybody who enters.\
779 [extra_farmland]
780 name           = _("Farmland")
781 category       = "Infra"
782 causes         = "Irrigation"
783 rmcauses       = "Pillage"
784 graphic        = "tx.farmland"
785 graphic_alt    = "-"
786 activity_gfx   = "unit.farmland"
787 act_gfx_alt    = "unit.irrigation"
788 act_gfx_alt2   = "unit.irrigate"
789 rmact_gfx      = "None"
790 rmact_gfx_alt  = "-"
791 reqs           =
792     { "type", "name", "range"
793       "Tech", "Protein Modifications", "Player"
794       "Extra", "Irrigation", "Local"
795     }
796 build_time     = 0
797 removal_time   = 0
798 conflicts      = "Mine"
800 [extra_fallout]
801 name           = _("Fallout")
802 category       = "Nuisance"
803 causes         = "Fallout"
804 rmcauses       = "CleanFallout"
805 graphic        = "tx.fallout"
806 graphic_alt    = "-"
807 activity_gfx   = "None"
808 act_gfx_alt    = "-"
809 act_gfx_alt2   = "-"
810 rmact_gfx      = "unit.fallout"
811 rmact_gfx_alt  = "-"
812 reqs           =
813     { "type", "name", "range", "present"
814       "TerrainFlag", "NoPollution", "Local", FALSE
815     }
816 removal_time   = 0
817 flags          = "NuclearWinter"
819 [extra_tower]
820 name           = _("Tower")
821 category       = "Infra"
822 causes         = "Base"
823 rmcauses       = "Pillage"
824 graphic        = "base.tower"
825 graphic_alt    = "base.fortress"
826 activity_gfx   = "unit.tower"
827 act_gfx_alt    = "unit.fortress"
828 act_gfx_alt2   = "-"
829 rmact_gfx      = "None"
830 rmact_gfx_alt  = "-"
831 reqs           =
832     { "type", "name", "range", "present"
833       "Tech", "Strong Force", "Player", TRUE
834       "TerrainClass", "Land", "Local", TRUE
835       "UnitFlag", "Settlers", "Local", TRUE
836       "CityTile", "Center", "Local", FALSE
837     }
838 build_time     = 3
839 removal_time   = 0
840 defense_bonus  = 150
841 native_to      = "Earthly", "Native", "Amphibious"
842 conflicts      = "Force Fortress"
844 [extra_force_fortress]
845 name           = _("Force Fortress")
846 category       = "Infra"
847 causes         = "Base"
848 rmcauses       = "Pillage"
849 graphic        = "base.force_fortress"
850 graphic_alt    = "base.outpost"
851 activity_gfx   = "unit.force_fortress"
852 act_gfx_alt    = "unit.outpost"
853 act_gfx_alt2   = "-"
854 rmact_gfx      = "None"
855 rmact_gfx_alt  = "-"
856 reqs           =
857     { "type", "name", "range", "present"
858       "Tech", "Force Channeling", "Player", TRUE
859       "TerrainClass", "Land", "Local", TRUE
860       "UnitFlag", "Settlers", "Local", TRUE
861       "CityTile", "Center", "Local", FALSE
862     }
863 build_time     = 3
864 removal_time   = 0
865 defense_bonus  = 100
866 native_to      = "Earthly", "Native", "Amphibious"
867 conflicts      = "Tower"
869 [extra_antigrav_base]
870 name           = _("Antigrav Base")
871 category       = "Infra"
872 causes         = "Base"
873 rmcauses       = "Pillage"
874 graphic        = "base.antigrav_base"
875 graphic_alt    = "base.airbase"
876 activity_gfx   = "unit.antigrav_base"
877 act_gfx_alt    = "unit.airbase"
878 act_gfx_alt2   = "-"
879 rmact_gfx      = "None"
880 rmact_gfx_alt  = "-"
881 reqs           =
882     { "type", "name", "range", "present"
883       "Tech", "Commercial Antigravity", "Player", TRUE
884       "TerrainClass", "Land", "Local", TRUE
885       "UnitFlag", "Settlers", "Local", TRUE
886       "CityTile", "Center", "Local", FALSE
887     }
888 build_time     = 3
889 removal_time   = 0
890 native_to      = "Antigravity"
892 [extra_road]
893 name           = _("Road")
894 category       = "Infra"
895 causes         = "Road"
896 rmcauses       = "Pillage"
897 graphic        = "road.road"
898 graphic_alt    = "-"
899 activity_gfx   = "unit.road"
900 act_gfx_alt    = "-"
901 act_gfx_alt2   = "-"
902 rmact_gfx      = "None"
903 rmact_gfx_alt  = "-"
904 reqs           =
905     { "type", "name", "range"
906       "UnitFlag", "Settlers", "Local"
907       "TerrainClass", "Land", "Local"
908     }
909 build_time     = 0
910 removal_time   = 0
911 native_to      = "Earthly", "Native"
912 hidden_by      = "Highway", "Maglev"
913 flags          = "AutoOnCityCenter"
914 helptext       = _("\
915 Basic Road is available for building from the beginning of the game.\
916 \n\n\
917 Having Road on Grassland tile provides increase of +1 to trade on that tile.\
920 [extra_highway]
921 name           = _("Highway")
922 category       = "Infra"
923 causes         = "Road"
924 rmcauses       = "Pillage"
925 graphic        = "road.highway"
926 graphic_alt    = "road.road"
927 activity_gfx   = "unit.highway"
928 act_gfx_alt    = "unit.road"
929 act_gfx_alt2   = "-"
930 rmact_gfx      = "None"
931 rmact_gfx_alt  = "-"
932 reqs           =
933     { "type", "name", "range"
934       "Tech", "Brute Force", "Player"
935       "Extra", "Road", "Local"
936       "UnitFlag", "Settlers", "Local"
937       "TerrainClass", "Land", "Local"
938     }
939 build_time     = 3
940 removal_time   = 0
941 native_to      = "Earthly", "Native"
942 hidden_by      = "Maglev"
943 flags          = "AutoOnCityCenter"
944 helptext       = _("\
945 You can upgrade Roads to Highways.\
948 [extra_maglev]
949 name           = _("Maglev")
950 category       = "Infra"
951 causes         = "Road"
952 rmcauses       = "Pillage"
953 graphic        = "road.maglev"
954 graphic_alt    = "road.rail"
955 activity_gfx   = "unit.maglev"
956 act_gfx_alt    = "unit.road"
957 act_gfx_alt2   = "-"
958 rmact_gfx      = "None"
959 rmact_gfx_alt  = "-"
960 reqs           =
961     { "type", "name", "range"
962       "Tech", "Maglev", "Player"
963       "Extra", "Highway", "Local"
964       "UnitFlag", "Settlers", "Local"
965       "TerrainClass", "Land", "Local"
966     }
967 build_time     = 3
968 removal_time   = 0
969 native_to      = "Earthly", "Native"
970 flags          = "AutoOnCityCenter"
971 ; /* xgettext:no-c-format */
972 helptext       = _("\
973 You can upgrade Highways to Maglevs.\
974 \n\n\
975 Units can move via Maglevs indefinitely, Shield production of any \
976 tile with Maglev is increased by 50%.\
979 [extra_tunnel]
980 name           = _("Tunnel")
981 category       = "Infra"
982 causes         = "Road"
983 rmcauses       = "Pillage"
984 graphic        = "road.tunnel"
985 graphic_alt    = "road.rail"
986 activity_gfx   = "unit.tunnel"
987 act_gfx_alt    = "unit.road"
988 act_gfx_alt2   = "-"
989 rmact_gfx      = "None"
990 rmact_gfx_alt  = "-"
991 reqs           =
992     { "type", "name", "range"
993       "Tech", "Strong Resistance", "Player"
994       "UnitFlag", "Settlers", "Local"
995       "TerrainFlag", "Radiating", "Local"
996       "TerrainClass", "Land", "Local" ; Needed explicitly for automatic move type assignment
997     }
998 build_time     = 3
999 removal_time   = 0
1000 defense_bonus  = 35
1001 native_to      = "Earthly"
1002 flags          = "NativeTile", "AutoOnCityCenter"
1003 ; /* xgettext:no-c-format */
1004 helptext       = _("\
1005 Earthly units can travel on radiating tiles with tunnel built on them. \
1006 Tunnel provides no increase to unit speed, but they give 35% defense bonus.\
1009 [extra_burrow_tube]
1010 name           = _("Burrow Tube")
1011 category       = "Infra"
1012 causes         = "Road"
1013 rmcauses       = "Pillage"
1014 graphic        = "road.burrow_tube"
1015 graphic_alt    = "road.road"
1016 activity_gfx   = "unit.tube"
1017 act_gfx_alt    = "unit.road"
1018 act_gfx_alt2   = "-"
1019 rmact_gfx      = "None"
1020 rmact_gfx_alt  = "-"
1021 reqs           =
1022     { "type", "name", "range"
1023       "Tech", "Burrowing", "Player"
1024       "UnitFlag", "Settlers", "Local"
1025       "TerrainClass", "Oceanic", "Local"
1026     }
1027 build_time     = 3
1028 removal_time   = 0
1029 native_to      = "Burrowing"
1030 flags          = "NativeTile", "AutoOnCityCenter", "ConnectLand"
1031 helptext       = _("\
1032 Burrow Tubes provide the only way for burrowing units to cross oceans. \
1033 They can be built on oceanic terrains only, but first part of the tube \
1034 must be built cardinally adjacent to land and following parts must be \
1035 built in order.\
1038 [extra_green_river]
1039 name           = _("Green River")
1040 category       = "Natural"
1041 causes         = "Road"
1042 ;rmcauses       = ""
1043 graphic        = "road.green_river"
1044 graphic_alt    = "road.river"
1045 activity_gfx   = "None"
1046 act_gfx_alt    = "-"
1047 act_gfx_alt2   = "-"
1048 rmact_gfx      = "None"
1049 rmact_gfx_alt  = "-"
1050 buildable      = FALSE
1051 defense_bonus  = 50
1052 native_to      = "Native", "Amphibious"
1053 flags          = "NaturalDefense"
1054 ; /* xgettext:no-c-format */
1055 helptext       = _("\
1056 Any river increases a tile's natural defense factor by 50%. Native and Amphibious \
1057 units may move along a River (but not diagonally) for fast travel.\
1058 "), _("\
1059 Green River increases also tile's food production by 1.\
1062 [extra_brown_river]
1063 name           = _("Brown River")
1064 category       = "Natural"
1065 causes         = "Road"
1066 ;rmcauses       = ""
1067 graphic        = "road.brown_river"
1068 graphic_alt    = "road.river"
1069 activity_gfx   = "None"
1070 act_gfx_alt    = "-"
1071 act_gfx_alt2   = "-"
1072 rmact_gfx      = "None"
1073 rmact_gfx_alt  = "-"
1074 buildable      = FALSE
1075 defense_bonus  = 50
1076 native_to      = "Native", "Amphibious"
1077 flags          = "NaturalDefense"
1078 ; /* xgettext:no-c-format */
1079 helptext       = _("\
1080 Any river increases a tile's natural defense factor by 50%. Native and Amphibious \
1081 units may move along a River (but not diagonally) for fast travel.\
1082 "), _("\
1083 Brown River increases also tile's shield production by 1.\
1086 ; /* <-- avoid gettext warnings
1088 ; Base types:
1090 ; extra                   = name of the extra this base section is part of
1091 ; gui_type                = How gui should handle this base.
1092 ;                           Value can be "Fortress", "Airbase", or "Other"
1093 ; border_sq               = Base will claim land ownership up to this radius,
1094 ;                           -1 to disable. If enabled, base cannot exist in city tile.
1095 ; vision_main_sq          = Base will have main layer vision to this radius
1096 ; vision_invis_sq         = Base will have invisible layer vision to this radius
1097 ; flags
1098 ;   - "NoAggressive"      = Units inside are not considered aggressive if there`s
1099 ;                           friendly city within 3 tiles
1100 ;   - "NoStackDeath"      = Units inside do not die all at once when attacked
1101 ;   - "DiplomatDefense"   = Diplomats inside get bonus to diplomatic defense
1102 ;   - "ParadropFrom"      = Paradrop can be initiated from base
1104 ; */ <-- avoid gettext warnings
1106 [base_tower]
1107 extra         = "Tower"
1108 gui_type      = "Fortress"
1109 flags         = "NoAggressive", "NoStackDeath"
1111 [base_fortress]
1112 extra         = "Force Fortress"
1113 gui_type      = "Fortress"
1114 flags         = "NoAggressive"
1116 [base_antigrav_base]
1117 extra        = "Antigrav Base"
1118 gui_type     = "Airbase"
1119 flags        = "ParadropFrom", "NoAggressive"
1122 ; /* <-- avoid gettext warnings
1124 ; Road types:
1126 ; extra                   = name of the extra this road section is part of
1127 ; first_reqs              = additional requirements to build the first part of
1128 ;                           the road, when none of the adjacent tiles have any
1129 ;                           integrating roads (see effects.ruleset and
1130 ;                           README.effects for help on requirements)
1131 ; move_cost               = how much movement it takes to travel
1132 ;                           via this road (in fractional move points, as
1133 ;                           defined by move_fragments)
1134 ;                           -1 means that road provides no speed bonus.
1135 ; move_mode               = how movement costs are applied
1136 ;   - "Cardinal"   = Road cost applies only on cardinal moves
1137 ;   - "Relaxed"    = Road cost is normal for cardinal, double for diagonal moves
1138 ;   - "FastAlways" = Road cost applies always between two tiles with the roads
1139 ;                    (default)
1140 ; food_incr_const         = food production added to tile regardless of terrain
1141 ; shield_incr_const       = shield production added to tile regardless of
1142 ;                           terrain
1143 ; trade_incr_const        = trade production added to tile regardless of
1144 ;                           terrain
1145 ; food_incr               = food production added to tile; multiplied by
1146 ;                           terrain-specific road_food_incr_pct
1147 ; shield_incr             = shield production added to tile; multiplied by
1148 ;                           terrain-specific road_shield_incr_pct
1149 ; trade_incr              = trade production added to tile; multiplied by
1150 ;                           terrain-specific road_trade_incr_pct
1151 ; food_bonus              = percent added to food production
1152 ; shield_bonus            = percent added to shield production
1153 ; trade_bonus             = percent added to trade production
1154 ;   In summary, output bonuses from roads are given by the formula:
1155 ;   (base_prod + roads.incr_const + roads.incr*terrain.incr_pct) * roads.bonus
1156 ; compat_special          = what kind of pre-2.5 special this road corresponds
1157 ;                           to, if any: "Road", "Railroad", "River, or "None".
1158 ;                           Used for UI and loading old savegames
1159 ; integrates              = list of road types that are suitable next steps
1160 ;                           for travel from this road type
1161 ; flags
1162 ;   - "RequiresBridge"    = Technology with "Bridge" flag needed to build this
1163 ;                           road on the same tile as another road with
1164 ;                           "PreventsOtherRoads" flag (usually rivers)
1165 ;   - "PreventsOtherRoads" = Prevents "RequiresBridge" roads being built on
1166 ;                           the same tile as this one without appropriate tech
1167 ;   - "River"             = Automatically generated by map generator, always
1168 ;                           flowing from land tiles to ocean
1169 ;   - "UnrestrictedInfra" = Use of the enemy owned road is not restricted
1170 ;                           even if server setting 'restrictinfra' is set
1171 ;   - "JumpFrom"          = Move to a tile nativity providing "JumpTo"
1172 ;                           road is considered native
1173 ;   - "JumpTo"            = Move from a tile nativity providing "JumpFrom"
1174 ;                           road is considered native
1176 ; */ <-- avoid gettext warnings
1178 [road_road]
1179 extra          = "Road"
1180 move_cost      = 2
1181 food_incr      = 0
1182 shield_incr    = 0
1183 trade_incr     = 1
1184 food_bonus     = 0
1185 shield_bonus   = 0
1186 trade_bonus    = 0
1187 compat_special = "Road"
1189 [road_highway]
1190 extra          = "Highway"
1191 move_cost      = 1
1192 food_incr      = 0
1193 shield_incr    = 0
1194 trade_incr     = 0
1195 food_bonus     = 0
1196 shield_bonus   = 0
1197 trade_bonus    = 0
1198 compat_special = "Railroad"
1200 [road_maglev]
1201 extra          = "Maglev"
1202 move_cost      = 0
1203 food_incr      = 0
1204 shield_incr    = 0
1205 trade_incr     = 0
1206 food_bonus     = 0
1207 shield_bonus   = 50
1208 trade_bonus    = 0
1209 compat_special = "None"
1211 [road_tunnel]
1212 extra          = "Tunnel"
1213 move_cost      = -1
1214 move_mode      = "FastAlways"
1215 food_incr      = 0
1216 shield_incr    = 0
1217 trade_incr     = 0
1218 food_bonus     = 0
1219 shield_bonus   = 0
1220 trade_bonus    = 0
1221 compat_special = "None"
1223 [road_burrow_tube]
1224 extra          = "Burrow Tube"
1225 first_reqs     =
1226     { "type", "name", "range"
1227       "TerrainClass", "Land", "CAdjacent"
1228     }
1229 move_cost      = 4
1230 food_incr      = 0
1231 shield_incr    = 0
1232 trade_incr     = 0
1233 food_bonus     = 0
1234 shield_bonus   = 0
1235 trade_bonus    = 0
1236 compat_special = "None"
1238 [road_green_river]
1239 extra          = "Green River"
1240 move_cost      = 2
1241 move_mode      = "Cardinal"
1242 food_incr_const  = 1
1243 trade_incr_const = 1
1244 compat_special = "River"
1245 flags          = "River", "UnrestrictedInfra"
1247 [road_brown_river]
1248 extra          = "Brown River"
1249 move_cost      = 2
1250 move_mode      = "Cardinal"
1251 shield_incr_const = 1
1252 trade_incr_const  = 1
1253 food_bonus     = 0
1254 shield_bonus   = 0
1255 trade_bonus    = 0
1256 flags          = "River", "UnrestrictedInfra"