webperimental: killstack decides stack protects.
[freeciv.git] / data / multiplayer / game.ruleset
blob34d593c8e17fd0cbc9ab708a03219c419bcfbef1
1 ; Modifying this file:
2 ; You should not modify this file except to make bugfixes or
3 ; for other "maintenance".  If you want to make custom changes,
4 ; you should create a new datadir subdirectory and copy this file
5 ; into that directory, and then modify that copy.  Then use the
6 ; command "rulesetdir <mysubdir>" in the server to have freeciv
7 ; use your new customized file.
9 ; Note that the freeciv AI may not cope well with anything more
10 ; than minor changes.
12 [datafile]
13 description="Multiplayer game rules for Freeciv"
14 options="+Freeciv-ruleset-Devel-2017.Jan.02 web-compatible"
15 format_version=20
17 ; This section contains meta information for freeciv-ruledit to recreate the ruleset
18 ; file in a form wanted. These have no in-game effect whatsoever
19 [ruledit]
21 ; Which file to read description in from.
22 description_file = "multiplayer/README.multiplayer"
24 [about]
25 ; Ruleset name
26 name = _("Multiplayer ruleset")
28 ; There`s no separate versioning in rulesets part of main freeciv distribution
29 ;version = ""
31 ; Summary of the ruleset
32 summary = _("\
33 You are playing Freeciv with rules designed for multiplayer gaming. \
34 The biggest differences from the classic ruleset are that trade routes \
35 are disabled, and that most wonders can be built once by each player, \
36 and affect only cities on the same continent. A full description of \
37 the differences can be found in README.ruleset_multiplayer.\
40 ; Detailed description
41 ; When updating this, update also desciption_file in [ruledit] section to match
42 description = *multiplayer/README.multiplayer*
44 ; What capabilities ruleset provides for the scenarios.
45 ; mimimum-default-sets - Default units, terrains, buildings, etc
46 capabilities = "minimum-default-sets"
48 [options]
49 global_init_techs=""
50 global_init_buildings="Palace"
52 [civstyle]
53 ; Value added to city pollution
54 base_pollution   = -20
56 ; Cost in luxuries of making one citizen happier
57 happy_cost       = 2
59 ; Cost in food of upkeeping a single citizen
60 food_cost        = 2
62 ; Parameters used to generalize the calculation of city granary size:
63 ;   if city_size <= num_inis:
64 ;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
65 ;   if city_size > num_inis;
66 ;     city_granary_size = (granary_food_ini[num_inis] +
67 ;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
68 granary_food_ini = 20
69 granary_food_inc = 10
71 ; City center minimum outputs
72 min_city_center_food    = 1
73 min_city_center_shield  = 1
74 min_city_center_trade   = 0
76 ; Square of initial city radius
77 init_city_radius_sq     = 5
79 ; Square of initially visible radius (true distance).
80 init_vis_radius_sq      = 5
82 ; A base bribe cost, modified heavily by other factors
83 base_bribe_cost  = 750
85 ; Barbarian leader ransom in gold
86 ransom_gold      = 100
88 ; Number of veteran levels lost when upgrading a unit
89 upgrade_veteran_loss     = 0
91 ; Number of veteran levels lost when auto-upgrading a unit
92 autoupgrade_veteran_loss = 0
94 ; Whether player gets to select which terrain improvement to pillage.
95 pillage_select           = TRUE
97 ; Whether one can steal a tech for which prereqs are not known
98 tech_steal_allow_holes    = TRUE
99 ; Whether one can get a tech for which prereqs are not known via
100 ; diplomatic trading
101 tech_trade_allow_holes    = TRUE
102 ; ...and whether one can lose a tech which is prereq for another known
103 ; tech via trade, if techlost_donor is nonzero
104 tech_trade_loss_allow_holes = TRUE
105 ; Whether one can get a tech for which prereqs are not known via
106 ; parasite effect (Great Library)
107 tech_parasite_allow_holes = TRUE
108 ; Whether one can lose a tech which is prereq for another known tech
109 ; due to negative bulbs, if techlossforgiveness allows loss
110 tech_loss_allow_holes     = TRUE
112 ; Whether civil war is possible at all
113 civil_war_enabled        = TRUE
115 ; Comma separated list of things to happen, in addition to death
116 ; of owner, when gameloss unit dies
117 ; "CivilWar"   - Part of the empire remains, controlled by a new player
118 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
119 ;                or half of the dead players empire gets under barbarian
120 ;                control.
121 ; "Loot"       - Player who killed the gameloss unit gets loot:
122 ;                Partial map, gold, techs, cities
123 gameloss_style           = ""
125 ; Whether units may safely paradrop to transport on non-native terrain
126 paradrop_to_transport    = FALSE
128 ; Method of paying unit and improvement gold upkeep
129 ; "City" - The player`s total gold must be non-negative after paying upkeep
130 ;          costs associated with each city. If for any city the player`s
131 ;          gold is negative, random buildings in the city are sold off. If
132 ;          the gold is still negative, then supported units with gold upkeep
133 ;          are disbanded.
134 ; "Mixed" - In the first step, the player`s total gold must be non-negative
135 ;           after paying upkeep for all buildings within a city. If for any
136 ;           city the player`s gold is negative, random buildings in the city
137 ;           are sold off.
138 ;           In the second step, gold upkeep for all units is paid in a lump
139 ;           sum. If the player does not have enough gold, random units with
140 ;           gold upkeep are disbanded.
141 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
142 ;            after all cities have been processed. If the player does not
143 ;            have enough gold, random buildings from random cities are sold.
144 ;            If still more gold is needed, then random units with gold
145 ;            upkeep are disbanded.
146 gold_upkeep_style = "City"
148 [illness]
149 ; Whether plagues (illness) are possible
150 ; There are some latent building effects in effects.ruleset which affect
151 ; health, if you enable plague here.
152 illness_on = FALSE
154 ; the base factor for illness (of percent)
155 illness_base_factor = 25
157 ; minimum city size for illness
158 illness_min_size = 3
160 ; factor for how much trading with a plagued city increases our city`s
161 ; chance for plague (in percent)
162 illness_trade_infection = 0
164 ; factor for how much pollution within a city increases its chance for
165 ; plague (in percent)
166 illness_pollution_factor = 50
168 [incite_cost]
169 ; city_incite_cost = total_factor * (city_size) * (base_incite_cost
170 ;                      + (units_cost) * unit_factor
171 ;                      + (improvements_cost) * improvement_factor)
172 ;                    / ((distance to capital) * 100)
173 ; See city_incite_cost() for more details
174 base_incite_cost = 10000
175 improvement_factor = 1
176 unit_factor = 2
177 total_factor = 10000
179 [global_unit_options]
180 ; Shore landing style
181 ;  FALSE - normal movement
182 ;  TRUE  - (default) slow invasions by removing all
183 ;          movement points from ground units moving
184 ;          from ocean tile to land
185 slow_invasions = TRUE
187 [combat_rules]
188 ; If tired_attack is set to TRUE, units that attack with less than a single
189 ; move point (per move_fragments in terrain.ruleset) will have their attack
190 ; power reduced accordingly. For instance, if move_fragments=3, a unit with
191 ; 2/3 move points will have attack power 2/3 of normal.
192 ; If this is set to FALSE units will attack with full strength even if they
193 ; have only fractional moves left.
194 tired_attack = TRUE
196 [auto_attack]
197 ; An auto attack may be triggered when another unit moves to an adjacent
198 ; tile and the autoattack server setting is enabled. The following details
199 ; are ruleset controlled.
200 ;   will_never - units with this unit type flag will never auto attack.
202 ; Not a good idea to nuke our own area.
203 will_never = "Nuclear"
205 [actions]
206 ; If force_trade_route is set to TRUE it is illegal for an actor unit to
207 ; enter the marketplace of a city if it can establish a trade route to it
208 ; in stead.
209 force_trade_route = FALSE
211 ; If force_capture_units is set to TRUE it is illegal for an actor unit to
212 ; bombard, explode nuclear or perform a regular attack against a tile if
213 ; it can capture units on it in stead.
214 force_capture_units = FALSE
216 ; If force_bombard is set to TRUE it is illegal for an actor unit to
217 ; explode nuclear or perform a regular attack against a tile if it can
218 ; bombard it in stead.
219 force_bombard = FALSE
221 ; If force_explode_nuclear is set to TRUE it is illegal for an actor unit
222 ; to perform a regular attack against a tile if it can do explode nuclear
223 ; in stead.
224 force_explode_nuclear = TRUE
226 ; If poison_empties_food_stock is set to TRUE a successful "Poison City"
227 ; will empty the food stock.
228 poison_empties_food_stock = FALSE
230 ; The maximum distance from the actor unit to the target of the "Bombard"
231 ; action. The value 1 means that the targets must be on a tile adjacent to
232 ; the actor unit. The special value "unlimited" lifts the maximum distance
233 ; restriction. The maximum distance can`t be smaller than the minimum
234 ; distance.
235 bombard_max_range = 1
237 ; What each action should be called when showing them to the player.
238 ; The first %s should be before the mnemonic of the action. A Freeciv client
239 ; that supports mnemonics will replace it with the in-band signal that marks
240 ; the following character as a mnemonic in its graphical toolkit.
241 ; The second %s marks where extra details should be inserted.
243 ; /* TRANS: _Poison City (3% chance of success). */
244 ui_name_poison_city = _("%sPoison City%s")
246 ; /* TRANS: _Sabotage Enemy Unit (3% chance of success). */
247 ui_name_sabotage_unit = _("%sSabotage Enemy Unit%s")
249 ; /* TRANS: _Bribe Enemy Unit (3% chance of success). */
250 ui_name_bribe_unit = _("%sBribe Enemy Unit%s")
252 ; /* TRANS: _Sabotage City (3% chance of success). */
253 ui_name_sabotage_city = _("%sSabotage City%s")
255 ; /* TRANS: Industrial _Sabotage (3% chance of success). */
256 ui_name_targeted_sabotage_city = _("Industrial %sSabotage%s")
258 ; /* TRANS: Incite a _Revolt (3% chance of success). */
259 ui_name_incite_city = _("Incite a %sRevolt%s")
261 ; /* TRANS: Incite a _Revolt and Escape (3% chance of success). */
262 ui_name_incite_city_escape = _("Incite a Re%svolt and Escape%s")
264 ; /* TRANS: Establish _Embassy (100% chance of success). */
265 ui_name_establish_embassy = _("Establish %sEmbassy%s")
267 ; /* TRANS: Becom_e Ambassador (100% chance of success). */
268 ui_name_establish_embassy_stay = _("Becom%se Ambassador%s")
270 ; /* TRANS: Steal _Technology (3% chance of success). */
271 ui_name_steal_tech = _("Steal %sTechnology%s")
273 ; /* TRANS: Indus_trial Espionage (3% chance of success). */
274 ui_name_targeted_steal_tech = _("Indus%strial Espionage%s")
276 ; /* TRANS: _Investigate City (100% chance of success). */
277 ui_name_investigate_city = _("%sInvestigate City%s")
279 ; /* TRANS: _Investigate City (spends the unit) (100% chance of success). */
280 ui_name_investigate_city_spend_unit = _("%sInvestigate City (spends the unit)%s")
282 ; /* TRANS: Help _build Wonder (100% chance of success). */
283 ui_name_help_wonder = _("Help %sbuild Wonder%s")
285 ; /* TRANS: Rec_ycle Unit (100% chance of success). */
286 ui_name_recycle_unit = _("Rec%sycle Unit%s")
288 ; /* TRANS: _You're Fired (100% chance of success). */
289 ui_name_disband_unit = _("%sYou're Fired%s")
291 ; /* TRANS: _Build City (100% chance of success). */
292 ui_name_found_city = _("%sBuild City%s")
294 ; /* TRANS: _Add to City (100% chance of success). */
295 ui_name_join_city = _("%sAdd to City%s")
297 ; /* TRANS: Explode _Nuclear (100% chance of success). */
298 ui_name_explode_nuclear = _("Explode %sNuclear%s")
300 ; /* TRANS: Set _Home City (100% chance of success). */
301 ui_name_home_city = _("Set %sHome City%s")
303 ; /* TRANS: _Upgrade Unit (100% chance of success). */
304 ui_upgrade_unit = _("%sUpgrade Unit%s")
306 ; /* TRANS: Drop _Paratrooper (100% chance of success). */
307 ui_paradrop_unit = _("Drop %sParatrooper%s")
309 ; /* TRANS: _Airlift to City (100% chance of success). */
310 ui_airlift_unit = _("%sAirlift to City%s")
312 ; /* TRANS: _Attack (100% chance of success). */
313 ui_name_attack = _("%sAttack%s")
315 ; /* TRANS: _Conquer City (100% chance of success). */
316 ui_name_conquer_city = _("%sConquer City%s")
318 ; Suppress automatic help text generation about what enables and/or
319 ; disables the following actions.
321 ; Can make the help text less redundant when you document it your self.
322 ;quiet_actions = "Targeted Sabotage City", "Targeted Steal Tech"
324 ; /* <-- avoid gettext warnings
326 ; Action enablers:
328 ; action               = the action to enable.
329 ; actor_reqs           = requirements that apply to the actor.
330 ; target_reqs          = requirements that apply to the target.
332 ; README.actions lists the possible actions and their hard coded
333 ; requirements.
335 ; An action enabler is active when its actor_reqs AND its target_reqs are
336 ; satisfied.
338 ; */ <-- avoid gettext warnings
340 [actionenabler_sabotage_city]
341 action = "Sabotage City"
342 actor_reqs    =
343     { "type",   "name", "range"
344       "UnitFlag", "Diplomat", "Local"
345       "DiplRel", "War", "Local"
346       "UnitState", "OnLivableTile", "Local"
347       "MinMoveFrags", "1", "Local"
348     }
350 [actionenabler_sabotage_city_target]
351 action = "Targeted Sabotage City"
352 actor_reqs    =
353     { "type",   "name", "range"
354       "DiplRel", "War", "Local"
355       "UnitFlag", "Spy", "Local"
356       "UnitState", "OnLivableTile", "Local"
357       "MinMoveFrags", "1", "Local"
358     }
360 [actionenabler_establish_embassy]
361 action       = "Establish Embassy Stay"
362 actor_reqs    =
363     { "type",         "name",          "range", "present"
364       "UnitFlag",     "Diplomat",      "Local", TRUE
365       "UnitState",    "OnLivableTile", "Local", TRUE
366       "MinMoveFrags", "1",             "Local", TRUE
367       "DiplRel",      "Foreign",       "Local", TRUE
368       "UnitFlag",     "Spy",           "Local", FALSE
369     }
370 target_reqs  =
371     { "type",        "name",      "range",  "present"
372       "NationGroup", "Barbarian", "Player", FALSE
373     }
375 [actionenabler_establish_embassy_spy]
376 action       = "Establish Embassy"
377 actor_reqs    =
378     { "type",         "name",          "range"
379       "UnitFlag",     "Spy",           "Local"
380       "UnitState",    "OnLivableTile", "Local"
381       "MinMoveFrags", "1",             "Local"
382       "DiplRel",      "Foreign",       "Local"
383     }
384 target_reqs  =
385     { "type",        "name",      "range",  "present"
386       "NationGroup", "Barbarian", "Player", FALSE
387     }
389 [actionenabler_investigate_city]
390 action       = "Investigate City Spend Unit"
391 actor_reqs    =
392     { "type",   "name", "range", "present"
393       "UnitFlag", "Diplomat", "Local", TRUE
394       "UnitState", "OnLivableTile", "Local", TRUE
395       "MinMoveFrags", "1", "Local", TRUE
396       "DiplRel", "Foreign", "Local", TRUE
397       "UnitFlag", "Spy", "Local", FALSE
398     }
400 [actionenabler_investigate_city_spy]
401 action       = "Investigate City"
402 actor_reqs    =
403     { "type",   "name", "range"
404       "UnitFlag", "Spy", "Local"
405       "UnitState", "OnLivableTile", "Local"
406       "MinMoveFrags", "1", "Local"
407       "DiplRel", "Foreign", "Local"
408     }
410 [actionenabler_poison_city]
411 action = "Poison City"
412 actor_reqs    =
413     { "type",   "name", "range"
414       "UnitFlag", "Spy", "Local"
415       "DiplRel", "War", "Local"
416       "UnitState", "OnLivableTile", "Local"
417       "MinMoveFrags", "1", "Local"
418     }
419 target_reqs    =
420     { "type",   "name", "range"
421       "MinSize", "2", "City"
422     }
424 [actionenabler_steal_tech_random]
425 action = "Steal Tech"
426 actor_reqs    =
427     { "type",   "name", "range"
428       "UnitFlag", "Diplomat", "Local"
429       "UnitState", "OnLivableTile", "Local"
430       "MinMoveFrags", "1", "Local"
431       "DiplRel", "Foreign", "Local"
432     }
433 target_reqs  =
434     { "type",   "name", "range", "present"
435       "NationGroup", "Barbarian", "Player", FALSE
436     }
438 [actionenabler_steal_tech_target]
439 action = "Targeted Steal Tech"
440 actor_reqs    =
441     { "type",   "name", "range"
442       "UnitFlag", "Spy", "Local"
443       "UnitState", "OnLivableTile", "Local"
444       "MinMoveFrags", "1", "Local"
445       "DiplRel", "Foreign", "Local"
446     }
447 target_reqs  =
448     { "type",   "name", "range", "present"
449       "NationGroup", "Barbarian", "Player", FALSE
450     }
452 [actionenabler_incite_city]
453 action = "Incite City"
454 actor_reqs    =
455     { "type",         "name",          "range", "present"
456       "UnitFlag",     "Diplomat",      "Local", TRUE
457       "DiplRel",      "Alliance",      "Local", FALSE
458       "DiplRel",      "Team",          "Local", FALSE
459       "UnitState",    "OnLivableTile", "Local", TRUE
460       "MinMoveFrags", "1",             "Local", TRUE
461       "DiplRel",      "Foreign",       "Local", TRUE
462       "UnitFlag",     "Spy",           "Local", FALSE
463     }
464 target_reqs  =
465     { "type",     "name",      "range",  "present"
466       "Gov",      "Democracy", "Player", FALSE
467       "Building", "Palace",    "City",   FALSE
468     }
470 [actionenabler_incite_city_spy]
471 action = "Incite City Escape"
472 actor_reqs    =
473     { "type",         "name",          "range", "present"
474       "UnitFlag",     "Spy",           "Local", TRUE
475       "DiplRel",      "Alliance",      "Local", FALSE
476       "DiplRel",      "Team",          "Local", FALSE
477       "UnitState",    "OnLivableTile", "Local", TRUE
478       "MinMoveFrags", "1",             "Local", TRUE
479       "DiplRel",      "Foreign",       "Local", TRUE
480     }
481 target_reqs  =
482     { "type",     "name",      "range",  "present"
483       "Gov",      "Democracy", "Player", FALSE
484       "Building", "Palace",    "City",   FALSE
485     }
487 [actionenabler_bribe_unit]
488 action = "Bribe Unit"
489 actor_reqs    =
490     { "type",   "name", "range", "present"
491       "UnitFlag", "Diplomat", "Local", TRUE
492       "DiplRel", "Alliance", "Local", FALSE
493       "DiplRel", "Team", "Local", FALSE
494       "UnitState", "OnLivableTile", "Local", TRUE
495       "MinMoveFrags", "1", "Local", TRUE
496       "DiplRel", "Foreign", "Local", TRUE
497     }
498 target_reqs    =
499     { "type",   "name", "range", "present"
500       "UnitFlag", "Unbribable", "Local", FALSE
501       "CityTile", "Center", "Local", FALSE
502       "Gov", "Democracy", "Player", FALSE
503       "MaxUnitsOnTile", "1", "Local", TRUE
504     }
506 [actionenabler_sabotage_unit]
507 action = "Sabotage Unit"
508 actor_reqs    =
509     { "type",   "name", "range"
510       "UnitFlag", "Spy", "Local"
511       "DiplRel", "War", "Local"
512       "UnitState", "OnLivableTile", "Local"
513       "MinMoveFrags", "1", "Local"
514     }
515 target_reqs    =
516     { "type",   "name", "range", "present"
517       "CityTile", "Center", "Local", FALSE
518       "MinHitPoints", "2", "Local", TRUE
519       "MaxUnitsOnTile", "1", "Local", TRUE
520     }
522 [actionenabler_help_build_wonder]
523 action = "Help Wonder"
524 actor_reqs    =
525     { "type",   "name", "range", "present"
526       "UnitFlag", "HelpWonder", "Local", TRUE
527       "DiplRel", "Foreign", "Local", FALSE
528     }
529 target_reqs    =
530     { "type",   "name", "range"
531       "BuildingGenus", "GreatWonder", "Local"
532     }
534 [actionenabler_help_build_small_wonder]
535 action = "Help Wonder"
536 actor_reqs    =
537     { "type",   "name", "range", "present"
538       "UnitFlag", "HelpWonder", "Local", TRUE
539       "DiplRel", "Foreign", "Local", FALSE
540     }
541 target_reqs    =
542     { "type",   "name", "range"
543       "BuildingGenus", "SmallWonder", "Local"
544     }
546 [actionenabler_recycle_unit]
547 action = "Recycle Unit"
548 actor_reqs    =
549     { "type",   "name", "range", "present"
550       "UnitFlag", "EvacuateFirst", "Local", FALSE
551       "DiplRel",  "War",        "Local", FALSE
552       "DiplRel",  "Cease-fire", "Local", FALSE
553       "DiplRel",  "Armistice",  "Local", FALSE
554       "DiplRel",  "Peace",      "Local", FALSE
555     }
557 [actionenabler_disband_unit]
558 action = "Disband Unit"
559 actor_reqs    =
560     { "type",   "name", "range", "present"
561       "UnitFlag", "EvacuateFirst", "Local", FALSE
562     }
564 [actionenabler_build_city_pioneer]
565 action = "Found City"
566 actor_reqs    =
567     { "type",   "name", "range"
568       "UnitFlag", "Cities", "Local"
569       "UnitState", "OnLivableTile", "Local"
570       "MinMoveFrags", "1", "Local"
571     }
572 target_reqs    =
573     { "type",   "name", "range", "present"
574       "CityTile", "Claimed", "Local", FALSE
575     }
577 [actionenabler_build_city_domestic]
578 action = "Found City"
579 actor_reqs    =
580     { "type",   "name", "range", "present"
581       "UnitFlag", "Cities", "Local", TRUE
582       "UnitState", "OnLivableTile", "Local", TRUE
583       "MinMoveFrags", "1", "Local", TRUE
584       "DiplRel", "Foreign", "Local", FALSE
585     }
587 [actionenabler_join_city]
588 action = "Join City"
589 actor_reqs    =
590     { "type",   "name", "range", "present"
591       "UnitFlag", "AddToCity", "Local", TRUE
592       "DiplRel", "Foreign", "Local", FALSE
593       "MinMoveFrags", "1", "Local", TRUE
594     }
596 [actionenabler_nuke]
597 action = "Explode Nuclear"
598 actor_reqs    =
599     { "type",   "name", "range", "present"
600       "UnitFlag", "Nuclear", "Local", TRUE
601     }
603 [actionenabler_attack_native]
604 action = "Attack"
605 actor_reqs    =
606     { "type",         "name",         "range", "present"
607       "UnitFlag",     "NonMil",       "Local", FALSE
608       "MinMoveFrags", "1",            "Local", TRUE
609       "UnitState",    "OnNativeTile", "Local", TRUE
610     }
612 [actionenabler_attack_marines]
613 action = "Attack"
614 actor_reqs    =
615     { "type",         "name",    "range", "present"
616       "UnitFlag",     "NonMil",  "Local", FALSE
617       "MinMoveFrags", "1",       "Local", TRUE
618       "UnitFlag",     "Marines", "Local", TRUE
619     }
621 [actionenabler_attack_att_from_non_native]
622 action = "Attack"
623 actor_reqs    =
624     { "type",          "name",             "range", "present"
625       "UnitFlag",      "NonMil",           "Local", FALSE
626       "MinMoveFrags",  "1",                "Local", TRUE
627       "UnitClassFlag", "AttFromNonNative", "Local", TRUE
628     }
630 [actionenabler_conquer_city_native]
631 action = "Conquer City"
632 actor_reqs    =
633     { "type",           "name",          "range", "present"
634       "UnitClassFlag",  "CanOccupyCity", "Local", TRUE
635       "UnitFlag",       "NonMil",        "Local", FALSE
636       "DiplRel",        "War",           "Local", TRUE
637       "MinMoveFrags",   "1",             "Local", TRUE
638       "UnitState",      "OnLivableTile", "Local", TRUE
639     }
640 target_reqs    =
641     { "type",           "name",          "range", "present"
642       "MaxUnitsOnTile", "0",             "Local", TRUE
643     }
645 [actionenabler_conquer_city_marines]
646 action = "Conquer City"
647 actor_reqs    =
648     { "type",           "name",          "range", "present"
649       "UnitClassFlag",  "CanOccupyCity", "Local", TRUE
650       "UnitFlag",       "NonMil",        "Local", FALSE
651       "DiplRel",        "War",           "Local", TRUE
652       "MinMoveFrags",   "1",             "Local", TRUE
653       "UnitFlag",       "Marines",       "Local", TRUE
654     }
655 target_reqs    =
656     { "type",           "name",          "range", "present"
657       "MaxUnitsOnTile", "0",             "Local", TRUE
658     }
660 [actionenabler_conquer_city_att_from_non_native]
661 action = "Conquer City"
662 actor_reqs    =
663     { "type",           "name",             "range", "present"
664       "UnitClassFlag",  "CanOccupyCity",    "Local", TRUE
665       "UnitFlag",       "NonMil",           "Local", FALSE
666       "DiplRel",        "War",              "Local", TRUE
667       "MinMoveFrags",   "1",                "Local", TRUE
668       "UnitClassFlag",  "AttFromNonNative", "Local", TRUE
669     }
670 target_reqs    =
671     { "type",           "name",          "range", "present"
672       "MaxUnitsOnTile", "0",             "Local", TRUE
673     }
675 [actionenabler_change_home_city]
676 action = "Home City"
677 actor_reqs    =
678     { "type",      "name",        "range", "present"
679       "UnitFlag",  "NoHome",      "Local", FALSE
680       "UnitState", "HasHomeCity", "Local", TRUE
681       "DiplRel",   "Foreign",  "Local", FALSE
682     }
684 [actionenabler_paradrop_base]
685 action = "Paradrop Unit"
686 actor_reqs    =
687     { "type",      "name",         "range", "present"
688       "UnitFlag",  "Paratroopers", "Local", TRUE
689       "UnitState", "Transporting", "Local", FALSE
690       "Extra",     "Airbase",      "Local", TRUE
691     }
693 [actionenabler_paradrop_city]
694 action = "Paradrop Unit"
695 actor_reqs    =
696     { "type",      "name",         "range", "present"
697       "UnitFlag",  "Paratroopers", "Local", TRUE
698       "UnitState", "Transporting", "Local", FALSE
699       "CityTile",  "Center",       "Local", TRUE
700     }
702 [actionenabler_upgrade_unit]
703 action = "Upgrade Unit"
704 actor_reqs    =
705     { "type",    "name",       "range", "present"
706       "DiplRel", "Foreign", "Local", FALSE
707     }
709 [actionenabler_airlift_unit]
710 action = "Airlift Unit"
711 actor_reqs    =
712     { "type",          "name",         "range", "present"
713       "UnitClass",     "Land",         "Local", TRUE
714       "UnitState",     "Transporting", "Local", FALSE
715       "MinMoveFrags",  "1",            "Local", TRUE
716     }
718 [borders]
719 ; Base border radius from city.
720 radius_sq_city = 17
722 ; Border radius square increased by this amount / point of city size
723 size_effect    = 1
725 ; Difference between city workable area and area permanently claimed by
726 ; city (these tiles cannot be stolen by stronger border sources).
727 ; 0 means exactly city workable area is immune to border stealing.
728 ; Negative value means outer workable tiles can be stolen; highly negative
729 ; value (more than max city radius_sq) means any workable tile can be stolen.
730 ; If City_Radius_Sq is variable, so is the set of locked tiles; this is
731 ; a squared value, so the radius of the ring of tiles which are workable
732 ; but not locked (or vice versa) varies but the area is constant.
733 radius_sq_city_permanent = 0
735 [research]
736 ; Method of calculating technology costs
737 ;   "Civ I|II"      - Civ (I|II) style. Every new tech add base_tech_cost to
738 ;                     cost of next tech.
739 ;   "Classic"       - Cost of technology is:
740 ;                       base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
741 ;                     where reqs == number of requirement for tech, counted
742 ;                     recursively.
743 ;   "Classic+"      - Cost are read from tech.ruleset. Missing costs are
744 ;                     generated by style "Classic".
745 ;   "Experimental"  - Cost of technology is:
746 ;                       base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
747 ;                                         - 0.5)
748 ;                     where reqs == number of requirement for tech, counted
749 ;                     recursively.
750 ;   "Experimental+" - Cost are read from tech.ruleset. Missing costs are
751 ;                     generated by style "Experimental".
752 tech_cost_style = "Classic"
754 ; Base research cost. Used in tech cost styles where tech cost is generated.
755 ; In other words: used everywhere unless the cost of *all* techs are
756 ; specified and the tech cost style is "Experimental+" or "Classic+".
757 base_tech_cost   = 20
759 ; Technology leak from other civilizations
760 ; "None"           - No reduction of the technology cost.
761 ; "Embassies"      - Technology cost is reduced depending on the number of
762 ;                    players which already know the tech and you have an
763 ;                    embassy with.
764 ; "All Players"    - Technology cost is reduced depending on the number of
765 ;                    all players (human, AI and barbarians) which already
766 ;                    know the tech.
767 ; "Normal Players" - Technology cost is reduced depending on the number of
768 ;                    normal players (human and AI) which already know the
769 ;                    tech.
770 tech_leakage = "None"
772 ; Method of paying tech upkeep
773 ; "None"   - no upkeep
774 ; "Basic"  - upkeep is calculated as:
775 ;     <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
776 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
777 tech_upkeep_style = "None"
779 ; upkeep cost is divided by this value
780 tech_upkeep_divider = 2000
782 ; Method of selecting techs given for free
783 ; "Goal"     - Towards player`s goal, random if no goal
784 ; "Random"   - Random researchable tech
785 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
786 free_tech_method = "Goal"
788 [culture]
789 ; Minimum culture points for cultural domination victory
790 victory_min_points = 1000
792 ; How big lead relative to second best player is needed for victory
793 victory_lead_pct   = 200
795 ; How much each culture point affects the migration
796 ; from/to the city. Each culture point count as this many permilles
797 ; of a migration point.
798 migration_pml = 50
800 [calendar]
801 ; Year in the beginning of the game
802 start_year = -4000
804 ; Year 1 instead of 0.
805 skip_year_0 = TRUE
807 ; How many fragments each year has. Value 0 disables year advancement by fragment
808 ; accumulation.
809 fragments = 0
811 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
812 ; numbers begin from 1 and not 0) is shown.
814 ;fragment_name0 = "Jan"
815 ;fragment_name1 = "Feb"
816 ; ...
818 ; What labels are used for positive and negative years.
819 ; /* TRANS: year label (Common Era) */
820 positive_label = _("CE")
821 ; /* TRANS: year label (Before Common Era) */
822 negative_label = _("BCE")
824 ; /* <-- avoid gettext warnings
826 ; Disaster types:
828 ; name                    = translatable name as seen by user
829 ; reqs                    = requirements for disaster to happen (see effects.ruleset
830 ;                           and README.effects for help on requirements)
831 ; frequency               = how likely disaster is to occur
832 ; effects
833 ;   - "DestroyBuilding"   = Random building is destroyed
834 ;   - "ReducePopulation"  = Reduce city size by one unless it's already 1
835 ;   - "ReducePopDestroy"  = Reduce city size by one, possibly destroying the city
836 ;   - "EmptyFoodStock"    = Remove all food from food stock
837 ;   - "EmptyProdStock"    = Destroy current production
838 ;   - "Pollution"         = One tile surrounding city polluted
839 ;   - "Fallout"           = One tile surrounding city polluted with fallout
841 ; */ <-- avoid gettext warnings
843 ; No disasters in multiplayer ruleset
845 ; /* <-- avoid gettext warnings
847 ; Achievement types:
849 ; name                    = translatable name as seen by user
850 ; rule_name               = (optional) name for savegames, rulesets etc; if not
851 ;                           present, 'name' is used. Since the name used in
852 ;                           savegames must not change, use this when renaming a
853 ;                           achievement after a ruleset has been released.
854 ; type                    = What event grants the achievement to player.
855 ;                           See README.achievements for list of these types.
856 ; unique                  = If TRUE, only first one reaching the achievement will
857 ;                           get it. Defaults to TRUE.
858 ; value                   = Value to reach. Exact meaning of this depends on
859 ;                           achievement type.
860 ; culture                 = Amount of culture granted to player who gets achievement
861 ;                           granted.
862 ; first_msg               = Message shown to first player gaining the achievement
863 ; cons_msg                = Message shown to consecutive players gaining the achievement
865 ; */ <-- avoid gettext warnings
867 ; No achievements in multiplayer ruleset
870 ; Trade settings
872 ; IN = international, IC = intercontinental.
873 ; For each of the trade route types:
874 ; "pct"        - Trade income %. If this is 0, trade route cannot be
875 ;                established at all
876 ; "cancelling" - What to do to previously established traderoutes when they
877 ;                turn illegal
878 ;                "Active"   - Keep them active (although they will only
879 ;                             provide nonzero income if illegal due to
880 ;                             trademindist rather than pct==0)
881 ;                "Inactive" - Keep them inactive
882 ;                "Cancel"   - Cancel them altogether
883 ; "bonus"      - One-time bonuses granted when traderoute established
884 ;                "None"     - No one-time bonus
885 ;                "Gold"     - Bonus to gold
886 ;                "Science"  - Bonus to research
887 ;                "Both"     - Bonus to gold and research
889 [trade]
890 settings =
891   { "type",       "pct", "cancelling", "bonus"
892     "National",   0,     "Cancel",     "Both"
893     "NationalIC", 0,     "Cancel",     "Both"
894     "IN",         0,     "Cancel",     "Both"
895     "INIC",       0,     "Cancel",     "Both"
896     "Ally",       0,     "Cancel",     "Both"
897     "AllyIC",     0,     "Cancel",     "Both"
898     "Enemy",      0,     "Cancel",     "Both"
899     "EnemyIC",    0,     "Cancel",     "Both"
900     "Team",       0,     "Cancel",     "Both"
901     "TeamIC",     0,     "Cancel",     "Both"
902   }
904 ; When are goods for the trade route chosen.
905 ; "Leaving" - Goods to carry are assigned to unit when it`s built, or it changes homecity
906 ; "Arrival" - Goods are chosen when trade route is established, when unit arrives to destination
907 goods_selection = "Arrival"
909 ; /* <-- avoid gettext warnings
911 ; Goods types:
913 ; name                    = translatable name as seen by user
914 ; rule_name               = (optional) name for savegames, rulesets etc; if not
915 ;                           present, 'name' is used. Since the name used in
916 ;                           savegames must not change, use this when renaming
917 ;                           an good after a ruleset has been released.
918 ; reqs                    = requirements for a city to provide goods (see effects.ruleset
919 ;                           and README.effects for help on requirements)
920 ; from_pct                = Income for the sending end of the trade route. Default is 100%
921 ;                           This value is applied to both ends of bidirectional routes.
922 ; to_pct                  = Income for the receiving end of the trade route. Default is 100%
923 ;                           This value is not used at all in case of bidirectional routes.
924 ; flags
925 ;   - "Bidirectional"     = Trade route carrying the goods does not have "from" and "to"
926 ;                           ends, but both ends are considered the same.
927 ;   - "Depletes"          = Trade route gets cancelled when the source city cannot provide
928 ;                           goods any more. Bidirectional routes gets cancelled if either
929 ;                           one of the involved cities cannot provide goods.
930 ; helptext                = Optional help text string; should escape all raw
931 ;                           newlines so that xgettext parsing works
933 ; */ <-- avoid gettext warnings
935 [goods_good]
936 name = _("Goods")
938 [playercolors]
939 background.r = 86
940 background.g = 86
941 background.b = 86
943 ; Player colors for 32 players are defined below.
944 ; Avoid greens, blues, and white / very pale colors (too easy to confuse
945 ; with terrain).
946 ; Avoid dark colors.
947 colorlist =
948     { "r", "g", "b"
949       255,   0,   0  ; Red
950       255, 255,   0  ; Yellow
951         0, 255, 255  ; Blue
952       138,  43, 226  ; Purple
953       255, 165,   0  ; Orange
954       255,   0, 255  ; Magenta
955       173, 216, 230  ; Cornflower
956         0, 255, 127  ; Emerald
957       250, 128, 114  ; Salmon
958       124, 252,   0  ; Green
959       139,   0,   0  ; Burgundy
960       255, 192, 203  ; Pink
961       211, 211, 211  ; Silver
962       218, 112, 214  ; Heliotrope
963       255,  20, 147  ; Fuchsia
964       100, 149, 237  ; Azure
965       255, 215,   0  ; Gold
966       245, 222, 179  ; Khaki
967       255, 255, 128  ; Butter
968       192, 255, 128  ; Mint
969       204, 255,   0  ; Lime
970       255, 211, 140  ; Peach
971       255,  79,   0  ; Vermilion
972       240, 145, 169  ; Puce
973       255, 219,  88  ; Mustard
974       153,  17, 153  ; Aubergine
975       184, 134,  11  ; Brown
976       255, 102,   0  ; Pumpkin
977       102, 205, 170  ; Turquoise
978       195,  33,  72  ; Crimson
979       168, 153, 230  ; Lavender
980       255, 250, 205  ; Cream
981     }
983 [teams]
984 ; Team names correspond roughly to colors defined above, so that
985 ; plrcolormode=TEAM_ORDER is not gratuitously confusing.
986 names =
987 ; /* TRANS: Name of a color; used as unique identifier for a team */
988 ; /* TRANS: With this and other color team names, uniqueness is more */
989 ; /* TRANS: important than precise translation. To see the colors, start a */
990 ; /* TRANS: multiplayer game with 32 players and look at the Nations report. */
991  _("?team name:Red"),
992 ; /* TRANS: Name of a color; used as unique identifier for a team */
993  _("?team name:Yellow"),
994 ; /* TRANS: Name of a color; used as unique identifier for a team */
995  _("?team name:Blue"),
996 ; /* TRANS: Name of a color; used as unique identifier for a team */
997  _("?team name:Purple"),
998 ; /* TRANS: Name of a color; used as unique identifier for a team */
999  _("?team name:Orange"),
1000 ; /* TRANS: Name of a color; used as unique identifier for a team */
1001  _("?team name:Magenta"),
1002 ; /* TRANS: Name of a color; used as unique identifier for a team */
1003  _("?team name:Cornflower"),
1004 ; /* TRANS: Name of a color; used as unique identifier for a team */
1005  _("?team name:Emerald"),
1006 ; /* TRANS: Name of a color; used as unique identifier for a team */
1007  _("?team name:Salmon"),
1008 ; /* TRANS: Name of a color; used as unique identifier for a team */
1009  _("?team name:Green"),
1010 ; /* TRANS: Name of a color; used as unique identifier for a team */
1011  _("?team name:Burgundy"),
1012 ; /* TRANS: Name of a color; used as unique identifier for a team */
1013  _("?team name:Pink"),
1014 ; /* TRANS: Name of a color; used as unique identifier for a team */
1015  _("?team name:Silver"),
1016 ; /* TRANS: Name of a color; used as unique identifier for a team */
1017  _("?team name:Heliotrope"),
1018 ; /* TRANS: Name of a color; used as unique identifier for a team */
1019  _("?team name:Fuchsia"),
1020 ; /* TRANS: Name of a color; used as unique identifier for a team */
1021  _("?team name:Azure"),
1022 ; /* TRANS: Name of a color; used as unique identifier for a team */
1023  _("?team name:Gold"),
1024 ; /* TRANS: Name of a color; used as unique identifier for a team */
1025  _("?team name:Khaki"),
1026 ; /* TRANS: Name of a color; used as unique identifier for a team */
1027  _("?team name:Butter"),
1028 ; /* TRANS: Name of a color; used as unique identifier for a team */
1029  _("?team name:Mint"),
1030 ; /* TRANS: Name of a color; used as unique identifier for a team */
1031  _("?team name:Lime"),
1032 ; /* TRANS: Name of a color; used as unique identifier for a team */
1033  _("?team name:Peach"),
1034 ; /* TRANS: Name of a color; used as unique identifier for a team */
1035  _("?team name:Vermilion"),
1036 ; /* TRANS: Name of a color; used as unique identifier for a team */
1037  _("?team name:Puce"),
1038 ; /* TRANS: Name of a color; used as unique identifier for a team */
1039  _("?team name:Mustard"),
1040 ; /* TRANS: Name of a color; used as unique identifier for a team */
1041  _("?team name:Aubergine"),
1042 ; /* TRANS: Name of a color; used as unique identifier for a team */
1043  _("?team name:Brown"),
1044 ; /* TRANS: Name of a color; used as unique identifier for a team */
1045  _("?team name:Pumpkin"),
1046 ; /* TRANS: Name of a color; used as unique identifier for a team */
1047  _("?team name:Turquoise"),
1048 ; /* TRANS: Name of a color; used as unique identifier for a team */
1049  _("?team name:Crimson"),
1050 ; /* TRANS: Name of a color; used as unique identifier for a team */
1051  _("?team name:Lavender"),
1052 ; /* TRANS: Name of a color; used as unique identifier for a team */
1053  _("?team name:Cream")
1055 [settings]
1056 set =
1057     { "name", "value", "lock"
1058       "minplayers", 2, FALSE
1059       "generator", "ISLAND", FALSE
1060       "topology", "WRAPX|WRAPY|ISO", FALSE
1061       "startpos", "SINGLE", FALSE
1062       "tinyisles", FALSE, FALSE
1063       "alltemperate", TRUE, FALSE
1064       "separatepoles", FALSE, FALSE
1065       "huts", 0, FALSE
1066       "aifill", 0, FALSE
1067       "dispersion", 0, FALSE
1068       "diplomacy", "DISABLED", FALSE
1069       "contactturns", 0, FALSE
1070       "revolen", 2, FALSE
1071       "barbarians", "DISABLED", FALSE
1072       "techpenalty", 0, FALSE
1073       "startunits", "cccwwwxxxx", FALSE
1074       "specials", 350, FALSE
1075       "borders", "SEE_INSIDE", FALSE
1076       "foggedborders", TRUE, FALSE
1077     }