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
13 description="Classic game rules for Freeciv"
14 options="+Freeciv-ruleset-Devel-2015.January.14"
19 name = _("Classic ruleset")
21 ; There`s no separate versioning in rulesets part of main freeciv distribution
24 ; Description of the ruleset
26 You are playing with classic Freeciv rules for single player games.\
31 global_init_buildings="Palace"
34 ; Value added to city pollution
37 ; Cost in luxuries of making one citizen happier
40 ; Cost in food of upkeeping a single citizen
43 ; Parameters used to generalize the calculation of city granary size:
44 ; if city_size <= num_inis:
45 ; city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
46 ; if city_size > num_inis;
47 ; city_granary_size = (granary_food_ini[num_inis] +
48 ; granary_food_inc * (city_size - num_inis)) * foodbox / 100
52 ; City center minimum outputs
53 min_city_center_food = 1
54 min_city_center_shield = 1
55 min_city_center_trade = 0
57 ; Square of initial city radius
58 init_city_radius_sq = 5
60 ; Square of initially visible radius (true distance).
61 init_vis_radius_sq = 5
63 ; A base bribe cost, modified heavily by other factors
66 ; Barbarian leader ransom in gold
69 ; Number of veteran levels lost when upgrading a unit
70 upgrade_veteran_loss = 0
72 ; Number of veteran levels lost when auto-upgrading a unit
73 autoupgrade_veteran_loss = 0
75 ; Whether player gets to select which terrain improvement to pillage.
78 ; Whether one can steal a tech for which prereqs are not known
79 tech_steal_allow_holes = TRUE
80 ; Whether one can get a tech for which prereqs are not known via
82 tech_trade_allow_holes = TRUE
83 ; ...and whether one can lose a tech which is prereq for another known
84 ; tech via trade, if techlost_donor is nonzero
85 tech_trade_loss_allow_holes = TRUE
86 ; Whether one can get a tech for which prereqs are not known via
87 ; parasite effect (Great Library)
88 tech_parasite_allow_holes = TRUE
89 ; Whether one can lose a tech which is prereq for another known tech
90 ; due to negative bulbs, if techlossforgiveness allows loss
91 tech_loss_allow_holes = TRUE
93 ; Whether civil war is possible at all
94 civil_war_enabled = TRUE
96 ; Comma separated list of things to happen, in addition to death
97 ; of owner, when gameloss unit dies
98 ; "CivilWar" - Part of the empire remains, controlled by a new player
99 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
100 ; or half of the dead players empire gets under barbarian
102 ; "Loot" - Player who killed the gameloss unit gets loot:
103 ; Partial map, gold, techs, cities
106 ; Whether units may safely paradrop to transport on non-native terrain
107 paradrop_to_transport = FALSE
109 ; Method of paying unit and improvement gold upkeep
110 ; "City" - The player`s total gold must be non-negative after paying upkeep
111 ; costs associated with each city. If for any city the player`s
112 ; gold is negative, random buildings in the city are sold off. If
113 ; the gold is still negative, then supported units with gold upkeep
115 ; "Mixed" - In the first step, the player`s total gold must be non-negative
116 ; after paying upkeep for all buildings within a city. If for any
117 ; city the player`s gold is negative, random buildings in the city
119 ; In the second step, gold upkeep for all units is paid in a lump
120 ; sum. If the player does not have enough gold, random units with
121 ; gold upkeep are disbanded.
122 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
123 ; after all cities have been processed. If the player does not
124 ; have enough gold, random buildings from random cities are sold.
125 ; If still more gold is needed, then random units with gold
126 ; upkeep are disbanded.
127 gold_upkeep_style = "City"
130 ; Whether plagues (illness) are possible
133 ; the base factor for illness (of percent)
134 illness_base_factor = 25
136 ; minimum city size for illness
139 ; factor for how much trading with a plagued city increases our city`s
140 ; chance for plague (in percent)
141 illness_trade_infection = 50
143 ; factor for how much pollution within a city increases its chance for
144 ; plague (in percent)
145 illness_pollution_factor = 50
148 ; city_incite_cost = total_factor * (city_size) * (base_incite_cost
149 ; + (units_cost) * unit_factor
150 ; + (improvements_cost) * improvement_factor)
151 ; / ((distance to capital) * 100)
152 ; See city_incite_cost() for more details
153 base_incite_cost = 1000
154 improvement_factor = 1
158 [global_unit_options]
159 ; Shore landing style
160 ; FALSE - normal movement
161 ; TRUE - (default) slow invasions by removing all
162 ; movement points from ground units moving
163 ; from ocean tile to land
164 slow_invasions = TRUE
167 ; If tired_attack is set to TRUE, units that attack with less than a single
168 ; move point (per move_fragments in terrain.ruleset) will have their attack
169 ; power reduced accordingly. For instance, if move_fragments=3, a unit with
170 ; 2/3 move points will have attack power 2/3 of normal.
171 ; If this is set to FALSE units will attack with full strength even if they
172 ; have only fractional moves left.
176 ; If force_trade_route is set to TRUE it is illegal for an actor unit to
177 ; enter the marketplace of a city if it can establish a trade route to it
179 force_trade_route = TRUE
181 ; If force_capture_units is set to TRUE it is illegal for an actor unit to
182 ; bombard, explode nuclear or perform a regular attack against a tile if
183 ; it can capture units on it in stead.
184 force_capture_units = FALSE
186 ; If force_capture_units is set to TRUE it is illegal for an actor unit to
187 ; explode nuclear or perform a regular attack against a tile if it can
188 ; bombard it in stead.
189 force_bombard = FALSE
191 ; If force_explode_nuclear is set to TRUE it is illegal for an actor unit
192 ; to perform a regular attack against a tile if it can do explode nuclear
194 force_explode_nuclear = FALSE
196 ; What each action should be called when showing them to the player.
197 ; The first %s should be before the mnemonic of the action.
198 ; The second %s marks were extra details should be insterted.
200 ; /* TRANS: _Poison City (3% chance of success). */
201 ui_name_poison_city = _("%sPoison City%s")
203 ; /* TRANS: _Sabotage Enemy Unit (3% chance of success). */
204 ui_name_sabotage_unit = _("%sSabotage Enemy Unit%s")
206 ; /* TRANS: _Bribe Enemy Unit (3% chance of success). */
207 ui_name_bribe_unit = _("%sBribe Enemy Unit%s")
209 ; /* TRANS: _Sabotage City (3% chance of success). */
210 ui_name_sabotage_city = _("%sSabotage City%s")
212 ; /* TRANS: Industria_l Sabotage (3% chance of success). */
213 ui_name_targeted_sabotage_city = _("Industria%sl Sabotage%s")
215 ; /* TRANS: Incite a _Revolt (3% chance of success). */
216 ui_name_incite_city = _("Incite a %sRevolt%s")
218 ; /* TRANS: Establish _Embassy (100% chance of success). */
219 ui_name_establish_embassy = _("Establish %sEmbassy%s")
221 ; /* TRANS: Steal _Technology (3% chance of success). */
222 ui_name_steal_tech = _("Steal %sTechnology%s")
224 ; /* TRANS: In_dustrial Espionage (3% chance of success). */
225 ui_name_targeted_steal_tech = _("In%sdustrial Espionage%s")
227 ; /* TRANS: _Investigate City (100% chance of success). */
228 ui_name_investigate_city = _("%sInvestigate City%s")
230 ; /* TRANS: Establish Trade _Route (100% chance of success). */
231 ui_name_establish_trade_route = _("Establish Trade %sRoute%s")
233 ; /* TRANS: Enter _Marketplace (100% chance of success). */
234 ui_name_enter_marketplace = _("Enter %sMarketplace%s")
236 ; /* TRANS: Help _build Wonder (100% chance of success). */
237 ui_name_help_wonder = _("Help %sbuild Wonder%s")
239 ; /* TRANS: _Build City (100% chance of success). */
240 ui_name_found_city = _("%sBuild City%s")
242 ; /* TRANS: _Add to City (100% chance of success). */
243 ui_name_join_city = _("%sAdd to City%s")
245 ; /* TRANS: Explode _Nuclear (100% chance of success). */
246 ui_name_explode_nuclear = _("Explode %sNuclear%s")
248 ; /* <-- avoid gettext warnings
252 ; action = the action to enable.
253 ; actor_reqs = requirements that apply to the actor.
254 ; target_reqs = requirements that apply to the target.
256 ; README.actions lists the possible actions and their hard coded
259 ; An action enabler is active when its actor_reqs AND its target_reqs are
262 ; */ <-- avoid gettext warnings
263 [actionenabler_sabotage_city]
264 action = "Sabotage City"
266 { "type", "name", "range"
267 "UnitFlag", "Diplomat", "Local"
268 "DiplRel", "War", "Local"
269 "UnitState", "OnLivableTile", "Local"
270 "MinMoveFrags", "1", "Local"
273 [actionenabler_sabotage_city_target]
274 action = "Targeted Sabotage City"
276 { "type", "name", "range"
277 "DiplRel", "War", "Local"
278 "UnitFlag", "Spy", "Local"
279 "UnitState", "OnLivableTile", "Local"
280 "MinMoveFrags", "1", "Local"
283 [actionenabler_establish_embassy]
284 action = "Establish Embassy"
286 { "type", "name", "range"
287 "UnitFlag", "Diplomat", "Local"
288 "UnitState", "OnLivableTile", "Local"
289 "MinMoveFrags", "1", "Local"
292 { "type", "name", "range", "present"
293 "NationGroup", "Barbarian", "Player", FALSE
296 [actionenabler_investigate_city]
297 action = "Investigate City"
299 { "type", "name", "range"
300 "UnitFlag", "Diplomat", "Local"
301 "UnitState", "OnLivableTile", "Local"
302 "MinMoveFrags", "1", "Local"
305 [actionenabler_poison_city]
306 action = "Poison City"
308 { "type", "name", "range"
309 "UnitFlag", "Spy", "Local"
310 "DiplRel", "War", "Local"
311 "UnitState", "OnLivableTile", "Local"
312 "MinMoveFrags", "1", "Local"
315 { "type", "name", "range"
316 "MinSize", "2", "City"
319 [actionenabler_steal_tech_random]
320 action = "Steal Tech"
322 { "type", "name", "range"
323 "UnitFlag", "Diplomat", "Local"
324 "UnitState", "OnLivableTile", "Local"
325 "MinMoveFrags", "1", "Local"
328 { "type", "name", "range", "present"
329 "NationGroup", "Barbarian", "Player", FALSE
332 [actionenabler_steal_tech_target]
333 action = "Targeted Steal Tech"
335 { "type", "name", "range"
336 "UnitFlag", "Spy", "Local"
337 "UnitState", "OnLivableTile", "Local"
338 "MinMoveFrags", "1", "Local"
341 { "type", "name", "range", "present"
342 "NationGroup", "Barbarian", "Player", FALSE
345 [actionenabler_incite_city]
346 action = "Incite City"
348 { "type", "name", "range", "present"
349 "UnitFlag", "Diplomat", "Local", TRUE
350 "DiplRel", "Alliance", "Local", FALSE
351 "DiplRel", "Team", "Local", FALSE
352 "UnitState", "OnLivableTile", "Local", TRUE
353 "MinMoveFrags", "1", "Local", TRUE
356 { "type", "name", "range", "present"
357 "Gov", "Democracy", "Player", FALSE
358 "Building", "Palace", "City", FALSE
361 [actionenabler_bribe_unit]
362 action = "Bribe Unit"
364 { "type", "name", "range", "present"
365 "UnitFlag", "Diplomat", "Local", TRUE
366 "DiplRel", "Alliance", "Local", FALSE
367 "DiplRel", "Team", "Local", FALSE
368 "UnitState", "OnLivableTile", "Local", TRUE
369 "MinMoveFrags", "1", "Local", TRUE
372 { "type", "name", "range", "present"
373 "UnitType", "Leader", "Local", FALSE
374 "UnitType", "Barbarian Leader", "Local", FALSE
375 "CityTile", "Center", "Local", FALSE
376 "Gov", "Democracy", "Player", FALSE
377 "MaxUnitsOnTile", "1", "Local", TRUE
380 [actionenabler_sabotage_unit]
381 action = "Sabotage Unit"
383 { "type", "name", "range"
384 "UnitFlag", "Spy", "Local"
385 "DiplRel", "War", "Local"
386 "UnitState", "OnLivableTile", "Local"
387 "MinMoveFrags", "1", "Local"
390 { "type", "name", "range", "present"
391 "CityTile", "Center", "Local", FALSE
392 "MinHitPoints", "2", "Local", TRUE
393 "MaxUnitsOnTile", "1", "Local", TRUE
396 [actionenabler_traderoute]
397 action = "Establish Trade Route"
399 { "type", "name", "range", "present"
400 "UnitFlag", "TradeRoute", "Local", TRUE
403 [actionenabler_marketplace]
404 action = "Enter Marketplace"
406 { "type", "name", "range", "present"
407 "UnitFlag", "TradeRoute", "Local", TRUE
410 [actionenabler_help_build_wonder]
411 action = "Help Wonder"
413 { "type", "name", "range", "present"
414 "UnitFlag", "HelpWonder", "Local", TRUE
415 "DiplRel", "Is foreign", "Local", FALSE
418 [actionenabler_build_city]
419 action = "Found City"
421 { "type", "name", "range"
422 "UnitFlag", "Cities", "Local"
423 "UnitState", "OnLivableTile", "Local"
424 "MinMoveFrags", "1", "Local"
427 [actionenabler_join_city]
430 { "type", "name", "range", "present"
431 "UnitFlag", "AddToCity", "Local", TRUE
432 "DiplRel", "Is foreign", "Local", FALSE
433 "MinMoveFrags", "1", "Local", TRUE
437 action = "Explode Nuclear"
439 { "type", "name", "range", "present"
440 "UnitFlag", "Nuclear", "Local", TRUE
444 ; Base border radius from city.
447 ; Border radius square increased by this amount / point of city size
450 ; Difference between city workable area and area permanently claimed by
451 ; city (these tiles cannot be stolen by stronger border sources).
452 ; 0 means exactly city workable area is immune to border stealing.
453 ; Negative value means outer workable tiles can be stolen; highly negative
454 ; value (more than max city radius_sq) means any workable tile can be stolen.
455 ; If City_Radius_Sq is variable, so is the set of locked tiles; this is
456 ; a squared value, so the radius of the ring of tiles which are workable
457 ; but not locked (or vice versa) varies but the area is constant.
458 radius_sq_city_permanent = 0
461 ; Method of calculating technology costs
462 ; "Civ I|II" - Civ (I|II) style. Every new tech add researchcost to
464 ; "Classic" - Cost of technology is:
465 ; base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
466 ; where reqs == number of requirement for tech, counted
468 ; "Classic+" - Cost are read from tech.ruleset. Missing costs are
469 ; generated by style "Classic".
470 ; "Experimental" - Cost of technology is:
471 ; base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
473 ; where reqs == number of requirement for tech, counted
475 ; "Experimental+" - Cost are read from tech.ruleset. Missing costs are
476 ; generated by style "Experimental".
477 tech_cost_style = "Classic"
479 ; Base research cost for tech styles 1 & 2
482 ; Technology leak from other civilizations
483 ; "None" - No reduction of the technology cost.
484 ; "Embassies" - Technology cost is reduced depending on the number of
485 ; players which already know the tech and you have an
487 ; "All Players" - Technology cost is reduced depending on the number of
488 ; all players (human, AI and barbarians) which already
490 ; "Normal Players" - Technology cost is reduced depending on the number of
491 ; normal players (human and AI) which already know the
493 tech_leakage = "None"
495 ; Method of paying tech upkeep
497 ; "Basic" - upkeep is calculated as:
498 ; <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
499 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
500 tech_upkeep_style = "None"
502 ; upkeep cost is divided by this value
503 tech_upkeep_divider = 2000
505 ; Method of selecting techs given for free
506 ; "Goal" - Towards player`s goal, random if no goal
507 ; "Random" - Random researchable tech
508 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
509 free_tech_method = "Goal"
512 ; Minimum culture points for cultural domination victory
513 victory_min_points = 1000
515 ; How big lead relative to second best player is needed for victory
516 victory_lead_pct = 200
518 ; How much each culture point affects the migration
523 ; Year in the beginning of the game
526 ; Year 1 instead of 0.
529 ; How many fragments each year has. Value 0 disables year advancement by fragment
533 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
534 ; numbers begin froḿ 1 and not 0) is shown.
536 ;fragment_name0 = "Jan"
537 ;fragment_name1 = "Feb"
540 ; What labels are used for positive and negative years.
541 ; /* TRANS: year label (Common Era) */
542 positive_label = _("CE")
543 ; /* TRANS: year label (Before Common Era) */
544 negative_label = _("BCE")
546 ; /* <-- avoid gettext warnings
550 ; name = translatable name as seen by user
551 ; reqs = requirements for disaster to happen (see effects.ruleset
552 ; and README.effects for help on requirements)
553 ; frequency = how likely disaster is to occur
555 ; - "DestroyBuilding" = Random building is destroyed
556 ; - "ReducePopulation" = Reduce city size by one unless it's already 1
557 ; - "ReducePopDestroy" = Reduce city size by one, possibly destroying the city
558 ; - "EmptyFoodStock" = Remove all food from food stock
559 ; - "EmptyProdStock" = Destroy current production
560 ; - "Pollution" = One tile surrounding city polluted
561 ; - "Fallout" = One tile surrounding city polluted with fallout
563 ; */ <-- avoid gettext warnings
565 [disaster_earthquake]
566 name = _("Earthquake")
568 effects = "DestroyBuilding"
573 effects = "ReducePopulation"
578 effects = "DestroyBuilding"
580 [disaster_industrial_accident]
581 name = _("Industrial Accident")
583 { "type", "name", "range"
584 "Building", "Mfg. Plant", "City"
587 effects = "ReducePopulation", "Pollution"
589 [disaster_nuclear_accident]
590 name = _("Nuclear Accident")
592 { "type", "name", "range"
593 "Building", "Nuclear Plant", "City"
596 effects = "ReducePopulation", "Fallout"
598 ; /* <-- avoid gettext warnings
602 ; name = translatable name as seen by user
603 ; rule_name = (optional) name for savegames, rulesets etc; if not
604 ; present, 'name' is used. Since the name used in
605 ; savegames must not change, use this when renaming a
606 ; achievement after a ruleset has been released.
607 ; type = What event grants the achievement to player.
608 ; See README.achievements for list of these types.
609 ; unique = If TRUE, only first one reaching the achievement will
610 ; get it. Defaults to TRUE.
611 ; value = Value to reach. Exact meaning of this depends on
613 ; culture = Amount of culture granted to player who gets achievement
615 ; first_msg = Message shown to first player gaining the achievement
616 ; cons_msg = Message shown to consecutive players gaining the achievement
618 ; */ <-- avoid gettext warnings
620 ; No achievements in classic ruleset
625 ; IN = international, IC = intercontinental.
626 ; For each of the trade route types:
627 ; "pct" - Trade income %. If this is 0, trade route cannot be
629 ; "cancelling" - What to do to previously established traderoutes when they
631 ; "Active" - Keep them active (although they will only
632 ; provide nonzero income if illegal due to
633 ; trademindist rather than pct==0)
634 ; "Inactive" - Keep them inactive
635 ; "Cancel" - Cancel them altogether
636 ; "bonus" - One-time bonuses granted when traderoute established
637 ; "None" - No one-time bonus
638 ; "Gold" - Bonus to gold
639 ; "Science" - Bonus to research
640 ; "Both" - Bonus to gold and research
644 { "type", "pct", "cancelling", "bonus"
645 "National", 100, "Cancel", "Both"
646 "NationalIC", 200, "Cancel", "Both"
647 "IN", 200, "Cancel", "Both"
648 "INIC", 400, "Cancel", "Both"
649 "Ally", 200, "Cancel", "Both"
650 "AllyIC", 400, "Cancel", "Both"
651 "Enemy", 200, "Cancel", "Both"
652 "EnemyIC", 400, "Cancel", "Both"
653 "Team", 200, "Cancel", "Both"
654 "TeamIC", 400, "Cancel", "Both"
657 ; /* <-- avoid gettext warnings
661 ; name = translatable name as seen by user
662 ; rule_name = (optional) name for savegames, rulesets etc; if not
663 ; present, 'name' is used. Since the name used in
664 ; savegames must not change, use this when renaming
665 ; an good after a ruleset has been released.
667 ; */ <-- avoid gettext warnings
677 ; Player colors for 32 players are defined below.
678 ; Avoid greens, blues, and white / very pale colors (too easy to confuse
718 ; freeciv optional team names definition.
728 ; freeciv game settings for the classic ruleset
731 ; { "name", "value", "lock"
732 ; "bool_set", TRUE, FALSE
733 ; "int_set", 123, FALSE
734 ; "str_set", "test", FALSE