; 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 " 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="Variant2 game rules for Freeciv" options="+Freeciv-3.1-ruleset" format_version=20 ; This section contains meta information for freeciv-ruledit to recreate the ruleset ; file in a form wanted. These have no in-game effect whatsoever [ruledit] ; Which file to read description in from. description_file = "variant2/README.variant2" [about] ; Ruleset name name = _("Variant2") ; Version of the ruleset version = "3.1-1" ; When about to migrate ruleset under a new name in the future version, set ; alt_dir to the name of that future directory. Then savegames saved with this ; version of freeciv can find the ruleset from the correct place when loading ; the savegame to the future version. ;alt_dir = "" ; Summary of the ruleset summary = _("\ This is fork from cazfi's own ruleset, which itself is originally \ fork from classic rules that were the default rules until Freeciv 2.6.\n\n\ See https://www.cazfi.net/freeciv/variant2/\ ") ; Detailed description ; When updating this, update also description_file in [ruledit] section to match description = *variant2/README.variant2* ; What capabilities ruleset provides for the scenarios. ; mimimum-default-sets - Default units, terrains, buildings, etc capabilities = "std-terrains" [options] global_init_techs="" global_init_buildings="Palace" [tileset] ; If preferred tileset is set, clients that support the feature will suggest ; using that tileset with the ruleset. ; preferred = "" [soundset] ; If preferred soundset is set, clients that support the feature will suggest ; using that soundset with the ruleset. ; preferred = "" [musicset] ; If preferred musicset is set, clients that support the feature will suggest ; using that musicset with the ruleset. ; preferred = "" [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 = 5 granary_food_inc = 10 ; City center minimum outputs min_city_center_food = 1 min_city_center_shield = 1 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 = 5 ; A base bribe cost, modified heavily by other factors base_bribe_cost = 700 ; Barbarian leader ransom in gold. The ransom is taken from ; the victim (typically a barbarian player), and it`s possible ; they cannot pay this in full. ransom_gold = 50 ; 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 = TRUE ; Whether one can steal a tech for which prereqs are not known tech_steal_allow_holes = FALSE ; Whether one can get a tech for which prereqs are not known via ; diplomatic trading tech_trade_allow_holes = TRUE ; ...and whether one can lose a tech which is prereq for another known ; tech via trade, if techlost_donor is nonzero tech_trade_loss_allow_holes = TRUE ; Whether one can get a tech for which prereqs are not known via ; parasite effect (Great Library) tech_parasite_allow_holes = FALSE ; Whether one can lose a tech which is prereq for another known tech ; due to negative bulbs, if techlossforgiveness allows loss tech_loss_allow_holes = TRUE ; Whether civil war is possible at all civil_war_enabled = TRUE ; How many percents each celebrating city affects chance of civil war civil_war_bonus_celebrating = -5 ; How many percents each unhappy city affects chance of civil war civil_war_bonus_unhappy = 5 ; 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 ; "City" - 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. ; "Mixed" - 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. ; "Nation" - 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, random buildings from random cities are sold. ; If still more gold is needed, then random units with gold ; upkeep are disbanded. gold_upkeep_style = "City" ; How many points of output one basic unit consists of. Typically you ; want this to be some 10^n. output_granularity = 1 ; Is it possible to airlift even with zero airlift capacity when ; airliftingstyle server setting has been set to unlimited airlifts? airlift_from_always_enabled = FALSE airlift_to_always_enabled = TRUE [wonder_visibility] ; When do opponents know which city, if any, has built the Small Wonder ; "Always" - Information is always sent ; "Never" - Information is never sent small_wonders = "Never" [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 base_incite_cost = 1000 improvement_factor = 2 unit_factor = 2 total_factor = 75 [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 ; With some rules it`s possible that neither side of a combat dies. ; Set this to TRUE if unit should never gain veterancy from such a combat. only_killing_makes_veteran = FALSE ; If either side of the fight is completely powerless, i.e., has ; zero attack/defense power after modifiers, fight is not considered ; a real fight. If this setting is enabled, nobody gets made veteran after ; such a fight. only_real_fight_makes_veteran = FALSE ; When this setting is enabled, chance of getting veterancy from a combat ; gets modified by the strength of the opponent relative to the strength ; of unit that might gain the veterancy. ; When this setting is disabled, the modifier is always simply considered ; to be 100%, i.e, the base veterancy chance from units.ruleset is used as is. ; This affects both regular and diplomat combat. combat_odds_scaled_veterancy = TRUE ; Does unit`s bombard rate get scaled down by how damaged it is. ; Even after this unit gets at least one bombard round. damage_reduces_bombard_rate = TRUE ; When the attacker has BadWallAttacker flag, and there`s ; positive DefendBonus effect applied to the attack, attacker`s ; firepower gets reduced to this value. ; If firepower is already lower than this, it won`t be affected. low_firepower_badwallattacker = 1 ; When the defender has BadCityDefender flag, and it`s ; defending on a city tile, attacker`s firepower is doubled ; and defenders firepower is reduced to this value. ; If firepower is already lower than this, it won`t be affected. low_firepower_pearl_harbour = 1 ; When the opponent has LowFirepower combat bonus against ; a unit, it`s firepower is reduced to this value. ; If firepower is already lower than this, it won`t be affected. low_firepower_combat_bonus = 1 ; When a unit capable of attacking NonNative tiles does such an ; attack against NonNatBombardTgt unit, firepower of both sides ; is reduced to this value. ; If firepower is already lower than this, it won`t be affected. low_firepower_nonnat_bombard = 1 ; Percentage of population lost by a city after nuclear attak. If set to ; 100 city is destroyed along with all the units. If set to 0 city does not ; loose population. Any value below 50 means the city can never be ; destroyed completely using nuclear. nuke_pop_loss_pct = 49 ; Percentage chance of a city defender surviving nuclear attack. When set ; to 50 roughly half of defenders will survive nuclear attack. When set to ; 0 no defenders will survive. When set to 100 all defenders will survive. nuke_defender_survival_chance_pct = 0 [auto_attack] ; An auto attack may be triggered when another unit moves to an adjacent ; tile and the autoattack server setting is enabled. The following details ; are ruleset controlled. ; attack_actions - the actions to try during an auto attack in the order ; they should be tried. ; if_attacker - this requirement vector must be true before a unit even ; considers to auto attack. attack_actions = "Attack", "Suicide Attack" if_attacker = { "type", "name", "range", "present" "DiplRel", "War", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE ; Not a good idea to nuke our own area. "UnitFlag", "Nuclear", "Local", FALSE } [actions] ; Forbid "Enter Marketplace" if any one of the listed actions are legal. enter_marketplace_blocked_by = "Establish Trade Route" ; Forbid "Attack" if any one of the listed actions are legal. attack_blocked_by = "Explode Nuclear", "Nuke City", "Nuke Units" ; Forbid "Suicide Attack" if any one of the listed actions are legal. suicide_attack_blocked_by = "Explode Nuclear", "Nuke City", "Nuke Units" ; Forbid "Conquer City" if any one of the listed actions are legal. conquer_city_blocked_by = "Explode Nuclear", "Nuke City", "Nuke Units", "Attack", "Suicide Attack" ; Forbid "Conquer City 2" if any one of the listed actions are legal. conquer_city_2_blocked_by = "Explode Nuclear", "Nuke City", "Nuke Units", "Attack", "Suicide Attack" ; Forbid regular unit move if one of the actions below is legal. move_blocked_by = "Transport Disembark", "Transport Disembark 2", "Conquer Extras", "Conquer Extras 2", "Enter Hut", "Enter Hut 2", "Frighten Hut", "Frighten Hut 2" ; Actor units will - under certain circumstances - be forced to try ; performing the following actions in the specified order after successfully ; performing "Bribe Unit". bribe_unit_post_success_forced_actions = "Transport Embark", "Transport Disembark", "Transport Disembark 2", "Conquer Extras", "Conquer Extras 2", "Enter Hut", "Enter Hut 2", "Frighten Hut", "Frighten Hut 2", "Unit Move" ; Actor units will - under certain circumstances - be forced to try ; performing the following actions in the specified order after successfully ; performing "Attack". attack_post_success_forced_actions = "Conquer City", "Conquer City 2", "Transport Disembark", "Transport Disembark 2", "Conquer Extras", "Conquer Extras 2", "Enter Hut", "Enter Hut 2", "Frighten Hut", "Frighten Hut 2", "Unit Move" ; The city that made the unit´s current tile native is gone. This is a Hail ; Mary attempt at survival by performing an action. Evaluated against an ; adjacent tile. Currently only able to target native tiles. escape_city = "Transport Embark", "Enter Hut", "Enter Hut 2", "Frighten Hut", "Frighten Hut 2", "Unit Move" ; The unit`s stack has been defeated and is scheduled for execution but the ; unit has the CanEscape unit type flag. Evaluated against an adjacent tile. ;unit_stack_death = "Transport Embark", ; "Conquer Extras", "Conquer Extras 2", ; "Enter Hut", "Enter Hut 2", ; "Frighten Hut", "Unit Move" ; If poison_empties_food_stock is set to TRUE a successful "Poison City" ; or "Poison City Escape" will empty the food stock. poison_empties_food_stock = FALSE ; If steal_maps_reveals_all_cities is set to TRUE a successful "Steal Maps" ; or "Steal Maps Escape" will transfer the map for all tiles containing a ; city. steal_maps_reveals_all_cities = FALSE ; The maximum distance from the actor unit to the target of the ; "Help Wonder" action. The value 0 means that the target`s tile must be the ; tile of the actor unit. The value 1 means that the city must be on a tile ; adjacent to the actor unit. The special value "unlimited" lifts the ; maximum distance restriction. The maximum distance can`t be smaller than ; the minimum distance. help_wonder_max_range = 1 ; The maximum distance from the actor unit to the target of the ; "Disband Unit Recover" action. The value 0 means that the target`s tile must be the ; tile of the actor unit. The value 1 means that the city must be on a tile ; adjacent to the actor unit. The special value "unlimited" lifts the ; maximum distance restriction. The maximum distance can`t be smaller than ; the minimum distance. disband_unit_recover_max_range = 1 ; The maximum distance from the actor unit to the target of the "Bombard" ; action. The value 1 means that the targets must be on a tile adjacent to ; the actor unit. The special value "unlimited" lifts the maximum distance ; restriction. The maximum distance can`t be smaller than the minimum ; distance. bombard_max_range = 1 ; The maximum distance from the actor unit to the target of the "Bombard 2" ; action. The value 1 means that the targets must be on a tile adjacent to ; the actor unit. The special value "unlimited" lifts the maximum distance ; restriction. The maximum distance can`t be smaller than the minimum ; distance. bombard_2_max_range = 1 ; The maximum distance from the actor unit to the target of the "Bombard 3" ; action. The value 1 means that the targets must be on a tile adjacent to ; the actor unit. The special value "unlimited" lifts the maximum distance ; restriction. The maximum distance can`t be smaller than the minimum ; distance. bombard_3_max_range = 1 ; The minimal distance from the actor unit to the target. The value 0 means ; that the target must be at the tile of the actor unit. The value 1 means ; that the tile must be a tile adjacent to the actor unit. explode_nuclear_min_range = 0 ; The maximum distance from the actor unit to the target of the ; "Explode Nuclear" action. The value 0 means that the target tile must be ; the tile of the actor unit. The value 1 means that the tile must be a tile ; adjacent to the actor unit. The special value "unlimited" lifts the ; maximum distance restriction. The maximum distance can`t be smaller than ; the minimum distance. explode_nuclear_max_range = 0 ; Will performing this action always consume the actor unit? explode_nuclear_consuming_always = TRUE ; The minimal distance from the actor unit to the target. The value 0 means ; that the target must be at the tile of the actor unit. The value 1 means ; that the tile must be a tile adjacent to the actor unit. nuke_city_min_range = 1 ; The maximum distance from the actor unit to the target of the ; "Nuke City" action. The value 1 means that the tile must be a tile ; adjacent to the actor unit. The special value "unlimited" lifts the ; maximum distance restriction. The maximum distance can`t be smaller than ; the minimum distance. nuke_city_max_range = 1 ; Will performing this action always consume the actor unit? nuke_city_consuming_always = TRUE ; The kind of target the "Nuke City" action has. The target requirements of ; its enablers are evaluated against the target. The target owner is the one ; that gets a Casus Belli if the ruleset has a Casus Belli for this action. ; Supported values are "City" and "Tile". nuke_city_target_kind = "City" ; The minimal distance from the actor unit to the target. The value 0 means ; that the target must be at the tile of the actor unit. The value 1 means ; that the tile must be a tile adjacent to the actor unit. nuke_units_min_range = 1 ; The maximum distance from the actor unit to the target of the ; "Nuke Units" action. The value 1 means that the tile must be a tile ; adjacent to the actor unit. The special value "unlimited" lifts the ; maximum distance restriction. The maximum distance can`t be smaller than ; the minimum distance. nuke_units_max_range = 1 ; Will performing this action always consume the actor unit? nuke_units_consuming_always = TRUE ; The maximum distance from the actor unit to the target of the "Airlift Unit" ; action. The value 1 means that the targets must be on a tile adjacent to ; the actor unit. The special value "unlimited" lifts the maximum distance ; restriction. The maximum distance can`t be smaller than the minimum ; distance. airlift_max_range = "unlimited" ; Will performing this action always consume the actor unit? found_city_consuming_always = TRUE ; What each action should be called when showing them to the player. ; The first %s should be before the mnemonic of the action. A Freeciv client ; that supports mnemonics will replace it with the in-band signal that marks ; the following character as a mnemonic in its graphical toolkit. ; The second %s marks where extra details should be inserted. ; /* TRANS: _Poison City (3% chance of success). */ ui_name_poison_city_escape = _("%sPoison City%s") ; /* TRANS: S_abotage Enemy Unit (3% chance of success). */ ui_name_sabotage_unit_escape = _("%sSabotage Enemy Unit%s") ; /* TRANS: Bribe Enemy _Unit (3% chance of success). */ ui_name_bribe_unit = _("Bribe Enemy %sUnit%s") ; /* TRANS: _Sabotage City (3% chance of success). */ ui_name_sabotage_city = _("%sSabotage City%s") ; /* TRANS: _Sabotage City Escape (3% chance of success). */ ui_name_sabotage_city_escape = _("%sSabotage City Escape%s") ; /* TRANS: Industrial _Sabotage (3% chance of success). */ ui_name_targeted_sabotage_city_escape = _("Industrial %sSabotage%s") ; /* TRANS: Industrial _Sabotage Production (3% chance of success). */ ui_name_sabotage_city_production_escape = _("Industrial %sSabotage Production%s") ; /* TRANS: Incite a Re_volt (3% chance of success). */ ui_name_incite_city = _("Incite a Re%svolt%s") ; /* TRANS: Incite a _Revolt and Escape (3% chance of success). */ ui_name_incite_city_escape = _("Incite a Re%svolt and Escape%s") ; /* TRANS: Establish _Embassy (100% chance of success). */ ui_name_establish_embassy = _("Establish %sEmbassy%s") ; /* TRANS: Becom_e Ambassador (100% chance of success). */ ui_name_establish_embassy_stay = _("Becom%se Ambassador%s") ; /* TRANS: Steal _Technology (3% chance of success). */ ui_name_steal_tech = _("Steal %sTechnology%s") ; /* TRANS: Steal _Technology and Escape (3% chance of success). */ ui_name_steal_tech_escape = _("Steal %sTechnology and Escape%s") ; /* TRANS: Indus_trial Espionage (3% chance of success). */ ui_name_targeted_steal_tech_escape = _("Indus%strial Espionage%s") ; /* TRANS: _Investigate City (100% chance of success). */ ui_name_investigate_city = _("%sInvestigate City%s") ; /* TRANS: _Investigate City (spends the unit) (100% chance of success). */ ui_name_investigate_city_spend_unit = _("%sInvestigate City (spends the unit)%s") ; /* TRANS: Establish Trade _Route (100% chance of success). */ ui_name_establish_trade_route = _("Establish Trade %sRoute%s") ; /* TRANS: Dis_band recovering production (100% chance of success). */ ui_name_disband_unit_recover = _("Dis%sband recovering production%s") ; /* TRANS: Dis_band without recovering production (100% chance of success). */ ui_name_disband_unit = _("Dis%sband without recovering production%s") ; /* TRANS: _Build City (100% chance of success). */ ui_name_found_city = _("%sBuild City%s") ; /* TRANS: _Add to City (100% chance of success). */ ui_name_join_city = _("%sAdd to City%s") ; /* TRANS: Explode _Nuclear In Place (100% chance of success). */ ui_name_explode_nuclear = _("Explode %sNuclear In Place%s") ; /* TRANS: _Nuke City (100% chance of success). */ ui_name_nuke_city = _("%sNuke City%s") ; /* TRANS: _Nuke Units (100% chance of success). */ ui_name_nuke_units = _("%sNuke Units%s") ; /* TRANS: Set _Home City (100% chance of success). */ ui_name_home_city = _("Set %sHome City%s") ; /* TRANS: _Upgrade Unit (100% chance of success). */ ui_name_upgrade_unit = _("%sUpgrade Unit%s") ; /* TRANS: Drop _Paratrooper (100% chance of success). */ ui_name_paradrop_unit_enter = _("Drop %sParatrooper%s") ; /* TRANS: _Paradrop to Contested Landing (100% chance of success). */ ui_name_paradrop_unit_enter_conquer = _("%sParadrop to Contested Landing%s") ; /* TRANS: _Airlift to City (100% chance of success). */ ui_name_airlift_unit = _("%sAirlift to City%s") ; /* TRANS: _Attack (100% chance of success). */ ui_name_attack = _("%sAttack%s") ; /* TRANS: _Explode Missile (100% chance of success). */ ui_name_suicide_attack = _("%sExplode Missile%s") ; /* TRANS: _Conquer City (100% chance of success). */ ui_name_conquer_city = _("%sConquer City%s") ; /* TRANS: _Conquer City from non native (100% chance of success). */ ui_name_conquer_city_2 = _("%sConquer City from non native%s") ; /* TRANS: _Conquer Fortress (100% chance of success). */ ui_name_conquer_extras = _("%sConquer Fortress%s") ; /* TRANS: _Conquer Fortress from non native (100% chance of success). */ ui_name_conquer_extras_2 = _("%sConquer Fortress from non native%s") ; /* TRANS: _Transform Terrain (3% chance of success). */ ui_name_transform_terrain = _("%sTransform Terrain%s") ; /* TRANS: Transform by _Cultivating (3% chance of success). */ ui_name_cultivate = _("Transform by %sCultivating%s") ; /* TRANS: Transform by _Planting (3% chance of success). */ ui_name_plant = _("Transform by %sPlanting%s") ; /* TRANS: Pilla_ge (100% chance of success). */ ui_name_pillage = _("Pilla%sge%s") ; /* TRANS: Clean _Pollution (100% chance of success). */ ui_name_clean_pollution = _("Clean %sPollution%s") ; /* TRANS: Clean _Fallout (100% chance of success). */ ui_name_clean_fallout = _("Clean %sFallout%s") ; /* TRANS: _Fortify (100% chance of success). */ ui_name_fortify = _("%sFortify%s") ; /* TRANS: Build _Road (100% chance of success). */ ui_name_road = _("Build %sRoad%s") ; /* TRANS: _Build Base (100% chance of success). */ ui_name_build_base = _("%sBuild Base%s") ; /* TRANS: Build _Mine (100% chance of success). */ ui_name_build_mine = _("Build %sMine%s") ; /* TRANS: Build _Irrigation (100% chance of success). */ ui_name_irrigate = _("Build %sIrrigation%s") ; /* TRANS: _Deboard (100% chance of success). */ ui_name_transport_alight = _("%sDeboard%s") ; /* TRANS: _Board (100% chance of success). */ ui_name_transport_board = _("%sBoard%s") ; /* TRANS: _Unload (100% chance of success). */ ui_name_transport_unload = _("%sUnload%s") ; /* TRANS: _Disembark (100% chance of success). */ ui_name_transport_disembark = _("%sDisembark%s") ; /* TRANS: _Embark (100% chance of success). */ ui_name_transport_embark = _("%sEmbark%s") ; /* TRANS: Enter _Hut (100% chance of success). */ ui_name_enter_hut = _("Enter %sHut%s") ; /* TRANS: Enter _Hut from non native (100% chance of success). */ ui_name_enter_hut_2 = _("Enter %sHut from non native%s") ; /* TRANS: Frighten _Hut (100% chance of success). */ ui_name_frighten_hut = _("Frighten %sHut%s") ; /* TRANS: Frighten _Hut from non native (100% chance of success). */ ui_name_frighten_hut_2 = _("Frighten %sHut from non native%s") ; /* TRANS: Regular _Move (100% chance of success). */ ui_name_unit_move = _("%sKeep moving%s") ; Blank ruleset defined user actions. ; See the section "Ruleset defined actions" in doc/README.actions ; Example: set up "User Action 1" ;ui_name_user_action_1 = _("%sDisrupt Supply Lines%s") ;user_action_1_target_kind = "Unit" ;user_action_1_min_range = 1 ;user_action_1_max_range = 3 ;user_action_1_actor_consuming_always = FALSE ; Some actions have a action dice roll before the action starts where it can ; fail. The initial probability of success is 100% unless the action appears ; in the following list. Then the initial probability comes from the setting ; diplchance. The initial probability of success is modified by the ; Action_Odds_Pct effect before the roll happens. diplchance_initial_odds = "Sabotage City", "Sabotage City Escape", "Targeted Sabotage City Escape", "Sabotage City Production Escape", "Steal Tech", "Steal Tech Escape Expected", "Targeted Steal Tech Escape Expected", "Incite City", "Incite City Escape" ; Suppress automatic help text generation about what enables and/or ; disables the following actions. ; ; Can make the help text less redundant when you document it your self. ; "Transport Disembark 2" is "Transport Disembark" but from a non native ; tile. "Conquer City 2" has the same relation to "Conquer City". So is ; "Enter Hut 2" for "Enter Hut", "Frighten Hut 2" for "Frighten Hut" and ; "Conquer Extras" for "Conquer Extras 2". ; The version from the non native tile and the native tile version won`t ; appear in the same action selection dialog given their opposite ; requirements. Avoid double entries in the auto help by silencing it. quiet_actions = "Transport Disembark 2", "Conquer City 2", "Enter Hut 2", "Frighten Hut 2", "Conquer Extras 2", "Unit Move" ; /* <-- avoid gettext warnings ; ; Action enablers: ; ; action = the action to enable. ; actor_reqs = requirements that apply to the actor. ; target_reqs = requirements that apply to the target. ; ; README.actions lists the possible actions and their hard coded ; requirements. ; ; An action enabler is active when its actor_reqs AND its target_reqs are ; satisfied. ; ; */ <-- avoid gettext warnings [actionenabler_sabotage_city] action = "Sabotage City" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "UnitFlag", "Spy", "Local", FALSE "DiplRel", "War", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE } [actionenabler_sabotage_city_spy] action = "Sabotage City Escape" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "DiplRel", "War", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } [actionenabler_sabotage_city_target] action = "Targeted Sabotage City Escape" actor_reqs = { "type", "name", "range" "DiplRel", "War", "Local" "UnitFlag", "Spy", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } [actionenabler_sabotage_city_production] action = "Sabotage City Production Escape" actor_reqs = { "type", "name", "range" "DiplRel", "War", "Local" "UnitFlag", "Spy", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } [actionenabler_establish_embassy] action = "Establish Embassy Stay" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE "DiplRel", "Has real embassy", "Local", FALSE "UnitFlag", "Spy", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "NationGroup", "Barbarian", "Player", FALSE } [actionenabler_establish_embassy_spy] action = "Establish Embassy" target_reqs = { "type", "name", "range", "present" "NationGroup", "Barbarian", "Player", FALSE } actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Spy", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE "DiplRel", "Has real embassy", "Local", FALSE } [actionenabler_investigate_city] action = "Investigate City Spend Unit" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE "UnitFlag", "Spy", "Local", FALSE } [actionenabler_investigate_city_spy] action = "Investigate City" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" "DiplRel", "Foreign", "Local" } [actionenabler_poison_city] action = "Poison City Escape" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "DiplRel", "War", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } target_reqs = { "type", "name", "range" "MinSize", "2", "City" } [actionenabler_steal_tech_random] action = "Steal Tech" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "UnitFlag", "Spy", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE } target_reqs = { "type", "name", "range", "present" "NationGroup", "Barbarian", "Player", FALSE } [actionenabler_steal_tech_random_esc] action = "Steal Tech Escape Expected" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" "DiplRel", "Foreign", "Local" } target_reqs = { "type", "name", "range", "present" "NationGroup", "Barbarian", "Player", FALSE } [actionenabler_steal_tech_target] action = "Targeted Steal Tech Escape Expected" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" "DiplRel", "Foreign", "Local" } target_reqs = { "type", "name", "range", "present" "NationGroup", "Barbarian", "Player", FALSE } [actionenabler_incite_city] action = "Incite City" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "DiplRel", "Alliance", "Local", FALSE "DiplRel", "Team", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE "UnitFlag", "Spy", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "Gov", "Democracy", "Player", FALSE "Building", "Palace", "City", FALSE } [actionenabler_incite_city_spy] action = "Incite City Escape" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Spy", "Local", TRUE "DiplRel", "Alliance", "Local", FALSE "DiplRel", "Team", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", TRUE } target_reqs = { "type", "name", "range", "present" "Gov", "Democracy", "Player", FALSE "Building", "Palace", "City", FALSE } [actionenabler_bribe_unit] action = "Bribe Unit" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Diplomat", "Local", TRUE "DiplRel", "Alliance", "Local", FALSE "DiplRel", "Team", "Local", FALSE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local" } target_reqs = { "type", "name", "range", "present" "UnitType", "Barbarian Leader", "Local", FALSE "CityTile", "Center", "Local", FALSE "Gov", "Democracy", "Player", FALSE "MaxUnitsOnTile", "1", "Local", TRUE } [actionenabler_sabotage_unit] action = "Sabotage Unit Escape" actor_reqs = { "type", "name", "range" "UnitFlag", "Spy", "Local" "DiplRel", "War", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } target_reqs = { "type", "name", "range", "present" "CityTile", "Center", "Local", FALSE "MinHitPoints", "2", "Local", TRUE "MaxUnitsOnTile", "1", "Local", TRUE } [actionenabler_traderoute] action = "Establish Trade Route" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "TradeRoute", "Local", TRUE "UnitState", "HasHomeCity", "Local", TRUE } [actionenabler_disband_unit_recover] action = "Disband Unit Recover" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "EvacuateFirst", "Local", FALSE } [actionenabler_disband_unit] action = "Disband Unit" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "EvacuateFirst", "Local", FALSE "DiplRel", "War", "Local", FALSE "DiplRel", "Cease-fire", "Local", FALSE "DiplRel", "Armistice", "Local", FALSE "DiplRel", "Peace", "Local", FALSE } [actionenabler_build_city_pioneer] action = "Found City" actor_reqs = { "type", "name", "range" "UnitFlag", "Cities", "Local" "UnitState", "OnLivableTile", "Local" "MinMoveFrags", "1", "Local" } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", FALSE "TerrainFlag", "NoCities", "Local", FALSE } [actionenabler_build_city_domestic] action = "Found City" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Cities", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Foreign", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", TRUE "TerrainFlag", "NoCities", "Local", FALSE } [actionenabler_join_city] action = "Join City" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "AddToCity", "Local", TRUE "DiplRel", "Foreign", "Local", FALSE "MinMoveFrags", "1", "Local", TRUE } [actionenabler_nuke] action = "Explode Nuclear" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Nuclear", "Local", TRUE } [actionenabler_nuke_city] action = "Nuke City" actor_reqs = { "type", "name", "range" "UnitFlag", "Nuclear", "Local" "MinMoveFrags", "1", "Local" "DiplRel", "War", "Local" } [actionenabler_nuke_units] action = "Nuke Units" actor_reqs = { "type", "name", "range" "UnitFlag", "Nuclear", "Local" "MinMoveFrags", "1", "Local" "DiplRel", "War", "Local" } target_reqs = { "type", "name", "range", "present" "CityTile", "Center", "Local", FALSE } [actionenabler_attack_from_native] action = "Attack" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "Missile", "Local", FALSE "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", TRUE "DiplRel", "War", "Local", TRUE } [actionenabler_attack_marines] action = "Attack" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "Missile", "Local", FALSE "MinMoveFrags", "1", "Local", TRUE "UnitFlag", "Marines", "Local", TRUE "DiplRel", "War", "Local", TRUE } [actionenabler_attack_att_from_non_native] action = "Attack" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "Missile", "Local", FALSE "MinMoveFrags", "1", "Local", TRUE "UnitClassFlag", "AttFromNonNative", "Local", TRUE "DiplRel", "War", "Local", TRUE } [actionenabler_explode_missile] action = "Suicide Attack" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "Missile", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "DiplRel", "War", "Local", TRUE } [actionenabler_conquer_city_native] action = "Conquer City" actor_reqs = { "type", "name", "range", "present" "UnitClassFlag", "CanOccupyCity", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "DiplRel", "War", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnLivableTile", "Local", TRUE } target_reqs = { "type", "name", "range", "present" "MaxUnitsOnTile", "0", "Local", TRUE } [actionenabler_conquer_city_marines] action = "Conquer City" actor_reqs = { "type", "name", "range", "present" "UnitClassFlag", "CanOccupyCity", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "DiplRel", "War", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "UnitFlag", "Marines", "Local", TRUE } target_reqs = { "type", "name", "range", "present" "MaxUnitsOnTile", "0", "Local", TRUE } [actionenabler_change_home_city] action = "Home City" actor_reqs = { "type", "name", "range", "present" "DiplRel", "Foreign", "Local", FALSE "UnitState", "HasHomeCity", "Local", TRUE "UnitFlag", "NoHome", "Local", FALSE } [actionenabler_paradrop_base_to_claimed] action = "Paradrop Unit Enter" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "Extra", "Airbase", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "DiplRel", "Peace", "Local", FALSE "DiplRel", "War", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", TRUE } [actionenabler_paradrop_base_to_unclaimed] action = "Paradrop Unit Enter" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "Extra", "Airbase", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", FALSE "Extra", "Fortress", "Local", FALSE } [actionenabler_paradrop_base_to_war_conquer] action = "Paradrop Unit Enter Conquer" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "Extra", "Airbase", "Local", TRUE "DiplRel", "War", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "CanOccupyCity", "Local", TRUE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", TRUE } [actionenabler_paradrop_base_to_unclaimed_base] action = "Paradrop Unit Enter Conquer" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "Extra", "Airbase", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "CanOccupyCity", "Local", TRUE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", FALSE "CityTile", "Center", "Local", FALSE "Extra", "Fortress","Local", TRUE } [actionenabler_paradrop_city_to_claimed] action = "Paradrop Unit Enter" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "CityTile", "Center", "Local", TRUE "DiplRel", "Peace", "Local", FALSE "DiplRel", "War", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", TRUE } [actionenabler_paradrop_city_to_unclaimed] action = "Paradrop Unit Enter" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "CityTile", "Center", "Local", TRUE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", FALSE "Extra", "Fortress","Local", FALSE } [actionenabler_paradrop_city_to_war_conquer] action = "Paradrop Unit Enter Conquer" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "CityTile", "Center", "Local", TRUE "DiplRel", "War", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "CanOccupyCity", "Local", TRUE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", TRUE } [actionenabler_paradrop_city_to_unclaimed_base] action = "Paradrop Unit Enter Conquer" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Paratroopers", "Local", TRUE "MinMoveFrags", "9", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "CityTile", "Center", "Local", TRUE "UnitFlag", "NonMil", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Claimed", "Local", FALSE "CityTile", "Center", "Local", FALSE "Extra", "Fortress","Local", TRUE } [actionenabler_upgrade_unit] action = "Upgrade Unit" actor_reqs = { "type", "name", "range", "present" "DiplRel", "Foreign", "Local", FALSE } [actionenabler_airlift_unit] action = "Airlift Unit" actor_reqs = { "type", "name", "range", "present" "UnitClass", "Land", "Local", TRUE "MinMoveFrags", "1", "Local", TRUE "UnitState", "Transporting", "Local", FALSE "CityTile", "Center", "Local", TRUE } [actionenabler_transform_terrain] action = "Transform Terrain" actor_reqs = { "type", "name", "range" "UnitFlag", "Transform", "Local" "UnitFlag", "Settlers", "Local" } target_reqs = { "type", "name", "range", "present" "Terrain", "Mountains", "Local", FALSE } [actionenabler_transform_mountains] action = "Transform Terrain" actor_reqs = { "type", "name", "range" "UnitFlag", "Transform", "Local" "UnitFlag", "Settlers", "Local" "Tech", "Miniaturization", "Player" } target_reqs = { "type", "name", "range" "Terrain", "Mountains", "Local" } [actionenabler_cultivate] action = "Cultivate" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Settlers", "Local", TRUE } [actionenabler_plant] action = "Plant" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Settlers", "Local", TRUE } [actionenabler_pillage] action = "Pillage" actor_reqs = { "type", "name", "range" "UnitClassFlag", "CanPillage", "Local" } [actionenabler_clean_pollution] action = "Clean Pollution" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Settlers", "Local", TRUE } [actionenabler_clean_fallout] action = "Clean Fallout" actor_reqs = { "type", "name", "range", "present" "UnitFlag", "Settlers", "Local", TRUE } [actionenabler_fortify_terrain] action = "Fortify" actor_reqs = { "type", "name", "range", "present" "UnitClassFlag", "CanFortify", "Local", TRUE "UnitFlag", "Cant_Fortify", "Local", FALSE "TerrainFlag", "NoFortify", "Local", FALSE "Activity", "Fortified", "Local", FALSE } [actionenabler_fortify_city] action = "Fortify" actor_reqs = { "type", "name", "range", "present" "UnitClassFlag", "CanFortify", "Local", TRUE "UnitFlag", "Cant_Fortify", "Local", FALSE "CityTile", "Center", "Local", TRUE "Activity", "Fortified", "Local", FALSE } [actionenabler_road] action = "Build Road" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } [actionenabler_base] action = "Build Base" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } [actionenabler_mining] action = "Build Mine" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } target_reqs = { "type", "name", "range" "TerrainAlter", "CanMine", "Local" } [actionenabler_irrigate_src_ocean] action = "Build Irrigation" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } target_reqs = { "type", "name", "range" "TerrainClass", "Oceanic", "CAdjacent" "TerrainAlter", "CanIrrigate", "Local" } [actionenabler_irrigate_src_river] action = "Build Irrigation" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } target_reqs = { "type", "name", "range" "Extra", "River", "CAdjacent" "TerrainAlter", "CanIrrigate", "Local" } [actionenabler_irrigate_src_irrigation] action = "Build Irrigation" actor_reqs = { "type", "name", "range" "UnitFlag", "Settlers", "Local" } target_reqs = { "type", "name", "range" "Extra", "Irrigation", "CAdjacent" "TerrainAlter", "CanIrrigate", "Local" } [actionenabler_alight] action = "Transport Alight" actor_reqs = { "type", "name", "range" "UnitState", "OnLivableTile", "Local" "UnitState", "Transported", "Local" } target_reqs = { "type", "name", "range" "UnitState", "Transporting", "Local" } [actionenabler_board] action = "Transport Board" actor_reqs = { "type", "name", "range", "present" "DiplRel", "Armistice", "Local", FALSE "DiplRel", "War", "Local", FALSE "DiplRel", "Cease-fire", "Local", FALSE "DiplRel", "Peace", "Local", FALSE "DiplRel", "Never met", "Local", FALSE } [actionenabler_unload] action = "Transport Unload" actor_reqs = { "type", "name", "range" "UnitState", "Transporting", "Local" } target_reqs = { "type", "name", "range" "UnitState", "OnLivableTile", "Local" "UnitState", "Transported", "Local" } [actionenabler_disembark] action = "Transport Disembark" actor_reqs = { "type", "name", "range" "UnitState", "Transported", "Local" "MinMoveFrags", "1", "Local" } [actionenabler_embark] action = "Transport Embark" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "DiplRel", "Armistice", "Local", FALSE "DiplRel", "War", "Local", FALSE "DiplRel", "Cease-fire", "Local", FALSE "DiplRel", "Peace", "Local", FALSE "DiplRel", "Never met", "Local", FALSE } [actionenabler_regular_move] action = "Unit Move" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "Transported", "Local", FALSE } [actionenabler_hut_enter_from_native_tile] action = "Enter Hut" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", TRUE "UnitClassFlag", "HutFrighten", "Local", FALSE } [actionenabler_hut_enter_from_non_native] action = "Enter Hut 2" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", FALSE } [actionenabler_hut_from_native_tile] action = "Frighten Hut" actor_reqs = { "type", "name", "range" "MinMoveFrags", "1", "Local" "UnitState", "OnNativeTile", "Local" "UnitClassFlag", "HutFrighten", "Local" } [actionenabler_hut_from_non_native] action = "Frighten Hut 2" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", FALSE "UnitClassFlag", "HutFrighten", "Local", TRUE } [actionenabler_claim_extra_war_from_native_tile] action = "Conquer Extras" actor_reqs = { "type", "name", "range" "MinMoveFrags", "1", "Local" "DiplRel", "War", "Local" "UnitState", "OnNativeTile", "Local" } [actionenabler_claim_extra_war_from_non_native] action = "Conquer Extras 2" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "DiplRel", "War", "Local", TRUE "UnitState", "OnNativeTile", "Local", FALSE } [actionenabler_claim_extra_unowned_from_native_tile] action = "Conquer Extras" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", TRUE } target_reqs = { "type", "name", "range", "present" "CityTile", "Extras Owned", "Local", FALSE } [actionenabler_claim_extra_unowned_from_non_native] action = "Conquer Extras 2" actor_reqs = { "type", "name", "range", "present" "MinMoveFrags", "1", "Local", TRUE "UnitState", "OnNativeTile", "Local", FALSE } target_reqs = { "type", "name", "range", "present" "CityTile", "Extras Owned", "Local", FALSE } [borders] ; Base border radius from city. radius_sq_city = 10 ; Border radius square increased by this amount / point of city size size_effect = 1 ; Difference between city workable area and area permanently claimed by ; city (these tiles cannot be stolen by stronger border sources). ; 0 means exactly city workable area is immune to border stealing. ; Negative value means outer workable tiles can be stolen; highly negative ; value (more than max city radius_sq) means any workable tile can be stolen. ; If City_Radius_Sq is variable, so is the set of locked tiles; this is ; a squared value, so the radius of the ring of tiles which are workable ; but not locked (or vice versa) varies but the area is constant. radius_sq_city_permanent = 0 [research] ; Method of calculating technology costs ; "Civ I|II" - Civ (I|II) style. Every new tech add base_tech_cost to ; cost of next tech. ; "Classic" - Cost of technology is: ; base_tech_cost * (1 + reqs) * sqrt(1 + reqs) / 2 ; where reqs == number of requirement for tech, counted ; recursively. ; "Classic+" - Cost are read from tech.ruleset. Missing costs are ; generated by style "Classic". ; "Experimental" - Cost of technology is: ; base_tech_cost * (reqs^2 / (1 + sqrt(sqrt(reqs + 1))) ; - 0.5) ; where reqs == number of requirement for tech, counted ; recursively. Initial techs` cost will be base_tech_cost. ; "Experimental+" - Cost are read from tech.ruleset. Missing costs are ; generated by style "Experimental". ; "Linear" - Cost of technology is: ; base_tech_cost * reqs ; where reqs == number of requirement for tech, counted ; recursively. tech_cost_style = "Experimental" ; Base research cost. Used in tech cost styles where tech cost is generated. ; In other words: used everywhere unless the cost of *all* techs are ; specified and the tech cost style is "Experimental+" or "Classic+". base_tech_cost = 20 ; Technology leak from other civilizations ; "None" - No reduction of the technology cost. ; "Embassies" - Technology cost is reduced depending on the number of ; players which already know the tech and you have an ; embassy with. ; "All Players" - Technology cost is reduced depending on the number of ; all players (human, AI and barbarians) which already ; know the tech. ; "Normal Players" - Technology cost is reduced depending on the number of ; normal players (human and AI) which already know the ; tech. tech_leakage = "None" ; Method of paying tech upkeep ; "None" - no upkeep ; "Basic" - upkeep is calculated as: ; / tech_upkeep_divider - tech_upkeep_free ; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities tech_upkeep_style = "None" ; upkeep cost is divided by this value tech_upkeep_divider = 2000 ; 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" [culture] ; Minimum culture points for cultural domination victory victory_min_points = 1000000 ; Lead needed relative to second best player victory_lead_pct = 25 ; How much existing history grows each turn. This makes older history ; of the same original value more valuable as newer history, as it has ; gained more interest. history_interest_pml = 0 ; How much each culture point affects the migration ; from/to the city. Each culture point count as this many permilles ; of a migration point. migration_pml = 10 [calendar] ; Year in the beginning of the game start_year = -4000 ; Year 1 instead of 0. skip_year_0 = TRUE ; How many fragments each year has. In addition to this, "Turn_Fragments" effects are ; needed to control fragment accumulation. ; Value 0 here disables year advancement by fragment accumulation. fragments = 0 ; Calendar fragment names. If name is missing, only a fragment number +1 (so human readable ; numbers begin from 1 and not 0) is shown. ;fragment_name0 = _("Jan") ;fragment_name1 = _("Feb") ; ... ; What labels are used for positive and negative years. ; /* TRANS: year label (Common Era) */ positive_label = _("AD") 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 ; - "ReducePopDestroy" = Reduce city size by one, possibly destroying the city ; - "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 ; No disasters ; /* <-- avoid gettext warnings ; ; Achievement types: ; ; name = translatable name as seen by user ; rule_name = (optional) internal name for savegames, rulesets ; etc; if not present, "name" is used for this ; purpose too. Since the name used in savegames must ; not change, if you want to rename an item after a ; ruleset has been released, you should set ; "rule_name" to the original value of "name". ; type = What event grants the achievement to player. ; See README.achievements for list of these types. ; unique = If TRUE, only first one reaching the achievement will ; get it. Defaults to TRUE. ; value = Value to reach. Exact meaning of this depends on ; achievement type. ; culture = Amount of culture granted to player who gets achievement ; granted. ; first_msg = Message shown to first player gaining the achievement ; cons_msg = Message shown to consecutive players gaining the achievement ; ; */ <-- avoid gettext warnings [achievement_map_5pct] name = _("Map Known 5 pct") type = "Map_Known" value = 5 ; /* xgettext:no-c-format */ first_msg = _("You're the first one to have 5% of the world mapped!") [achievement_map_20pct] name = _("Map Known 20 pct") type = "Map_Known" value = 20 ; /* xgettext:no-c-format */ first_msg = _("You're the first one to have 20% of the world mapped!") [achievement_map_entire] name = _("Entire Map Known") type = "Map_Known" value = 100 first_msg = _("You're the first one to have entire world mapped!") ; ; 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 ; "bonus" - One-time bonuses granted when traderoute established ; "None" - No one-time bonus ; "Gold" - Bonus to gold ; "Science" - Bonus to research ; "Both" - Bonus to gold and research ; [trade] settings = { "type", "pct", "cancelling", "bonus" "National", 75, "Cancel", "Gold" "NationalIC", 100, "Cancel", "Gold" "IN", 225, "Cancel", "Gold" "INIC", 300, "Cancel", "Gold" "Ally", 225, "Cancel", "Gold" "AllyIC", 300, "Cancel", "Gold" "Enemy", 100, "Cancel", "Gold" "EnemyIC", 150, "Cancel", "Gold" "Team", 225, "Cancel", "Gold" "TeamIC", 300, "Cancel", "Gold" } ; Minimum trade a trade route produces, as long as the good has nonzero income ; for the relevant direction (from_pct / to_pct) min_trade_route_val = 0 ; When are goods for the trade route chosen. ; "Leaving" - Goods to carry are assigned to unit when it`s built, or it changes homecity ; "Arrival" - Goods are chosen when trade route is established, when unit arrives to destination goods_selection = "Arrival" ; /* <-- avoid gettext warnings ; ; Goods types: ; ; name = translatable name as seen by user ; rule_name = (optional) internal name for savegames, rulesets ; etc; if not present, "name" is used for this ; purpose too. Since the name used in savegames must ; not change, if you want to rename an item after a ; ruleset has been released, you should set ; "rule_name" to the original value of "name". ; reqs = requirements for a city to provide goods (see effects.ruleset ; and README.effects for help on requirements) ; from_pct = Income for the sending end of the trade route. Default is 100% ; This value is applied to both ends of bidirectional routes. ; to_pct = Income for the receiving end of the trade route. Default is 100% ; This value is not used at all in case of bidirectional routes. ; onetime_pct = Onetime bonuses when traderoute is established. Default is 100% ; flags ; - "Bidirectional" = Trade route carrying the goods does not have "from" and "to" ; ends, but both ends are considered the same. ; - "Depletes" = Trade route gets cancelled when the source city cannot provide ; goods any more. Bidirectional routes gets cancelled if either ; one of the involved cities cannot provide goods. ; helptext = Optional help text string; should escape all raw ; newlines so that xgettext parsing works ; ; */ <-- avoid gettext warnings [goods_good] name = _("Goods") ; /* <-- avoid gettext warnings ; ; Clause types ; ; Clause types that are not listed here, are not enabled at all. ; ; type = Type of the clause, one of "Advance", "Gold", "Map", "Seamap", ; "City", "Ceasefire", "Peace", "Alliance", "Vision", "Embassy" ; giver_reqs = requirements that the giving side of the clause needs to fulfill ; (see effects.ruleset and README.effects for help on requirements) ; receiver_reqs = requirements that the receiving side of the clause needs to fulfill ; ; */ <-- avoid gettext warnings [clause_advance] type = "Advance" [clause_gold] type = "Gold" [clause_map] type = "Map" [clause_seamap] type = "Seamap" [clause_city] type = "City" [clause_ceasefire] type = "Ceasefire" [clause_peace] type = "Peace" [clause_alliance] type = "Alliance" [clause_vision] type = "Vision" [clause_embassy] type = "Embassy" [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. ; ; names = ; _("Team 1"), ; _("Team 2"), ; _("Team 3"), ; _("Team 4"), ; etc... [settings] ; freeciv game settings for the variant2 ruleset ; set = { "name", "value", "lock" "huts", 0, TRUE "mapsize", "player" "tilesperplayer", 225 "topology", "WRAPX|WRAPY|ISO|HEX" "separatepoles", "enabled" "landmass", 35 "steepness", 20 "wetness", 70 "specials", 110 "aifill", 18 "startunits", "ccwd" "gold", 20 "techlevel", 0 "sciencebox", 475 "diplbulbcost", 30 "diplgoldcost", 0 "conquercost", 30 "foodbox", 135 "citymindist", 4 "rapturedelay", 5 "happyborders", "DISABLED" "barbarians", "FREQUENT" "onsetbarbs", 50 "diplchance", 55 "civilwarsize", 15 "contactturns", 10 "allowtake", "Hhd" "endturn", 10000 "turnblock", "enabled" "saveturns", 1 "compress", 9 "savename", "variant2" "savefrequency", 60 "autosaves", "TURN|TIMER|INTERRUPT|GAMEOVER|QUITIDLE" "scorelog", "enabled" "migration", "enabled" "mgr_distance", 6 "mgr_nationchance", 30 "mgr_worldchance", 30 "ec_turns", 3 "nationset", "all" "foggedborders", "enabled" "restrictinfra", "enabled" "revolentype", "RANDQUICK" "revolen", 7 "victories", "SPACERACE|ALLIED|CULTURE" "generator", "random" }