1 ; This is the experimental ruleset. See doc/README.ruleset_experimental
2 ; for a detailed description.
5 ; You should not modify this file except to make bugfixes or
6 ; for other "maintenance". If you want to make custom changes,
7 ; you should create a new datadir subdirectory and copy this file
8 ; into that directory, and then modify that copy. Then use the
9 ; command "rulesetdir <mysubdir>" in the server to have freeciv
10 ; use your new customized file.
12 ; Note that the freeciv AI may not cope well with anything more
16 description="Experimental game rules for Freeciv"
17 options="+Freeciv-ruleset-Devel-2014.September.14c"
21 name = _("Experimental ruleset")
23 ; There`s no separate versioning in rulesets part of main freeciv distribution
26 ; Description of the ruleset
28 You are playing with the experimental ruleset. This showcases new or \
29 unusual features available in Freeciv without regard for strict game \
30 balancing or playability. A description of the differences from the \
31 classic ruleset can be found in README.ruleset_experimental.\
36 global_init_buildings="Palace"
39 ; Value added to city pollution
42 ; Cost in luxuries of making one citizen happier
45 ; Cost in food of upkeeping a single citizen
48 ; Parameters used to generalize the calculation of city granary size:
49 ; if city_size <= num_inis:
50 ; city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
51 ; if city_size > num_inis;
52 ; city_granary_size = (granary_food_ini[num_inis] +
53 ; granary_food_inc * (city_size - num_inis)) * foodbox / 100
57 ; City center minimum outputs
58 min_city_center_food = 1
59 min_city_center_shield = 1
60 min_city_center_trade = 0
62 ; Square of initial city radius
63 init_city_radius_sq = 2
65 ; Square of initially visible radius (true distance).
66 init_vis_radius_sq = 5
68 ; A base bribe cost, modified heavily by other factors
71 ; Barbarian leader ransom in gold
74 ; Number of veteran levels lost when upgrading a unit
75 upgrade_veteran_loss = 0
77 ; Number of veteran levels lost when auto-upgrading a unit
78 autoupgrade_veteran_loss = 0
80 ; Whether player gets to select which terrain improvement to pillage.
83 ; Whether one can steal a tech for which prereqs are not known
84 tech_steal_allow_holes = TRUE
85 ; Whether one can get a tech for which prereqs are not known via
87 tech_trade_allow_holes = TRUE
88 ; ...and whether one can lose a tech which is prereq for another known
89 ; tech via trade, if techlost_donor is nonzero
90 tech_trade_loss_allow_holes = TRUE
91 ; Whether one can get a tech for which prereqs are not known via
92 ; parasite effect (Great Library)
93 tech_parasite_allow_holes = TRUE
94 ; Whether one can lose a tech which is prereq for another known tech
95 ; due to negative bulbs, if techlossforgiveness allows loss
96 tech_loss_allow_holes = TRUE
98 ; Whether civil war is possible at all
99 civil_war_enabled = TRUE
101 ; Comma separated list of things to happen, in addition to death
102 ; of owner, when gameloss unit dies
103 ; "CivilWar" - Part of the empire remains, controlled by a new player
104 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
105 ; or half of the dead players empire gets under barbarian
107 ; "Loot" - Player who killed the gameloss unit gets loot:
108 ; Partial map, gold, techs, cities
111 ; Whether units may safely paradrop to transport on non-native terrain
112 paradrop_to_transport = TRUE
114 ; Method of paying unit and improvement gold upkeep
115 ; "City" - The player`s total gold must be non-negative after paying upkeep
116 ; costs associated with each city. If for any city the player`s
117 ; gold is negative, random buildings in the city are sold off. If
118 ; the gold is still negative, then supported units with gold upkeep
120 ; "Mixed" - In the first step, the player`s total gold must be non-negative
121 ; after paying upkeep for all buildings within a city. If for any
122 ; city the player`s gold is negative, random buildings in the city
124 ; In the second step, gold upkeep for all units is paid in a lump
125 ; sum. If the player does not have enough gold, random units with
126 ; gold upkeep are disbanded.
127 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
128 ; after all cities have been processed. If the player does not
129 ; have enough gold, random buildings from random cities are sold.
130 ; If still more gold is needed, then random units with gold
131 ; upkeep are disbanded.
132 gold_upkeep_style = "Mixed"
135 ; Whether plagues (illness) are possible
138 ; the base factor for illness (of percent)
139 illness_base_factor = 25
141 ; minimum city size for illness
144 ; factor for how much trading with a plagued city increases our city`s
145 ; chance for plague (in percent)
146 illness_trade_infection = 50
148 ; factor for how much pollution within a city increases its chance for
149 ; plague (in percent)
150 illness_pollution_factor = 50
153 ; city_incite_cost = total_factor * (city_size) * (base_incite_cost
154 ; + (units_cost) * unit_factor
155 ; + (improvements_cost) * improvement_factor)
156 ; / ((distance to capital) * 100)
157 ; See city_incite_cost() for more details
158 base_incite_cost = 1000
159 improvement_factor = 1
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
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.
180 ; /* <-- avoid gettext warnings
184 ; action = the action to enable.
185 ; actor_reqs = requirements that apply to the actor.
186 ; target_reqs = requirements that apply to the target.
188 ; README.actions lists the possible actions and their hard coded
189 ; requirements. Note that an action may append some of its hard
190 ; requirements to actor_reqs and target_reqs.
192 ; An action enabler is active when its actor_reqs AND its target_reqs are
195 ; */ <-- avoid gettext warnings
196 [actionenabler_sabotage_city]
197 action = "Sabotage City"
199 { "type", "name", "range", "present"
200 "UnitFlag", "Diplomat", "Local", TRUE
201 "DiplRel", "War", "Local", TRUE
202 "UnitState", "TransportDependent", "Local", FALSE
203 "MinMoveFrags", "1", "Local", TRUE
206 [actionenabler_sabotage_city_target]
207 action = "Targeted Sabotage City"
209 { "type", "name", "range", "present"
210 "DiplRel", "War", "Local", TRUE
211 "UnitFlag", "Spy", "Local", TRUE
212 "UnitState", "TransportDependent", "Local", FALSE
213 "MinMoveFrags", "1", "Local", TRUE
216 [actionenabler_establish_embassy]
217 action = "Establish Embassy"
219 { "type", "name", "range", "present"
220 "UnitFlag", "Diplomat", "Local", TRUE
221 "UnitState", "TransportDependent", "Local", FALSE
222 "MinMoveFrags", "1", "Local", TRUE
225 { "type", "name", "range", "present"
226 "Nation", "Barbarian", "Player", FALSE
227 "Nation", "Pirate", "Player", FALSE
230 [actionenabler_explorer_establish_embassy]
231 action = "Establish Embassy"
233 { "type", "name", "range", "present"
234 "UnitType", "Explorer", "Local", TRUE
235 "Tech", "Writing", "Player", TRUE
236 "UnitState", "TransportDependent", "Local", FALSE
237 "MinMoveFrags", "1", "Local", TRUE
240 { "type", "name", "range", "present"
241 "Nation", "Barbarian", "Player", FALSE
242 "Nation", "Pirate", "Player", FALSE
245 [actionenabler_investigate_city]
246 action = "Investigate City"
248 { "type", "name", "range", "present"
249 "UnitFlag", "Diplomat", "Local", TRUE
250 "UnitState", "TransportDependent", "Local", FALSE
251 "MinMoveFrags", "1", "Local", TRUE
254 [actionenabler_poison_city]
255 action = "Poison City"
257 { "type", "name", "range", "present"
258 "UnitFlag", "Spy", "Local", TRUE
259 "DiplRel", "War", "Local", TRUE
260 "UnitState", "TransportDependent", "Local", FALSE
261 "MinMoveFrags", "1", "Local", TRUE
264 { "type", "name", "range"
265 "MinSize", "2", "City"
268 [actionenabler_steal_tech_random]
269 action = "Steal Tech"
271 { "type", "name", "range", "present"
272 "UnitFlag", "Diplomat", "Local", TRUE
273 "UnitState", "TransportDependent", "Local", FALSE
274 "MinMoveFrags", "1", "Local", TRUE
277 { "type", "name", "range", "present"
278 "Nation", "Barbarian", "Player", FALSE
279 "Nation", "Pirate", "Player", FALSE
282 [actionenabler_steal_tech_target]
283 action = "Targeted Steal Tech"
285 { "type", "name", "range", "present"
286 "UnitFlag", "Spy", "Local", TRUE
287 "UnitState", "TransportDependent", "Local", FALSE
288 "MinMoveFrags", "1", "Local", TRUE
291 { "type", "name", "range", "present"
292 "Nation", "Barbarian", "Player", FALSE
293 "Nation", "Pirate", "Player", FALSE
296 [actionenabler_incite_city]
297 action = "Incite City"
299 { "type", "name", "range", "present"
300 "UnitFlag", "Diplomat", "Local", TRUE
301 "DiplRel", "Alliance", "Local", FALSE
302 "DiplRel", "Team", "Local", FALSE
303 "UnitState", "TransportDependent", "Local", FALSE
304 "MinMoveFrags", "1", "Local", TRUE
307 { "type", "name", "range", "present"
308 "Gov", "Democracy", "Player", FALSE
309 "Building", "Palace", "City", FALSE
312 [actionenabler_bribe_unit]
313 action = "Bribe Unit"
315 { "type", "name", "range", "present"
316 "UnitFlag", "Diplomat", "Local", TRUE
317 "DiplRel", "Alliance", "Local", FALSE
318 "DiplRel", "Team", "Local", FALSE
319 "UnitState", "TransportDependent", "Local", FALSE
320 "MinMoveFrags", "1", "Local", TRUE
323 { "type", "name", "range", "present"
324 "UnitType", "Leader", "Local", FALSE
325 "UnitType", "Barbarian Leader", "Local", FALSE
326 "CityTile", "Center", "Local", FALSE
327 "Gov", "Democracy", "Player", FALSE
330 [actionenabler_sabotage_unit]
331 action = "Sabotage Unit"
333 { "type", "name", "range", "present"
334 "Unitflag", "Spy", "Local", TRUE
335 "DiplRel", "War", "Local", TRUE
336 "UnitState", "TransportDependent", "Local", FALSE
337 "MinMoveFrags", "1", "Local", TRUE
340 { "type", "name", "range", "present"
341 "CityTile", "Center", "Local", FALSE
342 "MinHitPoints", "2", "Local", TRUE
345 [actionenabler_traderoute]
346 action = "Establish Trade Route"
348 [actionenabler_marketplace]
349 action = "Enter Marketplace"
351 [actionenabler_help_build_wonder]
352 action = "Help Wonder"
354 { "type", "name", "range", "present"
355 "DiplRel", "Is foreign", "Local", FALSE
359 ; Base border radius from city.
362 ; Border radius square increased by this amount / point of city size
366 ; Method of calculating technology costs
367 ; "Civ I|II" - Civ (I|II) style. Every new tech add researchcost to
369 ; "Classic" - Cost of technology is:
370 ; base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
371 ; where reqs == number of requirement for tech, counted
373 ; "Classic+" - Cost are read from tech.ruleset. Missing costs are
374 ; generated by style "Classic".
375 ; "Experimental" - Cost of technology is:
376 ; base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
378 ; where reqs == number of requirement for tech, counted
380 ; "Experimental+" - Cost are read from tech.ruleset. Missing costs are
381 ; generated by style "Experimental".
382 tech_cost_style = "Classic"
384 ; Base research cost for tech styles 1 & 2
387 ; Technology leak from other civilizations
388 ; "None" - No reduction of the technology cost.
389 ; "Embassies" - Technology cost is reduced depending on the number of
390 ; players which already know the tech and you have an
392 ; "All Players" - Technology cost is reduced depending on the number of
393 ; all players (human, AI and barbarians) which already
395 ; "Normal Players" - Technology cost is reduced depending on the number of
396 ; normal players (human and AI) which already know the
398 tech_leakage = "None"
400 ; Method of paying tech upkeep
402 ; "Basic" - upkeep is calculated as:
403 ; <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
404 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
405 tech_upkeep_style = "Basic"
407 ; upkeep cost is divided by this value
408 tech_upkeep_divider = 2000
410 ; Method of selecting techs given for free
411 ; "Goal" - Towards player`s goal, random if no goal
412 ; "Random" - Random researchable tech
413 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
414 free_tech_method = "Goal"
417 ; Minimum culture points for cultural domination victory
418 victory_min_points = 1000
420 ; Lead needed relative to second best player
421 victory_lead_pct = 300
423 ; How much each culture point affects the migration
428 ; Year in the beginning of the game
431 ; Year 1 instead of 0.
434 ; How many fragments each year has. Value 0 disables year advancement by fragment
438 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
439 ; numbers begin froḿ 1 and not 0) is shown.
441 ;fragment_name0 = "Jan"
442 ;fragment_name1 = "Feb"
445 ; What labels are used for positive and negative years.
446 ; /* TRANS: year label (Common Era) */
447 positive_label = _("CE")
448 ; /* TRANS: year label (Before Common Era) */
449 negative_label = _("BCE")
451 ; /* <-- avoid gettext warnings
455 ; name = translatable name as seen by user
456 ; reqs = requirements for disaster to happen (see effects.ruleset
457 ; and README.effects for help on requirements)
458 ; frequency = how likely disaster is to occur
460 ; - "DestroyBuilding" = Random building is destroyed
461 ; - "ReducePopulation" = Reduce city size by one unless it's already 1
462 ; - "ReducePopDestroy" = Reduce city size by one, possibly destroying the city
463 ; - "EmptyFoodStock" = Remove all food from food stock
464 ; - "EmptyProdStock" = Destroy current production
465 ; - "Pollution" = One tile surrounding city polluted
466 ; - "Fallout" = One tile surrounding city polluted with fallout
468 ; */ <-- avoid gettext warnings
470 [disaster_earthquake]
471 name = _("Earthquake")
473 effects = "DestroyBuilding"
478 effects = "DestroyBuilding"
480 [disaster_industrial_accident]
481 name = _("Industrial Accident")
483 { "type", "name", "range"
484 "Building", "Mfg. Plant", "City"
487 effects = "ReducePopulation", "Pollution"
489 ; /* <-- avoid gettext warnings
493 ; name = translatable name as seen by user
494 ; rule_name = (optional) name for savegames, rulesets etc; if not
495 ; present, 'name' is used. Since the name used in
496 ; savegames must not change, use this when renaming a
497 ; achievement after a ruleset has been released.
498 ; type = What event grants the achievement to player.
499 ; See README.achievements for list of these types.
500 ; unique = If TRUE, only first one reaching the achievement will
501 ; get it. Defaults to TRUE.
502 ; value = Value to reach. Exact meaning of this depends on
504 ; culture = Amount of culture granted to player who gets achievement
506 ; first_msg = Message shown to first player gaining the achievement
507 ; cons_msg = Message shown to consecutive players gaining the achievement
509 ; */ <-- avoid gettext warnings
511 [achievement_spaceship]
512 name = _("Spaceship Launch")
514 first_msg = _("You're the first one to launch spaceship towards Alpha Centauri!");
515 cons_msg = _("You have launched spaceship towards Alpha Centauri!")
517 [achievement_map_known]
518 name = _("Entire Map Known")
521 first_msg = _("You're the first one to have entire world mapped!")
522 cons_msg = _("You have entire world mapped!")
524 [achievement_map_known_20p]
525 name = _("Map Known 20 pct")
528 ; /* xgettext:no-c-format */
529 first_msg = _("You're the first one to have 20% of the world mapped!")
530 ; /* xgettext:no-c-format */
531 cons_msg = _("You have 20% of the world mapped!")
533 [achievement_another_island]
534 name = _("Land Ahoy")
537 first_msg = _("As the first people in history, your people see foreign continent!")
538 cons_msg = _("You see foreign island!")
543 ; IN = international, IC = intercontinental.
544 ; For each of the trade route types:
545 ; "pct" - Trade income %. If this is 0, trade route cannot be
547 ; "cancelling" - What to do to previously established traderoutes when they
549 ; "Active" - Keep them active (although they will only
550 ; provide nonzero income if illegal due to
551 ; trademindist rather than pct==0)
552 ; "Inactive" - Keep them inactive
553 ; "Cancel" - Cancel them altogether
554 ; "bonus" - One-time bonuses granted when traderoute established
555 ; "None" - No one-time bonus
556 ; "Gold" - Bonus to gold
557 ; "Science" - Bonus to research
558 ; "Both" - Bonus to gold and research
562 { "type", "pct", "cancelling", "bonus"
563 "National", 100, "Cancel", "Both"
564 "NationalIC", 200, "Cancel", "Both"
565 "IN", 200, "Cancel", "Both"
566 "INIC", 400, "Cancel", "Both"
567 "Ally", 200, "Cancel", "Both"
568 "AllyIC", 400, "Cancel", "Both"
569 "Enemy", 200, "Cancel", "Both"
570 "EnemyIC", 400, "Cancel", "Both"
571 "Team", 200, "Cancel", "Both"
572 "TeamIC", 400, "Cancel", "Both"
580 ; Player colors for 32 players are defined below.
581 ; Avoid greens, blues, and white / very pale colors (too easy to confuse
621 ; freeciv optional team names definition.
631 ; freeciv game settings for the experimental ruleset
634 ; { "name", "value", "lock"
635 ; "bool_set", TRUE, FALSE
636 ; "int_set", 123, FALSE
637 ; "str_set", "test", FALSE
640 { "name", "value", "lock"
641 "migration", TRUE, TRUE
642 "mgr_turninterval", 3, FALSE
643 "mgr_foodneeded", TRUE, FALSE
644 "mgr_distance", 3, FALSE
645 "mgr_nationchance", 75, FALSE
646 "mgr_worldchance", 25, FALSE
647 "foggedborders", TRUE, FALSE
648 "techlost_recv", 5, FALSE
649 "techlost_donor", 3, FALSE
651 "ec_max_size", 100, FALSE
652 "ec_chat", TRUE, FALSE
653 "ec_info", TRUE, FALSE
654 "techlossforgiveness", 15, FALSE