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="Multiplayer game rules for Freeciv"
14 options="+Freeciv-ruleset-Devel-2014.September.14c"
18 name = _("Multiplayer ruleset")
20 ; There`s no separate versioning in rulesets part of main freeciv distribution
23 ; Description of the ruleset
25 You are playing Freeciv with rules designed for multiplayer gaming. \
26 The biggest differences from the classic ruleset are that trade routes \
27 are disabled, and that most wonders can be built once by each player, \
28 and affect only cities on the same continent. A full description of \
29 the differences can be found in README.ruleset_multiplayer.\
34 global_init_buildings="Palace"
37 ; Value added to city pollution
40 ; Cost in luxuries of making one citizen happier
43 ; Cost in food of upkeeping a single citizen
46 ; Parameters used to generalize the calculation of city granary size:
47 ; if city_size <= num_inis:
48 ; city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
49 ; if city_size > num_inis;
50 ; city_granary_size = (granary_food_ini[num_inis] +
51 ; granary_food_inc * (city_size - num_inis)) * foodbox / 100
55 ; City center minimum outputs
56 min_city_center_food = 1
57 min_city_center_shield = 1
58 min_city_center_trade = 0
60 ; Square of initial city radius
61 init_city_radius_sq = 5
63 ; Square of initially visible radius (true distance).
64 init_vis_radius_sq = 5
66 ; A base bribe cost, modified heavily by other factors
69 ; Barbarian leader ransom in gold
72 ; Number of veteran levels lost when upgrading a unit
73 upgrade_veteran_loss = 0
75 ; Number of veteran levels lost when auto-upgrading a unit
76 autoupgrade_veteran_loss = 0
78 ; Whether player gets to select which terrain improvement to pillage.
81 ; Whether one can steal a tech for which prereqs are not known
82 tech_steal_allow_holes = TRUE
83 ; Whether one can get a tech for which prereqs are not known via
85 tech_trade_allow_holes = TRUE
86 ; ...and whether one can lose a tech which is prereq for another known
87 ; tech via trade, if techlost_donor is nonzero
88 tech_trade_loss_allow_holes = TRUE
89 ; Whether one can get a tech for which prereqs are not known via
90 ; parasite effect (Great Library)
91 tech_parasite_allow_holes = TRUE
92 ; Whether one can lose a tech which is prereq for another known tech
93 ; due to negative bulbs, if techlossforgiveness allows loss
94 tech_loss_allow_holes = TRUE
96 ; Whether civil war is possible at all
97 civil_war_enabled = TRUE
99 ; Comma separated list of things to happen, in addition to death
100 ; of owner, when gameloss unit dies
101 ; "CivilWar" - Part of the empire remains, controlled by a new player
102 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
103 ; or half of the dead players empire gets under barbarian
105 ; "Loot" - Player who killed the gameloss unit gets loot:
106 ; Partial map, gold, techs, cities
109 ; Whether units may safely paradrop to transport on non-native terrain
110 paradrop_to_transport = FALSE
112 ; Method of paying unit and improvement gold upkeep
113 ; "City" - The player`s total gold must be non-negative after paying upkeep
114 ; costs associated with each city. If for any city the player`s
115 ; gold is negative, random buildings in the city are sold off. If
116 ; the gold is still negative, then supported units with gold upkeep
118 ; "Mixed" - In the first step, the player`s total gold must be non-negative
119 ; after paying upkeep for all buildings within a city. If for any
120 ; city the player`s gold is negative, random buildings in the city
122 ; In the second step, gold upkeep for all units is paid in a lump
123 ; sum. If the player does not have enough gold, random units with
124 ; gold upkeep are disbanded.
125 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
126 ; after all cities have been processed. If the player does not
127 ; have enough gold, random buildings from random cities are sold.
128 ; If still more gold is needed, then random units with gold
129 ; upkeep are disbanded.
130 gold_upkeep_style = "City"
133 ; Whether plagues (illness) are possible
136 ; the base factor for illness (of percent)
137 illness_base_factor = 25
139 ; minimum city size for illness
142 ; factor for how much trading with a plagued city increases our city`s
143 ; chance for plague (in percent)
144 illness_trade_infection = 0
146 ; factor for how much pollution within a city increases its chance for
147 ; plague (in percent)
148 illness_pollution_factor = 50
151 ; city_incite_cost = total_factor * (city_size) * (base_incite_cost
152 ; + (units_cost) * unit_factor
153 ; + (improvements_cost) * improvement_factor)
154 ; / ((distance to capital) * 100)
155 ; See city_incite_cost() for more details
156 base_incite_cost = 10000
157 improvement_factor = 1
161 [global_unit_options]
162 ; Shore landing style
163 ; FALSE - normal movement
164 ; TRUE - (default) slow invasions by removing all
165 ; movement points from ground units moving
166 ; from ocean tile to land
167 slow_invasions = TRUE
170 ; If tired_attack is set to TRUE, units that attack with less than a single
171 ; move point (per move_fragments in terrain.ruleset) will have their attack
172 ; power reduced accordingly. For instance, if move_fragments=3, a unit with
173 ; 2/3 move points will have attack power 2/3 of normal.
174 ; If this is set to FALSE units will attack with full strength even if they
175 ; have only fractional moves left.
178 ; /* <-- avoid gettext warnings
182 ; action = the action to enable.
183 ; actor_reqs = requirements that apply to the actor.
184 ; target_reqs = requirements that apply to the target.
186 ; README.actions lists the possible actions and their hard coded
187 ; requirements. Note that an action may append some of its hard
188 ; requirements to actor_reqs and target_reqs.
190 ; An action enabler is active when its actor_reqs AND its target_reqs are
193 ; */ <-- avoid gettext warnings
194 [actionenabler_sabotage_city]
195 action = "Sabotage City"
197 { "type", "name", "range", "present"
198 "UnitFlag", "Diplomat", "Local", TRUE
199 "DiplRel", "War", "Local", TRUE
200 "UnitState", "TransportDependent", "Local", FALSE
201 "MinMoveFrags", "1", "Local", TRUE
204 [actionenabler_sabotage_city_target]
205 action = "Targeted Sabotage City"
207 { "type", "name", "range", "present"
208 "DiplRel", "War", "Local", TRUE
209 "UnitFlag", "Spy", "Local", TRUE
210 "UnitState", "TransportDependent", "Local", FALSE
211 "MinMoveFrags", "1", "Local", TRUE
214 [actionenabler_establish_embassy]
215 action = "Establish Embassy"
217 { "type", "name", "range", "present"
218 "UnitFlag", "Diplomat", "Local", TRUE
219 "UnitState", "TransportDependent", "Local", FALSE
220 "MinMoveFrags", "1", "Local", TRUE
223 { "type", "name", "range", "present"
224 "Nation", "Barbarian", "Player", FALSE
225 "Nation", "Pirate", "Player", FALSE
228 [actionenabler_investigate_city]
229 action = "Investigate City"
231 { "type", "name", "range", "present"
232 "UnitFlag", "Diplomat", "Local", TRUE
233 "UnitState", "TransportDependent", "Local", FALSE
234 "MinMoveFrags", "1", "Local", TRUE
237 [actionenabler_poison_city]
238 action = "Poison City"
240 { "type", "name", "range", "present"
241 "UnitFlag", "Spy", "Local", TRUE
242 "DiplRel", "War", "Local", TRUE
243 "UnitState", "TransportDependent", "Local", FALSE
244 "MinMoveFrags", "1", "Local", TRUE
247 { "type", "name", "range"
248 "MinSize", "2", "City"
251 [actionenabler_steal_tech_random]
252 action = "Steal Tech"
254 { "type", "name", "range", "present"
255 "UnitFlag", "Diplomat", "Local", TRUE
256 "UnitState", "TransportDependent", "Local", FALSE
257 "MinMoveFrags", "1", "Local", TRUE
260 { "type", "name", "range", "present"
261 "Nation", "Barbarian", "Player", FALSE
262 "Nation", "Pirate", "Player", FALSE
265 [actionenabler_steal_tech_target]
266 action = "Targeted Steal Tech"
268 { "type", "name", "range", "present"
269 "UnitFlag", "Spy", "Local", TRUE
270 "UnitState", "TransportDependent", "Local", FALSE
271 "MinMoveFrags", "1", "Local", TRUE
274 { "type", "name", "range", "present"
275 "Nation", "Barbarian", "Player", FALSE
276 "Nation", "Pirate", "Player", FALSE
279 [actionenabler_incite_city]
280 action = "Incite City"
282 { "type", "name", "range", "present"
283 "UnitFlag", "Diplomat", "Local", TRUE
284 "DiplRel", "Alliance", "Local", FALSE
285 "DiplRel", "Team", "Local", FALSE
286 "UnitState", "TransportDependent", "Local", FALSE
287 "MinMoveFrags", "1", "Local", TRUE
290 { "type", "name", "range", "present"
291 "Gov", "Democracy", "Player", FALSE
292 "Building", "Palace", "City", FALSE
295 [actionenabler_bribe_unit]
296 action = "Bribe Unit"
298 { "type", "name", "range", "present"
299 "UnitFlag", "Diplomat", "Local", TRUE
300 "DiplRel", "Alliance", "Local", FALSE
301 "DiplRel", "Team", "Local", FALSE
302 "UnitState", "TransportDependent", "Local", FALSE
303 "MinMoveFrags", "1", "Local", TRUE
306 { "type", "name", "range", "present"
307 "UnitType", "Leader", "Local", FALSE
308 "UnitType", "Barbarian Leader", "Local", FALSE
309 "CityTile", "Center", "Local", FALSE
310 "Gov", "Democracy", "Player", FALSE
311 "MaxUnitsOnTile", "1", "Local", TRUE
314 [actionenabler_sabotage_unit]
315 action = "Sabotage Unit"
317 { "type", "name", "range", "present"
318 "Unitflag", "Spy", "Local", TRUE
319 "DiplRel", "War", "Local", TRUE
320 "UnitState", "TransportDependent", "Local", FALSE
321 "MinMoveFrags", "1", "Local", TRUE
324 { "type", "name", "range", "present"
325 "CityTile", "Center", "Local", FALSE
326 "MinHitPoints", "2", "Local", TRUE
327 "MaxUnitsOnTile", "1", "Local", TRUE
330 [actionenabler_help_build_wonder]
331 action = "Help Wonder"
333 { "type", "name", "range", "present"
334 "DiplRel", "Is foreign", "Local", FALSE
338 ; Base border radius from city.
341 ; Border radius square increased by this amount / point of city size
345 ; Method of calculating technology costs
346 ; "Civ I|II" - Civ (I|II) style. Every new tech add researchcost to
348 ; "Classic" - Cost of technology is:
349 ; base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
350 ; where reqs == number of requirement for tech, counted
352 ; "Classic+" - Cost are read from tech.ruleset. Missing costs are
353 ; generated by style "Classic".
354 ; "Experimental" - Cost of technology is:
355 ; base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
357 ; where reqs == number of requirement for tech, counted
359 ; "Experimental+" - Cost are read from tech.ruleset. Missing costs are
360 ; generated by style "Experimental".
361 tech_cost_style = "Classic"
363 ; Base research cost for tech styles 1 & 2
366 ; Technology leak from other civilizations
367 ; "None" - No reduction of the technology cost.
368 ; "Embassies" - Technology cost is reduced depending on the number of
369 ; players which already know the tech and you have an
371 ; "All Players" - Technology cost is reduced depending on the number of
372 ; all players (human, AI and barbarians) which already
374 ; "Normal Players" - Technology cost is reduced depending on the number of
375 ; normal players (human and AI) which already know the
377 tech_leakage = "None"
379 ; Method of paying tech upkeep
381 ; "Basic" - upkeep is calculated as:
382 ; <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
383 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
384 tech_upkeep_style = "None"
386 ; upkeep cost is divided by this value
387 tech_upkeep_divider = 2000
389 ; Method of selecting techs given for free
390 ; "Goal" - Towards player`s goal, random if no goal
391 ; "Random" - Random researchable tech
392 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
393 free_tech_method = "Goal"
396 ; Minimum culture points for cultural domination victory
397 victory_min_points = 1000
399 ; Lead needed relative to second best player
400 victory_lead_pct = 300
402 ; How much each culture point affects the migration
407 ; Year in the beginning of the game
410 ; Year 1 instead of 0.
413 ; How many fragments each year has. Value 0 disables year advancement by fragment
417 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
418 ; numbers begin froḿ 1 and not 0) is shown.
420 ;fragment_name0 = "Jan"
421 ;fragment_name1 = "Feb"
424 ; What labels are used for positive and negative years.
425 ; /* TRANS: year label (Common Era) */
426 positive_label = _("CE")
427 ; /* TRANS: year label (Before Common Era) */
428 negative_label = _("BCE")
430 ; /* <-- avoid gettext warnings
434 ; name = translatable name as seen by user
435 ; reqs = requirements for disaster to happen (see effects.ruleset
436 ; and README.effects for help on requirements)
437 ; frequency = how likely disaster is to occur
439 ; - "DestroyBuilding" = Random building is destroyed
440 ; - "ReducePopulation" = Reduce city size by one unless it's already 1
441 ; - "ReducePopDestroy" = Reduce city size by one, possibly destroying the city
442 ; - "EmptyFoodStock" = Remove all food from food stock
443 ; - "EmptyProdStock" = Destroy current production
444 ; - "Pollution" = One tile surrounding city polluted
445 ; - "Fallout" = One tile surrounding city polluted with fallout
447 ; */ <-- avoid gettext warnings
449 ; No disasters in multiplayer ruleset
451 ; /* <-- avoid gettext warnings
455 ; name = translatable name as seen by user
456 ; rule_name = (optional) name for savegames, rulesets etc; if not
457 ; present, 'name' is used. Since the name used in
458 ; savegames must not change, use this when renaming a
459 ; achievement after a ruleset has been released.
460 ; type = What event grants the achievement to player.
461 ; See README.achievements for list of these types.
462 ; unique = If TRUE, only first one reaching the achievement will
463 ; get it. Defaults to TRUE.
464 ; value = Value to reach. Exact meaning of this depends on
466 ; culture = Amount of culture granted to player who gets achievement
468 ; first_msg = Message shown to first player gaining the achievement
469 ; cons_msg = Message shown to consecutive players gaining the achievement
471 ; */ <-- avoid gettext warnings
473 ; No achievements in multiplayer ruleset
478 ; IN = international, IC = intercontinental.
479 ; For each of the trade route types:
480 ; "pct" - Trade income %. If this is 0, trade route cannot be
482 ; "cancelling" - What to do to previously established traderoutes when they
484 ; "Active" - Keep them active (although they will only
485 ; provide nonzero income if illegal due to
486 ; trademindist rather than pct==0)
487 ; "Inactive" - Keep them inactive
488 ; "Cancel" - Cancel them altogether
489 ; "bonus" - One-time bonuses granted when traderoute established
490 ; "None" - No one-time bonus
491 ; "Gold" - Bonus to gold
492 ; "Science" - Bonus to research
493 ; "Both" - Bonus to gold and research
497 { "type", "pct", "cancelling", "bonus"
498 "National", 0, "Cancel", "Both"
499 "NationalIC", 0, "Cancel", "Both"
500 "IN", 0, "Cancel", "Both"
501 "INIC", 0, "Cancel", "Both"
502 "Ally", 0, "Cancel", "Both"
503 "AllyIC", 0, "Cancel", "Both"
504 "Enemy", 0, "Cancel", "Both"
505 "EnemyIC", 0, "Cancel", "Both"
506 "Team", 0, "Cancel", "Both"
507 "TeamIC", 0, "Cancel", "Both"
515 ; Player colors for 32 players are defined below.
516 ; Avoid greens, blues, and white / very pale colors (too easy to confuse
524 138, 43, 226 ; Purple
526 255, 0, 255 ; Magenta
527 173, 216, 230 ; Cornflower
528 0, 255, 127 ; Emerald
529 250, 128, 114 ; Salmon
533 211, 211, 211 ; Silver
534 218, 112, 214 ; Heliotrope
535 255, 20, 147 ; Fuchsia
536 100, 149, 237 ; Azure
538 245, 222, 179 ; Khaki
539 255, 255, 128 ; Butter
542 255, 211, 140 ; Peach
543 255, 79, 0 ; Vermilion
545 255, 219, 88 ; Mustard
546 153, 17, 153 ; Aubergine
548 255, 102, 0 ; Pumpkin
549 102, 205, 170 ; Turquoise
550 195, 33, 72 ; Crimson
551 168, 153, 230 ; Lavender
552 255, 250, 205 ; Cream
556 ; Team names correspond roughly to colors defined above, so that
557 ; plrcolormode=TEAM_ORDER is not gratuitously confusing.
559 ; /* TRANS: Name of a color; used as unique identifier for a team */
560 ; /* TRANS: With this and other color team names, uniqueness is more */
561 ; /* TRANS: important than precise translation. To see the colors, start a */
562 ; /* TRANS: multiplayer game with 32 players and look at the Nations report. */
564 ; /* TRANS: Name of a color; used as unique identifier for a team */
565 _("?team name:Yellow"),
566 ; /* TRANS: Name of a color; used as unique identifier for a team */
567 _("?team name:Blue"),
568 ; /* TRANS: Name of a color; used as unique identifier for a team */
569 _("?team name:Purple"),
570 ; /* TRANS: Name of a color; used as unique identifier for a team */
571 _("?team name:Orange"),
572 ; /* TRANS: Name of a color; used as unique identifier for a team */
573 _("?team name:Magenta"),
574 ; /* TRANS: Name of a color; used as unique identifier for a team */
575 _("?team name:Cornflower"),
576 ; /* TRANS: Name of a color; used as unique identifier for a team */
577 _("?team name:Emerald"),
578 ; /* TRANS: Name of a color; used as unique identifier for a team */
579 _("?team name:Salmon"),
580 ; /* TRANS: Name of a color; used as unique identifier for a team */
581 _("?team name:Green"),
582 ; /* TRANS: Name of a color; used as unique identifier for a team */
583 _("?team name:Burgundy"),
584 ; /* TRANS: Name of a color; used as unique identifier for a team */
585 _("?team name:Pink"),
586 ; /* TRANS: Name of a color; used as unique identifier for a team */
587 _("?team name:Silver"),
588 ; /* TRANS: Name of a color; used as unique identifier for a team */
589 _("?team name:Heliotrope"),
590 ; /* TRANS: Name of a color; used as unique identifier for a team */
591 _("?team name:Fuchsia"),
592 ; /* TRANS: Name of a color; used as unique identifier for a team */
593 _("?team name:Azure"),
594 ; /* TRANS: Name of a color; used as unique identifier for a team */
595 _("?team name:Gold"),
596 ; /* TRANS: Name of a color; used as unique identifier for a team */
597 _("?team name:Khaki"),
598 ; /* TRANS: Name of a color; used as unique identifier for a team */
599 _("?team name:Butter"),
600 ; /* TRANS: Name of a color; used as unique identifier for a team */
601 _("?team name:Mint"),
602 ; /* TRANS: Name of a color; used as unique identifier for a team */
603 _("?team name:Lime"),
604 ; /* TRANS: Name of a color; used as unique identifier for a team */
605 _("?team name:Peach"),
606 ; /* TRANS: Name of a color; used as unique identifier for a team */
607 _("?team name:Vermilion"),
608 ; /* TRANS: Name of a color; used as unique identifier for a team */
609 _("?team name:Puce"),
610 ; /* TRANS: Name of a color; used as unique identifier for a team */
611 _("?team name:Mustard"),
612 ; /* TRANS: Name of a color; used as unique identifier for a team */
613 _("?team name:Aubergine"),
614 ; /* TRANS: Name of a color; used as unique identifier for a team */
615 _("?team name:Brown"),
616 ; /* TRANS: Name of a color; used as unique identifier for a team */
617 _("?team name:Pumpkin"),
618 ; /* TRANS: Name of a color; used as unique identifier for a team */
619 _("?team name:Turquoise"),
620 ; /* TRANS: Name of a color; used as unique identifier for a team */
621 _("?team name:Crimson"),
622 ; /* TRANS: Name of a color; used as unique identifier for a team */
623 _("?team name:Lavender"),
624 ; /* TRANS: Name of a color; used as unique identifier for a team */
625 _("?team name:Cream")
629 { "name", "value", "lock"
630 "minplayers", 2, FALSE
631 "generator", "ISLAND", FALSE
632 "topology", "WRAPX|WRAPY|ISO", FALSE
633 "startpos", "SINGLE", FALSE
634 "tinyisles", FALSE, FALSE
635 "alltemperate", TRUE, FALSE
636 "separatepoles", FALSE, FALSE
639 "dispersion", 0, FALSE
640 "diplomacy", "DISABLED", FALSE
641 "contactturns", 0, FALSE
643 "barbarians", "DISABLED", FALSE
644 "techpenalty", 0, FALSE
645 "startunits", "cccwwwxxxx", FALSE
646 "specials", 350, FALSE
647 "borders", "DISABLED", FALSE