/usr/share/games/freeciv/civ1/game.ruleset is in freeciv-data 2.5.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 | ; 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="Civ1-style game rules for Freeciv"
options="+Freeciv-2.5-ruleset"
[about]
; Ruleset name
name = _("Civ1 ruleset")
; Description of the ruleset
description = _("You are playing with civ1 style rules. \
These rules are much simpler than the Freeciv default rules. \
If you know only the default rules, spend some time checking the \
differences.\
\n\n\
* There are fewer technologies, buildings and units.\n\
* Units have no hitpoints. If they win a battle, they remain in full health.\n\
")
[options]
global_init_techs=""
global_init_buildings="Palace"
[civstyle]
; 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 = 0
min_city_center_shield = 0
min_city_center_trade = 0
; Square of initial city radius
init_city_radius_sq = 5
; Square of initially visible radius (true distance).
init_vis_radius_sq = 2
; 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 = "Pollution"
; Number of veteran levels lost when upgrading a unit
upgrade_veteran_loss = 10
; Number of veteran levels lost when auto-upgrading a unit
autoupgrade_veteran_loss = 10
; Whether player gets to select which terrain improvement to pillage.
pillage_select = FALSE
; Whether civil war is possible at all
civil_war_enabled = TRUE
; Comma separated list of things to happen, in addition to death
; of owner, when gameloss unit dies
; "CivilWar" - Part of the empire remains, controlled by a new player
; "Barbarians" - Depending on if there`s also "CivilWar", all or part
; or half of the dead players empire gets under barbarian
; control.
; "Loot" - Player who killed the gameloss unit gets loot:
; Partial map, gold, techs, cities
gameloss_style = ""
; Whether units may safely paradrop to transport on non-native terrain
paradrop_to_transport = FALSE
; 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.
; 3 - Cost of technology is:
; cost = base * (reqs - 1)^2 / (1 + sqrt(sqrt(reqs))) - base/2
; 4 - Cost are read from tech.ruleset. Missing costs are generated by
; style 3.
tech_cost_style = 0
; 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 = FALSE
; 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 = 50
; 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
improvement_factor = 1
unit_factor = 2
total_factor = 100
[combat_rules]
; If tired_attack is set to TRUE, units that attack with less than a single
; move point (per move_fragments in terrain.ruleset) will have their attack
; power reduced accordingly. For instance, if move_fragments=3, a unit with
; 2/3 move points will have attack power 2/3 of normal.
; If this is set to FALSE units will attack with full strength even if they
; have only fractional moves left.
tired_attack = TRUE
[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
; "None" - no upkeep
; "Basic" - upkeep is calculated as:
; <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
tech_upkeep_style = "None"
; Method of selecting techs given for free
; "Goal" - Towards player`s goal, random if no goal
; "Random" - Random researchable tech
; "Cheapest" - Cheapest researchable tech, random among equal cost ones
free_tech_method = "Random"
[calendar]
; Year 1 instead of 0.
skip_year_0 = TRUE
; What labels are used for positive and negative years.
; /* TRANS: year label (Anno Domini) */
positive_label = _("AD")
; /* TRANS: year label (Before Christ) */
negative_label = _("BC")
; /* <-- avoid gettext warnings
;
; Disaster types:
;
; name = translatable name as seen by user
; reqs = requirements for disaster to happen (see effects.ruleset
; and README.effects for help on requirements)
; frequency = how likely disaster is to occur
; effects
; - "DestroyBuilding" = Random building is destroyed
; - "ReducePopulation" = Reduce city size by one unless it's already 1
; - "EmptyFoodStock" = Remove all food from food stock
; - "EmptyProdStock" = Destroy current production
; - "Pollution" = One tile surrounding city polluted
; - "Fallout" = One tile surrounding city polluted with fallout
;
; */ <-- avoid gettext warnings
[disaster_earthquake]
name = _("Earthquake")
reqs =
{ "type", "name", "range"
"Terrain", "Hills", "Adjacent"
}
frequency = 10
effects = "DestroyBuilding"
[disaster_famine]
name = _("Famine")
reqs =
{ "type", "name", "range", "negated"
"Building", "Granary", "City", TRUE
}
frequency = 10
effects = "ReducePopulation", "EmptyFoodStock"
[disaster_fire]
name = _("Fire")
reqs =
{ "type", "name", "range", "negated"
"Building", "Aqueduct", "City", TRUE
}
frequency = 10
effects = "DestroyBuilding"
[disaster_flood]
name = _("Flood")
reqs =
{ "type", "name", "range", "negated"
"Road", "River", "Adjacent", FALSE
"Building", "City Walls", "City", TRUE
}
frequency = 10
effects = "ReducePopulation"
[disaster_piracy]
name = _("Piracy")
reqs =
{ "type", "name", "range", "negated"
"Terrain", "Ocean", "Adjacent", FALSE
"Building", "Barracks", "City", TRUE
"Building", "Barracks II", "City", TRUE
"Building", "Barracks III", "City", TRUE
}
frequency = 10
effects = "EmptyFoodStock", "EmptyProdStock"
[disaster_plague]
name = _("Plague")
reqs =
{ "type", "name", "range", "negated"
"Tech", "Medicine", "Player", TRUE
"Building", "Aqueduct", "City", TRUE
}
frequency = 10
effects = "ReducePopulation"
[disaster_volcano]
name = _("Volcano")
reqs =
{ "type", "name", "range", "negated"
"Terrain", "Mountains", "Adjacent", FALSE
"Building", "Temple", "City", TRUE
}
frequency = 10
effects = "ReducePopulation"
;
; Trade settings
;
; IN = international, IC = intercontinental.
; For each of the trade route types:
; "pct" - Trade income %. If this is 0, trade route cannot be
; established at all
; "cancelling" - What to do to previously established traderoutes when they
; turn illegal
; "Active" - Keep them active (although they will only
; provide nonzero income if illegal due to
; trademindist rather than pct==0)
; "Inactive" - Keep them inactive
; "Cancel" - Cancel them altogether
;
; TODO: What`s correct "cancelling" behavior for civ1? If you have established
; traderoute with enemy city nearby and conquer it -> what happens to traderoute
; between your cities with less than trademindist distance?
[trade]
settings =
{ "type", "pct", "cancelling"
"National", 100, "Cancel"
"NationalIC", 200, "Cancel"
"IN", 200, "Cancel"
"INIC", 400, "Cancel"
}
[playercolors]
background.r = 86
background.g = 86
background.b = 86
; Player colors for 32 players are defined below.
; Avoid greens, blues, and white / very pale colors (too easy to confuse
; with terrain).
; Avoid dark colors.
colorlist =
{ "r", "g", "b"
255, 0, 0
255, 255, 0
0, 255, 255
138, 43, 226
255, 165, 0
255, 0, 255
173, 216, 230
0, 255, 127
250, 128, 114
124, 252, 0
139, 0, 0
255, 192, 203
211, 211, 211
218, 112, 214
255, 20, 147
100, 149, 237
255, 215, 0
245, 222, 179
255, 255, 128
192, 255, 128
204, 255, 0
255, 211, 140
255, 79, 0
240, 145, 169
255, 219, 88
153, 17, 153
184, 134, 11
255, 102, 0
102, 205, 170
195, 33, 72
168, 153, 230
255, 250, 205
}
[teams]
; freeciv optional team names definition.
;
; name =
; _("Team 0"),
; _("Team 1"),
; _("Team 2"),
; _("Team 3"),
; etc...
[settings]
; freeciv game for the civ1 ruleset
;
; set =
; { "name", "value", "lock"
; "bool_set", TRUE, FALSE
; "int_set", 123, FALSE
; "str_set", "test", FALSE
; }
set =
{ "name", "value", "lock"
"sciencebox", 50, FALSE
"startunits", "c", FALSE
"borders", "DISABLED", FALSE
"citymindist", 1, FALSE
}
|