Make enum type conversion explicit.
[freeciv.git] / data / stub / game.ruleset
blobf16d2abc814fc8815797082ebd3abc8aacbd6e70
1 ; This is minimal game ruleset. Replace <modpack> with your module name in
2 ; description.
4 [datafile]
5 description="<modpack> game rules for Freeciv"
6 options="+Freeciv-ruleset-Devel-2017.Jan.02"
7 format_version=20
9 ; This section contains meta information for freeciv-ruledit to recreate the ruleset
10 ; file in a form wanted. These have no in-game effect whatsoever
11 [ruledit]
13 ; Which file to read description in from.
14 ;description_file = ""
16 [about]
17 ; Ruleset name
18 name = _("Stub")
20 ; Versioning of the ruleset
21 ;version = ""
23 ; Summary of the ruleset
24 summary = _("\
25 This ruleset is meant to be used as starting point for \
26 real rulesets, not playable ruleset in itself.\
29 ; Detailed description
30 ; When updating this, update also desciption_file in [ruledit] section to match
31 ; description = ""
33 [options]
34 global_init_techs=""
35 global_init_buildings=""
37 [civstyle]
38 ; Value added to city pollution
39 base_pollution   = -20
41 ; Cost in luxuries of making one citizen happier
42 happy_cost       = 2
44 ; Cost in food of upkeeping a single citizen
45 food_cost        = 2
47 ; Parameters used to generalize the calculation of city granary size:
48 ;   if city_size <= num_inis:
49 ;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
50 ;   if city_size > num_inis;
51 ;     city_granary_size = (granary_food_ini[num_inis] +
52 ;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
53 granary_food_ini        = 20
54 granary_food_inc        = 10
56 ; City center minimum outputs
57 min_city_center_food    = 1
58 min_city_center_shield  = 1
59 min_city_center_trade   = 0
61 ; Square of initial city radius
62 init_city_radius_sq     = 5
64 ; Square of initially visible radius (true distance).
65 init_vis_radius_sq      = 5
67 ; A base bribe cost, modified heavily by other factors
68 base_bribe_cost  = 750
70 ; Barbarian leader ransom in gold
71 ransom_gold      = 100
73 ; Number of veteran levels lost when upgrading a unit
74 upgrade_veteran_loss     = 0
76 ; Number of veteran levels lost when auto-upgrading a unit
77 autoupgrade_veteran_loss = 0
79 ; Whether player gets to select which terrain improvement to pillage.
80 pillage_select           = TRUE
82 ; Whether one can steal a tech for which prereqs are not known
83 tech_steal_allow_holes    = TRUE
84 ; Whether one can get a tech for which prereqs are not known via
85 ; diplomatic trading
86 tech_trade_allow_holes    = TRUE
87 ; ...and whether one can lose a tech which is prereq for another known
88 ; tech via trade, if techlost_donor is nonzero
89 tech_trade_loss_allow_holes = TRUE
90 ; Whether one can get a tech for which prereqs are not known via
91 ; parasite effect (Great Library)
92 tech_parasite_allow_holes = TRUE
93 ; Whether one can lose a tech which is prereq for another known tech
94 ; due to negative bulbs, if techlossforgiveness allows loss
95 tech_loss_allow_holes     = TRUE
97 ; Whether civil war is possible at all
98 civil_war_enabled        = TRUE
100 ; Comma separated list of things to happen, in addition to death
101 ; of owner, when gameloss unit dies
102 ; "CivilWar"   - Part of the empire remains, controlled by a new player
103 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
104 ;                or half of the dead players empire gets under barbarian
105 ;                control.
106 ; "Loot"       - Player who killed the gameloss unit gets loot:
107 ;                Partial map, gold, techs, cities
108 gameloss_style           = ""
110 ; Whether units may safely paradrop to transport on non-native terrain
111 paradrop_to_transport    = FALSE
113 ;Method of paying unit and improvement gold upkeep
114 ; "City" - The player`s total gold must be non-negative after paying upkeep
115 ;          costs associated with each city. If for any city the player`s
116 ;          gold is negative, random buildings in the city are sold off. If
117 ;          the gold is still negative, then supported units with gold upkeep
118 ;          are disbanded.
119 ; "Mixed" - In the first step, the player`s total gold must be non-negative
120 ;           after paying upkeep for all buildings within a city. If for any
121 ;           city the player`s gold is negative, random buildings in the city
122 ;           are sold off.
123 ;           In the second step, gold upkeep for all units is paid in a lump
124 ;           sum. If the player does not have enough gold, random units with
125 ;           gold upkeep are disbanded.
126 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
127 ;            after all cities have been processed. If the player does not
128 ;            have enough gold, random buildings from random cities are sold.
129 ;            If still more gold is needed, then random units with gold
130 ;            upkeep are disbanded.
131 gold_upkeep_style = "City"
133 [illness]
134 ; Whether plagues (illness) are possible
135 illness_on = FALSE
137 ; the base factor for illness (of percent)
138 illness_base_factor = 25
140 ; minimum city size for illness
141 illness_min_size = 3
143 ; factor for how much trading with a plagued city increases our city`s
144 ; chance for plague (in percent)
145 illness_trade_infection = 50
147 ; factor for how much pollution within a city increases its chance for
148 ; plague (in percent)
149 illness_pollution_factor = 50
151 [incite_cost]
152 ; city_incite_cost = 
153 ; total_factor * (city_size) *
154 ; (base_incite_cost + (units_cost) * unit_factor + 
155 ;   (improvements_cost) * improvement_factor) 
156 ;  / (distance * 100)
157 ; See city_incite_cost() for more details
158 base_incite_cost = 1000
159 improvement_factor = 1
160 unit_factor = 2
161 total_factor = 100
163 [global_unit_options]
164 ; Shore landing style
165 ;  FALSE - normal movement
166 ;  TRUE  - (default) slow invasions by removing all
167 ;      movement points from ground units moving
168 ;      from ocean tile to land
169 slow_invasions = TRUE
171 [combat_rules]
172 ; If tired_attack is set to TRUE, units that attack with less than a single
173 ; move point (per move_fragments in terrain.ruleset) will have their attack
174 ; power reduced accordingly. For instance, if move_fragments=3, a unit with
175 ; 2/3 move points will have attack power 2/3 of normal.
176 ; If this is set to FALSE units will attack with full strength even if they
177 ; have only fractional moves left.
178 tired_attack = FALSE
180 [auto_attack]
181 ; An auto attack may be triggered when another unit moves to an adjacent
182 ; tile and the autoattack server setting is enabled. The following details
183 ; are ruleset controlled.
184 ;   will_never - units with this unit type flag will never auto attack.
186 ; Not a good idea to nuke our own area.
187 ;will_never = "Nuclear"
189 [actions]
190 ; If force_trade_route is set to TRUE it is illegal for an actor unit to
191 ; enter the marketplace of a city if it can establish a trade route to it
192 ; in stead.
193 force_trade_route = FALSE
195 ; If force_capture_units is set to TRUE it is illegal for an actor unit to
196 ; bombard, explode nuclear or perform a regular attack against a tile if
197 ; it can capture units on it in stead.
198 force_capture_units = FALSE
200 ; If force_bombard is set to TRUE it is illegal for an actor unit to
201 ; explode nuclear or perform a regular attack against a tile if it can
202 ; bombard it in stead.
203 force_bombard = FALSE
205 ; If force_explode_nuclear is set to TRUE it is illegal for an actor unit
206 ; to perform a regular attack against a tile if it can do explode nuclear
207 ; in stead.
208 force_explode_nuclear = FALSE
210 ; If poison_empties_food_stock is set to TRUE a successful "Poison City"
211 ; will empty the food stock.
212 ;poison_empties_food_stock = FALSE
214 ; The maximum distance from the actor unit to the target of the "Bombard"
215 ; action. The value 1 means that the targets must be on a tile adjacent to
216 ; the actor unit. The special value "unlimited" lifts the maximum distance
217 ; restriction. The maximum distance can`t be smaller than the minimum
218 ; distance.
219 bombard_max_range = 1
221 ; What each action should be called when showing them to the player.
222 ; The first %s should be before the mnemonic of the action. A Freeciv client
223 ; that supports mnemonics will replace it with the in-band signal that marks
224 ; the following character as a mnemonic in its graphical toolkit.
225 ; The second %s marks where extra details should be inserted.
227 ; ui_name_xxx = _("%s%s")
229 ; /* <-- avoid gettext warnings
231 ; Action enablers:
233 ; action               = the action to enable.
234 ; actor_reqs           = requirements that apply to the actor.
235 ; target_reqs          = requirements that apply to the target.
237 ; README.actions lists the possible actions and their hard coded
238 ; requirements.
240 ; An action enabler is active when its actor_reqs AND its target_reqs are
241 ; satisfied.
243 ; */ <-- avoid gettext warnings
245 ; No enabled actions
246 ; [actionenabler_embassy]
247 ; action = "Establish Embassy"
249 ; Suppress automatic help text generation about what enables and/or
250 ; disables the following actions.
252 ; Can make the help text less redundant when you document it your self.
253 ;quiet_actions = "Targeted Sabotage City", "Targeted Steal Tech"
255 [borders]
256 ; Base border radius from city.
257 radius_sq_city = 0
259 ; Border radius square increased by this amount / point of city size
260 size_effect    = 0
262 ; Difference between city workable area and area permanently claimed by
263 ; city (these tiles cannot be stolen by stronger border sources).
264 ; 0 means exactly city workable area is immune to border stealing.
265 ; Negative value means outer workable tiles can be stolen; highly negative
266 ; value (more than max city radius_sq) means any workable tile can be stolen.
267 ; If City_Radius_Sq is variable, so is the set of locked tiles; this is
268 ; a squared value, so the radius of the ring of tiles which are workable
269 ; but not locked (or vice versa) varies but the area is constant.
270 radius_sq_city_permanent = 0
272 [research]
273 ; Method of calculating technology costs
274 ;   "Civ I|II"      - Civ (I|II) style. Every new tech add base_tech_cost to
275 ;                     cost of next tech.
276 ;   "Classic"       - Cost of technology is:
277 ;                       base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
278 ;                     where reqs == number of requirement for tech, counted
279 ;                     recursively.
280 ;   "Classic+"      - Cost are read from tech.ruleset. Missing costs are
281 ;                     generated by style "Classic".
282 ;   "Experimental"  - Cost of technology is:
283 ;                       base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
284 ;                                         - 0.5)
285 ;                     where reqs == number of requirement for tech, counted
286 ;                     recursively.
287 ;   "Experimental+" - Cost are read from tech.ruleset. Missing costs are
288 ;                     generated by style "Experimental".
289 tech_cost_style = "Classic"
291 ; Base research cost. Used in tech cost styles where tech cost is generated.
292 ; In other words: used everywhere unless the cost of *all* techs are
293 ; specified and the tech cost style is "Experimental+" or "Classic+".
294 base_tech_cost   = 20
296 ; Technology leak from other civilizations
297 ; "None"           - No reduction of the technology cost.
298 ; "Embassies"      - Technology cost is reduced depending on the number of
299 ;                    players which already know the tech and you have an
300 ;                    embassy with.
301 ; "All Players"    - Technology cost is reduced depending on the number of
302 ;                    all players (human, AI and barbarians) which already
303 ;                    know the tech.
304 ; "Normal Players" - Technology cost is reduced depending on the number of
305 ;                    normal players (human and AI) which already know the
306 ;                    tech.
307 tech_leakage = "None"
309 ; Method of paying tech upkeep
310 ; "None"   - no upkeep
311 ; "Basic"  - upkeep is calculated as:
312 ;     <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
313 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
314 tech_upkeep_style = "None"
316 ; upkeep cost is divided by this value
317 tech_upkeep_divider = 2000
319 ; Method of selecting techs given for free
320 ; "Goal"     - Towards player`s goal, random if no goal
321 ; "Random"   - Random researchable tech
322 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
323 free_tech_method = "Goal"
325 [culture]
326 ; Minimum culture points for cultural domination victory
327 victory_min_points = 1000
329 ; How big lead relative to second best player is needed for victory
330 victory_lead_pct   = 200
332 ; How much each culture point affects the migration
333 ; from/to the city. Each culture point count as this many permilles
334 ; of a migration point.
335 migration_pml = 50
337 [calendar]
338 ; Year in the beginning of the game
339 start_year = 0
341 ; Year 1 instead of 0.
342 skip_year_0 = FALSE
344 ; How many fragments each year has. Value 0 disables year advancement by fragment
345 ; accumulation.
346 fragments = 0
348 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
349 ; numbers begin from 1 and not 0) is shown.
351 ;fragment_name0 = "Jan"
352 ;fragment_name1 = "Feb"
353 ; ...
355 ; What labels are used for positive and negative years.
356 ; /* TRANS: year label (Common Era) */
357 positive_label = _("CE")
358 ; /* TRANS: year label (Before Common Era) */
359 negative_label = _("BCE")
361 ; /* <-- avoid gettext warnings
363 ; Disaster types:
365 ; name                    = translatable name as seen by user
366 ; reqs                    = requirements for disaster to happen (see effects.ruleset
367 ;                           and README.effects for help on requirements)
368 ; frequency               = how likely disaster is to occur
369 ; effects
370 ;   - "DestroyBuilding"   = Random building is destroyed
371 ;   - "ReducePopulation"  = Reduce city size by one unless it's already 1
372 ;   - "ReducePopDestroy"  = Reduce city size by one, possibly destroying the city
373 ;   - "EmptyFoodStock"    = Remove all food from food stock
374 ;   - "EmptyProdStock"    = Destroy current production
375 ;   - "Pollution"         = One tile surrounding city polluted
376 ;   - "Fallout"           = One tile surrounding city polluted with fallout
378 ; */ <-- avoid gettext warnings
380 ; No disasters
381 ; [disaster_earthquake]
382 ; name = _("Earthquake")
383 ; frequency = 10
384 ; effects = "DestroyBuilding"
387 ; /* <-- avoid gettext warnings
389 ; Achievement types:
391 ; name                    = translatable name as seen by user
392 ; rule_name               = (optional) name for savegames, rulesets etc; if not
393 ;                           present, 'name' is used. Since the name used in
394 ;                           savegames must not change, use this when renaming a
395 ;                           achievement after a ruleset has been released.
396 ; type                    = What event grants the achievement to player.
397 ;                           See README.achievements for list of these types.
398 ; unique                  = If TRUE, only first one reaching the achievement will
399 ;                           get it. Defaults to TRUE.
400 ; value                   = Value to reach. Exact meaning of this depends on
401 ;                           achievement type.
402 ; culture                 = Amount of culture granted to player who gets achievement
403 ;                           granted.
404 ; first_msg               = Message shown to first player gaining the achievement
405 ; cons_msg                = Message shown to consecutive players gaining the achievement
407 ; */ <-- avoid gettext warnings
409 ; No achievements
410 ; [achievement_entire_map]
411 ; name  = "Entire Map Known"
412 ; type  = "Map_Known"
413 ; value = 100
416 ; Trade settings
418 ; IN = international, IC = intercontinental.
419 ; For each of the trade route types:
420 ; "pct"        - Trade income %. If this is 0, trade route cannot be
421 ;                established at all
422 ; "cancelling" - What to do to previously established traderoutes when they
423 ;                turn illegal
424 ;                "Active"   - Keep them active (although they will only
425 ;                             provide nonzero income if illegal due to
426 ;                             trademindist rather than pct==0)
427 ;                "Inactive" - Keep them inactive
428 ;                "Cancel"   - Cancel them altogether
429 ; "bonus"      - One-time bonuses granted when traderoute established
430 ;                "None"     - No one-time bonus
431 ;                "Gold"     - Bonus to gold
432 ;                "Science"  - Bonus to research
433 ;                "Both"     - Bonus to gold and research
435 [trade]
436 settings =
437   { "type", "pct", "cancelling", "bonus"
438     "National",   0, "Cancel", "None"
439     "NationalIC", 0, "Cancel", "None"
440     "IN",         0, "Cancel", "None"
441     "INIC",       0, "Cancel", "None"
442     "Ally",       0, "Cancel", "None"
443     "AllyIC",     0, "Cancel", "None"
444     "Enemy",      0, "Cancel", "None"
445     "EnemyIC",    0, "Cancel", "None"
446     "Team",       0, "Cancel", "None"
447     "TeamIC",     0, "Cancel", "None"
448   }
450 ; When are goods for the trade route chosen.
451 ; "Leaving" - Goods to carry are assigned to unit when it`s built, or it changes homecity
452 ; "Arrival" - Goods are chosen when trade route is established, when unit arrives to destination
453 goods_selection = "Leaving"
455 ; /* <-- avoid gettext warnings
457 ; Goods types:
459 ; name                    = translatable name as seen by user
460 ; rule_name               = (optional) name for savegames, rulesets etc; if not
461 ;                           present, 'name' is used. Since the name used in
462 ;                           savegames must not change, use this when renaming
463 ;                           an good after a ruleset has been released.
464 ; reqs                    = requirements for a city to provide goods (see effects.ruleset
465 ;                           and README.effects for help on requirements)
466 ; from_pct                = Income for the sending end of the trade route. Default is 100%
467 ;                           This value is applied to both ends of bidirectional routes.
468 ; to_pct                  = Income for the receiving end of the trade route. Default is 100%
469 ;                           This value is not used at all in case of bidirectional routes.
470 ; flags
471 ;   - "Bidirectional"     = Trade route carrying the goods does not have "from" and "to"
472 ;                           ends, but both ends are considered the same.
473 ;   - "Depletes"          = Trade route gets cancelled when the source city cannot provide
474 ;                           goods any more. Bidirectional routes gets cancelled if either
475 ;                           one of the involved cities cannot provide goods.
476 ; helptext                = Optional help text string; should escape all raw
477 ;                           newlines so that xgettext parsing works
479 ; */ <-- avoid gettext warnings
481 [goods_good]
482 name = _("Goods")
484 [playercolors]
485 background.r = 86
486 background.g = 86
487 background.b = 86
489 colorlist =
490     { "r", "g", "b"
491       255,   0,   0
492     }
494 [teams]
495 ; freeciv optional team names definition.
497 ; names =
498 ; _("Team 1"),
499 ; _("Team 2"),
500 ; _("Team 3"),
501 ; _("Team 4"),
502 ; etc...
504 [settings]
506 set =
507     { "name", "value", "lock"
508       "startunits", "c", TRUE
509     }