; Modifying this file:
; You should not modify this file except to make bugfixes or
; for other "maintenance".  If you want to make custom changes,
; you should create a new datadir subdirectory and copy this file
; into that directory, and then modify that copy.  Then use the
; command "rulesetdir <mysubdir>" in the server to have freeciv
; use your new customized file.

; Note that the freeciv AI may not cope well with anything more
; than minor changes.

[datafile]
description="Multiplayer game rules for Freeciv"
options="+Freeciv-2.3-ruleset"

[about]
; Ruleset name
name = _("Multiplayer ruleset")

; Description of the ruleset
description = _("\
You are playing Freeciv with rules designed for multiplayer gaming. \
The biggest differences from the default ruleset are that trade routes \
are disabled, and that most wonders can be built once by each player, \
and affect only cities on the same continent. A full description of \
the differences can be found in README.ruleset_multiplayer.\
")

[options]
global_init_techs=""
global_init_buildings="Palace"

[civstyle]
; Value added to city pollution
base_pollution   = -20

; Cost in luxuries of making one citizen happier
happy_cost       = 2

; Cost in food of upkeeping a single citizen
food_cost        = 2

; Parameters used to generalize the calculation of city granary size:
;   if city_size <= num_inis:
;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
;   if city_size > num_inis;
;     city_granary_size = (granary_food_ini[num_inis] +
;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
granary_food_ini = 20
granary_food_inc = 10

; City center minimum outputs
min_city_center_food    = 1
min_city_center_shield  = 1
min_city_center_trade   = 0

; Minimum distance between cities (move distance).
; (Minimum value for this is 1, which means adjacent is okay.)
min_dist_bw_cities	= 2

; Square of initially city radius
init_city_radius_sq     = 5

; Square of initially visible radius (true distance).
init_vis_radius_sq	= 5

; The type of collateral contamination produced by a nuclear attack.
;   "Pollution" - Pollution (same as industrial/population-generated).
;   "Fallout"   - Nuclear Fallout (distinct from industrial/population).
nuke_contamination      = "Fallout"

; A base bribe cost, modified heavily by other factors
base_bribe_cost  = 750

; Barbarian leader ransom in gold
ransom_gold      = 100

; Number of veteran levels lost when upgrading a unit
upgrade_veteran_loss     = 0

; Number of veteran levels lost when auto-upgrading a unit
autoupgrade_veteran_loss = 0

; Whether player gets to select which terrain improvement to pillage.
pillage_select           = 1

; Method of paying unit and improvement gold upkeep
; 0 - The player`s total gold must be non-negative after paying upkeep
;     costs associated with each city. If for any city the player`s gold
;     is negative, random buildings in the city are sold off. If the gold
;     is still negative, then supported units with gold upkeep are
;     disbanded.
; 1 - In the first step, the player`s total gold must be non-negative after
;     paying upkeep for all buildings within a city. If for any city the
;     player`s gold is negative, random buildings in the city are sold off.
;     In the second step, gold upkeep for all units is paid in a lump sum.
;     If the player does not have enough gold, random units with gold upkeep
;     are disbanded.
; 2 - Gold upkeep for all buildings and units is paid in a lump sum after
;     all cities have been processed. If the player does not have enough
;     gold, alternatively a random buildings from a random cities is sold
;     and a random units with gold upkeep is disbanded till the treasury is
;     balanced.
gold_upkeep_style = 0

; Method of calculating technology costs
;   0 - Civ (I|II) style. Every new tech add researchcost to cost of next tech.
;   1 - Cost of technology is 
;         MAX((1+parents) * (researchcost/2) * sqrt(1+parents), researchcost)
;       where num_parents == number of requirement for tech, counted
;       recursively.
;   2 - Cost are read from tech.ruleset. Missing costs are generated by
;       style 1.
tech_cost_style = 1

; Base research cost for tech styles 1 & 2
base_tech_cost   = 20

; Technology leak from other civilizations
; 0 - No reduction of the technology cost.
; 1 - Technology cost is reduced depending on the number of players
;     which already know the tech and you have an embassy with.
; 2 - Technology cost is reduced depending on the number of all players
;     (human, AI and barbarians) which already know the tech.
; 3 - Technology cost is reduced depending on the number of normal
;     players (human and AI) which already know the tech.
tech_leakage = 0

[illness]
; Whether plagues (illness) are possible
illness_on = 0

; the base factor for illness (of percent)
illness_base_factor = 25

; minimum city size for illness
illness_min_size = 3

; factor for how much trading with a plagued city increases our city`s
; chance for plague (in percent)
illness_trade_infection = 0

; factor for how much pollution within a city increases its chance for
; plague (in percent)
illness_pollution_factor = 50

[incite_cost]
; city_incite_cost = total_factor * (city_size) * (base_incite_cost
;                      + (units_cost) * unit_factor
;                      + (improvements_cost) * improvement_factor)
;                    / ((distance to capital) * 100)
; See city_incite_cost() for more details
base_incite_cost = 10000
improvement_factor = 1
unit_factor = 2
total_factor = 10000

[global_unit_options]
; Shore landing style
;  0 - normal movement
;  1 - (default) slow invasions by removing all
;      movement points from ground units moving
;      from ocean tile to land
slow_invasions = 1

[combat_rules]
;If killstack is set to 1, each time a defender unit lost in combat, and is
;not inside a city, fortress or airbase, all units in the same tile are
;destroyed along with the defender. This is the freeciv default.
;If this options is set to 0, only the defender unit is destroyed.
killstack = 1

;If tired_attack is set to 1, units that attack with only 1/3 or 2/3 moves
;left will have their attack power reduced by 2/3 or 1/3 respectively. If
;this is set to 0 units will attack with full strength even if they have
;only fractional moves left.
tired_attack = 0

[borders]
; Base border radius from city.
radius_sq_city = 17

; Border radius square increased by this amount / point of city size
size_effect    = 1

[research]
; Method of paying tech upkeep
; 0 - no upkeep
; 1 - upkeep is calculated as:
;     <Cost of technology> / tech_upkeep_divider + tech_upkeep_free
tech_upkeep_style = 0

; upkeep cost is divided by this value
tech_upkeep_divider = 2000

[calendar]
; Year in the beginning of the game
start_year = -4000

; Year 1 instead of 0.
skip_year_0 = 1

; What labels are used of positive and negative years.
positive_label = _("AD")
negative_label = _("BC")

[teams]
names =
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Red"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Blue"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Green"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:White"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Yellow"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Pink"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Orange"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Violet"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Turquoise"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Cyan"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Azure"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Dark White"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Fuchsia"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Indigo"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Lavender"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Magenta"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Silver"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Emerald"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Heliotrope"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Jade"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Khaki"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Nutmeg"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Quince"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Ultramarine"),
; /* TRANS: Name of a color; used as unique identifier for a team */
 _("?team name:Xanadu")

[settings]
set =
    { "name", "value", "lock"
      "generator", "ISLAND", FALSE
      "topology", "WRAPX|WRAPY", FALSE
      "startpos", "SINGLE", FALSE
      "tinyisles", FALSE, FALSE
      "alltemperate", TRUE, FALSE
      "separatepoles", FALSE, FALSE
      "huts", 0, FALSE
      "aifill", 0, FALSE
      "dispersion", 0, FALSE
      "diplomacy", "DISABLED", FALSE
      "contactturns", 0, FALSE
      "revolen", 2, FALSE
      "barbarians", "DISABLED", FALSE
      "techpenalty", 0, FALSE
      "startunits", "cccwwwxxxx", FALSE
      "specials", 350, FALSE
      "borders", "DISABLED", FALSE
    }
