Make AI less likely to stop building wonder
[freeciv.git] / data / alien / game.ruleset
blob0055895dc98ef4c1f8d2683c66f7fef3bd35a3e8
1 ; This is Alien World game ruleset.
3 ; Modifying this file:
4 ; You should not modify this file except to make bugfixes or
5 ; for other "maintenance".  If you want to make custom changes,
6 ; you should create a new datadir subdirectory and copy this file
7 ; into that directory, and then modify that copy.  Then use the
8 ; command "rulesetdir <mysubdir>" in the server to have freeciv
9 ; use your new customized file.
11 ; Note that the freeciv AI may not cope well with anything more
12 ; than minor changes.
14 [datafile]
15 description="Alien World game rules for Freeciv"
16 options="+Freeciv-2.6-ruleset"
18 ; This section contains meta information for freeciv-ruledit to recreate the ruleset
19 ; file in a form wanted. These have no in-game effect whatsoever
20 [ruledit]
22 ; Which file to read description in from.
23 description_file = "alien/README.alien"
25 [about]
26 ; Ruleset name
27 name = _("Alien World")
29 ; There`s no separate versioning in rulesets part of main freeciv distribution
30 ;version = ""
32 ; Summary of the ruleset
33 summary = _("\
34 One of the design goals of this ruleset was that it has to \
35 provide gameplay different from standard rules. Do not assume that any rules \
36 you know from classic rules apply with this ruleset.\n\n\
37 See http://www.freeciv.org/wiki/Alien_World and \
38 http://www.cazfi.net/freeciv/alien/ for additional ruleset info.\
41 ; Detailed description
42 ; When updating this, update also desciption_file in [ruledit] section to match
43 description = *alien/README.alien*
45 [options]
46 global_init_techs=""
47 global_init_buildings="Headquarters", "Basic Infrastructure"
48 popup_tech_help = TRUE
50 [tileset]
51 preferred = "alio"
53 [civstyle]
54 ; Value added to city pollution
55 base_pollution   = -20
57 ; Cost in luxuries of making one citizen happier
58 happy_cost       = 2
60 ; Cost in food of upkeeping a single citizen
61 food_cost        = 2
63 ; Parameters used to generalize the calculation of city granary size:
64 ;   if city_size <= num_inis:
65 ;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
66 ;   if city_size > num_inis;
67 ;     city_granary_size = (granary_food_ini[num_inis] +
68 ;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
69 granary_food_ini        = 20
70 granary_food_inc        = 10
72 ; City center minimum outputs
73 min_city_center_food    = 1
74 min_city_center_shield  = 1
75 min_city_center_trade   = 1
77 ; Square of initial city radius
78 init_city_radius_sq     = 3
80 ; Square of initially visible radius (true distance).
81 init_vis_radius_sq      = 5
83 ; A base bribe cost, modified heavily by other factors
84 base_bribe_cost  = 750
86 ; Barbarian leader ransom in gold
87 ransom_gold      = 100
89 ; Number of veteran levels lost when upgrading a unit
90 upgrade_veteran_loss     = 0
92 ; Number of veteran levels lost when auto-upgrading a unit
93 autoupgrade_veteran_loss = 0
95 ; Whether player gets to select which terrain improvement to pillage.
96 pillage_select          = TRUE
98 ; Whether one can steal a tech for which prereqs are not known
99 tech_steal_allow_holes    = TRUE
100 ; Whether one can get a tech for which prereqs are not known via
101 ; diplomatic trading
102 tech_trade_allow_holes    = TRUE
103 ; ...and whether one can lose a tech which is prereq for another known
104 ; tech via trade, if techlost_donor is nonzero
105 tech_trade_loss_allow_holes = TRUE
106 ; Whether one can get a tech for which prereqs are not known via
107 ; parasite effect (Great Library)
108 tech_parasite_allow_holes = TRUE
109 ; Whether one can lose a tech which is prereq for another known tech
110 ; due to negative bulbs, if techlossforgiveness allows loss
111 tech_loss_allow_holes     = TRUE
113 ; Whether civil war is possible at all
114 civil_war_enabled        = FALSE
116 ; Comma separated list of things to happen, in addition to death
117 ; of owner, when gameloss unit dies
118 ; "CivilWar"   - Part of the empire remains, controlled by a new player
119 ; "Barbarians" - Depending on if there`s also "CivilWar", all or part
120 ;                or half of the dead players empire gets under barbarian
121 ;                control.
122 ; "Loot"       - Player who killed the gameloss unit gets loot:
123 ;                Partial map, gold, techs, cities
124 gameloss_style           = ""
126 ; Whether units may safely paradrop to transport on non-native terrain
127 paradrop_to_transport   = FALSE
129 ; Method of paying unit and improvement gold upkeep
130 ; "City" - The player`s total gold must be non-negative after paying upkeep
131 ;          costs associated with each city. If for any city the player`s
132 ;          gold is negative, random buildings in the city are sold off. If
133 ;          the gold is still negative, then supported units with gold upkeep
134 ;          are disbanded.
135 ; "Mixed" - In the first step, the player`s total gold must be non-negative
136 ;           after paying upkeep for all buildings within a city. If for any
137 ;           city the player`s gold is negative, random buildings in the city
138 ;           are sold off.
139 ;           In the second step, gold upkeep for all units is paid in a lump
140 ;           sum. If the player does not have enough gold, random units with
141 ;           gold upkeep are disbanded.
142 ; "Nation" - Gold upkeep for all buildings and units is paid in a lump sum
143 ;            after all cities have been processed. If the player does not
144 ;            have enough gold, random buildings from random cities are sold.
145 ;            If still more gold is needed, then random units with gold
146 ;            upkeep are disbanded.
147 gold_upkeep_style = "Nation"
149 [illness]
150 ; Whether plagues (illness) are possible
151 illness_on               = FALSE
152 ; the base factor for illness (of percent)
153 illness_base_factor      = 50
154 ; minimum city size for illness
155 illness_min_size         = 2
156 ; factor for how much trading with a plagued city increases our city`s
157 ; chance for plague (in percent)
158 illness_trade_infection  = 0
159 ; factor for how much pollution within a city increases its chance for
160 ; plague (in percent)
161 illness_pollution_factor = 0
163 [incite_cost]
164 ; city_incite_cost = 
165 ; total_factor * (city_size) *
166 ; (base_incite_cost + (units_cost) * unit_factor + 
167 ;   (improvements_cost) * improvement_factor) 
168 ;  / (distance * 100)
169 ; See city_incite_cost() for more details
170 base_incite_cost = 1000
171 improvement_factor = 1
172 unit_factor = 2
173 total_factor = 100
175 [global_unit_options]
176 ; Shore landing style
177 ;  FALSE - normal movement
178 ;  TRUE  - (default) slow invasions by removing all
179 ;          movement points from ground units moving
180 ;          from ocean tile to land
181 slow_invasions = TRUE
183 [combat_rules]
184 ; If tired_attack is set to TRUE, units that attack with less than a single
185 ; move point (per move_fragments in terrain.ruleset) will have their attack
186 ; power reduced accordingly. For instance, if move_fragments=3, a unit with
187 ; 2/3 move points will have attack power 2/3 of normal.
188 ; If this is set to FALSE units will attack with full strength even if they
189 ; have only fractional moves left.
190 tired_attack = TRUE
192 [actions]
193 ; If force_trade_route is set to TRUE it is illegal for an actor unit to
194 ; enter the marketplace of a city if it can establish a trade route to it
195 ; in stead.
196 force_trade_route = TRUE
198 ; What each action should be called when showing them to the player.
199 ; The first %s should be before the mnemonic of the action. A Freeciv client
200 ; that supports mnemonics will replace it with the in-band signal that marks
201 ; the following character as a mnemonic in its graphical toolkit.
202 ; The second %s marks where extra details should be inserted.
204 ; /* TRANS: _Poison City (3% chance of success). */
205 ui_name_poison_city = _("%sPoison City%s")
207 ; /* TRANS: _Bribe Enemy Unit (3% chance of success). */
208 ui_name_bribe_unit = _("%sBribe Enemy Unit%s")
210 ; /* TRANS: _Sabotage City (3% chance of success). */
211 ui_name_sabotage_city = _("%sSabotage City%s")
213 ; /* TRANS: Incite a _Revolt (3% chance of success). */
214 ui_name_incite_city = _("Incite a %sRevolt%s")
216 ; /* TRANS: Copy Research _Data (3% chance of success). */
217 ui_name_steal_tech = _("Copy Research %sData%s")
219 ; /* TRANS: _Investigate City (100% chance of success). */
220 ui_name_investigate_city = _("%sInvestigate City%s")
222 ; /* TRANS: Establish Trade _Route (100% chance of success). */
223 ui_name_establish_trade_route = _("Establish Trade %sRoute%s")
225 ; /* TRANS: Monetize Containers (100% chance of success). */
226 ui_name_enter_marketplace = _("Monetize %sContainers%s")
228 ; /* TRANS: Help _build Wonder (100% chance of success). */
229 ui_name_help_wonder = _("Help %sbuild Wonder%s")
231 ; Suppress automatic help text generation about what enables and/or
232 ; disables the following actions.
234 ; Can make the help text less redundant when you document it your self.
235 ;quiet_actions = "Targeted Sabotage City", "Targeted Steal Tech"
237 ; /* <-- avoid gettext warnings
239 ; Action enablers:
241 ; action               = the action to enable.
242 ; actor_reqs           = requirements that apply to the actor.
243 ; target_reqs          = requirements that apply to the target.
245 ; README.actions lists the possible actions and their hard coded
246 ; requirements.
248 ; An action enabler is active when its actor_reqs AND its target_reqs are
249 ; satisfied.
251 ; */ <-- avoid gettext warnings
252 [actionenabler_sabotage_city]
253 action = "Sabotage City"
254 actor_reqs    =
255     { "type",   "name", "range"
256       "UnitFlag", "Diplomat", "Local"
257       "DiplRel", "War", "Local"
258       "UnitState", "OnLivableTile", "Local"
259       "MinMoveFrags", "1", "Local"
260     }
262 [actionenabler_investigate_city]
263 action       = "Investigate City"
264 actor_reqs    =
265     { "type",   "name", "range"
266       "UnitFlag", "Diplomat", "Local"
267       "UnitState", "OnLivableTile", "Local"
268       "MinMoveFrags", "1", "Local"
269     }
271 [actionenabler_steal_tech_random]
272 action = "Steal Tech"
273 actor_reqs    =
274     { "type",   "name", "range"
275       "UnitFlag", "Diplomat", "Local"
276       "UnitState", "OnLivableTile", "Local"
277       "MinMoveFrags", "1", "Local"
278     }
279 target_reqs  =
280     { "type",   "name", "range", "present"
281       "NationGroup", "Barbarian", "Player", FALSE
282     }
284 [actionenabler_incite_city]
285 action = "Incite City"
286 actor_reqs    =
287     { "type",   "name", "range", "present"
288       "UnitFlag", "Diplomat", "Local", TRUE
289       "DiplRel", "Alliance", "Local", FALSE
290       "DiplRel", "Team", "Local", FALSE
291       "UnitState", "OnLivableTile", "Local", TRUE
292       "MinMoveFrags", "1", "Local", TRUE
293     }
294 target_reqs    =
295     { "type",   "name", "range", "present"
296       "Building", "Bunker", "City", FALSE
297       "Building", "Headquarters", "City", FALSE
298     }
300 [actionenabler_bribe_unit]
301 action = "Bribe Unit"
302 actor_reqs    =
303     { "type",   "name", "range", "present"
304       "UnitFlag", "Diplomat", "Local", TRUE
305       "DiplRel", "Alliance", "Local", FALSE
306       "DiplRel", "Team", "Local", FALSE
307       "UnitState", "OnLivableTile", "Local", TRUE
308       "MinMoveFrags", "1", "Local", TRUE
309     }
310 target_reqs    =
311     { "type",   "name", "range", "present"
312       "CityTile", "Center", "Local", FALSE
313       "MaxUnitsOnTile", "1", "Local", TRUE
314     }
316 [actionenabler_traderoute]
317 action = "Establish Trade Route"
318 actor_reqs    =
319     { "type",   "name", "range", "present"
320       "UnitFlag", "TradeRoute", "Local", TRUE
321     }
323 [actionenabler_marketplace]
324 action = "Enter Marketplace"
325 actor_reqs    =
326     { "type",   "name", "range", "present"
327       "UnitFlag", "TradeRoute", "Local", TRUE
328     }
330 [actionenabler_help_build_wonder]
331 action = "Help Wonder"
332 actor_reqs    =
333     { "type",   "name", "range", "present"
334       "UnitFlag", "HelpWonder", "Local", TRUE
335       "DiplRel", "Is foreign", "Local", FALSE
336     }
338 [borders]
339 ; Base border radius from city.
340 radius_sq_city = 4
342 ; Border radius square increased by this amount / point of city size
343 size_effect    = 1
345 ; Difference between city workable area and area permanently claimed by
346 ; city (these tiles cannot be stolen by stronger border sources).
347 ; 0 means exactly city workable area is immune to border stealing.
348 ; Negative value means outer workable tiles can be stolen; highly negative
349 ; value (more than max city radius_sq) means any workable tile can be stolen.
350 ; If City_Radius_Sq is variable, so is the set of locked tiles; this is
351 ; a squared value, so the radius of the ring of tiles which are workable
352 ; but not locked (or vice versa) varies but the area is constant.
353 radius_sq_city_permanent = 0
355 [research]
356 ; Method of calculating technology costs
357 ;   "Civ I|II"      - Civ (I|II) style. Every new tech add base_tech_cost to
358 ;                     cost of next tech.
359 ;   "Classic"       - Cost of technology is:
360 ;                       base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2
361 ;                     where reqs == number of requirement for tech, counted
362 ;                     recursively.
363 ;   "Classic+"      - Cost are read from tech.ruleset. Missing costs are
364 ;                     generated by style "Classic".
365 ;   "Experimental"  - Cost of technology is:
366 ;                       base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1)))
367 ;                                         - 0.5)
368 ;                     where reqs == number of requirement for tech, counted
369 ;                     recursively.
370 ;   "Experimental+" - Cost are read from tech.ruleset. Missing costs are
371 ;                     generated by style "Experimental".
372 tech_cost_style = "Classic"
374 ; Base research cost. Used in tech cost styles where tech cost is generated.
375 ; In other words: used everywhere unless the cost of *all* techs are
376 ; specified and the tech cost style is "Experimental+" or "Classic+".
377 base_tech_cost   = 20
379 ; Technology leak from other civilizations
380 ; "None"           - No reduction of the technology cost.
381 ; "Embassies"      - Technology cost is reduced depending on the number of
382 ;                    players which already know the tech and you have an
383 ;                    embassy with.
384 ; "All Players"    - Technology cost is reduced depending on the number of
385 ;                    all players (human, AI and barbarians) which already
386 ;                    know the tech.
387 ; "Normal Players" - Technology cost is reduced depending on the number of
388 ;                    normal players (human and AI) which already know the
389 ;                    tech.
390 tech_leakage = "None"
392 ; Method of paying tech upkeep
393 ; "None"   - no upkeep
394 ; "Basic"  - upkeep is calculated as:
395 ;     <Cost of technology> / tech_upkeep_divider - tech_upkeep_free
396 ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities
397 tech_upkeep_style = "None"
399 ; upkeep cost is divided by this value
400 tech_upkeep_divider = 2000
402 ; Method of selecting techs given for free
403 ; "Goal"     - Towards player`s goal, random if no goal
404 ; "Random"   - Random researchable tech
405 ; "Cheapest" - Cheapest researchable tech, random among equal cost ones
406 free_tech_method = "Goal"
408 [culture]
409 ; Minimum culture points for cultural domination victory
410 victory_min_points = 1000
412 ; How big lead relative to second best player is needed for victory
413 victory_lead_pct   = 200
415 ; How much each culture point affects the migration
416 ; from/to the city. Each culture point count as this many permilles
417 ; of a migration point.
418 migration_pml = 50
420 [calendar]
421 ; Year in the beginning of the game
422 start_year  = 250
424 ; Year 1 instead of 0.
425 skip_year_0 = FALSE
427 ; How many fragments each year has. Value 0 disables year advancement by fragment
428 ; accumulation.
429 fragments = 4
431 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable
432 ; numbers begin from 1 and not 0) is shown.
434 fragment_name0 = _("Q1")
435 fragment_name1 = _("Q2")
436 fragment_name2 = _("Q3")
437 fragment_name3 = _("Q4")
439 ; What labels are used of positive and negative years.
440 positive_label = _("GE")
441 negative_label = _("BGE")
443 ; /* <-- avoid gettext warnings
445 ; Disaster types:
447 ; name                    = translatable name as seen by user
448 ; reqs                    = requirements for disaster to happen (see effects.ruleset
449 ;                           and README.effects for help on requirements)
450 ; frequency               = how likely disaster is to occur
451 ; effects
452 ;   - "DestroyBuilding"   = Random building is destroyed
453 ;   - "ReducePopulation"  = Reduce city size by one unless it's already 1
454 ;   - "ReducePopDestroy"  = Reduce city size by one, possibly destroying the city
455 ;   - "EmptyFoodStock"    = Remove all food from food stock
456 ;   - "EmptyProdStock"    = Destroy current production
457 ;   - "Pollution"         = One tile surrounding city polluted
458 ;   - "Fallout"           = One tile surrounding city polluted with fallout
460 ; */ <-- avoid gettext warnings
462 [disaster_earthquake]
463 name           = _("Earthquake")
464 frequency      = 10
465 effects        = "DestroyBuilding"
467 [disaster_fire]
468 name           = _("Fire")
469 frequency      = 10
470 effects        = "DestroyBuilding"
472 [disaster_radiation_burst]
473 name           = _("Radiation Burst")
474 frequency      = 10
475 effects        = "ReducePopulation"
477 [disaster_rebels]
478 name           = _("Rebels")
479 frequency      = 10
480 effects        = "EmptyfoodStock", "EmptyProdStock", "Fallout"
482 [disaster_alien_microbes]
483 name           = _("Alien Microbes")
484 frequency      = 10
485 effects        = "ReducePopulation"
487 ; /* <-- avoid gettext warnings
489 ; Achievement types:
491 ; name                    = translatable name as seen by user
492 ; rule_name               = (optional) name for savegames, rulesets etc; if not
493 ;                           present, 'name' is used. Since the name used in
494 ;                           savegames must not change, use this when renaming a
495 ;                           achievement after a ruleset has been released.
496 ; type                    = What event grants the achievement to player.
497 ;                           See README.achievements for list of these types.
498 ; unique                  = If TRUE, only first one reaching the achievement will
499 ;                           get it. Defaults to TRUE
500 ; value                   = Value to reach. Exact meaning of this depends on
501 ;                           achievement type.
502 ; culture                 = Amount of culture granted to player who gets achievement
503 ;                           granted.
504 ; first_msg               = Message shown to first player gaining the achievement
505 ; cons_msg                = Message shown to consecutive players gaining the achievement
507 ; */ <-- avoid gettext warnings
509 ; No achievements in alien ruleset
512 ; Trade settings
514 ; IN = international, IC = intercontinental.
515 ; For each of the trade route types:
516 ; "pct"        - Trade income %. If this is 0, trade route cannot be
517 ;                established at all
518 ; "cancelling" - What to do to previously established traderoutes when they
519 ;                turn illegal
520 ;                "Active"   - Keep them active (although they will only
521 ;                             provide nonzero income if illegal due to
522 ;                             trademindist rather than pct==0)
523 ;                "Inactive" - Keep them inactive
524 ;                "Cancel"   - Cancel them altogether
525 ; "bonus"      - One-time bonuses granted when traderoute established
526 ;                "None"     - No one-time bonus
527 ;                "Gold"     - Bonus to gold
528 ;                "Science"  - Bonus to research
529 ;                "Both"     - Bonus to gold and research
531 [trade]
532 settings =
533   { "type",       "pct", "cancelling", "bonus"
534     "National",   100,   "Cancel",     "Both"
535     "NationalIC", 100,   "Cancel",     "Both"
536     "IN",         300,   "Cancel",     "Both"
537     "INIC",       300,   "Cancel",     "Both"
538     "Ally",       300,   "Cancel",     "Both"
539     "AllyIC",     300,   "Cancel",     "Both"
540     "Enemy",      300,   "Cancel",     "Both"
541     "EnemyIC",    300,   "Cancel",     "Both"
542     "Team",       300,   "Cancel",     "Both"
543     "TeamIC",     300,   "Cancel",     "Both"
544   }
546 [playercolors]
547 background.r = 86
548 background.g = 86
549 background.b = 86
551 ; Player colors for 32 players are defined below.
552 ; Avoid greens, blues, and white / very pale colors (too easy to confuse
553 ; with terrain).
554 ; Avoid dark colors.
555 colorlist =
556     { "r", "g", "b"
557       255,   0,   0
558       255, 255,   0
559         0, 255, 255
560       138,  43, 226
561       255, 165,   0
562       255,   0, 255
563       173, 216, 230
564         0, 255, 127
565       250, 128, 114
566       124, 252,   0
567       139,   0,   0
568       255, 192, 203
569       211, 211, 211
570       218, 112, 214
571       255,  20, 147
572       100, 149, 237
573       255, 215,   0
574       245, 222, 179
575       255, 255, 128
576       192, 255, 128
577       204, 255,   0
578       255, 211, 140
579       255,  79,   0
580       240, 145, 169
581       255, 219,  88
582       153,  17, 153
583       184, 134,  11
584       255, 102,   0
585       102, 205, 170
586       195,  33,  72
587       168, 153, 230
588       255, 250, 205
589     }
591 [teams]
592 ; freeciv optional team names definition.
594 ; names =
595 ;  _("Team 0"),
596 ; _("Team 1"),
597 ; _("Team 2"),
598 ; _("Team 3"),
599 ; etc...
601 [settings]
602 ; freeciv game settings for the alien ruleset
603 set =
604    { "name", "value", "lock"
605      "topology",       "WRAPX|WRAPY|ISO|HEX",   FALSE
606      "mapsize",        "PLAYER",                FALSE
607      "tilesperplayer", 300,                     FALSE
608      "aifill",         7,                       FALSE
609      "sciencebox",     150,                     FALSE
610      "foodbox",        150,                     FALSE
611      "revolen",        7,                       FALSE
612      "citymindist",    3,                       FALSE
613      "startunits",     "cx",                    FALSE
614      "plrcolormode",   "NATION_ORDER",          FALSE
615       ; Ruleset has no trait ranges, so player choosing EVEN would have
616       ; no effect anyway
617      "traitdistribution", "FIXED",              TRUE
618    }