Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. *Read more...*

Feature #822933 ยป 0055-Copy-stub-ruleset-as-granularity-ruleset.patch

Marko Lindqvist, 2019-06-23 07:36 AM

View differences:

data/granularity.serv
# Server commands for Freeciv stub ruleset
#
set barbarians DISABLED
rulesetdir granularity
data/granularity/buildings.ruleset
; This is minimal buildings ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> buildings data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
; /* <-- avoid gettext warnings
;
; Below: The individual buildings, one per section.
; (Buildings = City Improvements and Wonders)
;
; The actual tag used (the * in [building_*]) does not matter, except
; it must be unique within this file, and it may be used in debug
; output when reading this file.
;
; Notes:
;
; 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".
; genus = genus; one of:
; "GreatWonder", "SmallWonder", "Improvement", "Special".
; reqs = requirements to build the building (see effects.ruleset
; and README.effects for help on requirements)
; graphic = icon of improvement (used in city dialog)
; graphic_alt = alternate icon of improvement
; obsolete_by = requirements for the building to become obsolete
; build_cost = production shields required to build
; upkeep = monetary upkeep value
; sabotage = percent chance of diplomat sabotage being successful
; flags = special flag strings
;
; ** Building flags **
; "VisibleByOthers" = Anyone who can see your city knows whether it has
; this improvement. (Great and small wonders are
; always visible.)
; "SaveSmallWonder" = If you lose the city with this building in, and the
; "savepalace" server setting is enabled, another will
; be built for free in a random city.
; Should only be used with genus "SmallWonder".
; "Gold" = Not a real building; production turned into gold
; indefinitely (capitalization/coinage).
; Genus should be "Special".
; "DisasterProof" = Disasters never destroy this building. Is meaningful
; only for genus "Improvement" buildings as others are
; automatically disaster proof.
;
; */ <-- avoid gettext warnings
[building_generic]
name = _("Generic")
genus = "Improvement"
reqs =
{ "type", "name", "range"
; No requirements
}
graphic = "b.barracks"
graphic_alt = "-"
obsolete_by =
{ "type", "name", "range"
}
build_cost = 100
upkeep = 0
sabotage = 100
sound = "b_barracks"
sound_alt = "b_generic"
helptext = _("\
This is the only building you can build.\
")
data/granularity/cities.ruleset
; This is minimal cities ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> cities data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
; /* <-- avoid gettext warnings
;
; A specialist is a city citizen who is not a tile worker. Usually the
; player can control what specialist each citizen is, so long as the
; requirements for that specialist are met.
;
; Below are the entries for the specialists, one per specialist type.
; The tag name (in [specialist_*]) doesn't matter so long as it's unique.
; For each specialist the following fields may be set:
;
;
; name = translatable (plural) 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".
; short_name = one-character "short name" used (for instance) in cityrep;
; should be first character/abbrevation of "name"
; graphic = tag specifying preferred graphic
; Different images based on citizen number are supported.
; If no such images indexed with citizen number are found,
; plain tag is used instead.
; graphic_alt = fallback graphic tag in case the specialist graphic isn't
; found.
; reqs = requirements to have the specialist pick (see
; effects.ruleset and README.effects for help on requirements)
; helptext = optional help text string; should escape all raw newlines
; so that xgettext parsing works
;
; */ <-- avoid gettext warnings
[specialist_generic]
name = _("Generic")
short_name = _("?gspecialist:G")
graphic = "specialist.entertainer"
reqs =
{ "type", "name", "range"
; No requirements
}
[parameters]
add_to_size_limit = 8 ; cities >= this cannot be added to.
angry_citizens = TRUE ; set to FALSE to disable angry citizens
celebrate_size_limit = 3 ; cities >= can celebrate
changable_tax = TRUE ; set to FALSE to disallow changing of tax rates
;forced_science = 0 ; set these fields when changeable_tax is turned off
;forced_luxury = 100
;forced_gold = 0
vision_reveal_tiles = TRUE ; civ1 & 2 default FALSE
pop_report_zeroes = 1 ; Population in reports in tens
[citizen]
nationality = FALSE ; account for the nationality of the citizens
convert_speed = 50 ; base probability 50/1000 -> once every 20 turns
partisans_pct = 0 ; percentage of own nationality to inspire partisans
; if 0, original city owner information is used instead
conquest_convert_pct = 0 ; percentage which converts to the new nation
; after a city was conquered. Applied separately for each
; nationality present in the city, and number of
; converted people rounded up
[missing_unit_upkeep]
; Get rid of a unit the city is unable to pay the X upkeep of.
; X_protected - never get rid of a unit with any of the listed unit type
; flags.
; X_unit_act - have the unit perform the listed actions until success,
; death or the list ends.
; X_wipe - wipe the unit if it survived performing the actions listed
; above.
; food_protected = "EvacuateFirst"
; food_unit_act =
; food_wipe = TRUE
; gold_protected =
; gold_unit_act =
; gold_wipe = TRUE
; shield_protected = "EvacuateFirst"
; shield_unit_act = "Help Wonder", "Recycle Unit", "Disband Unit"
; shield_wipe = FALSE
data/granularity/effects.ruleset
; This is minimal effects ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> effects data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
; /* <-- avoid gettext warnings
;
; Effects
;
; type = What the effect does. Values of multiple active effects
; of the same type get summed for the total.
; See README.effects for list of possible types
; value = Value added for the effect type when this effect is active,
; i.e., all requirements are fulfilled
; multiplier = Name of the policy that gives a multiplier for effect's value
; reqs = Requirements for the effect to be active.
; See README.effects for help on requirements
;
; */ <-- avoid gettext warnings
; Cheating AI effects are in separate file
;*include "default/ai_effects.ruleset"
; Base vision range - radius of vision is sqrt(5) = 2.24
[effect_city_vision]
type = "City_Vision_Radius_Sq"
value = 5
[effect_base_unit_upkeep]
type = "Upkeep_Factor"
value = 1
[effect_empire_size_base]
type = "Empire_Size_Base"
value = 1
[effect_empire_size_step_base]
type = "Empire_Size_Step"
value = 1
[effect_max_rates_base]
type = "Max_Rates"
value = 40
[effect_base_size]
type = "Size_Adj"
value = 1
[effect_tech_cost_base]
type = "Tech_Cost_Factor"
value = 1
; Cities can always work tiles
[effect_tile_workable]
type = "Tile_Workable"
value = 1
; each city has at least one slot to build units
[effect_city_build_slots_basic]
type = "City_Build_Slots"
value = 1
data/granularity/game.ruleset
; This is minimal game ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> game rules for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
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 = ""
[about]
; Ruleset name
name = _("Stub")
; Versioning of the ruleset
;version = ""
; 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 ruleset is meant to be used as starting point for \
real rulesets, not playable ruleset in itself.\
")
; Detailed description
; When updating this, update also desciption_file in [ruledit] section to match
; description = ""
; What capabilities ruleset provides for the scenarios.
capabilities = ""
[options]
global_init_techs=""
global_init_buildings=""
[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 = 20
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 = 750
; Barbarian leader ransom in gold
ransom_gold = 100
; Number of veteran levels lost when upgrading a unit
upgrade_veteran_loss = 0
; Number of veteran levels lost when auto-upgrading a unit
autoupgrade_veteran_loss = 0
; Whether player gets to select which terrain improvement to pillage.
pillage_select = TRUE
; Whether one can steal a tech for which prereqs are not known
tech_steal_allow_holes = TRUE
; 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 = TRUE
; 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 = 0
; How many percents each unhappy city affects chance of civil war
civil_war_bonus_unhappy = 0
; 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
[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 * 100)
; See city_incite_cost() for more details
base_incite_cost = 1000
improvement_factor = 1
unit_factor = 2
total_factor = 100
[global_unit_options]
; Shore landing style
; FALSE - normal movement
; TRUE - (default) slow invasions by removing all
; movement points from ground units moving
; from ocean tile to land
slow_invasions = TRUE
[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 = FALSE
; 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
; 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 100 means the city can never be
; destroyed completely using nuclear
nuke_pop_loss_pct = 50
; 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.
; will_never - units with this unit type flag will never auto attack.
; Not a good idea to nuke our own area.
;will_never = "Nuclear"
[actions]
; If force_trade_route is set to TRUE it is illegal for an actor unit to
; enter the marketplace of a city if it can establish a trade route to it
; in stead.
force_trade_route = FALSE
; If force_capture_units is set to TRUE it is illegal for an actor unit to
; bombard, explode nuclear or perform a regular attack against a tile if
; it can capture units on it in stead.
force_capture_units = FALSE
; If force_bombard is set to TRUE it is illegal for an actor unit to
; explode nuclear or perform a regular attack against a tile if it can
; bombard it in stead.
force_bombard = FALSE
; If force_explode_nuclear is set to TRUE it is illegal for an actor unit
; to perform a regular attack against a tile if it can do explode nuclear
; in stead.
force_explode_nuclear = FALSE
; 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
; 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
; 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.
; ui_name_xxx = _("%s%s")
; /* <-- 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
; No enabled actions
; [actionenabler_embassy]
; action = "Establish Embassy"
; 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.
;quiet_actions = "Targeted Sabotage City", "Targeted Steal Tech"
[borders]
; Base border radius from city.
radius_sq_city = 0
; Border radius square increased by this amount / point of city size
size_effect = 0
; 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 = "Classic"
; 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:
; <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"
; 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 = "Goal"
[culture]
; Minimum culture points for cultural domination victory
victory_min_points = 1000
; How big lead relative to second best player is needed for victory
victory_lead_pct = 200
; 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 = 50
[calendar]
; Year in the beginning of the game
start_year = 0
; Year 1 instead of 0.
skip_year_0 = FALSE
; 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 = _("CE")
; /* TRANS: year label (Before Common Era) */
negative_label = _("BCE")
; /* <-- 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
; [disaster_earthquake]
; name = _("Earthquake")
; frequency = 10
; effects = "DestroyBuilding"
; /* <-- 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
; No achievements
; [achievement_entire_map]
; name = "Entire Map Known"
; type = "Map_Known"
; value = 100
;
; 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", 0, "Cancel", "None"
"NationalIC", 0, "Cancel", "None"
"IN", 0, "Cancel", "None"
"INIC", 0, "Cancel", "None"
"Ally", 0, "Cancel", "None"
"AllyIC", 0, "Cancel", "None"
"Enemy", 0, "Cancel", "None"
"EnemyIC", 0, "Cancel", "None"
"Team", 0, "Cancel", "None"
"TeamIC", 0, "Cancel", "None"
}
; 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 = "Leaving"
; /* <-- 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"
;
; */ <-- avoid gettext warnings
[playercolors]
background.r = 86
background.g = 86
background.b = 86
colorlist =
{ "r", "g", "b"
255, 0, 0
}
[teams]
; freeciv optional team names definition.
;
; names =
; _("Team 1"),
; _("Team 2"),
; _("Team 3"),
; _("Team 4"),
; etc...
[settings]
set =
{ "name", "value", "lock"
"startunits", "c", TRUE
}
data/granularity/governments.ruleset
; This is minimal governments ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> governments data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
[governments]
during_revolution = "Anarchy"
; /* <-- avoid gettext warnings
;
; Below: The individual government types, one per section.
;
; The actual tag used (the * in [government_*]) does not matter, except
; it must be unique within this file, and it may be used in debug
; output when reading this file.
;
; For the "official" rulesets, the order of these sections should not
; be changed because that would break backward compatability with
; savegames. (In particular, if Fundamentalism is added to default
; ruleset, should be added at end.)
;
; Notes on fields:
;
; 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 this government (see README.effects)
; graphic = tag specifing preferred graphic
; graphic_alt = alternate graphics tag if preferred is not found;
; should be a standard tag if preferred is not;
; otherwise may be "-"
; ai_better = AI will not consider this government for use if the
; government listed here is available
; ruler_male_title = The default male ruler title for the government type.
; It's a format string where name of the ruler is marked
; by '%s'.
; Individual nations may override this by their
; own title.
; ruler_female_title = The default female ruler title for the government type.
; See above ruler_male_title.
; helptext = optional help text string; should escape all raw newlines
; so that xgettext parsing works
;
; */ <-- avoid gettext warnings
;------------------------------------------------------------------------
[government_anarchy]
name = _("Anarchy")
; No reqs
graphic = "gov.anarchy"
graphic_alt = "-"
ruler_male_title = _("Usurper %s")
ruler_female_title = _("?female:Usurper %s")
helptext = _("\
Anarchy happens between government changes.\
")
;------------------------------------------------------------------------
[government_generic]
name = _("Generic")
reqs =
{ "type", "name", "range"
; No requirements
}
graphic = "gov.despotism"
graphic_alt = "-"
ruler_male_title = _("Leader %s")
ruler_female_title = _("Leader %s")
helptext = _("\
This is the only available form of government.\
")
; /* <-- avoid gettext warnings
;
; Multipliers (aka policies)
;
; 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".
; default = default value (as presented in UI)
; start = minimum value (as presented in UI)
; stop = maximum value (as presented in UI)
; step = minimum increase/decrease (as presented in UI)
; offset = offset/factor control how UI values are turned
; factor = into effect values for use in effects.ruleset.
; effect_value = (ui_value + offset) * (factor/100)
; Optional; by default offset=0, factor=100, so
; that UI values are used as-is.
; reqs = requirements for adjusting this policy (see README.effects)
; helptext = optional help text string; should escape all raw
; newlines so that xgettext parsing works
;
; */ <-- avoid gettext warnings
data/granularity/nations.ruleset
; This is minimal nations ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> nations data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
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]
; Nationlist to add include statement for. If this entry is omitted, all the nations
; will be saved to nations.ruleset itself.
;nationlist = ""
; List of nations to embed to main nations.ruleset despite separate nationlist
; being used for other nations.
;embedded_nations = ""
[default_traits]
; Default values for the AI traits. These are used if nation specific
; value for some trait has not been used. If these default too are
; not defined, the ultimate default is 50.
; <trait>_min and <trait>_max give the range from which the trait value
; is randomly chosen for a given AI player unless 'traitdistribution'
; server setting is 'FIXED'
; <trait>_default is the exaxt trait value used when 'traitdistribution'
; is 'FIXED'. If <trait>_default has not been given, it's set to the
; midpoint between <trait>_min and <trait>_max.
; Value of trait "expansionist" defines how much AI wants to settle new territory.
;expansionist_min = 50
;expansionist_max = 50
;expansionist_default = 50
; Value of trait "trader" defines how much AI wants to establish trade routes.
;trader_min = 50
;trader_max = 50
;trader_default = 50
; Value of trait "aggressive" defines how easily AI declares war.
;aggressive_min = 50
;aggressive_max = 50
;aggressive_default = 50
; Descriptions of nation sets
; These are self-contained subsets of the available nations; one of these
; can be chosen in pregame with the "nationset" option. No nations
; outside the selected subset will be used.
; The first set defined is the one that is used by default. It is mandatory
; to have at least one, but if there is only one, it will be kept out of
; the user`s way.
; name = Translatable name of the set presented in the UI.
; rule_name = Unique persistent name; this is also visible to users as
; the value of the "nationset" server option, and presented
; in "/list nationsets". It should thus be short, in lower
; case, and not contain spaces or punctuation.
; The same saved "nationset" setting may be used for multiple
; rulesets, so if your custom ruleset has any set which
; contains all of its nations, it is useful to give it a
; rule_name of "all" so that users can specify that they
; always want the choice of all available nations by
; default.
; description = Optional short user description of this set.
[nset_full]
name=_("?nationset:Full")
rule_name="all"
; Descriptions of nation groups
; These are more cosmetic than sets; they affect the "pick nation" dialog,
; random nation selection, and possibly ruleset behaviour.
; It`s OK to not define any nation groups at all.
; name = name of the group (used adjectivally)
; hidden = TRUE to not include this group in the "pick nation" dialog
; (for instance if it's for use in a NationGroup requirement).
; Default FALSE.
; match = How much the AI will try to select a nation in the same
; group
[ngroup_generic]
name=_("?nationgroup:Generic")
match=2
[compatibility]
; Initial government for all the nations that do not
; have it explicitly defined
default_government = "Generic"
; Declare which governments etc the nations may refer to.
; If a referenced game identifier is not on these
; lists, it will cause an error, to allow typos to be spotted.
allowed_govs =
"Anarchy", "Generic"
allowed_terrains =
"Ocean", "Generic"
allowed_styles =
"Generic"
; Below: nations data loaded from ruleset files for
; all nations available. If you want to have more
; nations, just add the path to your ruleset to this list.
;
; See doc/README.nations for information on how to
; create nation rulesets, including style guidelines.
*include "granularity/nations/generic.ruleset"
; Must have a barbarian nations
*include "granularity/nations/barbarian.ruleset"
data/granularity/nations/barbarian.ruleset
[nation_barbarian]
name=_("Barbarian")
plural=_("?plural:Barbarians")
legend=_("Since the dawn of civilization, barbarians have been a threat to\
cultured peoples everywhere.")
leaders = { "name", "sex"
"Barbarian", "male"
}
flag = "barbarian"
flag_alt = "-"
style = "Generic"
init_techs=""
init_buildings=""
init_units=""
cities = "Barbaricum"
is_playable = FALSE
barbarian_type = "LandAndSea"
data/granularity/nations/generic.ruleset
[nation_generic]
name=_("People")
plural=_("?plural:People")
groups="Generic"
legend=_("This is the only nation you can select.\
")
leaders = { "name", "sex"
"Generic", "male"
}
flag = "aborigines"
flag_alt = "-"
style = "Generic"
init_techs=""
init_buildings=""
init_units=""
; civilwar_nations = ""
cities =
"Generic"
data/granularity/parser.lua
-- Freeciv - Copyright (C) 2007 - The Freeciv Project
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-- This file is for lua-functionality for parsing luadata.txt
-- of this ruleset.
data/granularity/script.lua
-- Freeciv - Copyright (C) 2007 - The Freeciv Project
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2, or (at your option)
-- any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-- This file is for lua-functionality that is specific to a given
-- ruleset. When freeciv loads a ruleset, it also loads script
-- file called 'default.lua'. The one loaded if your ruleset
-- does not provide an override is default/default.lua.
data/granularity/styles.ruleset
; 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.
[datafile]
description="Nation theme data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
; /* <-- avoid gettext warnings
;
; Nation styles
;
; 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".
;
; */ <-- avoid gettext warnings
[style_generic]
name = _("?style:Generic")
; /* <-- avoid gettext warnings
;
; City styles define the way cities are drawn
;
; 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".
; graphic = group of tiles to use, see cities spec for
; more info on city tiles
; citizens_graphic = group of citizens tiles to use, see citizens/small
; spec for more info on citizens tiles
; FIXME: this and _alt not currently used!
; reqs = requirements for this city style (see README.effects)
;
; */ <-- avoid gettext warnings
[citystyle_generic]
name = _("?citystyle:Generic")
graphic = "city.classical"
graphic_alt = "-"
citizens_graphic = "ancient"
citizens_graphic_alt = "generic"
reqs = { "type", "name", "range"
"Style", "Generic", "Player"
}
; /* <-- avoid gettext warnings
;
; Music styles
;
; Order is important. The last one for which activation requirements
; are fulfilled is the one that plays.
;
; music_peaceful = Music to play when nation in peaceful mood
; music_combat = Music to play when nation in combat mood
; reqs = requirements to activate the style (see effects.ruleset
; and README.effects for help on requirements)
;
; */ <-- avoid gettext warnings
[musicstyle_generic]
music_peaceful = "music_generic"
music_combat = "music_generic"
reqs =
{ "type", "name", "range"
}
data/granularity/techs.ruleset
; This is minimal techs ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> technology data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
[control]
; Names for custom tech flags. There can be up to 8 of these.
; name = rule name; In some circumstances user may see this
; as part of some sentences, so try to make it descriptive
; and sensible.
; helptxt = displayed in the help for advances with this flag (optional)
;flags =
; { "name", "helptxt"
; }
; /* <-- avoid gettext warnings
;
; Tech classes:
;
; First one is the default one.
; If there is none, tech classes feature is disabled
;
; 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".
; cost_pct = how much techs of the class cost compared
; to normal. Default is 100%.
;
; */ <-- avoid gettext warnings
;[techclass_default]
;name =
; /* <-- avoid gettext warnings
;
; Below: The individual advances, one per section.
; The number can be variable, up to 250.
;
; The actual tag used (the * in [advance_*]) does not matter, except
; it must be unique within this file, and it may be used in debug
; output when reading this file.
;
; Notes:
;
; 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".
; class = tech class this tech belongs to, if they have been defined.
; Default is first one defined above.
; req1, req2 = advances required before researching this one
; root_req = tech required before acquiring this tech, by any means.
; All techs with any direct or indirect dependency on this
; one will *also* have this root_req, as well as their own
; and any others they inherit.
; Giving "None" explicitly here prevents a tech from
; inheriting root_reqs in this way, and stops root_req
; inheritance through that tech.
; Specifying a tech's root_req as itself means that the tech
; can only be acquired by special means (nation's init_techs,
; scripting, etc).
; research_reqs = requirements before researching this one. Can have non
; tech requirements because it is a requirement vector.
; See doc/README.effects to learn more about requirement
; vectors.
; Requireing a tech here in stead of in req1, req2 or
; root_req is not supported yet.
; Requirements that may become fulfilled during the game
; when they weren't at the start of the game is not
; supported yet.
; flags = special flag strings
; graphic = icon for technology
; graphic_alt = alternate icon
; helptext = optional help text string (set units ruleset for examples)
; bonus_message = text seen when a player is the first to discover
; an bonus tech. Must contain '%s' to mark place of the tech
; gained.
; cost = if tech_cost_style is set to "Classic+" or "Experimental+",
; this field is read for information on how much a tech
; costs.
;
; Special values for req1 and req2 are "None" (first section below)
; and "Never" (never available). If only one tech is required,
; it should be listed as req1.
;
; As well as custom flags defined above, the following flag strings are
; possible:
;
; "Bonus_Tech" = player gets extra tech if reached first
; "Bridge" = "Settler" unit types can build roads with
; "RequiresBridge" flag over roads with
; "PreventsOtherRoads" flag (rivers)
; "Build_Airborne" = from now on can build air units (for use by AI)
; "Claim_Ocean" = Player claims ocean tiles even if they are not
; adjacent to border source
; "Claim_Ocean_Limited" = Oceanic border sources claim ocean tiles even if
; they are not adjacent to border source
;
; */ <-- avoid gettext warnings
[advance_generic]
name = _("Generic Tech");
req1 = "None"
req2 = "None"
flags = ""
graphic = "a.alphabet"
graphic_alt = "-"
helptext = _("This is the only technology you can research.");
data/granularity/terrain.ruleset
; This is minimal terrain ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> tile_type data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
[control]
; Names for custom terrain flags. There can be up to 8 of these.
; name = rule name; In some circumstances user may see this
; as part of some sentences, so try to make it descriptive
; and sensible.
; helptxt = displayed in the help for terrains with this flag (optional)
;flags =
; { "name", "helptxt"
; }
; Names for custom extra flags. There can be up to 8 of these.
; name = rule name; In some circumstances user may see this
; as part of some sentences, so try to make it descriptive
; and sensible.
; helptxt = displayed in the help for extra types with this flag
; (optional)
;extra_flags =
; { "name", "helptxt"
; }
[parameters]
; Percentage of "land" tiles required to be adjacent to an ocean tile before
; it may be "reclaimed" into a land tile (0-101; 0=anywhere, 101=nowhere)
ocean_reclaim_requirement = 30
; Percentage of "ocean" tiles required to be adjacent to a land tile before
; it may be "channeled" into an ocean tile (0-101; 0=anywhere, 101=nowhere)
land_channel_requirement = 10
; Percentage of unfrozen tiles (no "Frozen" flag) required to be adjacent
; to a frozen tile before it can thaw (0-101; 0=anywhere, default 101=nowhere)
;thaw_requirement = 101
; Percentage of frozen tiles ("Frozen" flag) required to be adjacent to an
; unfrozen tile before it can freeze (0-101; 0=anywhere, default 101=nowhere)
;freeze_requirement = 101
; Bodies of water up to this size are considered freshwater lakes, if there is
; also terrain type(s) with flag "FreshWater" in the ruleset.
lake_max_size = 0
; How many native tiles first startunit must be able to reach.
; 0 to disable check.
min_start_native_area = 0
; How many fragments each movement point has.
; For example road movement costs are relative to this.
move_fragments = 1
; How many move_fragments IgTer unit movement costs
igter_cost = 1
; Whether diagonal movement has increased cost (no effect with hex topology)
; The cost increase is more accurate with larger values for move_fragments
pythagorean_diagonal = FALSE
; There is no resources in the middle of the oceans, only near coast
ocean_resources = FALSE
; /* <-- avoid gettext warnings
;
; The individual terrain types, one per section.
; Roughly sorted by identifier.
; The actual tag used (the * in [terrain_*]) must be unique for each terrain,
; and may be used in debug output when reading this file.
;
; Notes:
;
; 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".
; graphic = preferred graphic; Tilespec [tile_*] section
; with 'tag' matching this will be used.
; graphic_alt = alternate graphic. When no tilespec 'tag' matching
; preferred graphic is not found, this will be used.
; Otherwise may be "-"
; identifier = single-character identifier used in savegames. This
; must be unique for each terrain.
; class = Terrain class terrain belongs to: "Land" or "Oceanic"
; movement_cost = in whole movement points, not move_fragments;
; typically 1 to 3
; defense_bonus = percent added to defense; typically 0% to 200%
; food = normal food production
; shield = normal shield production
; trade = normal trade production
; resources = list of possible resources on this terrain
; road_food_incr_pct = percent of road food_incr applied to this terrain
; road_shield_incr_pct = percent of road shield_incr applied to this terrain
; road_trade_incr_pct = percent of road trade_incr applied to this terrain
; base_time = time to build bases; if 0, cannot build any bases.
; Nonzero values only affect extras with build_time 0.
; road_time = time to build roads; if 0, cannot build any roads.
; Nonzero values only affect extras with build_time 0.
; irrigation_result = result of 'irrigate' activity; one of:
; "no" -- cannot irrigate
; "yes" -- can build extra
; terrain rule_name -- irrigation changes to that
; terrain
; irrigation_food_incr = increment to food if tile is 100% irrigated
; (actual bonus controlled by Irrigation_Pct effect)
; irrigation_time = time for 'irrigate' activity; if 0, cannot irrigate
; Nonzero values only affect extras with build_time 0.
; Such extras can modify time with build_time_factor.
; mining_result = result of 'mine' activity; one of:
; "no" -- cannot mine
; "yes" -- can build extra
; terrain rule_name -- mining changes to that terrain
; mining_shield_incr = increment to shields if tile is 100% mined
; (actual bonus controlled by Mining_Pct effect)
; mining_time = time for 'mine' activity; if 0, cannot mine
; Nonzero values only affect extras with build_time 0.
; Such extras can modify time with build_time_factor.
; transform_result = result of transformation; one of:
; "no" -- cannot transform
; terrain rule_name -- transformation changes to that
; terrain
; transform_time = time to transform; if 0, cannot transform
; pillage_time = time to pillage extra from the tile (0 = impossible)
; Nonzero values only affect extras with removal_time 0.
; clean_pollution_time = time for 'clean pollution' activity (0 = impossible)
; Nonzero values only affect extras with removal_time 0.
; clean_fallout_time = time for 'clean fallout' activity (0 = impossible)
; Nonzero values only affect extras with removal_time 0.
; animal = unit type that can appear as animal on the terrain
; warmer_wetter_result = result of global warming for wet terrains; one of:
; "no" -- no change; doesn''t count for warming
; "yes" -- no change; counts for warming
; terrain rule_name -- warming changes to that terrain
; warmer_drier_result = result of global warming for dry terrains;
; see warmer_wetter_result
; cooler_wetter_result = result of nuclear winter for wet terrains;
; see warmer_wetter_result
; cooler_drier_result = result of nuclear winter for dry terrains;
; see warmer_wetter_result
; native_to = List of unit classes that can move here
; flags = General flags for this terrain. List taken from the
; following, and/or any user flags defined above:
; - NoBarbs = Barbarians will not be spawned here.
; - NoCities = Cities may not be built or found on this terrain.
; - Starter = Players will only be started on "Starter" terrain.
; (Currently this cannot be Oceanic terrain.)
; - CanHaveRiver = Set to 1 if this terrain can have river on it (the
; actual chance of river generation is controlled
; separately).
; - UnsafeCoast = This terrain does not provide a safe coast for
; units with flag "Trireme"
; - FreshWater = This terrain is used for small bodies of water.
; If this becomes adjacent to non-FreshWater terrain,
; the whole contiguous FreshWater area will be flooded
; with the non-FreshWater terrain.
; - NotGenerated = Map generator never places this terrain type. It can
; be added from editor only, or by ingame events
; (lua scripting)
; - NoZoc = Units on this terrain are not generating or subject
; to zoc
; - NoFortify = Units cannot fortify on this terrain
; - Frozen = Frozen/polar terrain. For water tiles, Frozen terrain
; is generated near poles. Conversion between frozen
; and unfrozen terrain can be controlled with
; thaw_requirement/freeze_requirement, and Frozen
; terrain is shown differently on the overview map.
; property_* = specific property % values used by mapgen. Most
; terrains will have 0 for most values. Properties
; other than ocean_depth are only used for land tiles.
; - mountainous = degree to which this terrain is mountainous
; - green = how much life this terrain has
; - foliage = how much thick undergrowth the terrain has
; - tropical = how "tropical" the terrain is (high temperature)
; - temperate = how "temperate" the terrain is (med temperature)
; - cold = how "cold" the terrain is (low temperature)
; - frozen = how "frozen" the terrain is (very low temperature)
; (does not necessarily have to have the "Frozen" flag)
; - wet = how "wet" the terrain is (moisture)
; - dry = how "dry" the terrain is (moisture)
; - ocean_depth = the depth of an ocean, as a percentage
; color.r = color of the terrain (red value)
; color.g = color of the terrain (green value)
; color.b = color of the terrain (blue value)
; helptext = optional help text string; should escape all raw
; newlines so that xgettext parsing works
[terrain_generic]
name = _("Generic")
graphic = "generic"
graphic_alt = "grassland"
identifier = "g"
class = "Land"
movement_cost = 1
defense_bonus = 0
food = 1
shield = 1
trade = 0
resources = "Generic Resource"
road_food_incr_pct = 0
road_shield_incr_pct = 0
road_trade_incr_pct = 100
base_time = 1
road_time = 1
irrigation_result = "yes"
irrigation_food_incr = 1
irrigation_time = 5
mining_result = "no"
mining_shield_incr = 0
mining_time = 10
transform_result = "no"
transform_time = 24
pillage_time = 1
clean_pollution_time = 3
clean_fallout_time = 3
animal = "None"
warmer_wetter_result = "no"
warmer_drier_result = "no"
cooler_wetter_result = "no"
cooler_drier_result = "no"
native_to = "Generic"
flags = "Starter", "CanHaveRiver"
property_temperate = 50
property_green = 50
color.r = 200
color.g = 200
color.b = 200
helptext = _("\
This is only possible land terrain.\
")
[terrain_ocean]
name = _("Ocean")
graphic = "coast"
graphic_alt = "-"
identifier = " "
class = "Oceanic"
movement_cost = 1
defense_bonus = 0
food = 1
shield = 1
trade = 0
resources = "Generic Resource"
road_food_incr_pct = 0
road_shield_incr_pct = 0
road_trade_incr_pct = 100
base_time = 1
road_time = 1
irrigation_result = "no"
irrigation_food_incr = 0
irrigation_time = 0
mining_result = "no"
mining_shield_incr = 0
mining_time = 0
transform_result = "no"
transform_time = 36
pillage_time = 1
clean_pollution_time = 3
clean_fallout_time = 3
animal = "None"
warmer_wetter_result = "no"
warmer_drier_result = "no"
cooler_wetter_result = "no"
cooler_drier_result = "no"
native_to = "Generic Ship"
;flags =
property_ocean_depth = 10
color.r = 50
color.g = 50
color.b = 230
helptext = _("\
This is only possible oceanic terrain.\
")
; /* <-- avoid gettext warnings
;
; Resource types:
;
; The actual tag used (the * in [resource_*]) must be unique for each resource,
; and may be used in debug output when reading this file.
;
; Notes:
;
; extra = name of the extra this resource section is part of
; (must have "Resource" in its causes)
; identifier = single-character identifier used in old savegames. This
; must be unique for each resource, and changing it will
; break loading those old savegames.
; food = increased food production
; shield = increased shield production
; trade = increased trade production
;
; */ <-- avoid gettext warnings
[resource_generic]
extra = "Generic Resource"
food = 0
shield = 0
trade = 1
identifier = "g"
[extraui]
; Player visible names of the base gui types.
ui_name_base_fortress = _("?gui_type:Build Type A Base")
ui_name_base_airbase = _("?gui_type:Build Type B Base")
; /* <-- avoid gettext warnings
;
; Each extra, including bases, roads, and resource, must have a section here.
; Bases, roads, and resources have additional sections for their specific features.
;
;
; Extra 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".
; category = How UI should categorize this extra. One of
; "Infra", "Natural", "Nuisance", "Resource",
; or "Bonus"
; causes = events that can create extra type.
; "Irrigation", "Mine", "Hut", "Pollution", "Fallout",
; "Appear", "Resource", "Base", or "Road"
; (the last three require a corresponding
; [resource_*] / [base_*] / [road_*] section)
; rmcauses = events that can remove extra type.
; "CleanPollution", "CleanFallout", "Pillage", or
; "Disappear"
; graphic = tag specifying preferred graphic
; graphic_alt = tag for alternate graphic if preferred graphic is
; not present. Can use eg "-" for no alternate
; graphic
; activity_gfx = tag specifying graphic for unit building extra
; This can be "None" to indicate that graphic sprite
; is not needed.
; act_gfx_alt = tag for alternative graphic for unit building extra
; act_gfx_alt2 = tag for second alternative graphic for unit building extra
; rmact_gfx = tag specifying graphic for unit removing extra
; This can be "None" to indicate that graphic sprite
; is not needed.
; rmact_gfx_alt = tag for alternative graphic for unit removing extra
; reqs = requirements to build the extra (see effects.ruleset
; and README.effects for help on requirements)
; rmreqs = requirements to remove the extra
; appearance_reqs = spontaneous appearance requirements
; disappearance_reqs = spontaneous disappearance requirements
; visibility_req = Tech a player needs to have to see the extra
; This affects visibility only, for all the rules
; extra is still there even if player can't see it.
; buildable = Can extra be built? Defaults to TRUE if extra has
; any causes indicating it can result from worker
; activity.
; If extra is not buildable, it can appear in game
; only if placed in the editor, it's placed by
; map generator, or on city tile if the extra
; also has "AlwaysOnCityCenter" flag set.
; generated = Can map generator place the extra? Applicable
; for Hut, Resource, and River extras.
; build_time = how long it takes a unit to build this extra.
; Value of 0 (default) means that terrain- and
; build activity specific time is used instead.
; build_time_factor = This setting take effect only if build_time is 0.
; Terrain and activity specific build time will be
; multiplied by this value (default 1)
; removal_time = how long it takes a unit to remove this extra.
; Value of 0 (default) means that terrain- and
; removal activity specific time is used instead.
; removal_time_factor = This setting take effect only if removal_time is 0.
; Terrain and activity specific removal time will be
; multiplied by this value (default 1)
; defense_bonus = Percent added to defense when tile has the extra
; (default none)
; unit_seen = How opponents see units inside this extra
; "Normal" - Units are seen normally (default)
; "Hidden" - Units are hidden from opponents
; appearance_chance = If extra has cause "Appear" and other requirements
; for its appearance are fulfilled, this tells how big
; chance it has to appear each turn. The chance is 1/10000
; times this value.
; disappearance_chance = If extra has rmcause "Disappear" and other requirements
; for its disappearance are fulfilled, this tells how big
; chance it has to disappear each turn. The chance is 1/10000
; times this value.
; native_to = List of unit classes that are considered to
; be inside the extra when they are on same tile
; conflicts = List of extras that cannot be on the same tile.
; Bases with non-zero border_sq automatically conflict
; with each other.
; hidden_by = List of extra types that will make this extra
; type not to show on UI if both present.
; bridged_over = List of extra types that, if present in tile, will prevent
; building this extra if can't be bridged over
; flags
; - "NativeTile" = Native units consider tile native regardless of
; terrain
; - "Refuel" = Native units can use tile as refuel point
; - "TerrChangeRemoves" = Extra gets removed when ever terrain changes even
; if target terrain could support it
; - "AlwaysOnCityCenter" = City center tiles always have this extra type
; regardless of its other requirements
; - "AutoOnCityCenter" = City center tiles will automatically have this
; extra type if the player can build it
; - "ConnectLand" = Road style gfx on Oceanic tiles are drawn to
; connect to adjacent Land tiles even if they have
; no extra. This affects appearance only
; - "GlobalWarming" = Instances of this extra on map count towards
; Global Warming
; - "NuclearWinter" = Instances of this extra on map count towards
; Nuclear Winter
; - "ShowFlag" = Draw owner's flag
; - "NaturalDefense" = Extra's defense bonus will be counted to "Natural"
; defense layer. The defense bonus of all the extras
; located at the tile, native to defending unit,
; is calculated as a 1 + sum of bonuses from the extras
; on the default "Fortification" defense layer multiplied
; by the 1 + sum of bonuses from the extras on the
; "Natural" layer.
; - "NoStackDeath" = Units inside do not die all at once when attacked
; helptext = optional help text string; should escape all raw
; newlines so that xgettext parsing works
;
; */ <-- avoid gettext warnings
;[extra_generic]
;name = _("Generic")
;category = "Infra"
;causes = ""
;rmcauses = ""
;graphic = "tx.generic"
;graphic_alt = "-"
;activity_gfx = "unit.generic"
;act_gfx_alt = "-"
;act_gfx_alt2 = "-"
;rmact_gfx = "None"
;rmact_gfx_alt = "-"
;build_time = 0
;removal_time = 0
;helptext = _("")
;[extra_gbase]
;name = _("Generic Base")
;category = "Infra"
;causes = "Base"
;rmcauses = ""
;graphic = "base.generic"
;graphic_alt = "-"
;activity_gfx = "unit.gbase"
;act_gfx_alt = "-"
;act_gfx_alt2 = "-"
;rmact_gfx = "None"
;rmact_gfx_alt = "-"
;buildable = FALSE
;reqs =
; { "type", "name", "range"
; No requirements
; }
;build_time = 0
;removal_time = 0
;helptext = _("")
;[extra_groad]
;name = _("Generic Road")
;category = "Infra"
;causes = "Road"
;rmcauses = ""
;graphic = "road.generic"
;graphic_alt = "-"
;activity_gfx = "unit.groad"
;act_gfx_alt = "-"
;act_gfx_alt2 = "-"
;rmact_gfx = "None"
;rmact_gfx_alt = "-"
;buildable = FALSE
;reqs =
; { "type", "name", "range"
; No requirements
; }
;build_time = 0
;removal_time = 0
;helptext = _("")
[extra_gresource]
name = _("Generic Resource")
category = "Resource"
causes = "Resource"
;rmcauses = ""
graphic = "ts.grassland_resources"
graphic_alt = "-"
activity_gfx = "None"
act_gfx_alt = "-"
act_gfx_alt2 = "-"
rmact_gfx = "None"
rmact_gfx_alt = "-"
; /* <-- avoid gettext warnings
;
; Base types:
;
; extra = name of the extra this base section is part of
; (must have "Base" in its causes)
; gui_type = How gui should handle this base.
; Value can be "Fortress", "Airbase", or "Other"
; border_sq = Base will claim land ownership up to this radius,
; -1 to disable. If enabled, base cannot exist in
; city tile.
; Base (and border) ownership will change hands if
; an enemy unit occupies the tile.
; vision_main_sq = Base will have main layer vision to this radius.
; Vision initially provided to owner of unit that
; built base; base will not then change hands unless
; it also claims territory, or tile has another such
; base or city, or another base is built (tile only
; tracks one owner for all bases).
; vision_invis_sq = Base will have invisible layer vision to this radius
; vision_subs_sq = Base will have subsurface layer vision to this radius
; flags
; - "NoAggressive" = Units inside are not considered aggressive if
; there`s friendly city within 3 tiles
;
; */ <-- avoid gettext warnings
; It's ok to have no base types at all. I have left one, commented out, here as an
; example
;[base_gbase]
;extra = "Generic Base"
;gui_type = "Fortress"
; /* <-- avoid gettext warnings
;
; Road types:
;
; extra = name of the extra this road section is part of
; (must have "Road" in its causes)
; first_reqs = additional requirements to build the first part of
; the road, when none of the adjacent tiles have any
; integrating roads (see effects.ruleset and
; README.effects for help on requirements)
; move_cost = how much movement it takes to to travel
; via this road (in fractional move points, as
; defined by move_fragments)
; -1 means that road provides no speed bonus.
; move_mode = how movement costs are applied
; - "Cardinal" = Road cost applies only on cardinal moves
; - "Relaxed" = Road cost is normal for cardinal, double for diagonal moves
; - "FastAlways" = Road cost applies always between two tiles with the roads
; (default)
; food_incr_const = food production added to tile regardless of terrain
; shield_incr_const = shield production added to tile regardless of
; terrain
; trade_incr_const = trade production added to tile regardless of
; terrain
; food_incr = food production added to tile; multiplied by
; terrain-specific road_food_incr_pct
; shield_incr = shield production added to tile; multiplied by
; terrain-specific road_shield_incr_pct
; trade_incr = trade production added to tile; multiplied by
; terrain-specific road_trade_incr_pct
; food_bonus = percent added to food production
; shield_bonus = percent added to shield production
; trade_bonus = percent added to trade production
; In summary, output bonuses from roads are given by the formula:
; (base_prod + roads.incr_const + roads.incr*terrain.incr_pct) * roads.bonus
; compat_special = what kind of pre-2.5 special this road corresponds
; to, if any: "Road", "Railroad", "River", or "None".
; Used for UI and loading old savegames
; integrates = list of road types that are suitable next steps
; for travel from this road type; such steps are
; possible for units native to both roads and don`t
; get cost from underlying terrain; graphics are
; drawn accordingly
; flags
; - "River" = Automatically generated by map generator, always
; flowing from land tiles to ocean
; - "UnrestrictedInfra" = Use of the enemy owned road is not restricted
; even if server setting 'restrictinfra' is set
; - "JumpFrom" = Move to a tile nativity providing "JumpTo"
; road is considered native
; - "JumpTo" = Move from a tile nativity providing "JumpFrom"
; road is considered native
;
; */ <-- avoid gettext warnings
; [road_groad]
; extra = "Generic Road"
; move_cost = 1
; food_incr = 0
; shield_incr = 0
; trade_incr = 0
; food_bonus = 0
; shield_bonus = 0
; trade_bonus = 0
; compat_special = "None"
; flags = ""
data/granularity/units.ruleset
; This is minimal units ruleset. Replace <modpack> with your module name in
; description.
[datafile]
description="<modpack> unit_type data for Freeciv"
options="+Freeciv-ruleset-Devel-2017.Jan.02"
format_version=20
[control]
; Names for custom unit type flags. There can be up to 45 of these.
; name = rule name; In some circumstances user may see this
; as part of some sentences, so try to make it descriptive
; and sensible.
; helptxt = displayed in the help for unit types with this flag (optional)
; flags =
; { "name", "helptxt"
; }
; Names for custom unit class flags. There can be up to 8 of these.
; name = rule name; In some circumstances user may see this
; as part of some sentences, so try to make it descriptive
; and sensible.
; helptxt = displayed in the help for unit types belonging to a class
; with this flag (optional)
;class_flags =
; { "name", "helptxt"
; }
[veteran_system]
; What are the names of the levels?
veteran_names = _("green")
; The percentage chance of increasing level through combat
veteran_base_raise_chance = 0
; Power factors are as a percentage.
; +50% is represented by 150
veteran_power_fact = 100
; The percentage chance of a settler/engineer increasing level through
; performing useful work (per turn)
veteran_work_raise_chance = 0
; The additional number of movement points granted for different veteran
; levels. These are fractional move points as defined by move_fragments in
; terrain.ruleset.
veteran_move_bonus = 0
; /* <-- avoid gettext warnings
;
; Unit classes
; The number can be variable, up to 32
; When adding new classes, remember to check effects.ruleset also.
; Eg. if you divide class 'Land' to two separate classes, you may
; want add effect giving City Walls defence bonus against new class
; too.
;
; The actual tag used (the * in [unitclass_*]) does not matter, except
; it must be unique within this file, and it may be used in debug
; output when reading this file.
;
; ** Fields **
;
; 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".
; min_speed = Minimum speed after damage and effects (whole movement points)
; hp_loss_pct = Hitpoints lost each turn if unit not in city or native base
; non_native_def_pct = Defense power percentage applying when defending on
; non-native terrain (such as ship in harbour)
; hut_behavior = What happens to huts when unit enters tile:
; "Normal", "Nothing", or "Frighten"
; flags = List of unit class flags (from the following list; you
; cannot add custom unit class flags)
; helptext = optional help text string; should escape all raw newlines
; so that xgettext parsing works
;
; ** Unit class Flags **
;
; "TerrainSpeed" = Units use terrain specific speed
; "TerrainDefense" = Units gain defense bonus from terrain
; "DamageSlows" = Damaged units are slowed down
; "CanOccupyCity" = Military units of this class can occupy enemy cities
; "Missile" = Unit is destroyed when it attacks
; "BuildAnywhere" = Unit can be built even in the middle of non-native terrain
; "Unreachable" = Unit can be attacked only by units explicitly listing this
; class in its 'targets', unless on a city or native base.
; For class members which are transports, cargo cannot load/
; unload except in a city or native base, unless that unit
; explicitly lists this class in its 'embarks'/'disembarks'.
; "CollectRansom" = Unit can collect ransom when killing lone barbarian leader
; "ZOC" = Unit is subject to ZOC rules. Unit type flag "IgZOC" can
; override this
; "CanFortify" = Unit can fortify at land tiles. Unit type flag
; "Cant_Fortify" can override this
; "CanPillage" = Unit can pillage tile infrastructure
; "DoesntOccupyTile" = Even if this kind of enemy unit is on tile, cities can
; still work that tile
; "AttackNonNative" = Unit can attack units on non-native tiles. Unit type flag
; "Only_Native_Attack" can override this
; "KillCitizen" = Upon successful attack against a city unit kills one citizen.
; There's server setting, as well as effects, to disable this.
;
; */ <-- avoid gettext warnings
[unitclass_generic]
name = _("Generic")
min_speed = 1
hp_loss_pct = 0
flags = ""
[unitclass_ship]
name = _("Generic Ship")
min_speed = 1
hp_loss_pct = 0
flags = ""
; /* <-- avoid gettext warnings
;
; Below: The individual unit types, one per section.
;
; The number can be variable, up to 200.
; However for the "official" rulesets, units should not be removed
; because that would break backward compatability with savegames.
;
; The order here matters: later units are considered "better" for
; a given flag or role.
;
; The actual tag used (the * in [unit_*]) does not matter, except
; it must be unique within this file, and it may be used in debug
; output when reading this file.
;
; ** Fields **
;
; 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".
; graphic = tag specifying preferred graphic
; graphic_alt = tag for alternate graphic if preferred graphic is not
; present; especially if preferred graphic is non-standard,
; this should be a standard tag. Otherwise can use eg "-"
; for no alternate graphic.
; tech_req = required advance, names from techs.ruleset, or special:
; "None" => available from start
; impr_req = required city improvement, names from buildings.ruleset
; gov_req = required government, names from governments.ruleset
; obsolete_by = can be upgraded to and made obsolete by another unit by name
; build_cost = production shields required to build
; pop_cost = population removed from city when built; for 'Join City'
; units this is also the population added to the destination
; attack = base attack strength (0 = cannot attack)
; defense = base defense strength (0 = cannot defend)
; hitpoints = how much damage unit can withstand
; firepower = number of hitpoints removed per round of combat; at least 1
; move_rate = base move rate (whole movement points)
; vision_radius_sq = base vision of unit: unit can see tile up to the square
; root of this value away
; convert_to = can be converted to another type of unit by name
; convert_time = number of movement points it takes to convert to
; another unit type
; class = One of the classes listed above
; transport_cap = Number of units (ground, or air/missiles, depending on flags)
; fuel = Number of turns unit can spend outside refuel points.
; If more time passes without unit refueling over turn change,
; they are lost. If this is zero, unit has no need to refuel
; Units with "Coast" flag set consider any tile next to coast
; refuel point
; uk_* = upkeep costs, these are used as base values in the game
; cargo = Unit classes this unit can transport
; city_slots = How many of homecity's unit maintenance slots unit takes
; city_size = Initial size of the cities built by 'Found City' type units
; (but 'Join City' uses pop_cost)
; targets = list of unit classes this unit can attack against even
; if they have Unreachable unit class flag
; embarks = list of unit classes this unit may load into while not in
; native base or city even if transporter has Unreachable unit
; class flag
; disembarks = list of unit classes this unit may unload from while not in
; native base or city even if transporter has Unreachable unit
; class flag
; vision_layer = At which layer this unit is visible; "Main", "Stealth",
; or "Subsurface"
; bonuses = definitions of combat bonuses against specific other units
; bonuses.flag = flag of the unit that bonus applies against
; bonuses.type = type of the bonus. See below
; bonuses.value = value of the bonus. Sum of these is used if multiple apply.
; bonuses.quiet = don't auto generate help text for this bonus. Use this if
; the bonus is documented in the unit type's help text.
; This is useful when the combination of a unit's bonuses
; becomes complex enough to make the auto generated help
; ugly or inaccurate.
; flags = special flag strings; list of built-in flags described below
; and/or user flags defined above
; roles = special role strings
; sound_move = optional sound effect when the unit moves
; sound_move_alt = optional alternative sound effect if above not
; supported in client
; sound_fight = optional sound effect when the unit fights
; sound_fight_alt = optional alternative sound effect if above not
; supported in client
; helptext = optional help text string; should escape all raw newlines
; so that xgettext parsing works
;
;
; ** Bonuses **
;
; "DefenseMultiplier" = See "DefenseMultiplierPct" below. This is
; equivalent to that multiplied by 100.
; Bonus is defined in defenders entry.
; "DefenseMultiplierPct" = Multiply defense by 1 + (value / 100).
; Value of 100 means multiplication by 2,
; value of 50 means multiplication by 1.5, etc.
; Effectively increases defense by value percent.
; Bonus is defined in defenders entry.
; "DefenseDivider" = See "DefenseDividerPct" below. This is equivalent
; to that multiplied by 100.
; Bonus is defined in attackers entry.
; "DefenseDividerPct" = Divide defense value by 1 + (value / 100).
; Value of 100 means division by 2,
; value of 50 means division by 1.5, i.e.
; multiplication with 2/3, etc.
; Effectively increases *attack* by value percent.
; Bonus is defined in attackers entry.
; "FirePower1" = Defender firepower is reduced to value 1 when
; ever this has non-zero value.
; Bonus is defined in attackers entry.
;
;
; ** Flags **
;
; "IgZOC" = ignore Zones of Control (ZOC) even if unit class has
; "ZOC" flag
; "HasNoZOC" = unit has no Zone of Control (ZOC), thus any unit can move
; around it freely
; "NonMil" = a non-military unit: no attacks; no martial law; can enter
; peaceful borders; DoesntOccupyTile
; "IgTer" = use constant move cost defined in igter_cost (terrain.ruleset)
; rather than terrain/road etc cost, unless terrain cost is
; less
; "OneAttack" = can only make a single attack, regardless of movement points
; "FieldUnit" = cause unhappiness even when not being aggressive
; "AttackAny" = can attack unreachable units
; "BeachLander" = won't lose all its movement when moving from non-native
; terrain to native terrain even if slow_invasions is on.
; "Settlers" = can irrigate and build roads
; "Diplomat" = can do diplomat actions (see diplchance server option)
; "Spy" = strong in diplomatic battles. _Must_ be "Diplomat" also
; "CoastStrict" = (sea only) cannot leave coast
; "Coast" = (sea only) can refuel on coast. Set fuel to force unit
; to regularly end turn on coast
; "Only_Native_Attack" = cannot attack targets on non-native tiles even if
; unit class can
; "Cant_Fortify" = cannot fortify even if unit class has "CanFortify" flag
; "Fanatic" = can only be built by governments that allow them
; (see civ2/governments.ruleset, Fundamentalism government)
; "Unique" = a player can only have one of these units in the game at
; the same time; barbarians cannot use this at present
; "GameLoss" = losing one of these units means you lose the game, but it
; is produced without homecity and upkeep
; "EvacuateFirst" = the game will try to rescue units with this flag before
; it tries to rescue units without it when their transport
; is destroyed. Think of the Birkenhead drill ("women and
; children first"). Replace "women and children" with
; "units with the EvacuateFirst unit type flag".
; "SuperSpy" = this unit always wins diplomatic contests, that is, unless
; it encounters another SuperSpy, in which case defender wins;
; can also be used on non-diplomat units, in which case it can
; protect cities from diplomats; also 100% spy survival chance
; "NoHome" = this unit has no homecity and will be free of all upkeep, and
; therefore will not revolt along with its city of origin should
; it be incited
; "NoVeteran" = this unit cannot gain veteran levels through experience
; (as if both base_raise_chance and work_raise_chance were zero);
; it can still gain veterancy through Veteran_Build, etc
; "CityBuster" = this unit has double firepower against cities
; "NoBuild" = this unit cannot be built
; "BadWallAttacker" = the firepower of this unit is set to 1 if
; attacking a city
; defended by a city wall (or other city building defense)
; "BadCityDefender" = if attacked while in a city, firepower is set to 1
; and firepower of attacker is doubled (the Pearl Harbour
; rule)
; "BarbarianOnly" = only barbarians can build this unit
; "Shield2Gold" = Switch from shield upkeep to gold upkeep possible
; "NewCityGamesOnly" = unit can't be built on scenarios where founding new cities
; is not allowed. Give this flag to units that would make no sense
; to have in a game with such a scenario
; "CanEscape" = this unit has, given that certain conditions are
; fulfilled, a 50% chance to escape rather than being
; killed when killstack is enabled and the defender of its
; tile is defeated. The conditions are that it has more move
; points than required to move to an adjacent tile plus the
; attackers move points and that the attacker doesn't have
; the "CanKillEscaping" unit type flag.
; "CanKillEscaping" = an attack from this unit ignores the "CanEscape" unit
; type flag.
; "Provoking" = a unit considering to auto attack this unit will choose to
; do so even if has better odds when defending against it
; then when attacking it. Applies when the autoattack server
; setting is enabled.
; "NeverProtects" = doesn't protect reachable units on its tile from enemy
; attackers, even if the unreachableprotects server setting
; is enabled and the unit class is unreachable
;
; Following actions require extra fields:
; "Attack" and "Suicide Attack"
; attack = base attack strength
; "Bombard"
; attack = base attack strength
; bombard_rate = the number of shots fired at enemy units when attacking
; "Join City"
; pop_cost = the number of population added to the target city
; "Paradrop Unit"
; paratroopers_range = the maximal range the unit can be paradropped to.
; Max range is 65534.
; paratroopers_mr_req = the move rate which is required at least for
; paradropping (whole movement points)
; paratroopers_mr_sub = the move rate which is subtracted after paradropping
; (whole movement points)
; "Upgrade Unit"
; obsolete_by = the unit type upgraded to.
; "Convert Unit"
; convert_to = the unit type converted to.
;
; ** Roles **
;
; "FirstBuild" = first to be built when city founded
; "Explorer" = unit to use for exploring
; "Hut" = can be found in a hut
; "HutTech" = can be found in a hut, but its techs required
; "Partisan" = can be created as a partisan (only one unit can have this
; flag), see end of this file for its tech requirements option
; "DefendOk" = AI hint: ok for defending with
; "DefendGood" = AI hint: good for defending with
; "Ferryboat" = AI hint: useful for ferrying
; "Barbarian" = can be created as land barbarian
; "BarbarianTech" = can be created as land barbarian, if someone has
; researched its tech requirements
; "BarbarianBoat" = can be created as boat for sea barbarian
; "BarbarianBuild" = can be built by barbarians
; "BarbarianBuildTech" = can be built by barbarians if someone has
; researched its tech requirements
; "BarbarianLeader" = this unit is the barbarian leader (only one)
; "BarbarianSea" = can be created as a barbarian that disembarks from a barbarian boat
; "BarbarianSeaTech" = can be created as a barbarian that disembarks from a barbarian boat
; if someone has researched its tech requirements
; "Settlers" = can irrigate and build roads
; "Hunter" = AI hint: good for hunting other units
; "CitiesStartUnit" = Gets granted as 'c' startunit
; "WorkerStartUnit" = Gets granted as 'w' startunit
; "ExplorerStartUnit" = Gets granted as 'x' startunit
; "KingStartUnit" = Gets granted as 'k' startunit
; "DiplomatStartUnit" = Gets granted as 's' startunit
; "FerryStartUnit" = Gets granted as 'f' startunit
; "DefendOkStartUnit" = Gets granted as 'd' startunit
; "DefendGoodStartUnit" = Gets granted as 'D' startunit
; "AttackFastStartUnit" = Gets granted as 'a' startunit
; "AttackStrongStartUnit" = Gets granted as 'A' startunit
;
; */ <-- avoid gettext warnings
[unit_generic]
name = _("Generic")
class = "Generic"
tech_req = "None"
obsolete_by = "None"
graphic = "u.warriors"
graphic_alt = "-"
sound_move = "m_warriors"
sound_move_alt = "m_generic"
sound_fight = "f_warriors"
sound_fight_alt = "f_generic"
build_cost = 10
pop_cost = 0
attack = 1
defense = 1
hitpoints = 10
firepower = 1
move_rate = 1
vision_radius_sq = 2
transport_cap = 0
fuel = 0
uk_happy = 0
uk_shield = 0
uk_food = 0
uk_gold = 0
flags = "Settlers"
roles = "ExplorerStartUnit", "Firstbuild", "CitiesStartUnit"
helptext = _("\
This is the only land unit type you can build.\
")
[unit_ship]
name = _("Generic Ship")
class = "Generic Ship"
tech_req = "None"
obsolete_by = "None"
graphic = "u.warriors"
graphic_alt = "-"
sound_move = "m_warriors"
sound_move_alt = "m_generic"
sound_fight = "f_warriors"
sound_fight_alt = "f_generic"
build_cost = 10
pop_cost = 0
attack = 1
defense = 1
hitpoints = 10
firepower = 1
move_rate = 1
vision_radius_sq = 2
transport_cap = 2
fuel = 0
uk_happy = 0
uk_shield = 0
uk_food = 0
uk_gold = 0
flags = ""
roles = "Ferryboat", "BarbarianBoat"
helptext = _("\
This is the only ship type you can build.\
")
    (1-1/1)