From 27c674d2d650e48d0a31dce79067b542d6186897 Mon Sep 17 00:00:00 2001 From: Adrien Jaguenet Date: Sat, 21 Feb 2026 14:29:36 +0100 Subject: [PATCH] First commit --- README.civ2civ3 | 919 +++++++++ actions.ruleset | 1506 ++++++++++++++ buildings.ruleset | 2262 +++++++++++++++++++++ cities.ruleset | 141 ++ effects.ruleset | 4618 +++++++++++++++++++++++++++++++++++++++++++ game.ruleset | 822 ++++++++ governments.ruleset | 465 +++++ nations.ruleset | 69 + parser.lua | 13 + script.lua | 363 ++++ styles.ruleset | 254 +++ techs.ruleset | 870 ++++++++ terrain.ruleset | 2347 ++++++++++++++++++++++ units.ruleset | 2893 +++++++++++++++++++++++++++ 14 files changed, 17542 insertions(+) create mode 100644 README.civ2civ3 create mode 100644 actions.ruleset create mode 100644 buildings.ruleset create mode 100644 cities.ruleset create mode 100644 effects.ruleset create mode 100644 game.ruleset create mode 100644 governments.ruleset create mode 100644 nations.ruleset create mode 100644 parser.lua create mode 100644 script.lua create mode 100644 styles.ruleset create mode 100644 techs.ruleset create mode 100644 terrain.ruleset create mode 100644 units.ruleset diff --git a/README.civ2civ3 b/README.civ2civ3 new file mode 100644 index 0000000..4f6640f --- /dev/null +++ b/README.civ2civ3 @@ -0,0 +1,919 @@ +================================= +Domesecration ruleset for FreeCiv +================================= + + +OBJECTIVES: +----------- + +Base FreeCiv on *Animal Oppression and Human Violence: A History of Domesecration*. + +INFO: +----- + +- Help texts have been updated (mainly buildings and wonders), so the + info showed ingame already takes into account the changed rules. Some + graphical tables from the manual might not match (mainly terrains and + governments), so better use the tables in this Readme as reference. + +- I suggest new players to start a game with 6 players or so, AI skill + level Normal, and default ruleset options (small continental map with + 100 land tiles per player). + +- For challenging games, you may place several AI players in the same + team. For example, one team with 5 AIs together against you. + +- Cheating AI level was adjusted for these rules, I suggest experienced + players to use it (better than Hard AI). The "AI Love" effect reduces + the amount of wars between the AIs, even when they are not in the same + team, making them more hostile against the human players (or against + other non cheating AIs). + +CHEATING AI: +40% Science, Luxury, Gold and Production, +40 AI love, + +40% Veteran chance, +40% Bribe and Incite costs, -20% Pollution, +1 + Content per city, no food penalty from units. + +The following is a full list of changes compared to classic ruleset +(although it should be playable without reading it)... + + +CORE CHANGES: +------------- + +- No Rapture Growth (celebration only causes additional Trade per tile, + same as civ3). Foodbox readjusted to keep a constant city growth. + +- Settlers cost 2 population (as in civ3). This way, the number of tiles + worked in the original city are reduced by 2, equal to the number of + tiles worked in the newly created city. + +- Disabled national trade routes: it is still possible to create trade + routes, but only to foreign cities that you are not at war with (trade + routes are canceled when war breaks out). Each city can support a + maximum of 2 trade routes. Removed the one time revenues, and reduced + the ongoing revenues. + +- Every unit (except Settlers, Migrants, and Fanatics, which cost + population to build) pays some kind of upkeep cost. Some governments + pay shields as upkeep, and others pay coins (similar to civ3), but not + both. + +- Most units also require upkeep in Food, except for Workers/Engineers, + Diplomat/Spy, Caravan/Freight, Explorer/AWACS, and Cruise + Missile/Nuclear. + + A city can support for free as many units (with upkeep in Food) as + its population size (min 4, max 20). Additional units cause waste of + Food. If the city shrinks due to starvation, one of those extra units + will be disbanded. + +- Units lose one veteran level when upgraded. + +- Enabled tired attack: units that attack with less than a single move + point will have their attack power reduced accordingly. + If they have 2/3 movement points, they will attack with 2/3 strength. + If they have 1/3 movement points, they will attack with 1/3 strength. + +- Unlimited movement on rails delayed to maglev (available with + Superconductors). Movement bonus on railroads x6, on roads x3, on + rivers x3 (non diagonal). + +- Added Fort and Airstrip bases, required before you can build Fortress + or Airbase, respectively. It prevents the construction of full bases + in one single turn. The bases no longer protect full stacks from being + killed when one unit is defeated. + +- All military infantry units can build fortresses. All worker units can + build airbases. The working time required to build a base is 2 times + the movement cost of the terrain. + +- Specialists output reduced to 2 (same as civ2). There are wonders that + increase it to 3 for all players. + +- Enabled Tech Leakage: technologies are cheaper if already discovered + by other nations you have embassy with. + +- The cost of each tech is equal to the number of steps needed to get + the tech (Tech Cost = Base Cost * Number of Parents). It is a linear + formula more similar to civ2, and it fits better the new reduced + bonuses from Trade and Science. + +- Tech upkeep assigned to cities: some bulbs (research points) are + required from each city to maintain a given technological level. The + upkeep grows from 0 during the middle ages, up to 10 bulbs per city + when the whole tech tree was researched. + +- No holes allowed in the tech tree. To acquire a tech you must know + its prerequisites, and you cannot lose a tech that another depends on. + +- Enabled culture points, generated in your cities by wonders + (proportional to their build cost), and by certain buildings + (proportional to their upkeep cost): Temple, Amphitheatre, + Cathedral, Library, University, Research Lab, and Palaces. + + The culture accumulated by each city increases its resistance in + diplomatic fights against enemy agents (+5% for each 100 culture + points, up to +50%). + + The culture accumulated by your nation increases the cost to bribe + your units or incite your cities (+50% for each 1000 culture points, + up to +500%). + +- Certain achievements give extra culture points: Metropolis (city reaches + size 20), Cultured City (city reaches 1000 culture points), Multicultural + (2 nationalities), Literate (libraries in every city), Land Ahoy (2nd + continent sighted), Entire Map Known, and Spaceship Launch. + +- Enabled risk of plague at cities with population greater than 4. + Chances reduced by the buildings Aqueduct and Sewer System, the tech + Medicine, and the wonder Cure for Cancer. + +- Added other random disasters: Earthquake (city on Hills), Fire (city + larger than 8), Flood (city near rivers), Industrial Accident (city + with Mfg. Plant), and Nuclear Accident (city with Nuclear Plant). + + +OPTIONAL RULES: +--------------- + +- Every player starts with 1 Settler, 1 Worker, 1 Explorer, 1 Diplomat, + and 1 free tech. ('startunits', 'techlevel') + +- Minimum distance between cities set to 3. ('citymindist') + +- Initial national border equal to city radius (2 tiles). ('borders') + +- Restricted the use of infrastructure (roads, railroads, and rivers) + for enemy units inside national borders. ('restrictinfra') + +- Unreachable units do not protect reachable ones (when they are in the + same tile). ('unreachableprotects') + +- Occupy chance set to 100%: Units automatically move to the target + tile if the attack is successful and ZoC rules allow the movement. + ('occupychance') + +- Halved chance of building loss (to 10%) when a city is conquered. + ('razechance') + +- If the pool of research points ends negative, one random technology + is lost, and half of its value is restored to the research pool. + ('techlossforgiveness', 'techlossrestore') + +- Revolutions become quicker the more times any player has changed to + the target government. ('revolentype') + + +FOODBOX: +-------- + +- Foodbox size uniformed to even the population wasted when you build + Settlers at larger cities (similar to civ3). + +- Granary size is fixed to 10 Food for every city size. + +- Cities with Pop <= 4 receive this granary effect for free, so they + can create Settlers at best rate even without Granary. (This free + granary effect helps the AI to build Settlers optimally). + +CITY FOODBOX SETTLER FOODBOX SETTLER +SIZE NEW NEW OLD OLD +1 20 - 20 - +2 20(10)# - 30(15) 20(5-15) +3 20(10)# 20(20) 40(20) 30(10-20) +4 20(10)# 20(20) 50(25) 40(15-25) +5 20(10) 30(20) 60(30) 50(20-30) +6 30(10) 40(20) 70(35) 60(25-35) +7 30(10) 50(30) 80(40) 70(30-40) +8 40(10) 60(40) 90(45) 80(35-45) +9 40(10) 70(50) 100(50) 90(40-50) +10 40(10) 80(60) 110(55) 100(45-55) +11 40(10) 80(60) 120(60) 110(50-60) +12 40(10) 80(60) 130(65) 120(55-65) +13 40(10) 80(60) 140(70) 130(60-70) +14 40(10) 80(60) 150(75) 140(65-75) +15 ... ... ... ... + +# Granary effect for free when city grows to this city level. +FOODBOX = Foodbox size at that city level. (In brackets = Granary size). +SETTLER = Food needed to recover the population if you create a Settler + at that city size. (In brackets = The same but with Granary). +NEW = This ruleset. OLD = civ2 ruleset + +TIP: In order to keep max growth, you should build the Granary before + city grows larger than Pop 4 (same as Aqueduct at Pop 8, and Sewer + System at Pop 16). +TIP: Optimal production of Settlers occurs at any city with Pop <= 4, + or cities with Granary and Pop <= 6. + + +TERRAIN: +-------- + +- Jungles receive 1 extra Production (1/1/0). + +- Tundras can be mined for +1 Production (instead of irrigated) and + receive +1 Trade when roaded (up to 1/1/1). + +- Swamps can be irrigated for +1 Food (to 2/0/0). Reduced Food bonus by + 1 to Spice resource (on Swamp). + +- Deserts with a river receive 1 extra Food from irrigation (total 2), + unless they have an Oasis resource; this simulates a growth boost like + Nile floods. + +- Hills receive 1 Production for free, and +2 from mines, same as civ3, + (was 0 and +3). Mountains receive +2 Production from mines too (was +1). + +- Mountains give extra vision range. Cities can not be placed on + Mountains (nor Glaciers). Ground units starting the turn on unroaded + Mountains receive a -1 penalty to movement (this way it is not so good + for cavalry to end the turn on Mountains). + +- The discovery of Refining allows to upgrade the mines placed on + Desert and Glacier to Oil Wells (+2 Production in total). + +- Lake tiles receive for free +1 Food (2/0/2), but Harbors do not + affect them. Lakes do not enable wonders that needs a coastal city. + +- Deep ocean tiles must be mined (resulting in an oil platform) in + order to take advantage of the production bonus from Offshore Platforms. + +- Pollution may appear in Ocean tiles, and Transports can clean it + without the need of Workers/Engineers. Oceans, Jungles and Forests are + less affected by global warming. + +- Cities on rivers always get roads, even before Bridge Building is + known. + +- The only terrain transformations available before the end of the tech + tree are: Jungle -> Swamp; and Plains <-> Forest <-> Grassland. + +- The following diagram shows all the transformations available with + the discovery of Fusion Power. Redesigned so all useful alterations can + be finished in 1 or 2 steps, and all effects of global warming can be + reverted: + + Glacier --> Lake <-- + /\ | + Ocean --\ \/ | + --> Grassland | +--> Swamp --/ /\ | +| \/ | +<-- Jungle --> Forest --> | + /\ | | + Tundra --\ \/ | | + --> Plains --|--> + Desert --/ /\ | + || | + Mountains --> Hills <-- + +- No minimum city output (was 1/1/0). City central tile simply gets +1 + Production. + + This way, no matter the tile where you place your city, you never + waste any resource (for example, with classic/civ2 rules, a city placed + over bonused Grassland was wasting the Production bonus). + +TILE F/P/T IRRIG(t) MINE(t) ROAD MAX1 MAX2 TRANSFORM +Deep 1/0/2 NO NO NO 2/0/2 2/1/2 No +Ocean 1/0/2 NO NO NO 2/0/2 2/1/2 *Grass(36) +Lake *2/0/2 NO NO NO 2/0/2 2/1/2 *Grass(36) +Swamp 1/0/0 *+1(5) *NO +0(4) 2/0/0 3/0/0 *Grass(24) +Glacier 0/0/0 NO +1(10) +0(4) 0/1/0 0/3/0 *Lake(24) +Tundra 1/0/0 *NO *+1(5) *+1(2) 1/1/1 1/1/1 *Plains(24) +Desert 0/1/0 +1(5) +1(5) +1(2) 0/2/1 0/4/1 Plains(24) +Plains 1/1/0 +1(5) Forest(10) +1(2) 2/1/1 3/1/1 *Lake(36) +Grassland 2/0/0 +1(5) Forest(15) +1(2) 3/0/1 4/0/1 *Lake(36) +Jungle *1/1/0 *Swamp(10) *NO +0(4) 1/1/0 1/1/0 *Forest(24) +Forest 1/2/0 Plain(10) *Grass(15) +0(4) 1/2/0 1/3/0 *Hills(24) +Hills *1/1/0 +1(10) *+2(10) +0(4) 1/3/0 1/4/0 Plains(24) +Mountains 0/1/0 NO *+2(10) +0(6) 0/3/0 0/4/0 Hills(36) + +F/P/T = Food/Production/Trade output; (t) = turns +MAX1 = Irrigation/Mine/Road/Harbor; MAX2 = Farmland/Railroad/Oil Well. +* = Changes compared to civ2 ruleset. Most affected are Jungles, Swamps + and Tundras. + +TIP: The optimal tiles to place your initial cities are those with MAX + output equal or similar to 2/1/2, mainly those with bonus + resources or rivers. Hills and Plains are always good places for + cities, as well as Flood Desert (desert with river), or bonused + Grassland. The best defense comes from cities placed on Hills with + river. + + +DEFENSE: +-------- + +- Halved the terrain defense bonuses, now more similar to civ3 values: + +TERRAIN NEW OLD +Forest/Jungle/Swamp +25% +50% +Hills +50% +100% +Mountains +100% +200% + +RIVER +25% +50% + +VETERAN +Veteran +50% (=) +Hardened +75% (=) +Elite +100% (=) + +FORTIFIED +50% (=) +(only Land and Big Land units can fortify; inside cities, they are +always considered fortified) + +BASE VS LAND VS SEA VS AIR VS MISSILE +Fort +50% +50% - - +Fortress +100% +100% +50% +50% +Airstrip - - +50% +50% +Airbase +50% +50% +100% +100% + +CITY VS LAND VS SEA VS AIR VS MISSILE +Town (Pop<=8) +50% - - - +City (Pop>8) +100% +50% - - + +Buildings each add: +Great Wall(W) +50% - - - +Walls +100% - - - +Coastal Defense - +100% - - +SAM Battery - - +100% - +SDI Defense - - - +100% + +- Every city of any size receives an inherent +50% defense bonus + against all kinds of ground units. + +- Every city with Pop>8 receives an additional +50% defense bonus + against both ground and naval units. + +- City Walls effect reduced from 200% to 100%, and cost reduced from 60 + to 30. + +- Great Wall wonder gives an additional +50% defense bonus against + ground units. + +Total Defense = (UNIT DEFENSE) * (100+TERRAIN)/100 * (100+RIVER)/100 + * (100+CITY+BASE)/100 * (100+FORTIFIED)/100 * (100+VETERAN)/100 +(Same as classic/civ2 rules). + +EXAMPLE: Riflemen fortified in a fortress, on mountains, with a river, + will get a total defense of 30 against land attacks: + + Riflemen: defense 4 + Fortified (+50%): 4 + 2 = 6 + In Fortress (+100%): 6 + 6 = 12 + On Mountains (+100%): 12 + 12 = 24 + With River (+25%): 24 + 6 = 30. + +EXAMPLE: Riflemen in a size 9 city, with walls, on hills, + will get a total defense of 27 against land attacks: + + Fortified (+50%): 4 + 2 = 6 + On Hills (+50%): 6 + 3 = 9 + In City with Walls (+200%): 9 + 18 = 27. + + +GOVERNMENTS: +------------ + Anarch Tribal Despot Monarc Fundam Republ Democr Federat Commun +Tax/Lux/Sci Rate 0 60 60 70 70 80 90 90 80 +Output per tile # -1(if>2) -1(if>2) -1(if>2) 0 0 +1Trade +1Trade 0 0 +Celebration Bonus (no -1) (no -1) (no -1) (+1Trade) 0 (+1Trade)(+1Trade)(+1Trade) 0 + +Unit Upkeep Shield Shield Coin Coin Coin(x2) Shield Coin(x2) Coin(x2) Shield +Free Units 2 2 2 3 2 1 1 2 3 +War Unhappiness 0 0 0 -1 -1 -1 -2 -1 -1 +Martial Law +1 0 +1 +1 0 0 0 0 +2 + +Civil war % 99% 90% 80% 70% 60% 40% 30% 20% 50% +Empire Size 0 /12 /10 /14 /20 /16 /32 /24 /28 +Special +NoUpkeep +Veteran +75%Gold +50%Gold +Tithes -Revolt -Revolt +Luxury +NoUpkeep + -50%Lux (Land/Mil)(Palace) (Palace) -50%Sci -Senate -Senate (Cost=1) + -NoTaxes +Content +Fanatic +Partisan +Partisan + +Base Corruption 0% 30% 20% 10% 15% 25% 5% 0% 30% +Base Waste 30% 0% 10% 20% 15% 5% 25% 30% 0 +By Distance * +1% +1% +1% +1% +1% +1% +1% +0% +0% + +* Corruption by distance is doubled (+2% per tile of distance to + capital, or +1% for Federation) until The Corporation is researched by + the player. + Waste by distance is doubled (+2% per tile of distance to capital) + until Trade is researched by the player. +# The output per tile penalty is negated by The Pyramids wonder, or + when Railroad is researched by the player. ++ Partisans appear around conquered cities (democratic or communist) if + Guerilla Warfare has been researched by any player. + +- Added Fundamentalism (available with Theology), Tribal (available at + start) and Federation (available with Economics). + +- "Base Corruption/Waste": Modern governments cause less Corruption in + Trade, but more Waste in Production. The total % lost (Waste + + Corruption) is equal for all governments. + +- "Empire Size" (number of cities before they start causing extra + unhappiness): Modern governments have double size limit than their + ancient counterpart. Empire Base Size is always equal to Empire Step + Size. + +- "Unit Upkeep": Tribal, Republic and Communism use the standard unit + upkeep in shields, while the other governments use upkeep in coins (x2 + coins per unit for modern governments). + +- "Free Units": Means units free of shield/coin upkeep and also free of + unhappiness due to military activity. By default 2 free units per city. + +- "War Unhappiness": Most governments cause unhappiness when military + units end the turn outside national borders (same as Republic with civ2 + rules). + +- "Martial Law": Max 3 units can apply martial law (was max 20 for + Despotism and Anarchy). + +- The bonus "+1 Trade" (for every worked tile that is already producing + trade) under Republic and Democracy does not affect oceanic tiles. + +- Republic gets "Revolution when unhappy" effect. Federation gets + "Has senate" effect. Democracy gets both effects. + +- Spies and Diplomats built under Communism or Federation will start at + the first veteran level. Federation gets +2 Luxury points in every city. + +- Under Communism you do not pay upkeep for buildings that cost 1 coin. + Communism cancels the bonus from Mysticism and Theology (to Temples and + Cathedrals). + +- Under Fundamentalism, your cities receive extra Gold from tithes + (from buildings that make citizens content), but -50% to Science (like + subtracting the effect of a library in each city). + +- The output bonus of Palace (under Despotism and Monarchy) switched + from Production to Gold. + +- Tribal government increases by half the chance of ground units + getting the next veteran level after a battle. Every city gets 1 extra + content citizen, but units can't apply martial law. + +TIP: There is some hurry to get Monarchy or Republic (or to build + Pyramids), in order to avoid the initial penalty to output per tile. + However, the Corruption and Waste are evened for all governments, so + there are no big differences, and each government could be useful in + different situations. + + +TECHS: +------ + +- Added new wonders: Mausoleum of Mausolos (available with Ceremonial + Burial), and Statue of Zeus (available with Polytheism). Oracle of + Delphi renamed to Temple of Artemis (in order to allow all 7 wonders). + +- Moved Great Wall to Construction (was Masonry). Moved King Richard's + Crusade to Chivalry, so it requires Monarchy and Knights. Women's + Suffrage moved to Conscription, so it requires Democracy. Switched + Darwin's Voyage and Eiffel Tower (Darwin was earlier than Eiffel). + Shakespeare's Theatre available with Sanitation (was Medicine). + +- Diplomats available with Alphabet (was Writing), and Migrants with + Pottery, so every initial tech allows some unit or building. + +- Coastal Defense moved to Navigation. The labels and icons for + "Magnetism" and "Navigation" were switched, because compass was already + used by historical Caravels, while sextants were not invented until the + age of Galleons/Frigates. + +- Construction requires Iron Working instead of Currency. This way, + Iron Working is a prerequisite to build Frigates and Ironclads. + +- Bridge Building merged to old Engineering in the tech tree. Added + modern "Engineering" in the Industrial Ages that allows Destroyers + (was Electricity) and Transports (was Industrialization), and it is + required for Steel (Cruiser), Amphibious Warfare (Ports), and + Combustion (Submarines). + +- Battleship available with Mass Production instead of Automobile. + Mfg Plant available with Plastics instead of Robotics. + +- Nuclear Fission requires Refrigeration, in order to delay the atomic + age, and to force the AI to research farms. Communism requires Theology + (Fundamentalism) instead of Philosophy, to encourage AI to research all + governments. + +Special effects: +- Astronomy: Increases units vision when in Fortress. +- Invention: Halves upgrade cost of your units. +- Medicine: Reduces by 30% the chance of plague in your cities. +- Electricity: Allows irrigation without adjacent water, increases city + vision radius, and improves the effect of Amphitheatres. +- Trade: Decreases one-time the waste of Production caused by distance + to capital. +- The Corporation: Decreases one-time the corruption of Trade caused by + distance to capital. +- Fusion Power: Allows Engineers to perform terrain transformations. + +Almost all techs, buildings, wonders and units are the same as +classic/civ2, but some requirements have been changed to improve a bit +the historical accuracy, to encourage the use of every military unit, +and to avoid units or wonders becoming obsolete too soon. The following +is a list of some inaccuracies from classic/civ2 tech tree that were +addressed in the new tree: +- It was possible to research Pikemen before Phalanxs; Musketeers before + Pikemen; Ironclads before Frigates; Destroyers before Ironclads; + Armors before Artillery; Mech Infantry without Barracks III. +- Cathedrals did not require Construction nor Masonry. Ironclads and + Eiffel Tower were available without Iron Working. Chivalry and Pikemen + did not need Iron nor Bronze. +- Pottery was not needed to research Trade, Economics, Explosives, + Invention, or Sanitation. +- Chemistry was not related to Atomic theory, Refrigeration, Gunpowder, + Steam Engine, or Steel. +- Theory of Gravity did not need Physics, Invention, or even The Wheel, + and it was not needed for Automobile, Robotics, or Miniaturization. +- Offshore Platforms did not require Refining, Combustion or Explosives. + Miniaturization was not needed for Rocketry or Laser. + +In the new tree, you are forced to research most of the ancient techs +before you can research the modern ones, but overall, researching paths +are similar to classic/civ2 tree. + + +BUILDINGS: +---------- + +- Aqueduct is cheaper near rivers or lakes. Sewer System is needed to + grow larger than pop 16 (instead of 12). Each one reduces the chances + of plague by -30%. + +- Added new building: Ecclesiastical Palace (available with Theology), + that acts as a second center of government that lowers corruption and + waste. + +- Courthouse: Makes 1 citizen content, makes the city immune to incite + actions, and halves any kind of waste (Trade, Production or Food). + + Added new effect: Food wasted by distance to Palace is -1% Food each + 2 tiles. For example, cities at distance 10 of the Palace lose -5% + Food, so they lose -1 Food when their output reaches 20 Food per turn + (noticeable with 10 Food per turn due to rounding effects). + +- Granary halves the waste of Food caused by distance to Palace. + Together with a Courthouse, it eliminates completely the waste of Food. + +- Police Station: Makes 2 citizens content, and reduces unhappiness + caused by 1 military unit. + +- Science bonus from Library, University, and Research Lab restored to + civ2 values (+50%). There are wonders that double the effect later. + +- Production bonus by Factory and Mfg Plant reduced to +25% each + (was +50%), so the Power Plants are as important as the Factories. + Mfg Plants allows the construction of 2 units per turn. + +- Super Highways double the effect of Stock Exchange (+50% to + Gold/Luxury), and they produce extra Trade at tiles with roads but + without farmlands (the city center tile can still have both farmland + and Super Highways bonuses). + +- Doubled costs of all Spaceship parts. All them require Library, + University, Research Lab and Factory present in the city in order to + be built. + +- Reduced by one the upkeep of Aqueduct, Colosseum (renamed to + Amphitheatre), University, Bank, Stock Exchange, Port Facility, SDI + Defense, and Factory; reduced by two for Mass Transit and Mfg. Plant. + +- Pollution caused by population is increased by buildings instead of + by techs: + + Industrialization -> Factory; Automobile -> Highways; Plastics -> Mfg + Plant; Mass Production -> Offshore platforms. + +- Adjusted the pollution of all electrical plants, and increased the + building cost of Nuclear Plants: + + Cost Upkeep Pollution (+Recycling) +Power plant 130 4 100%(50%) +Hydro plant 180 4 50% (25%) +(+Hoover Dam) (=) (=) 25% (0%) +Nuclear plant 240 2 50% (25%) +Solar plant 320 4 25% (0%) + +Recycling Center 140 2 -50%/-25% + + +UNITS: +------ + +- Population cost of Settlers increased to 2, and removed the upkeep. + New unit Migrants available to work, or to migrate 1 population; they + can't create cities and can be captured. Costs more similar to civ3: + +Settlers: pop 2, cost 30, upkeep 0, food 1 +Migrants: pop 1, cost 10, upkeep 0, food 1 +Workers: pop 0, cost 20, upkeep 1, food 0 + +- Non-military units now belongs to a new unit class ("Small Land") + that can not pillage, nor capture cities, and does not create Zones of + Control (ZOC) that would affect the movements of enemy units. + +- Created a new unit class for Caravans and Freights ("Merchant") that + doesn't get the unlimited movement from maglev, and can be captured. + They can only establish trade routes to foreign cities. + +- Military "Land" units can capture enemy Migrants (as slaves) and + Caravans/Freights (as loot). + +- Wheeled units (new unit class "Big Land") can't move to Mountains, + Jungles and Swamps, unless they are travelling on a road. They do not + get defensive bonuses from the terrain, can not perform pillage, and + need Galleons or Transports to travel by sea. + +- Only "Big Land" units can cause population loss when attacking a city. + +- Diplomat units stay alive when they investigate cities, and they can + establish embassies or investigate cities directly from boats without + disembarking. Explorers can perform those two actions, same as + Diplomats. Increased vision range of Explorers and Partisans. + + +- Added Elephants from civ2, available with Polytheism: + (att/def/mov-hp,cost) = (3/2/2-10,30). Obsolete by Dragoons. + +- Added Crusaders from civ2, available with Monotheism: (5/1/2-10,40). + Obsolete by Dragoons. They do not cause unhappiness due to military + activity. + +- Added Fanatics from civ2, available with Guerrilla, under + Fundamentalism government: (5/5/1-20,20). They cost 1 population, but + do not cause unhappiness and do not need upkeep. + +- Archers defense reduced to 1 (was 2), and cost to 20 (was 30). Legion + cost reduced to 30 (was 40). This way the ratio Attack/Cost of ancient + units is more even to Catapults. + +- Pikemen changed to (2/3), cost to 30, and removed the doubled defense + vs horses. Attack of Chariots increased to 4 (was 3). Defense of + Knights increased to 3 (was 2). In order to encourage early use of + cavalry. + +- Alpine Troops changed to (7/4), and Partisan to (4/5). This way, + Riflemen do not become obsolete as city defenders until Partisan or + Marine are researched, and every modern infantry is somehow useful. + +- Given Marine ability to Legion, Musketeer, and Rifleman. This way, + one-tile islands can be assaulted early in game. Yet, the Marine unit + is still the best offensive/defensive infantry. + +- Triremes can navigate rivers. Caravel changed from (2/1) to (1/2), in + order to encourage peaceful exploration of the seas in the age of + discovery. + +- Removed transport capability from Frigates, to force the use of + Galleons. Reduced attack of Frigate and defense of Ironclad to 3 + (was 4). + +- Battleship hit points reduced to 30 (was 40), Ironclad and Submarine + to 20 (was 30). Doubled the defense of Destroyers against Submarines. + Now there is a Rock-paper-scissors relation between + Destroyer-Cruiser-Submarine. + +- All units that had Firepower 2 now have Firepower 1, in order to even + the power of naval, air, and artillery units, and to simplify the + mental calculation to compare them. + +- Artillery and Howitzer receive the ability CityBuster, so their + firepower is 1 in open field, and 2 against cities. Removed Ignore + Walls for Howitzer (that would bypass the new city defense bonuses), + and reduced movement to 1. + +- Bombers and Helicopters receive the Bombarder ability: when they + attack ground units, they can only damage (not kill) them, but they + damage every unit in a stack or city; and are never damaged while + attacking. Note they have a normal attack against naval units (they + still can kill or die). Halved the attack so it is harder to bombard + ground enemies successfully. Increased hit points so it is still + possible to kill naval units. + +- Air units can perform pillage (representing bombardment of + infrastructure), and can be airlifted from a city with an Airport to + another. Increased defense of all Air units, in order to discourage the + use of ground units to protect them. + +- Increased fuel of all planes by one (giving them an extra turn in + the air), in order to allow battles for air control. All planes + lose 10% of HPs, like helicopters, when they end a turn outside a city, + airstrip, or airbase. + +- Helicopters can carry 1 military Land unit, and can only be attacked + by Fighters (with no extra attack bonuses), and by Missiles. Carriers + can also transport military Land units. + +- Cruise Missile no longer cause unhappiness, range increased to 16, + and allowed to attack Air units. + +- Nuclear weapons can be built with Nuclear Fission, but you need + Advanced Flight to move them, and Rocketry to get max movement. + +- Readjusted many costs so units with better stats are always more + expensive. At the same time, modern units always get better ratio + Att/Cost or Def/Cost. + +UNIT Att Def Mov FP HP Cost +Warrior 1 1 1 1 10 10 +Phalanx 1 2 1 1 10 20 +Archers 3 *1 1 1 10 *20 +Legion 4 2 1 1 10 *30 *Marines +Pikemen *2 *3 1 1 10 *30 *(No bonus anti-horse) +Musketeers 3 3 1 1 20 *40 *Marines +Riflemen 5 4 1 1 20 *50 *Marines +Alpine Troops *7 *4 1 1 20 *60 IgTer +Partisan 4 *5 1 1 20 *60 IgTer, IgZOC +Fanatics *5 *5 1 1 20 20 *1 Pop, No upkeep, No unhappy +Marines 8 5 1 1 20 60 Marines +Paratroopers 6 4 1 1 20 60 Paratroopers + +Horsemen 2 1 2 1 10 20 +Chariot *4 1 2 1 10 30 *Wheeled +Elephants *3 *2 2 1 10 *30 +Crusaders 5 1 2 1 10 40 *No unhappy +Knights 4 *3 2 1 10 40 +Dragoons 5 2 2 1 20 50 +Cavalry 8 3 2 1 20 60 +Mech. Inf. 6 6 3 1 30 *70 *Wheeled +Armor 10 5 3 1 30 *90 *Wheeled + +Catapult 6 1 1 1 10 40 *Wheeled +Cannon 8 1 1 1 20 *50 *Wheeled +Artillery 10 *2 1 *1(2) 20 *60 *Wheeled,*CityBuster +Howitzer 12 2 *1 *1(2) 30 *80 *Wheeled,*CityBuster + +Trireme 1 1 3 1 10 *20 Cargo 2, Coastal +Caravel *1 *2 3 1 10 *30 Cargo 3 +Galleon 0 2 4 1 20 40 Cargo 4,*No unhappy +Transport 0 3 5 1 30 50 Cargo 8,*No unhappy +Carrier *0 9 5 *1 40 *150 Cargo 8,*No unhappy + +Frigate *3 2 4 1 20 *40 *No Cargo +Ironclad 4 *3 4 1 *20 *50 +Destroyer 4 4 6 1 30 60 *(x2 def anti-submarine) +Cruiser 6 6 5 *1 30 80 +AEGIS Cruiser 8 8 5 *1 30 100 *(x5 def anti-air/missile) +Battleship 12 12 4 *1 *30 160 +Submarine *12 *5 *5 *1 *20 *70 Cargo 8, Invis + +Fighter 4 *4 10 *1 20 60 Fuel 2 +Bomber *6 *2 8 *1 *30 *100 *Bombard 3, Fuel 3, FieldUnit +Helicopter *5 3 6 *1 *30 *70 *Bombard 2,*Cargo 1 +Stealth Fighter 8 *8 14 *1 20 80 Fuel 2, Invis +Stealth Bomber *9 5 12 *1 *30 *120 *Bombard 4, Fuel 3, FieldUnit, Invis + +Cruise Missile 18 0 *16 *1(2) 10 *50 *CityBuster,*No FieldUnit +Nuclear 99 0 16 1 10 160 Nuclear, FieldUnit + +FP = Firepower, HP = Hit Points +* = Changes compared to civ2 ruleset. Most affected are modern + infantry, air units, and all units that had 2 firepower. + + +WONDERS: +-------- + +- Replaced all effects that worked as if you had certain building in + every city. + +- Replaced every effect Make_Happy, Force_Content, and No_Unhappy, by + additional Luxury in the city tiles. Else they would avoid unhappiness + caused by military activity too easily. + +- Replaced effects that give a percentage bonus to Science output, by + additional Science in the city tiles. This way, they do not multiply + the effect of other wonders like Colossus, and it is not mandatory to + build them all in the same city. + +- These bonuses to Science, Gold or Luxury are produced by the citizens + (same as the bonuses to Trade or Production), so they can be increased + by other city improvements (same as the output of specialists). + +- Your Caravans and Freight can help build allies' or team-mates' + wonders. + +- Wonders become obsolete by techs researched by the owner (not affected + by the researches of other players). + +- Some wonders require certain building in the city to be built. + +- Readjusted effects of most wonders. Restored civ2 costs: + +FULL LIST OF WONDERS +(#) It has some global effect that affects other nations. +"Name", Cost, Requirements, Obsolescence, Effect. + +- "Pyramids" 200. Obsolete by Railroad (that increases even more the + production): + +1 Production per worked tile in the city (already producing shields). + Disables the output per tile penalty under Despotism/Tribal governments. +- "Colossus" 200. Obsolete by Automobile (Super Highways): + +1 Trade per worked tile in the city (already producing Trade). +- "Copernicus' Observatory" 300. Obsolete by Computers (Research Lab): + +1 Science per worked tile in the city. + +- "Hanging Gardens" 200. Obsolete by Electricity (that increases + Amphitheatre effect): + +1 Content all your cities. +4 Luxury in the city where it is built. +- "Mausoleum of Mausolos" 200. Obsolete by Sanitation (that enables + wonder with similar effect): + +1 Content in your cities with Walls, and +1 extra content in your + cities with Courthouse. Your cities cannot be incited to revolt. +- "Temple of Artemis" 200. Requires Temple. Obsolete by Theology (that + increases Cathedral effect): + +2 Content in your cities with Temple. +- "Michelangelo's Chapel" 400. Requires Cathedral: + +3 Content in your cities with Cathedral. + +- "J.S. Bach's Cathedral" 400: + +2 Luxury in all your cities. +- "Cure For Cancer" 600: + +2 Luxury in all your cities. -10% chance of plague. + +- (#)"Shakespeare's Theatre" 300: + Entertainer specialists output increases to 3 for every nation. + +1 Luxury in all your cities, +6 Luxury where it is built. +- (#)"A.Smith's Trading Co" 400. Requires Stock Exchange: + Taxman specialists output increases to 3 for every nation. Free upkeep + for buildings that cost 1 coin, in all your cities with Stock Exchange. +- (#)"Darwin's Voyage" 400: + Scientist specialists output increases to 3 for every nation. + +1 Science in all your cities. + +- (#)"Great Library" 300. Requires Library: + Doubles the effect of Library for every nation. Gives an immediate + technology advance. +4 Science in the city where it is built. +- (#)"Isaac Newton's College" 400. Requires University: + Doubles the effect of University for every nation. Gives an immediate + technology advance. +6 Science in the city where it is built. +- (#)"Internet" 600. Requires Research Lab: + Doubles the effect of Research Lab for every nation. Gives an immediate + technology advance. Reveals all cities in the map for the owner. + +- "Lighthouse" 200. Requires adjacent sea. Obsolete by Engineering + (Destroyer): + +1 Move point for all your naval units, and they are built veteran in + all your cities. +- "Magellan's Expedition" 400, Obsolete by Nuclear Power (that + increases even more movement of naval units): + +1 Move point, and +50% chance to become veteran after a battle, for + Sea units (no Triremes). +- "Sun Tzu's War Academy" 300. Obsolete by Mobile Warfare (Barracks III): + +1 Veteran level for all military ground units built in your cities + (cumulative to Barracks). + +- "Statue of Zeus" 200. Obsolete by Conscription (that enables wonder + with similar effect): + +1 Military Content, +1 free shield per city for upkeep of units. +- "King Richard's Crusade" 300. Obsolete by Communism (Police Station): + +1 Military Content, +2 free coins per city for upkeep of units. +- "Women's Suffrage" 600: + +1 Military Content (cumulative to Police Stations). Under Democracy it + halves the unhappiness caused by each military unit. + +- "Marco Polo's Embassy" 200. Obsolete by Democracy: + Embassy with all players (tech costs are reduced depending on the + number of players which already know them). +- "Eiffel Tower" 300: + +10 to AI love for the owner. Reduces -25% the pollution caused by the + population in all your cities. +- "Statue of Liberty" 400: + Disables Has Senate effect. Any government available. No Anarchy + periods when government changes. +- (#)"United Nations" 600: + +10 to AI love for the owner. Revolution when unhappy effect for every + nation. + +- "Great Wall" 300. Obsolete by Machine Tools (Artillery): + +50% Defense bonus against ground units in all your cities, and no loss + of population due to attacks. +- "Leonardo's Workshop" 400. Obsolete by Combustion: + Upgrades one obsolete unit per game turn. +- "Hoover Dam" 600. Requires Factory (and adjacent river): + Gives to to all your Hydro Plants the same effect as Solar Plants (-25% + pollution caused by production). +- (#)"Manhattan Project" 600: + Enables nuclear units for every nation. +- (#)"Apollo Program" 600: + Enables space race for every nation. Makes entire map permanently + visible for the owner. + +Special "Cold War" effect: if Manhattan Project and United Nations were +built, every nation with nuclear power receives the Has Senate effect, +until the Apollo Program is finished. + + +THANKS: +------- + +To every people who collaborated to create this wonderful Freeciv game. +Specially to those who programmed the Ruleset modding capabilities and +the AI capable to play with them. +Original developer David Fernandez (Bardo). diff --git a/actions.ruleset b/actions.ruleset new file mode 100644 index 0000000..43e9d4b --- /dev/null +++ b/actions.ruleset @@ -0,0 +1,1506 @@ +; 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 = "Civ2Civ3 actions data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[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. +; if_attacker - this requirement vector must be true before a unit even +; considers to auto attack. +; attack_actions - the actions to try during an auto attack in the order +; they should be tried. + +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 + } + +attack_actions = "Capture Units", "Bombard", "Collect Ransom", "Attack", + "Suicide Attack" + +[actions] +; Forbid "Bombard" if any one of the listed actions are legal. +bombard_blocked_by = "Capture Units" + +; Forbid "Explode Nuclear" if any one of the listed actions are legal. +explode_nuclear_blocked_by = "Capture Units", "Bombard" + +; Forbid "Nuke City" if any one of the listed actions are legal. +nuke_city_blocked_by = "Capture Units", "Bombard" + +; Forbid "Nuke Units" if any one of the listed actions are legal. +nuke_units_blocked_by = "Capture Units", "Bombard" + +; Forbid "Attack" if any one of the listed actions are legal. +attack_blocked_by = "Collect Ransom", "Capture Units", "Bombard", + "Explode Nuclear", "Nuke City", "Nuke Units" + +; Forbid "Suicide Attack" if any one of the listed actions are legal. +suicide_attack_blocked_by = "Collect Ransom", "Capture Units", "Bombard", + "Explode Nuclear", "Nuke City", "Nuke Units" + +; Forbid "Conquer City" if any one of the listed actions are legal. +conquer_city_blocked_by = "Capture Units", "Bombard", "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 = "Capture Units", "Bombard", "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", + "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" + +; Actor units will - under certain circumstances - be forced to try +; performing the following actions in the specified order after successfully +; performing "Collect Ransom". +collect_ransom_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", +; "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 = TRUE + +; 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 maximum distance from the actor unit to the target of the +; "Bombard Lethal" 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_lethal_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: _Sabotage 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 = _("%sBribe Enemy Unit%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 _Revolt (3% chance of success). */ +ui_name_incite_city = _("Incite a %sRevolt%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: Enter _Marketplace (100% chance of success). */ +ui_name_enter_marketplace = _("Enter %sMarketplace%s") + +; /* TRANS: Help _build Wonder (100% chance of success). */ +ui_name_help_wonder = _("Help %sbuild Wonder%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: _Capture Units (100% chance of success). */ +ui_name_capture_units = _("%sCapture Units%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: _Bombard (100% chance of success). */ +ui_name_bombard = _("%sBombard%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: _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 (100% chance of success). */ +ui_name_clean = _("%sClean%s") + +; /* TRANS: _Fortify (100% chance of success). */ +ui_name_fortify = _("%sFortify%s") + +; /* TRANS: Build _Road (100% chance of success). */ +ui_name_build_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_deboard = _("%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: _Disembark from non native (100% chance of success). */ +ui_name_transport_disembark_2 = _("%sDisembark from non native%s") + +; /* TRANS: _Embark (100% chance of success). */ +ui_name_transport_embark = _("%sEmbark%s") + +; /* TRANS: Eliminate _Spy (100% chance of success). */ +ui_name_spy_attack = _("Eliminate %sSpy%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" and "Frighten Hut 2" for "Frighten Hut". +; 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", "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 + "DiplRel", "War", "Local", TRUE + "UnitState", "OnLivableTile", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "UnitFlag", "Spy", "Local", FALSE + } + +[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 + "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" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Spy", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "Foreign", "Local", TRUE + "DiplRel", "Has real embassy", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "NationGroup", "Barbarian", "Player", FALSE + } + +[actionenabler_establish_embassy_explorer] +action = "Establish Embassy Stay" +actor_reqs = + { "type", "name", "range", "present" + "UnitType", "Explorer", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "Foreign", "Local", TRUE + "DiplRel", "Has real embassy", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "NationGroup", "Barbarian", "Player", FALSE + } + +[actionenabler_investigate_city] +action = "Investigate City" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Diplomat", "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" + "MinMoveFrags", "1", "Local" + "DiplRel", "Foreign", "Local" + } + +[actionenabler_investigate_city_explorer] +action = "Investigate City" +actor_reqs = + { "type", "name", "range" + "UnitType", "Explorer", "Local" + "MinMoveFrags", "1", "Local" + "DiplRel", "Foreign", "Local" + } + +[actionenabler_steal_tech_random] +action = "Steal Tech" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Spy", "Local", FALSE + "UnitFlag", "Diplomat", "Local", TRUE + "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_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_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" + "Building", "Courthouse", "City", FALSE + "Building", "Palace", "City", FALSE + "Building", "Ecclesiastical Palace", "City", FALSE + "Building", "Mausoleum of Mausolos", "Player", 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" + "Building", "Courthouse", "City", FALSE + "Building", "Palace", "City", FALSE + "Building", "Ecclesiastical Palace", "City", FALSE + "Building", "Mausoleum of Mausolos", "Player", FALSE + } + +[actionenabler_bribe_unit] +action = "Bribe Unit" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Diplomat", "Local", TRUE + "UnitState", "HasHomeCity", "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" + "UnitFlag", "Unbribable", "Local", FALSE + "CityTile", "Center", "Tile", FALSE + "MaxUnitsOnTile", "1", "Tile", 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", "Tile", FALSE + "MinHitPoints", "2", "Local", TRUE + "MaxUnitsOnTile", "1", "Tile", TRUE + } + +[actionenabler_eliminate_spy] +action = "Spy Attack" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Spy", "Local", TRUE + "UnitState", "OnLivableTile", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "Alliance", "Local", FALSE + "DiplRel", "Team", "Local", FALSE + "DiplRel", "Foreign", "Local", TRUE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Center", "Tile", FALSE + } + +[actionenabler_trade_route] +action = "Establish Trade Route" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "TradeRoute", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "UnitState", "HasHomeCity", "Local", TRUE + } + +[actionenabler_help_build_wonder] +action = "Help Wonder" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "HelpWonder", "Local", TRUE + "DiplRel", "Armistice", "Local", FALSE + "DiplRel", "War", "Local", FALSE + "DiplRel", "Cease-fire", "Local", FALSE + "DiplRel", "Peace", "Local", FALSE + "MinMoveFrags", "1", "Local", TRUE + } +target_reqs = + { "type", "name", "range" + "BuildingGenus", "GreatWonder", "Local" + } + +[actionenabler_disband_unit_recover] +action = "Disband Unit Recover" +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_disband_unit] +action = "Disband Unit" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "EvacuateFirst", "Local", FALSE + } + +[actionenabler_capture] +action = "Capture Units" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Capturer", "Local", TRUE + "DiplRel", "War", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "Foreign", "Local", TRUE + } +target_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Capturable", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "CityTile", "Center", "Tile", FALSE + } + +[actionenabler_bombard_city] +action = "Bombard" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Bombarder", "Local", TRUE + "UnitState", "Transported", "Local", FALSE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "War", "Local", TRUE + } +target_reqs = + { "type", "name", "range", "present" + "TerrainClass", "Oceanic", "Tile", FALSE + "DiplRelTileOther", "War", "Local", TRUE + } + +[actionenabler_bombard_no_city] +action = "Bombard" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Bombarder", "Local", TRUE + "UnitState", "Transported", "Local", FALSE + "MinMoveFrags", "1", "Local", TRUE + "DiplRel", "War", "Local", TRUE + } +target_reqs = + { "type", "name", "range", "present" + "TerrainClass", "Oceanic", "Tile", FALSE + "CityTile", "Center", "Tile", 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", "Tile", FALSE + "TerrainFlag","NoCities","Tile",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", "Tile", TRUE + "TerrainFlag", "NoCities", "Tile", 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", "Tile", 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_ransom_from_native] +action = "Collect Ransom" +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_ransom_marines] +action = "Collect Ransom" +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_ransom_att_from_non_native] +action = "Collect Ransom" +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 + "Nation", "Animal Kingdom", "Player", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "MaxUnitsOnTile", "0", "Tile", TRUE + } + +[actionenabler_conquer_city_marines] +action = "Conquer City 2" +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 + "UnitState", "OnLivableTile", "Local", FALSE + "Nation", "Animal Kingdom", "Player", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "MaxUnitsOnTile", "0", "Tile", TRUE + } + +[actionenabler_change_home_city] +action = "Home City" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "NoHome", "Local", FALSE + "UnitState", "HasHomeCity", "Local", TRUE + "DiplRel", "Foreign", "Local", FALSE + } + +[actionenabler_change_home_city_diplo] +action = "Home City" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Diplomat", "Local", TRUE + "DiplRel", "Foreign", "Local", FALSE + } + +[actionenabler_paradrop_base_to_claimed] +action = "Paradrop Unit Enter" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "ExtraFlag", "ParadropFrom", "Tile", TRUE + "DiplRel", "Peace", "Local", FALSE + "DiplRel", "War", "Local", FALSE + "UnitClassFlag", "HutFrighten", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", TRUE + } + +[actionenabler_paradrop_base_to_unclaimed] +action = "Paradrop Unit Enter" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "ExtraFlag", "ParadropFrom", "Tile", TRUE + "UnitClassFlag", "HutFrighten", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", FALSE + } + +[actionenabler_paradrop_base_to_war_conquer] +action = "Paradrop Unit Enter Conquer" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "ExtraFlag", "ParadropFrom", "Tile", TRUE + "DiplRel", "War", "Local", TRUE + "UnitClassFlag", "CanOccupyCity", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitClassFlag", "HutFrighten", "Local", FALSE + "Nation", "Animal Kingdom", "Player", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", TRUE + } + +[actionenabler_paradrop_city_to_claimed] +action = "Paradrop Unit Enter" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "CityTile", "Center", "Tile", TRUE + "DiplRel", "Peace", "Local", FALSE + "DiplRel", "War", "Local", FALSE + "UnitClassFlag", "HutFrighten", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", TRUE + } + +[actionenabler_paradrop_city_to_unclaimed] +action = "Paradrop Unit Enter" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "CityTile", "Center", "Tile", TRUE + "UnitClassFlag", "HutFrighten", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", FALSE + } + +[actionenabler_paradrop_city_to_war_conquer] +action = "Paradrop Unit Enter Conquer" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Paratroopers", "Local", TRUE + "MinMoveFrags", "6", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "CityTile", "Center", "Tile", TRUE + "DiplRel", "War", "Local", TRUE + "UnitClassFlag", "CanOccupyCity", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitClassFlag", "HutFrighten", "Local", FALSE + "Nation", "Animal Kingdom", "Player", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "CityTile", "Claimed", "Tile", 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" + "UnitClassFlag", "Airliftable", "Local", TRUE + "UnitState", "Transporting", "Local", FALSE + "MinMoveFrags", "1", "Local", TRUE + "CityTile", "Center", "Tile", TRUE + } + +[actionenabler_transform_terrain] +action = "Transform Terrain" +actor_reqs = + { "type", "name", "range" + "Tech", "Fusion Power", "Player" + "UnitFlag", "Transform", "Local" + "UnitFlag", "Settlers", "Local" + } + +[actionenabler_cultivate] +action = "Cultivate" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } + +[actionenabler_plant] +action = "Plant" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } + +[actionenabler_pillage] +action = "Pillage" +actor_reqs = + { "type", "name", "range" + "UnitClassFlag", "CanPillage", "Local" + } + +[actionenabler_clean] +action = "Clean" +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", "Tile", 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", "Tile", TRUE + "Activity", "Fortified", "Local", FALSE + } + +[actionenabler_road] +action = "Build Road" +actor_reqs = + { "type", "name", "range" + "UnitFlag", "Settlers", "Local" + } +target_reqs = + { "type", "name", "range" + "TerrainAlter", "CanRoad", "Tile" + } + +[actionenabler_base] +action = "Build Base" +actor_reqs = + { "type", "name", "range" + } +target_reqs = + { "type", "name", "range" + "TerrainAlter", "CanBase", "Tile" + } + +[actionenabler_mining] +action = "Build Mine" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "Terrain", "Deep Ocean", "Tile", FALSE + "TerrainAlter", "CanMine", "Tile", TRUE + } + +[actionenabler_mining_ocean] +action = "Build Mine" +actor_reqs = + { "type", "name", "range" + "UnitFlag", "Settlers", "Local" + "Tech", "Miniaturization", "Player" + } +target_reqs = + { "type", "name", "range", "present" + "Terrain", "Deep Ocean", "Tile", TRUE + } + +; Prevent building farmland on bare deserts. It does not yield any bonus +; over irrigation, and prevents any Super Highways trade bonus, so it +; would be a waste of time. +; (Note that it is still possible to end up with farmland on such terrain +; through climate change.) +; Deserts with food bonuses _are_ allowed farmland (hence exceptions). + +; "Sea" nreq is for Transports, which are only supposed to clean pollution + +[actionenabler_irrigate_src_tech_basic_irrigation] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "Tech", "Electricity", "Player", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "Extra", "Irrigation", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_ocean_basic_irrigation] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "TerrainClass", "Oceanic", "CAdjacent", TRUE + "Extra", "Irrigation", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_extra_basic_irrigation] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "ExtraFlag", "IrrigationSource", "CAdjacent", TRUE + "Extra", "Irrigation", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_tech_not_in_desert] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "Tech", "Electricity", "Player", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "Terrain", "Desert", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_ocean_not_in_desert] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "TerrainClass", "Oceanic", "CAdjacent", TRUE + "Terrain", "Desert", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_extra_not_in_desert] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "ExtraFlag", "IrrigationSource", "CAdjacent", TRUE + "Terrain", "Desert", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + } + +[actionenabler_irrigate_src_tech_desert_but_allowed] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "Tech", "Electricity", "Player", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "Terrain", "Desert", "Tile", TRUE + "ExtraFlag", "AllowsFarmlandOnDesert", "Tile", TRUE + } + +[actionenabler_irrigate_src_ocean_desert_but_allowed] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "TerrainClass", "Oceanic", "CAdjacent", TRUE + "Terrain", "Desert", "Tile", TRUE + "ExtraFlag", "AllowsFarmlandOnDesert", "Tile", TRUE + } + +[actionenabler_irrigate_src_extra_desert_but_allowed] +action = "Build Irrigation" +actor_reqs = + { "type", "name", "range", "present" + "UnitFlag", "Settlers", "Local", TRUE + "UnitClass", "Sea", "Local", FALSE + } +target_reqs = + { "type", "name", "range", "present" + "ExtraFlag", "IrrigationSource", "CAdjacent", TRUE + "Terrain", "Desert", "Tile", TRUE + "ExtraFlag", "AllowsFarmlandOnDesert", "Tile", TRUE + } + +[actionenabler_deboard] +action = "Transport Deboard" +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_from_native_tile] +action = "Transport Disembark" +actor_reqs = + { "type", "name", "range" + "UnitState", "Transported", "Local" + "MinMoveFrags", "1", "Local" + "UnitState", "OnNativeTile", "Local" + } + +[actionenabler_disembark_from_native_city] +action = "Transport Disembark" +actor_reqs = + { "type", "name", "range" + "UnitState", "Transported", "Local" + "MinMoveFrags", "1", "Local" + "CityTile", "Center", "Tile" + } + +[actionenabler_disembark_from_non_native] +action = "Transport Disembark 2" +actor_reqs = + { "type", "name", "range", "present" + "UnitState", "Transported", "Local", TRUE + "MinMoveFrags", "1", "Local", TRUE + "UnitState", "OnNativeTile", "Local", FALSE + "CityTile", "Center", "Tile", FALSE + } + +[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_native_city] +action = "Enter Hut" +actor_reqs = + { "type", "name", "range", "present" + "MinMoveFrags", "1", "Local", TRUE + "CityTile", "Center", "Tile", 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 + "CityTile", "Center", "Tile", FALSE + "UnitClassFlag", "HutFrighten", "Local", FALSE + } + +[actionenabler_hut_frighten_from_native_tile] +action = "Frighten Hut" +actor_reqs = + { "type", "name", "range" + "MinMoveFrags", "1", "Local" + "UnitState", "OnNativeTile", "Local" + "UnitClassFlag", "HutFrighten", "Local" + } + +[actionenabler_hut_frighten_from_native_city] +action = "Frighten Hut" +actor_reqs = + { "type", "name", "range" + "MinMoveFrags", "1", "Local" + "CityTile", "Center", "Tile" + "UnitClassFlag", "HutFrighten", "Local" + } + +[actionenabler_hut_frighten_from_non_native] +action = "Frighten Hut 2" +actor_reqs = + { "type", "name", "range", "present" + "MinMoveFrags", "1", "Local", TRUE + "UnitState", "OnNativeTile", "Local", FALSE + "CityTile", "Center", "Tile", FALSE + "UnitClassFlag", "HutFrighten", "Local", TRUE + } diff --git a/buildings.ruleset b/buildings.ruleset new file mode 100644 index 0000000..24fdacd --- /dev/null +++ b/buildings.ruleset @@ -0,0 +1,2262 @@ + +; 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 = "Civ2Civ3 buildings data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[control] + +; Names for custom building 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 building types with this flag +; (optional) +building_flags = + { "name", "helptxt" + "Barracks" + } + +; /* <-- 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", +; or "Convert". +; 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 +; graphic_alt2 = second alternative icon. +; 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 +; sound = tag of the sound to play when building finished +; sound_alt = alternate sound tag +; sound_alt2 = second alternative sound tag +; 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 "Convert". +; "DisasterProof" = Disasters never destroy this building. Is meaningful +; only for genus "Improvement" buildings as others are +; automatically disaster proof. +; +; */ <-- avoid gettext warnings + +[building_airport] +name = _("Airport") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Radio", "Player" + } +graphic = "b.airport" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 3 +sabotage = 100 +sound = "b_airport" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Allows a city to produce veteran air units (including helicopters and\ + missiles).\ + Also, damaged air units (again, including helicopters) which stay in\ + town for one full turn without moving are completely restored.\ +"), _("\ +Two cities with Airports can airlift one unit per turn (including\ + aircraft). Airlifting instantly transports the unit from one city\ + to another and will use all of the unit's movement points. A unit\ + must have some movement points left to be airlifted, and cannot\ + carry cargo.\ +") + +[building_aqueduct] +name = _("Aqueduct") +genus = "Improvement" +reqs = + { "type", "name", "range", "present" + "Tech", "Construction", "Player", TRUE + "Extra", "River", "Adjacent", FALSE + "Terrain", "Lake", "Adjacent", FALSE + } +graphic = "b.aqueduct" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 1 +sabotage = 100 +sound = "b_aqueduct" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Allows a city to grow larger than size 8. (A Sewer System is required \ +for a city to grow larger than size 16.)\ +"), +; /* xgettext:no-c-format */ +_("\ +These larger cities enjoy increased defense (+50%) against both land and \ +sea units; however, such large settlements have a small risk of fire, \ +which can destroy buildings in the city.\ +"), +; /* xgettext:no-c-format */ +_("\ +Starting at size 5, growing cities incur an increasing risk of plague \ +due to overcrowding; an Aqueduct reduces that base chance by 30%.\ +"), _("\ +Building an Aqueduct in a city without access to a lake or river requires \ +knowledge of Construction, and it costs more to build and maintain.\ +") + +[building_aqueduct_lake] +name = _("Aqueduct, Lake") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Terrain", "Lake", "Adjacent" + } +graphic = "b.aqueduct" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 20 +upkeep = 0 +sabotage = 100 +sound = "b_aqueduct" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Allows a city to grow larger than size 8. (A Sewer System is required \ +for a city to grow larger than size 16.)\ +"), +; /* xgettext:no-c-format */ +_("\ +These larger cities enjoy increased defense (+50%) against both land and \ +sea units; however, such large settlements have a small risk of fire, \ +which can destroy buildings in the city.\ +"), +; /* xgettext:no-c-format */ +_("\ +Starting at size 5, growing cities incur an increasing risk of plague \ +due to overcrowding; an Aqueduct reduces that base chance by 30%.\ +"), _("\ +Aqueducts in cities with access to a lake require no special technology and \ +are cheap to build and maintain.\ +") + +[building_aqueduct_river] +name = _("Aqueduct, River") +genus = "Improvement" +reqs = + { "type", "name", "range", "present" + "Extra", "River", "Adjacent", TRUE + "Terrain", "Lake", "Adjacent", FALSE + } +graphic = "b.aqueduct" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 20 +upkeep = 0 +sabotage = 100 +sound = "b_aqueduct" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Allows a city to grow larger than size 8. (A Sewer System is required \ +for a city to grow larger than size 16.)\ +"), +; /* xgettext:no-c-format */ +_("\ +These larger cities enjoy increased defense (+50%) against both land and \ +sea units; however, such large settlements have a small risk of fire, \ +which can destroy buildings in the city.\ +"), +; /* xgettext:no-c-format */ +_("\ +Starting at size 5, growing cities incur an increasing risk of plague \ +due to overcrowding; an Aqueduct reduces that base chance by 30%.\ +"), _("\ +Aqueducts in cities with access to a river require no special technology and \ +are cheap to build and maintain.\ +") + +[building_bank] +name = _("Bank") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Banking", "Player" + "Building", "Marketplace", "City" + } +graphic = "b.bank" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 80 +upkeep = 1 +sabotage = 100 +sound = "b_bank" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the luxury and tax output in a city by an additional 50%. \ +With both a Bank and a Marketplace in a city, the total bonus is 100%.\ +") + +[building_barracks] +name = _("Barracks") +genus = "Improvement" +reqs = + { "type", "name", "range" + } +graphic = "b.barracks_i" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + "Tech", "Gunpowder", "Player" + "Building", "Barracks II", "City" + "Building", "Barracks III", "City" + } +build_cost = 30 +upkeep = 1 +sabotage = 100 +sound = "b_barracks_i" +sound_alt = "b_generic" +sound_alt2 = "-" +flags = "Barracks" +; /* xgettext:no-c-format */ +helptext = _("\ +With a Barracks, each new military land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defense strengths are increased by 50%.\ +"), _("\ +Also, damaged land units which stay in town for one full turn\ + without moving are completely restored.\ +") + +[building_barracks_ii] +name = _("Barracks II") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Gunpowder", "Player" + } +graphic = "b.barracks_ii" +graphic_alt = "b.barracks_i" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + "Tech", "Mobile Warfare", "Player" + "Building", "Barracks III", "City" + } +build_cost = 30 +upkeep = 1 +sabotage = 100 +sound = "b_barracks_ii" +sound_alt = "b_generic" +sound_alt2 = "-" +flags = "Barracks" +; /* xgettext:no-c-format */ +helptext = _("\ +With a Barracks, each new military land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defense strengths are increased by 50%.\ +"), _("\ +Also, damaged land units which stay in town for one full turn\ + without moving are completely restored.\ +") + +[building_barracks_iii] +name = _("Barracks III") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Mobile Warfare", "Player" + } +graphic = "b.barracks_iii" +graphic_alt = "b.barracks_i" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 30 +upkeep = 1 +sabotage = 100 +sound = "b_barracks_iii" +sound_alt = "b_generic" +sound_alt2 = "-" +flags = "Barracks" +; /* xgettext:no-c-format */ +helptext = _("\ +With a Barracks, each new military land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defense strengths are increased by 50%.\ +"), _("\ +Also, damaged land units which stay in town for one full turn\ + without moving are completely restored.\ +") + +[building_cathedral] +name = _("Cathedral") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Monotheism", "Player" + "Building", "Temple", "City" + } +graphic = "b.cathedral" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 80 +upkeep = 3 +sabotage = 100 +sound = "b_cathedral" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +A Cathedral makes 3 unhappy citizens content in a city, making it \ +easier to maintain order in that city; however, it does not affect \ +citizens made unhappy by aggression. Knowledge of Theology \ +increases the effect of a Cathedral, making an additional unhappy \ +citizen content, except under Communism.\ +") + +[building_city_walls] +name = _("City Walls") +genus = "Improvement" +flags = "VisibleByOthers" +reqs = + { "type", "name", "range" + "Tech", "Masonry", "Player" + } +graphic = "b.city_walls" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 30 +upkeep = 0 +sabotage = 50 +sound = "b_city_walls" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +City Walls make it easier to defend a city. They add a +100% bonus to the \ +intrinsic defense strength of units within the city against land units \ +(that is a two-thirds increase for small cities, or a one-half increase \ +for cities larger than size 8), but are ineffective against airborne and \ +sea units. City Walls also prevent the loss of population which occurs \ +when a defending unit is defeated by a land unit.\ +") + +[building_coastal_defense] +name = _("Coastal Defense") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Navigation", "Player" + "TerrainClass", "Oceanic", "Adjacent" + } +graphic = "b.coastal_defense" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 1 +sabotage = 100 +sound = "b_coastal_defense" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Gives a +100% bonus to the intrinsic defense strength of units within \ +a city when defending against enemy ships. For small cities the defense \ +strength is doubled by this improvement; for cities larger than size 8, \ +it is increased by two-thirds.\ +") + +[building_colosseum] +name = _("Amphitheater") +rule_name = "Colosseum" +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Construction", "Player" + } +graphic = "b.colosseum" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 70 +upkeep = 3 +sabotage = 100 +sound = "b_colosseum" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Entertains the citizens of a city, making 3 unhappy citizens content. \ + (Four after the discovery of Electricity.) However, it does not\ + affect citizens made unhappy by military activity.\ +") + +[building_courthouse] +name = _("Courthouse") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Code of Laws", "Player" + } +graphic = "b.courthouse" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 1 +sabotage = 100 +sound = "b_courthouse" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Halves all kinds of waste in a city (corruption, production waste, and \ +food waste). In your capital, corruption and production waste is \ +eliminated. A Granary together with a Courthouse in a city will \ +eliminate food waste.\ +"), _("\ +Also makes one unhappy citizen content (unless that citizen is unhappy \ +about military activity).\ +"), _("\ +A city with a Courthouse cannot be incited to revolt.\ +") + +[building_factory] +name = _("Factory") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Industrialization", "Player" + } +graphic = "b.factory" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 140 +upkeep = 3 +sabotage = 100 +sound = "b_factory" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the shield production in a city by 25%, or 50% with an \ +electrical plant of any kind in the same city.\ +"), _("\ +This increase in production may contribute significantly to \ +pollution; a Factory also increases the pollution caused by the \ +population of the city.\ +") + +[building_granary] +name = _("Granary") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Pottery", "Player" + } +graphic = "b.granary" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 40 +upkeep = 1 +sabotage = 100 +sound = "b_granary" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +When any small city grows or shrinks, 10 food points are saved; this \ +helps cities to grow faster and more easily withstand famine. With a \ +Granary this is extended to cities of size 4 and above. (10 food points \ +is half what a small city needs to grow, but more points are needed \ +for later growth steps.)\ +"), _("\ +A Granary also halves the food wasted in cities far from your capital. \ +Together with a Courthouse it eliminates food waste.\ +"), _("\ +TIP: to maximise the speed with which a city grows, you should build a \ +Granary before it grows larger than size 4.\ +") + +[building_harbor] +name = _("Harbor") +rule_name = "Harbour" ; en_GB spelling used originally +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Seafaring", "Player" + "TerrainFlag", "Sea", "Adjacent" + } +graphic = "b.harbor" +graphic_alt = "b.harbour" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 40 +upkeep = 1 +sabotage = 100 +sound = "b_harbor" +sound_alt = "b_harbour" +sound_alt2 = "b_generic" +helptext = _("\ +Gives one extra food resource on all Ocean or Deep Ocean tiles (but \ +not Lakes). The city needs to be coastal (next to one of these tiles) \ +to build this improvement.\ +") + +[building_hydro_plant] +name = _("Hydro Plant") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Electronics", "Player" + "Building", "Factory", "City" + "Extra", "River", "Adjacent" + } +graphic = "b.hydro_plant" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 180 +upkeep = 4 +sabotage = 100 +sound = "b_hydro_plant" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Any kind of electrical plant increases the shield production \ +effects of any Factory or Mfg. Plant in its city by 25% each. \ +Thus, an electrical plant in combination with either a Factory \ +or Mfg. Plant gives a 50% production bonus over \ +the level without any of these improvements; an electrical plant, \ +Factory, and Mfg. Plant together give a 100% production bonus. \ +The extra production may lead to the city generating more \ +pollution.\ +"), +; /* xgettext:no-c-format */ +_("\ +However, a Hydro Plant also reduces the pollution associated with shield \ +production to 50% of its normal value, or 25% in combination with a \ +Recycling Center; pollution is reduced further for the player who owns \ +the Hoover Dam. (A Hydro Plant's effect is the same as that of a \ +Nuclear Plant; with the Hoover Dam, its effect is increased to that of \ +a Solar Plant.)\ +"), _("\ +In each city, only one Power Plant, Hydro Plant, Nuclear Plant, or \ +Solar Plant can take effect at any one time.\ +") + +[building_library] +name = _("Library") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Writing", "Player" + } +graphic = "b.library" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 1 +sabotage = 100 +sound = "b_library" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the science output in a city by 50%, or by 100% once the \ +Great Library has been built by any player.\ +") + +[building_marketplace] +name = _("Marketplace") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Currency", "Player" + } +graphic = "b.marketplace" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 0 +sabotage = 100 +sound = "b_marketplace" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the luxury and tax output in a city by 50%.\ +") + +[building_mass_transit] +name = _("Mass Transit") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Mass Production", "Player" + } +graphic = "b.mass_transit" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 2 +sabotage = 100 +sound = "b_mass_transit" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Reduces the pollution generated by the population in a city; this \ +building counteracts the additional pollution associated with any \ +two other buildings.\ +") + +[building_mfg_plant] +name = _("Mfg. Plant") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Plastics", "Player" + "Building", "Factory", "City" + } +graphic = "b.mfg_plant" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 220 +upkeep = 4 +sabotage = 100 +sound = "b_mfg_plant" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the shield production in a city by an additional 25%, or \ +50% with an electrical plant of any kind in the same city; this \ +effect is cumulative with that of a Factory.\ +"), _("\ +With sufficient shield production, cities with a Manufacturing Plant \ +can produce up to two units each turn (but only single units of types \ +which cost population).\ +"), _("\ +This increase in shield production may contribute significantly to \ +pollution; a Manufacturing Plant also increases the pollution caused \ +by the population of the city.\ +"), _("\ +A Manufacturing Plant also has a small risk of suffering an industrial \ +accident, which can lead to pollution and reduce the city's population.\ +") + +[building_nuclear_plant] +name = _("Nuclear Plant") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Nuclear Power", "Player" + "Building", "Factory", "City" + } +graphic = "b.nuclear_plant" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 240 +upkeep = 2 +sabotage = 100 +sound = "b_nuclear_plant" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Any kind of electrical plant increases the shield production \ +effects of any Factory or Mfg. Plant in its city by 25% each. \ +Thus, an electrical plant in combination with either a Factory \ +or Mfg. Plant gives a 50% production bonus over \ +the level without any of these improvements; an electrical plant, \ +Factory, and Mfg. Plant together give a 100% production bonus. \ +The extra production may lead to the city generating more \ +pollution.\ +"), +; /* xgettext:no-c-format */ +_("\ +However, a Nuclear Plant also reduces the pollution associated with shield \ +production to 50% of its normal value, or 25% in combination with a \ +Recycling Center. (Its effect is the same as that of a Hydro Plant.)\ +"), _("\ +A Nuclear Plant has a small risk of suffering a nuclear accident, which \ +can lead to fallout and reduce the city's population.\ +"), _("\ +In each city, only one Power Plant, Hydro Plant, Nuclear Plant, or \ +Solar Plant can take effect at any one time.\ +") + +[building_offshore_platform] +name = _("Offshore Platform") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Miniaturization", "Player" + "TerrainClass", "Oceanic", "Adjacent" + } +graphic = "b.offshore_platform" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 3 +sabotage = 100 +sound = "b_offshore_platform" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Every Ocean or Lake tile worked by the city yields one extra shield resource, \ +as well as any Deep Ocean tile containing an oil platform. The city needs \ +to be next to a water tile to build this improvement.\ +"), _("\ +Offshore Platforms also increase the pollution caused by the population \ +of the city.\ +") + +[building_palace] +name = _("Palace") +genus = "SmallWonder" +flags = "SaveSmallWonder" +reqs = + { "type", "name", "range" + } +graphic = "b.palace" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 70 +upkeep = 0 +sabotage = 0 +sound = "b_palace" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Makes a city the capital and the center of your government. \ +Waste in other cities (corruption, production waste, and food waste) \ +is often related to how far away from the capital they are. On top of \ +this, corruption and production waste in your capital itself is half \ +of what it would otherwise be (and a Courthouse will eliminate it \ +entirely).\ +"), _("\ +The cost to enemy Diplomats and Spies of inciting a revolt in a \ +city also depends upon the city's distance from the capital \ +(under all forms of government). Your capital city itself cannot \ +be incited to revolt, and enjoys a bonus when enemy agents try \ +to evade your own agents stationed in the city, or sabotage your \ +buildings.\ +"), _("\ +Take good care of your capital, as its loss may result in your \ +empire plunging into civil war. Losing your current palace also \ +results in losing whatever spaceship you might have.\ +"), _("\ +If the capital is in a dangerous location, or a more central capital\ + would give a better corruption distribution, you can move your palace\ + by rebuilding it in another city.\ +"), +; /* xgettext:no-c-format */ +_("\ +Under Despotism the city containing the palace gains a +75% \ +gold bonus, and under Monarchy a +50% gold bonus.\ +") + +[building_ecclesiastical_palace] +name = _("Ecclesiastical Palace") +genus = "SmallWonder" +reqs = + { "type", "name", "range" + "Tech", "Theology", "Player" + } +graphic = "b.ecclesiastical_palace" +graphic_alt = "b.palace" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 140 +upkeep = 0 +sabotage = 0 +sound = "b_palace" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Makes a city the ecclesiastical capital, that acts as a second center \ +of government.\ +"), _("\ +Waste in other cities (corruption, production waste, and food waste) \ +is related to how far away from the nearest capital they are. On top of \ +this, corruption and production waste in the capital itself is half \ +of what it would otherwise be (and a Courthouse will eliminate it \ +entirely).\ +"), _("\ +The city where this palace is located cannot be incited to revolt, \ +and enjoys a bonus when enemy agents try to evade your own agents \ +stationed in the city, or sabotage your buildings.\ +"), +; /* xgettext:no-c-format */ +_("\ +Under Despotism the city containing the palace gains a +75% \ +gold bonus, and under Monarchy a +50% gold bonus.\ +") + +[building_police_station] +name = _("Police Station") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Communism", "Player" + } +graphic = "b.police_station" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 50 +upkeep = 2 +sabotage = 100 +sound = "b_police_station" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +A Police Station neutralizes any unhappiness caused by one military \ +unit in its city. It also makes up to 2 more unhappy citizens content \ +provided they are not unhappy about aggression.\ +") + +[building_port_facility] +name = _("Port Facility") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Amphibious Warfare", "Player" + "TerrainClass", "Oceanic", "Adjacent" + } +graphic = "b.port_facility" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 60 +upkeep = 2 +sabotage = 100 +sound = "b_port_facility" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Allows a city to build veteran sea units. Also, damaged sea units\ + which stay in town for one full turn without moving are completely\ + restored.\ +") +; Includes Triremes, but not worth mentioning explicitly as unlikely +; to happen + +[building_power_plant] +name = _("Power Plant") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Refining", "Player" + "Building", "Factory", "City" + } +graphic = "b.power_plant" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 130 +upkeep = 4 +sabotage = 100 +sound = "b_power_plant" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Any kind of electrical plant increases the shield production \ +effects of any Factory or Mfg. Plant in its city by 25% each. \ +Thus, an electrical plant in combination with either a Factory \ +or Mfg. Plant gives a 50% production bonus over \ +the level without any of these improvements; an electrical plant, \ +Factory, and Mfg. Plant together give a 100% production bonus. \ +The extra production may lead to the city generating more \ +pollution.\ +"), _("\ +In each city, only one Power Plant, Hydro Plant, Nuclear Plant, or \ +Solar Plant can take effect at any one time.\ +") + +[building_recycling_center] +name = _("Recycling Center") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Recycling", "Player" + } +graphic = "b.recycling_center" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 140 +upkeep = 2 +sabotage = 100 +sound = "b_recycling_center" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Building a Recycling Center reduces the amount of pollution \ +generated by shield production in a city by 50%, or by an additional \ +25% in cities with another building which reduces pollution \ +(Nuclear Plant, Hydro Plant, or Solar Plant).\ +") + +[building_research_lab] +name = _("Research Lab") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Computers", "Player" + "Building", "University", "City" + } +graphic = "b.research_lab" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 3 +sabotage = 100 +sound = "b_research_lab" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the science output in a city by an additional 50%, or \ +by 100% once the Internet wonder has been built by any player.\ +"), +; /* xgettext:no-c-format */ +_("\ +The total bonus is 150% if a Library, a University and a \ +Research Lab are all present in the same city, increasing to 300% \ +once the Great Library, Isaac Newton's College, and the Internet have \ +all been built.\ +") + +[building_sam_battery] +name = _("SAM Battery") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Rocketry", "Player" + } +graphic = "b.sam_battery" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 70 +upkeep = 2 +sabotage = 100 +sound = "b_sam_battery" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Doubles the intrinsic defense strength of units within a city \ +when defending against aircraft (including helicopters).\ +") + +[building_sdi_defense] +name = _("SDI Defense") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Laser", "Player" + } +graphic = "b.sdi_defense" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 140 +upkeep = 3 +sabotage = 100 +sound = "b_sdi_defense" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Protects a city and its environs (up to 2 tiles away) from attacks \ +by other nations' Nuclear units. A Nuclear unit not owned by you or a \ +teammate which attacks a city with SDI Defense, or attacks a unit (or is \ +deliberately exploded) within range, is shot down and simply has no effect. \ +Also, doubles the intrinsic defense strength of units in the city when \ +defending against conventional missiles.\ +") + +[building_sewer_system] +name = _("Sewer System") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Sanitation", "Player" + "MinSize", "9", "City" + } +graphic = "b.sewer_system" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 80 +upkeep = 2 +sabotage = 100 +sound = "b_sewer_system" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Together with an Aqueduct, allows a city to grow larger than size 16, \ +and further reduces the chance of a plague (by 30% of the base chance).\ +") + +[building_solar_plant] +name = _("Solar Plant") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Environmentalism", "Player" + "Building", "Factory", "City" + } +graphic = "b.solar_plant" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 320 +upkeep = 4 +sabotage = 100 +sound = "b_solar_plant" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Any kind of electrical plant increases the shield production \ +effects of any Factory or Mfg. Plant in its city by 25% each. \ +Thus, an electrical plant in combination with either a Factory \ +or Mfg. Plant gives a 50% production bonus over \ +the level without any of these improvements; an electrical plant, \ +Factory, and Mfg. Plant together give a 100% production bonus. \ +The extra production may lead to the city generating more \ +pollution.\ +"), +; /* xgettext:no-c-format */ +_("\ +However, a Solar Plant also reduces the pollution associated with shield \ +production to 25% of its normal value, or eliminates it entirely in \ +combination with a Recycling Center.\ +"), _("\ +In each city, only one Power Plant, Hydro Plant, Nuclear Plant, or \ +Solar Plant can take effect at any one time.\ +") + +[building_space_component] +name = _("Space Component") +genus = "Special" +reqs = + { "type", "name", "range" + "Tech", "Superconductors", "Player" + "Building", "Factory", "City" + "Building", "Library", "City" + "Building", "University", "City" + "Building", "Research Lab", "City" + } +graphic = "b.space_component" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 300 +upkeep = 0 +sabotage = 100 +sound = "b_space_component" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Space Components can be differentiated into Propulsion and Fuel\ + Components. Each pair of them reduces your spaceship's travel\ + time. You can build up to 8 pairs.\ +"), _("\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_space_module] +name = _("Space Module") +genus = "Special" +reqs = + { "type", "name", "range" + "Tech", "Environmentalism", "Player" + "Building", "Factory", "City" + "Building", "Library", "City" + "Building", "University", "City" + "Building", "Research Lab", "City" + } +graphic = "b.space_modules" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 100 +sound = "b_space_module" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Space Modules are the most expensive parts of spaceships. There\ + are three different types of Space Module:\ +"), _("\ +- Habitation Module: provides living space for 10,000 people.\ +"), _("\ +- Life Support Module: provides food and water for the population of\ + one Habitation Module.\ +"), _("\ +- Solar Panels: provides the energy needed for any two of the other\ + Modules.\ +"), _("\ +You can build up to 4 Space Modules of each kind.\ +"), _("\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_space_structural] +name = _("Space Structural") +genus = "Special" +reqs = + { "type", "name", "range" + "Tech", "Space Flight", "Player" + "Building", "Factory", "City" + "Building", "Library", "City" + "Building", "University", "City" + "Building", "Research Lab", "City" + } +graphic = "b.space_structural" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 150 +upkeep = 0 +sabotage = 100 +sound = "b_space_structural" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Space Structurals form the base of your spaceship. All other\ + spaceship parts need to be connected to Structurals in order to\ + function. You can build up to 32 Space Structurals.\ +"), _("\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_stock_exchange] +name = _("Stock Exchange") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Economics", "Player" + "Building", "Bank", "City" + } +graphic = "b.stock_exchange" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 2 +sabotage = 100 +sound = "b_stock_exchange" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the luxury and tax output in a city by an additional 50%, \ +or 100% if Super Highways are also in the city. A Marketplace, Bank, \ +and Stock Exchange together in a city yield a total bonus of 150%; \ +adding Super Highways yields a total of 200%.\ +") + +[building_super_highways] +name = _("Super Highways") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Automobile", "Player" + } +graphic = "b.super_highways" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 3 +sabotage = 100 +sound = "b_super_highways" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Each tile around the city with roads and without farmland, that\ + is already generating some trade, produces one extra trade resource.\ + The same applies to the city center tile (even if it is receiving a\ + farmland bonus).\ +"), +; /* xgettext:no-c-format */ +_("\ +Also doubles the effect of any Stock Exchange in the city (increasing\ + luxury and tax output by an additional 50%).\ +"), _("\ +Super Highways also increase the pollution caused by the population\ + of the city.\ +") + +[building_supermarket] +name = _("Supermarket") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Refrigeration", "Player" + } +graphic = "b.supermarket" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 80 +upkeep = 3 +sabotage = 100 +sound = "b_supermarket" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the food resources by 50% on each farmland tile which\ + is being used around the city. Farmland tiles are those which\ + have been irrigated a second time.\ +") + +[building_temple] +name = _("Temple") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "Ceremonial Burial", "Player" + } +graphic = "b.temple" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 30 +upkeep = 1 +sabotage = 100 +sound = "b_temple" +sound_alt = "b_generic" +sound_alt2 = "-" +helptext = _("\ +Makes one unhappy citizen content. The Mysticism advance doubles \ +this effect (except under a Communist government). With both Mysticism \ +and the Temple of Artemis, 4 citizens are made content (3 under \ +Communism). Does not affect citizens made unhappy by aggression.\ +") + +[building_university] +name = _("University") +genus = "Improvement" +reqs = + { "type", "name", "range" + "Tech", "University", "Player" + "Building", "Library", "City" + } +graphic = "b.university" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 120 +upkeep = 2 +sabotage = 100 +sound = "b_university" +sound_alt = "b_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the science output in a city by an additional 50%, or \ +by 100% once Isaac Newton's College has been built by any player.\ +"), +; /* xgettext:no-c-format */ +_("\ +The total bonus is 100% if a Library and a University are present \ +together in the same city, increasing to 200% once the Great Library and \ +Isaac Newton's College have both been built.\ +") + +[building_apollo_program] +name = _("Apollo Program") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Space Flight", "Player" + } +graphic = "b.apollo_program" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_apollo_program" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +The entire map becomes permanently visible to the player who owns it \ +-- the player always has up-to-date knowledge of all terrain and \ +cities (but not units) despite fog-of-war. It allows all players to \ +start building spaceship parts (assuming they have researched the \ +necessary technologies).\ +"), _("\ +Completion of the Apollo Program also allows nuclear-armed powers to \ +declare war without provocation, regardless of the existence of the \ +United Nations, and AI players will no longer be friendly towards the \ +owner of the United Nations or the Eiffel Tower.\ +") + +[building_asmiths_trading_co] +name = _("A.Smith's Trading Co.") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Economics", "Player" + "Building", "Stock Exchange", "City" + } +graphic = "b.asmiths_trading_co" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_asmiths_trading_co" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +In every city with a Stock Exchange, city improvements which would \ +normally have an upkeep of 1 become free of upkeep. (Communist \ +governments inherently give this benefit, so there is no bonus under \ +Communism.)\ +"), _("\ +Upon completion of this wonder, tax collector specialists' gold output \ +increases to 3 permanently for every nation.\ +") + +[building_colossus] +name = _("Colossus") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Bronze Working", "Player" + } +graphic = "b.colossus" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Automobile", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_colossus" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Each tile around the city where this wonder is built that is already\ + generating some trade produces one extra trade resource.\ +") + +[building_copernicus_observatory] +name = _("Copernicus' Observatory") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Astronomy", "Player" + } +graphic = "b.copernicus_observatory" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Computers", "Player", FALSE + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_copernicus_observatory" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Each tile worked by the city where this wonder is built produces \ +one extra research point.\ +") + +[building_cure_for_cancer] +name = _("Cure For Cancer") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Genetic Engineering", "Player" + } +graphic = "b.cure_for_cancer" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_cure_for_cancer" +sound_alt = "w_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +This stunning technological achievement makes one content citizen \ +happy in each of your cities (2 extra luxury per city). It further \ +reduces your risk of plague (by 10% of the base chance); with \ +knowledge of Medicine, any of your cities with an Aqueduct and a \ +Sewer System will be entirely free of plague.\ +") + +[building_darwins_voyage] +name = _("Darwin's Voyage") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Steam Engine", "Player" + } +graphic = "b.darwins_voyage" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_darwins_voyage" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Charles Darwin's voyage sparked the discovery of the evolution \ +of the species, which inspired greater confidence in science. \ +All your cities generate 1 extra science bulb.\ +"), _("\ +Upon completion of this wonder, scientist specialists' research output \ +increases to 3 permanently for every nation.\ +") + +[building_eiffel_tower] +name = _("Eiffel Tower") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Railroad", "Player" + } +graphic = "b.eiffel_tower" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_eiffel_tower" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +AI nations are more inclined to be friendly and forgiving toward the \ +owner of this wonder (until the Apollo Program is completed). It also \ +reduces the pollution caused by the population; it counteracts the \ +pollution associated with a single building in each of your cities.\ +") + +[building_great_library] +name = _("Great Library") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Literacy", "Player" + "Building", "Library", "City" + } +graphic = "b.great_library" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_great_library" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives an immediate technology advance to the player that builds it, \ +and thereafter 4 extra research points every turn to its city.\ +"), _("\ +Completion of this wonder permanently doubles the effect of Libraries \ +for every player.\ +") + +[building_great_wall] +name = _("Great Wall") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Construction", "Player" + } +graphic = "b.great_wall" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Machine Tools", "Player", FALSE + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_great_wall" +sound_alt = "w_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Increases the defense of all your cities by adding a +50% bonus to \ +its units' intrinsic defense strength against land units (this is cumulative \ +with any City Walls), and preventing the loss of population which occurs \ +when a defending unit is defeated by a land unit.\ +") + +[building_hanging_gardens] +name = _("Hanging Gardens") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Pottery", "Player" + } +graphic = "b.hanging_gardens" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Electricity", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_hanging_gardens" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Makes one unhappy citizen content in every city of the player that \ +owns it (not including citizens unhappy about aggression). This wonder \ +also makes two content citizens happy in the city where it is located \ +(4 extra luxury points).\ +") + +[building_hoover_dam] +name = _("Hoover Dam") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Electronics", "Player" + "Extra", "River", "Adjacent" + "Building", "Factory", "City" + } +graphic = "b.hoover_dam" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_hoover_dam" +sound_alt = "w_generic" +sound_alt2 = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Acts as a Hydro Plant in the city where it is built, and reduces \ +pollution from shield production by a further 25% in all cities \ +with Hydro Plants, making them equivalent to Solar Plants.\ +") + +[building_isaac_newtons_college] +name = _("Isaac Newton's College") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Theory of Gravity", "Player" + "Building", "University", "City" + } +graphic = "b.isaac_newtons_college" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_isaac_newtons_college" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives an immediate technology advance to the player that builds it, \ +and thereafter 6 extra research points every turn to its city.\ +"), _("\ +Completion of this wonder permanently doubles the effect of \ +Universities for every player.\ +") + +[building_js_bachs_cathedral] +name = _("J.S. Bach's Cathedral") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Theology", "Player" + } +graphic = "b.js_bachs_cathedral" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_js_bachs_cathedral" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Makes one content citizen happy in every city of the player that owns \ +it (2 extra luxury points per city).\ +") + +[building_king_richards_crusade] +name = _("King Richard's Crusade") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Chivalry", "Player" + } +graphic = "b.king_richards_crusade" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Communism", "Player", FALSE + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_king_richards_crusade" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Reduces the unhappiness caused by aggressively deployed military \ +units owned by the city by 1 -- in other words, it neutralizes the \ +unhappiness caused by a single military unit (except under Democracy, \ +where a single unit makes two citizens unhappy). Under governments \ +where unit upkeep is paid in gold, it gives two free gold per city \ +towards upkeep every turn.\ +") + +[building_leonardos_workshop] +name = _("Leonardo's Workshop") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Invention", "Player" + } +graphic = "b.leonardos_workshop" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Combustion", "Player", FALSE + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_leonardos_workshop" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Upgrades one obsolete unit per game turn.\ +") + +[building_lighthouse] +name = _("Lighthouse") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Map Making", "Player" + "TerrainFlag", "Sea", "Adjacent" + } +graphic = "b.lighthouse" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Engineering", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_lighthouse" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives all your sea units 1 additional movement point (except Triremes \ +while moving on rivers). Makes all your new sea units veterans (for all \ +your cities).\ +") + +[building_magellans_expedition] +name = _("Magellan's Expedition") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Magnetism", "Player" + "TerrainFlag", "Sea", "Adjacent" + } +graphic = "b.magellans_expedition" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Nuclear Power", "Player", FALSE + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_magellans_expedition" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives all your sea units 1 additional movement point. The chance\ + of a sea unit getting the next veteran level after a battle\ + increases by half.\ +") + +[building_manhattan_project] +name = _("Manhattan Project") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Nuclear Fission", "Player" + } +graphic = "b.manhattan_project" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_manhattan_project" +sound_alt = "w_generic" +sound_alt2 = "-" +;helptext is set in client/helpdata.c:helptext_wonder() +;helptext = + +[building_marco_polos_embassy] +name = _("Marco Polo's Embassy") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Trade", "Player" + } +graphic = "b.marco_polos_embassy" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Democracy", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_marco_polos_embassy" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +The player who owns it gets an embassy with all players.\ +"), _("\ +TIP: if you're behind in research, this can help you catch up, by \ +reducing the cost of technologies that other players already know.\ +") + +[building_michelangelos_chapel] +name = _("Michelangelo's Chapel") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Monotheism", "Player" + "Building", "Cathedral", "City" + } +graphic = "b.michelangelos_chapel" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_michelangelos_chapel" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Doubles the base effect of Cathedrals. This makes 3 additional unhappy \ +citizens content in each city with a Cathedral; however, it does \ +not affect citizens made unhappy by aggression.\ +") + +[building_mausoleum_of_mausolos] +name = _("Mausoleum of Mausolos") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Ceremonial Burial", "Player" + } +graphic = "b.mausoleum" +graphic_alt = "b.oracle" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Sanitation", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_oracle" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +With this wonder, City Walls and Courthouses each make one unhappy \ +citizen content in their city, unless that citizen is unhappy about \ +aggression. Also, none of the owner's cities can be incited to revolt.\ +") + +[building_statue_of_zeus] +name = _("Statue of Zeus") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Polytheism", "Player" + } +graphic = "b.statue_of_zeus" +graphic_alt = "b.oracle" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Conscription", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_oracle" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Reduces by 1 the unhappiness caused by one aggressively deployed \ +military unit per city -- in other words, in each city it neutralizes \ +the unhappiness caused by a single military unit (except under \ +Democracy, where it just halves the unhappiness from that unit). \ +Each city also avoids one shield of upkeep for units.\ +") + +[building_temple_of_artemis] +name = _("Temple of Artemis") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Mysticism", "Player" + "Building", "Temple", "City" + } +graphic = "b.temple_of_artemis" +graphic_alt = "b.oracle" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Theology", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_oracle" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Makes 2 additional unhappy citizens content in every city with \ +a Temple. Does not affect citizens made unhappy by aggression.\ +") + +[building_pyramids] +name = _("Pyramids") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Masonry", "Player" + } +graphic = "b.pyramids" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Railroad", "Player", FALSE + } +build_cost = 200 +upkeep = 0 +sabotage = 0 +sound = "w_pyramids" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Each tile around the city where this wonder is built that is already \ +generating some shield output produces one extra shield resource. \ +Under Despotism or Tribal governments, the Pyramids cancel the penalty \ +to worked tiles with output greater than 2 (for all kinds of output), \ +as if all your cities were always celebrating.\ +") + +[building_internet] +name = _("Internet") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Computers", "Player" + "Building", "Research Lab", "City" + } +graphic = "b.internet" +graphic_alt = "b.seti_program" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_seti_program" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives an immediate technology advance to the player that builds it, \ +and thereafter all cities on the map are continuously visible to its \ +owner despite fog-of-war.\ +"), _("\ +Completion of this wonder permanently doubles the effect of \ +Research Labs for every player.\ +") + +[building_shakespeares_theatre] +name = _("Shakespeare's Theater") +rule_name = "Shakespeare's Theatre" ; en_GB spelling used originally +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Sanitation", "Player" + } +graphic = "b.shakespeares_theatre" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_shakespeares_theatre" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Gives 1 additional luxury to every city, and 6 luxuries to the city \ +where it is located.\ +"), _("\ +Upon completion of this wonder, entertainer specialists' luxury \ +output increases to 3 permanently for every nation.\ +") + +[building_statue_of_liberty] +name = _("Statue of Liberty") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Democracy", "Player" + } +graphic = "b.statue_of_liberty" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 400 +upkeep = 0 +sabotage = 0 +sound = "w_statue_of_liberty" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Allows you to choose any government, including those that have not yet \ +been researched by your civilization, and without the transition \ +period of Anarchy. It also allows unprovoked declaration of war \ +regardless of any senate instituted by a Democracy or Federation \ +government or by the United Nations.\ +") + +[building_sun_tzus_war_academy] +name = _("Sun Tzu's War Academy") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Feudalism", "Player" + } +graphic = "b.sun_tzus_war_academy" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range", "survives" + "Tech", "Mobile Warfare", "Player", FALSE + } +build_cost = 300 +upkeep = 0 +sabotage = 0 +sound = "w_sun_tzus_war_academy" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +All your new military land units start with an additional veteran level \ +(this is cumulative with any Barracks building in a city; with both, units \ +are created as Hardened).\ +") + +[building_united_nations] +name = _("United Nations") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Communism", "Player" + } +graphic = "b.united_nations" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_united_nations" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Creates a world senate that prevents unprovoked declaration of war by \ +any nuclear-capable nation (that is, any nation with knowledge of \ +Nuclear Fission, once the Manhattan Project has been built). \ +AI players are more inclined to be friendly and forgiving toward the \ +owner of this wonder. These effects last until the Apollo Program \ +is completed.\ +"), _("\ +Also, if any player's city is in disorder for more than two turns in \ +a row, that player's government falls (even for governments other than \ +Republic and Democracy).\ +") + +[building_womens_suffrage] +name = _("Women's Suffrage") +genus = "GreatWonder" +reqs = + { "type", "name", "range" + "Tech", "Conscription", "Player" + } +graphic = "b.womens_suffrage" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 600 +upkeep = 0 +sabotage = 0 +sound = "w_womens_suffrage" +sound_alt = "w_generic" +sound_alt2 = "-" +helptext = _("\ +Neutralizes the unhappiness caused by one aggressively \ +deployed military unit per city. Under Democracy, it additionally \ +halves the unhappiness caused by military units (reducing it to the \ +same level as a Republic).\ +") + +[building_capitalization] +name = _("Coinage") +genus = "Convert" +flags = "Gold" +reqs = + { "type", "name", "range" + + } +graphic = "b.capitalization" +graphic_alt = "-" +graphic_alt2 = "-" +obsolete_by = + { "type", "name", "range" + } +build_cost = 999 +upkeep = 0 +sabotage = 0 +; FIXME: this is the real helptext; restore when have a subordnate analogue +; /* (ignore for gettext until fixed) +;helptext = _("\ +;This is not a normal improvement. Instead, setting a city's\ +; production to Capitalization means its shield production is\ +; converted to tax output (money).\ +;") +; */ +helptext = _("\ +This is not a normal improvement. Instead, setting a city's\ + production to Coinage means its shield production is\ + converted to tax output (money, coins!).\ +") diff --git a/cities.ruleset b/cities.ruleset new file mode 100644 index 0000000..ca4b8a1 --- /dev/null +++ b/cities.ruleset @@ -0,0 +1,141 @@ + +; 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. + +[datafile] +description = "Civ2Civ3 cities data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +; /* <-- 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/abbreviation 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_elvis] +name = _("Entertainers") +; (The original specialist names in the classic ruleset and derivatives were +; not designed to be user-visible.) +rule_name = "elvis" +short_name = _("?Elvis:E") +graphic = "specialist.entertainer" +reqs = + { "type", "name", "range" +; Nothing + } +helptext = _("\ +Each entertainer produces two luxury points for their city per turn, \ +increasing to three once any player has built Shakespeare's Theater. \ +See the section on Happiness for the effects of luxury points.\ +") + +[specialist_scientist] +name = _("Scientists") +rule_name = "scientist" +short_name = _("?Scientist:S") +graphic = "specialist.scientist" +reqs = + { "type", "name", "range" +; Nothing + } +helptext = _("\ +Each scientist adds two points to your empire's research output \ +per turn, increasing to three once any player has built Darwin's \ +Voyage.\ +") + +[specialist_taxman] +name = _("Taxmen") +rule_name = "taxman" +short_name = _("?Taxman:T") +graphic = "specialist.taxman" +reqs = + { "type", "name", "range" +; Nothing + } +helptext = _("\ +Each tax collector produces two extra gold for your treasury \ +per turn, increasing to three once any player has built \ +A.Smith's Trading Co.\ +") + +[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 = 4 ; Population in reports in tens of thousands + +[citizen] +nationality = TRUE ; account for the nationality of the citizens +ubuilder_nationality = FALSE ; does pop_cost unit get builder`s nationality, + ; or that of the majority of the citizens in the city +convert_speed = 50 ; base probability 50/1000 -> once every 20 turns +partisans_pct = 75 ; 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 + +; TODO: Should missing gold upkeep really be able to kill units with the +; EvacuateFirst unit type flag? +; gold_protected = +; gold_unit_act = +gold_wipe = TRUE + +shield_protected = "EvacuateFirst" +shield_unit_act = "Help Wonder", "Disband Unit Recover", "Disband Unit" +shield_wipe = FALSE diff --git a/effects.ruleset b/effects.ruleset new file mode 100644 index 0000000..c434341 --- /dev/null +++ b/effects.ruleset @@ -0,0 +1,4618 @@ +; 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 = "Civ2Civ3 effects data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +; /* <-- avoid gettext warnings +; +; User effect types +; +; type = Effect type to define. Must be one of user effects. +; ai_valued_as = Hardcoded effect type that AI considers this to match +; +; */ <-- avoid gettext warnings + +;[ueff_1] +;type = "User_Effect_1" +;ai_valued_as = "" + +; /* <-- 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 +; comment = Comment for the benefit to someone examining the ruleset +; Not used by freeciv any other way. +; +; */ <-- avoid gettext warnings + +; "Away" "Novice" "Easy" "Normal" "Hard" "Cheating" "Experimental" +[effect_ai_cheat_food] +type = "Upkeep_Factor" +value = -1 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + "OutputType", "Food", "Local" + } + +[effect_ai_cheat_love] +type = "Gain_AI_Love" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_sci] +type = "Output_Bonus_2" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + "OutputType", "Science", "Local" + } + +[effect_ai_cheat_lux] +type = "Output_Bonus_2" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + "OutputType", "Luxury", "Local" + } + +[effect_ai_cheat_gold] +type = "Output_Bonus_2" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + "OutputType", "Gold", "Local" + } + +[effect_ai_cheat_shield] +type = "Output_Bonus_2" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + "OutputType", "Shield", "Local" + } + +[effect_ai_cheat_happiness] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_veteran] +type = "Veteran_Combat" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_bribe_cost] +type = "Unit_Bribe_Cost_Pct" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_incite_cost] +type = "Incite_Cost_Pct" +value = 40 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_pollution] +type = "Pollu_Prod_Pct" +value = -20 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_cheat_pollution_pop] +type = "Pollu_Pop_Pct" +value = -20 +reqs = + { "type", "name", "range" + "AI", "Cheating", "Player" + } + +[effect_ai_restricted_trade] +type = "Output_Bonus" +value = -25 +reqs = + { "type", "name", "range" + "AI", "Restricted", "Player" + "OutputType", "Trade", "Local" + } + +[effect_ai_restricted_shield] +type = "Output_Bonus" +value = -25 +reqs = + { "type", "name", "range" + "AI", "Restricted", "Player" + "OutputType", "Shield", "Local" + } + +[effect_unhappysize] +type = "City_Unhappy_Size" +value = 4 + +; Barbarian effects + +[effect_barb1] +type = "No_Diplomacy" +value = 1 +reqs = + { "type", "name", "range" + "NationGroup", "Barbarian", "Player" + } + +; Barbarian no waste by distance +[effect_barb2] +type = "Output_Waste_By_Distance" +value = -200 +reqs = + { "type", "name", "range" + "NationGroup", "Barbarian", "Player" + } + +; Barbarian disappearance + +[effect_barb_disappear] +type = "Retire_Pct" +value = 10 +reqs = + { "type", "name", "range", "present" + "NationGroup", "Barbarian", "Player", TRUE + "Age", "5", "Local", TRUE + "CityTile", "Center", "Tile", FALSE + } + +; Lone Leader might escape on coast (33% chance) +; Complement of the two effects should be 0.9 * 0.66 = 0.594 +; (100 - 59) - 10 = 31 +[effect_leader_escape] +type = "Retire_Pct" +value = 31 +reqs = + { "type", "name", "range" + "UnitType", "Barbarian Leader", "Local" + "Age", "5", "Local" + "TerrainClass", "Oceanic", "Adjacent" + "MaxUnitsOnTile", "1", "Tile" + } + +; Specialist output bonuses + +[effect_elvis] +type = "Specialist_Output" +value = 2 +reqs = + { "type", "name", "range" + "Specialist", "Elvis", "Local" + "OutputType", "Luxury", "Local" + } + +[effect_scientist] +type = "Specialist_Output" +value = 2 +reqs = + { "type", "name", "range" + "Specialist", "Scientist", "Local" + "OutputType", "Science", "Local" + } + +[effect_taxman] +type = "Specialist_Output" +value = 2 +reqs = + { "type", "name", "range" + "Specialist", "Taxman", "Local" + "OutputType", "Gold", "Local" + } + +; Vision benefit from fortress watchtowers +[effect_fortress_vision] +type = "Unit_Vision_Radius_Sq" +value = 8 +reqs = + { "type", "name", "range" + "Extra", "Fortress", "Tile" + "Tech", "Astronomy", "Player" + } + +[effect_airbase_vision] +type = "Unit_Vision_Radius_Sq" +value = 8 +reqs = + { "type", "name", "range" + "Extra", "Airbase", "Tile" + } + +; Fortress HP regen (All Ground units) +[effect_fortress_hp_regen] +type = "HP_Regen" +value = 25 +reqs = + { "type", "name", "range" + "UnitClassFlag", "Ground", "Local" + "Extra", "Fortress", "Tile" + } + +[effect_fort_defense] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present" + "Extra", "Fort", "Tile", TRUE + "UnitClassFlag", "Aerial", "Local", FALSE + } + +; Cumulative with fort +; 50 + 50 = 100 +[effect_fortress_defense] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present" + "Extra", "Fortress", "Tile", TRUE + } + +; Airstrip HP regen (All Air units except Missiles) +[effect_airstrip_hp_regen] +type = "HP_Regen" +value = 10 +reqs = + { "type", "name", "range", "present" + "Extra", "Airstrip", "Tile", TRUE + "UnitClassFlag", "Aerial", "Local", TRUE + "UnitClassFlag", "Missile", "Local", FALSE + } + +; Airbase HP regen: cumulative with airstrip +; 10 + 24 = 34% (this approximation to 1/3 is exact for units <50HP; +; 1/3 is equivalent to a city without Airport) +[effect_airbase_hp_regen] +type = "HP_Regen" +value = 24 +reqs = + { "type", "name", "range", "present" + "Extra", "Airbase", "Tile", TRUE + "UnitClassFlag", "Aerial", "Local", TRUE + "UnitClassFlag", "Missile", "Local", FALSE + } + +[effect_airstrip_defense] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Extra", "Airstrip", "Tile" + "UnitClassFlag", "Aerial", "Local" + } + +; Cumulative with airstrip +; 50 + 50 = 100 +[effect_airbase_defense] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present" + "Extra", "Airbase", "Tile", TRUE + } + +[effect_fortified] +type = "Fortify_Defense_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Activity", "Fortified", "Local" + } + +[effect_city_fortified] +type = "Fortify_Defense_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present" + "CityTile", "Center", "Tile", TRUE + "Activity", "Fortified", "Local", FALSE + "UnitClassFlag", "CanFortify", "Local", TRUE + "UnitFlag", "Cant_Fortify", "Local", FALSE + } + +[effect_city_min_hp] +type = "Min_HP_Pct" +value = 33 +reqs = + { "type", "name", "range" + "CityTile", "Center", "Tile" + } + +[effect_fortified_regen] +type = "HP_Regen_2" +value = 10 +reqs = + { "type", "name", "range" + "Activity", "Fortified", "Local" + } + +[effect_base_regen] +type = "HP_Regen_2" +value = 10 +reqs = + { "type", "name", "range", "present" + "UnitClass", "Helicopter", "Local", FALSE + "UnitClass", "Air", "Local", FALSE + } + +[effect_trade_routes] +type = "Max_Trade_Routes" +value = 2 + +[effect_conquest_tech] +type = "Conquest_Tech_Pct" +value = 100 + +; Base vision range - radius of vision is sqrt(5) = 2.24 +[effect_city_vision] +type = "City_Vision_Radius_Sq" +value = 5 + +; 5 + 5 = 10 +[effect_city_vision_1] +type = "City_Vision_Radius_Sq" +value = 5 +reqs = + { "type", "name", "range" + "Tech", "Electricity", "Player" + } + +; Vision benefit from mountains (All Ground units) +[effect_mountains_vision] +type = "Unit_Vision_Radius_Sq" +value = 4 +reqs = + { "type", "name", "range" + "Terrain", "Mountains", "Tile" + "UnitClassFlag", "Ground", "Local" + } + +; Movement penalty if ended turn at mountains (All Ground units) +[effect_mountains_movement] +type = "Move_Bonus" +value = -1 +reqs = + { "type", "name", "range", "present" + "Terrain", "Mountains", "Tile", TRUE + "UnitClassFlag", "Ground", "Local", TRUE + "Extra", "Road", "Tile", FALSE + "Extra", "River", "Tile", FALSE + } + +; Big Land units can't escape movement penalty via River +[effect_mountains_movement_big_on_river] +type = "Move_Bonus" +value = -1 +reqs = + { "type", "name", "range", "present" + "Terrain", "Mountains", "Tile", TRUE + "UnitClass", "Big Land", "Local", TRUE + "Extra", "Road", "Tile", FALSE + "Extra", "River", "Tile", TRUE + } + +; Nuclear power gives +1 moves to sea units +[effect_nuclear_powered_boats] +type = "Move_Bonus" +value = 1 +reqs = + { "type", "name", "range" + "Tech", "Nuclear Power", "Player" + "UnitClass", "Sea", "Local" + } + +; Advanced Flight enables movement of nuclear weapons +[effect_nuclear_bomber] +type = "Move_Bonus" +value = 8 +reqs = + { "type", "name", "range" + "Tech", "Advanced Flight", "Player" + "UnitType", "Nuclear", "Local" + } + +; Rocketry doubles movement of nuclear weapons +[effect_nuclear_missile] +type = "Move_Bonus" +value = 8 +reqs = + { "type", "name", "range" + "Tech", "Rocketry", "Player" + "UnitType", "Nuclear", "Local" + } + +; Invention halves unit upgrade prices +[effect_upgrade_price_halfed] +type = "Upgrade_Price_Pct" +value = -50 +reqs = + { "type", "name", "range" + "Tech", "Invention", "Player" + } + +; Medicine increases city health +[effect_unit_recover_medicine] +type = "Health_Pct" +value = 30 +reqs = + { "type", "name", "range" + "Tech", "Medicine", "Player" + } + +; Base -1% food each 1 tile +[effect_food_waste_distance] +type = "Output_Waste_By_Distance" +value = 100 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + } + +; Total -1% food each 2 tiles +[effect_food_waste_distance_1] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + } + +; Base 0% food waste with Anarchy +[effect_food_waste_distance_2] +type = "Output_Waste_By_Distance" +value = -100 +reqs = + { "type", "name", "range" + "Gov", "Anarchy", "Player" + "OutputType", "Food", "Local" + } + +; base -1% trade each tile +[effect_corruption_distance] +type = "Output_Waste_By_Distance" +value = 100 +reqs = + { "type", "name", "range" + "OutputType", "Trade", "Local" + } + +; 1 + 1 => -2% each tile without advanced tech / govs +[effect_corruption_distance_ancient] +type = "Output_Waste_By_Distance" +value = 100 +reqs = + { "type", "name", "range", "present" + "OutputType", "Trade", "Local", TRUE + "Tech", "The Corporation", "Player", FALSE + "Gov", "Communism", "Player", FALSE + } + +; Total = 0 for Communism +[effect_corruption_distance_communism] +type = "Output_Waste_By_Distance" +value = -100 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +; Total = 0 for Federation with The Corporation, -1% for Federation alone +[effect_corruption_distance_federation] +type = "Output_Waste_By_Distance" +value = -100 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Federation", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +; Corruption + waste = 30% for all govs + +[effect_corruption_tribal] +type = "Output_Waste" +value = 30 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Tribal", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_despotism] +type = "Output_Waste" +value = 20 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Despotism", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_monarchy] +type = "Output_Waste" +value = 10 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Monarchy", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_communism] +type = "Output_Waste" +value = 30 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_fundamentalism] +type = "Output_Waste" +value = 15 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Fundamentalism", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_republic] +type = "Output_Waste" +value = 25 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Republic", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +[effect_corruption_democracy] +type = "Output_Waste" +value = 5 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Democracy", "Player", TRUE + "OutputType", "Trade", "Local", FALSE + } + +; base -1% shields each tile +[effect_waste_distance] +type = "Output_Waste_By_Distance" +value = 100 +reqs = + { "type", "name", "range" + "OutputType", "Shield", "Local" + } + +; 1 + 1 => -2% each tile without Trade or advanced govs +[effect_waste_distance_ancient] +type = "Output_Waste_By_Distance" +value = 100 +reqs = + { "type", "name", "range", "present" + "OutputType", "Shield", "Local", TRUE + "Tech", "Trade", "Player", FALSE + "Gov", "Communism", "Player", FALSE + "Gov", "Federation", "Player", FALSE + } + +; 1 - 1 = 0% with Communism +[effect_waste_distance_communism] +type = "Output_Waste_By_Distance" +value = -100 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +; 1 - 1 = 0% with Federation +[effect_waste_distance_federation] +type = "Output_Waste_By_Distance" +value = -100 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Federation", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_anarchy] +type = "Output_Waste" +value = 30 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_despotism] +type = "Output_Waste" +value = 10 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Despotism", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_monarchy] +type = "Output_Waste" +value = 20 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Monarchy", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_fundamentalism] +type = "Output_Waste" +value = 15 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Fundamentalism", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_federation] +type = "Output_Waste" +value = 30 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Federation", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_republic] +type = "Output_Waste" +value = 5 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Republic", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_waste_democracy] +type = "Output_Waste" +value = 25 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Democracy", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_tech_upkeep_anarchy] +type = "Tech_Upkeep_Free" +value = 99 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + } + +[effect_building_upkeep_anarchy] +type = "Upkeep_Free" +value = 99 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + } + +[effect_building_upkeep_communism] +type = "Upkeep_Free" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + } + +[effect_base_unit_upkeep_gold_1] +type = "Upkeep_Factor" +value = 1 +reqs = + { "type", "name", "range", "present" + "OutputType", "Gold", "Local", TRUE + "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE + "Gov", "Communism", "Player", FALSE +; "Gov", "Despotism", "Player", FALSE +; "Gov", "Monarchy", "Player", FALSE +; "Gov", "Fundamentalism", "Player", FALSE +; "Gov", "Federation", "Player", FALSE + "Gov", "Republic", "Player", FALSE +; "Gov", "Democracy", "Player", FALSE + } + +; additive with previous => x2 for Fundamentalism, Federation, Democracy +[effect_base_unit_upkeep_gold_2] +type = "Upkeep_Factor" +value = 1 +reqs = + { "type", "name", "range", "present" + "OutputType", "Gold", "Local", TRUE + "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE + "Gov", "Communism", "Player", FALSE + "Gov", "Despotism", "Player", FALSE + "Gov", "Monarchy", "Player", FALSE +; "Gov", "Fundamentalism", "Player", FALSE +; "Gov", "Federation", "Player", FALSE + "Gov", "Republic", "Player", FALSE +; "Gov", "Democracy", "Player", FALSE + } + +[effect_base_unit_upkeep_shield] +type = "Upkeep_Factor" +value = 1 +reqs = + { "type", "name", "range", "present" + "OutputType", "Shield", "Local", TRUE +; "Gov", "Anarchy", "Player", FALSE +; "Gov", "Tribal", "Player", FALSE +; "Gov", "Communism", "Player", FALSE + "Gov", "Despotism", "Player", FALSE + "Gov", "Monarchy", "Player", FALSE + "Gov", "Fundamentalism", "Player", FALSE + "Gov", "Federation", "Player", FALSE +; "Gov", "Republic", "Player", FALSE + "Gov", "Democracy", "Player", FALSE + } + +[effect_base_unit_upkeep_food] +type = "Upkeep_Factor" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + } + +[effect_unit_unhappiness] +type = "Unhappy_Factor" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE +; "Gov", "Communism", "Player", FALSE + "Gov", "Despotism", "Player", FALSE +; "Gov", "Monarchy", "Player", FALSE +; "Gov", "Fundamentalism", "Player", FALSE +; "Gov", "Federation", "Player", FALSE +; "Gov", "Republic", "Player", FALSE + "Gov", "Democracy", "Player", FALSE + } + +; exclusive with above +[effect_unit_unhappiness_democracy] +type = "Unhappy_Factor" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Democracy", "Player", TRUE + } + +; ...except Women's Suffrage reduces it back to Republic levels +[effect_womens_suffrage_1] +type = "Unhappy_Factor" +value = -1 +reqs = + { "type", "name", "range" + "Building", "Women's Suffrage", "Player" + "Gov", "Democracy", "Player" + } + +; Govs with 1 free unit +[effect_upkeep_free_mil_1] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE + "Gov", "Communism", "Player", FALSE + "Gov", "Despotism", "Player", FALSE + "Gov", "Monarchy", "Player", FALSE + "Gov", "Fundamentalism", "Player", FALSE + "Gov", "Federation", "Player", FALSE +; "Gov", "Republic", "Player", FALSE + "Gov", "Democracy", "Player", FALSE + } + +; Govs with 2 free units (exclusive with previous) +[effect_upkeep_free_mil_2] +type = "Make_Content_Mil" +value = 2 +reqs = + { "type", "name", "range", "present" +; "Gov", "Anarchy", "Player", FALSE +; "Gov", "Tribal", "Player", FALSE + "Gov", "Communism", "Player", FALSE +; "Gov", "Despotism", "Player", FALSE + "Gov", "Monarchy", "Player", FALSE +; "Gov", "Fundamentalism", "Player", FALSE +; "Gov", "Federation", "Player", FALSE + "Gov", "Republic", "Player", FALSE +; "Gov", "Democracy", "Player", FALSE + } + +; Govs with 3 free units (exclusive with previous) +[effect_upkeep_free_mil_3] +type = "Make_Content_Mil" +value = 3 +reqs = + { "type", "name", "range", "present" + "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE +; "Gov", "Communism", "Player", FALSE + "Gov", "Despotism", "Player", FALSE +; "Gov", "Monarchy", "Player", FALSE + "Gov", "Fundamentalism", "Player", FALSE + "Gov", "Federation", "Player", FALSE + "Gov", "Republic", "Player", FALSE + "Gov", "Democracy", "Player", FALSE + } + +; normally 2 for Democracy, but 1 of these not needed with Women's Suffrage +; due to reduced Unhappy_Factor +[effect_womens_suffrage_2] +type = "Make_Content_Mil" +value = -1 +reqs = + { "type", "name", "range" + "Building", "Women's Suffrage", "Player" + "Gov", "Democracy", "Player" + } + +[effect_upkeep_free_units_anarchy] +type = "Unit_Upkeep_Free_Per_City" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_upkeep_free_units_tribal] +type = "Unit_Upkeep_Free_Per_City" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Tribal", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_upkeep_free_units_despotism] +type = "Unit_Upkeep_Free_Per_City" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Despotism", "Player", TRUE + "OutputType", "Gold", "Local", FALSE + } + +[effect_upkeep_free_units_monarchy] +type = "Unit_Upkeep_Free_Per_City" +value = 3 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Monarchy", "Player", TRUE + "OutputType", "Gold", "Local", FALSE + } + +[effect_upkeep_free_units_fundamentalism] +type = "Unit_Upkeep_Free_Per_City" +value = 4 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Fundamentalism", "Player", TRUE + "OutputType", "Gold", "Local", FALSE + } + +[effect_upkeep_free_units_republic] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Republic", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +[effect_upkeep_free_units_democracy] +type = "Unit_Upkeep_Free_Per_City" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Democracy", "Player", TRUE + "OutputType", "Gold", "Local", FALSE + } + +[effect_upkeep_free_units_federation] +type = "Unit_Upkeep_Free_Per_City" +value = 4 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Federation", "Player", TRUE + "OutputType", "Gold", "Local", FALSE + } + +[effect_upkeep_free_units_communism] +type = "Unit_Upkeep_Free_Per_City" +value = 3 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + "OutputType", "Shield", "Local", FALSE + } + +; Any city can support up to four units... +[effect_upkeep_free_units_food_base] +type = "Unit_Upkeep_Free_Per_City" +value = 4 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + } + +; ...or its size, whichever is bigger. Units above this limit have a +; food penalty. +[effect_upkeep_free_units_food_5] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "5", "City" + } + +[effect_upkeep_free_units_food_6] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "6", "City" + } + +[effect_upkeep_free_units_food_7] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "7", "City" + } + +[effect_upkeep_free_units_food_8] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "8", "City" + } + +[effect_upkeep_free_units_food_9] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "9", "City" + } + +[effect_upkeep_free_units_food_10] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "10", "City" + } + +[effect_upkeep_free_units_food_11] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "11", "City" + } + +[effect_upkeep_free_units_food_12] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "12", "City" + } + +[effect_upkeep_free_units_food_13] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "13", "City" + } + +[effect_upkeep_free_units_food_14] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "14", "City" + } + +[effect_upkeep_free_units_food_15] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "15", "City" + } + +[effect_upkeep_free_units_food_16] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "16", "City" + } + +[effect_upkeep_free_units_food_17] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "17", "City" + } + +[effect_upkeep_free_units_food_18] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "18", "City" + } + +[effect_upkeep_free_units_food_19] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "19", "City" + } + +[effect_upkeep_free_units_food_20] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "OutputType", "Food", "Local" + "MinSize", "20", "City" + } + +[effect_civil_war_anarchy] +type = "Civil_War_Chance" +value = 99 +reqs = + { "type", "name", "range" + "Gov", "Anarchy", "Player" + } + +[effect_civil_war_tribal] +type = "Civil_War_Chance" +value = 90 +reqs = + { "type", "name", "range" + "Gov", "Tribal", "Player" + } + +[effect_civil_war_despotism] +type = "Civil_War_Chance" +value = 80 +reqs = + { "type", "name", "range" + "Gov", "Despotism", "Player" + } + +[effect_civil_war_monarchy] +type = "Civil_War_Chance" +value = 70 +reqs = + { "type", "name", "range" + "Gov", "Monarchy", "Player" + } + +[effect_civil_war_communism] +type = "Civil_War_Chance" +value = 50 +reqs = + { "type", "name", "range" + "Gov", "Communism", "Player" + } + +[effect_civil_war_fundamentalism] +type = "Civil_War_Chance" +value = 60 +reqs = + { "type", "name", "range" + "Gov", "Fundamentalism", "Player" + } + +[effect_civil_war_federation] +type = "Civil_War_Chance" +value = 20 +reqs = + { "type", "name", "range" + "Gov", "Federation", "Player" + } + +[effect_civil_war_republic] +type = "Civil_War_Chance" +value = 40 +reqs = + { "type", "name", "range" + "Gov", "Republic", "Player" + } + +[effect_civil_war_democracy] +type = "Civil_War_Chance" +value = 30 +reqs = + { "type", "name", "range" + "Gov", "Democracy", "Player" + } + +[effect_empire_size_base_tribal] +type = "Empire_Size_Base" +value = 12 +reqs = + { "type", "name", "range" + "Gov", "Tribal", "Player" + } + +[effect_empire_size_base_despotism] +type = "Empire_Size_Base" +value = 10 +reqs = + { "type", "name", "range" + "Gov", "Despotism", "Player" + } + +[effect_empire_size_base_monarchy] +type = "Empire_Size_Base" +value = 14 +reqs = + { "type", "name", "range" + "Gov", "Monarchy", "Player" + } + +[effect_empire_size_base_communism] +type = "Empire_Size_Base" +value = 28 +reqs = + { "type", "name", "range" + "Gov", "Communism", "Player" + } + +[effect_empire_size_base_fundamentalism] +type = "Empire_Size_Base" +value = 20 +reqs = + { "type", "name", "range" + "Gov", "Fundamentalism", "Player" + } + +[effect_empire_size_base_federation] +type = "Empire_Size_Base" +value = 24 +reqs = + { "type", "name", "range" + "Gov", "Federation", "Player" + } + +[effect_empire_size_base_republic] +type = "Empire_Size_Base" +value = 16 +reqs = + { "type", "name", "range" + "Gov", "Republic", "Player" + } + +[effect_empire_size_base_democracy] +type = "Empire_Size_Base" +value = 32 +reqs = + { "type", "name", "range" + "Gov", "Democracy", "Player" + } + +[effect_empire_size_step_tribal] +type = "Empire_Size_Step" +value = 12 +reqs = + { "type", "name", "range" + "Gov", "Tribal", "Player" + } + +[effect_empire_size_step_despotism] +type = "Empire_Size_Step" +value = 10 +reqs = + { "type", "name", "range" + "Gov", "Despotism", "Player" + } + +[effect_empire_size_step_monarchy] +type = "Empire_Size_Step" +value = 14 +reqs = + { "type", "name", "range" + "Gov", "Monarchy", "Player" + } + +[effect_empire_size_step_communism] +type = "Empire_Size_Step" +value = 28 +reqs = + { "type", "name", "range" + "Gov", "Communism", "Player" + } + +[effect_empire_size_step_fundamentalism] +type = "Empire_Size_Step" +value = 20 +reqs = + { "type", "name", "range" + "Gov", "Fundamentalism", "Player" + } + +[effect_empire_size_step_federation] +type = "Empire_Size_Step" +value = 24 +reqs = + { "type", "name", "range" + "Gov", "Federation", "Player" + } + +[effect_empire_size_step_republic] +type = "Empire_Size_Step" +value = 16 +reqs = + { "type", "name", "range" + "Gov", "Republic", "Player" + } + +[effect_empire_size_step_democracy] +type = "Empire_Size_Step" +value = 32 +reqs = + { "type", "name", "range" + "Gov", "Democracy", "Player" + } + +[effect_max_rates_anarchy] +type = "Max_Rates" +value = 100 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + } + +[effect_max_rates_tribal] +type = "Max_Rates" +value = 60 +reqs = + { "type", "name", "range" + "Gov", "Tribal", "Player" + } + +[effect_max_rates_despotism] +type = "Max_Rates" +value = 60 +reqs = + { "type", "name", "range" + "Gov", "Despotism", "Player" + } + +[effect_max_rates_monarchy] +type = "Max_Rates" +value = 70 +reqs = + { "type", "name", "range" + "Gov", "Monarchy", "Player" + } + +[effect_max_rates_communism] +type = "Max_Rates" +value = 80 +reqs = + { "type", "name", "range" + "Gov", "Communism", "Player" + } + +[effect_max_rates_fundamentalism] +type = "Max_Rates" +value = 70 +reqs = + { "type", "name", "range" + "Gov", "Fundamentalism", "Player" + } + +[effect_max_rates_federation] +type = "Max_Rates" +value = 90 +reqs = + { "type", "name", "range" + "Gov", "Federation", "Player" + } + +[effect_max_rates_republic] +type = "Max_Rates" +value = 80 +reqs = + { "type", "name", "range" + "Gov", "Republic", "Player" + } + +[effect_max_rates_democracy] +type = "Max_Rates" +value = 90 +reqs = + { "type", "name", "range" + "Gov", "Democracy", "Player" + } + +[effect_martial_law_each_anarchy] +type = "Martial_Law_Each" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + } + +[effect_martial_law_each_despotism] +type = "Martial_Law_Each" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Despotism", "Player", TRUE + } + +[effect_martial_law_each_monarchy] +type = "Martial_Law_Each" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Monarchy", "Player", TRUE + } + +[effect_martial_law_each_communism] +type = "Martial_Law_Each" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Communism", "Player", TRUE + } + +[effect_martial_law_max] +type = "Martial_Law_Max" +value = 3 +reqs = + { "type", "name", "range", "present" +; "Gov", "Anarchy", "Player", FALSE + "Gov", "Tribal", "Player", FALSE +; "Gov", "Communism", "Player", FALSE +; "Gov", "Despotism", "Player", FALSE +; "Gov", "Monarchy", "Player", FALSE + "Gov", "Fundamentalism", "Player", FALSE + "Gov", "Federation", "Player", FALSE + "Gov", "Republic", "Player", FALSE + "Gov", "Democracy", "Player", FALSE + } + +; Railroad because makes Pyramids obsolete +[effect_gov_tile_penalty_anarchy] +type = "Output_Penalty_Tile" +value = 2 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Anarchy", "Player", TRUE, TRUE + "Building", "Pyramids", "Player", FALSE, FALSE + "Tech", "Railroad", "Player", FALSE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + "CityStatus", "Celebration", "City", FALSE, FALSE + } + +[effect_gov_tile_penalty_tribal] +type = "Output_Penalty_Tile" +value = 2 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Tribal", "Player", TRUE, TRUE + "Building", "Pyramids", "Player", FALSE, FALSE + "Tech", "Railroad", "Player", FALSE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + "CityStatus", "Celebration", "City", FALSE, FALSE + } + +[effect_gov_tile_penalty_despotism] +type = "Output_Penalty_Tile" +value = 2 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Despotism", "Player", TRUE, TRUE + "Building", "Pyramids", "Player", FALSE, FALSE + "Tech", "Railroad", "Player", FALSE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + "CityStatus", "Celebration", "City", FALSE, FALSE + } + +[effect_gov_tile_bonus_republic] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Republic", "Player", TRUE, TRUE + "OutputType", "Trade", "Local", TRUE, FALSE + "TerrainClass", "Oceanic", "Tile", FALSE, FALSE + } + +[effect_gov_tile_bonus_democracy] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Democracy", "Player", TRUE, TRUE + "OutputType", "Trade", "Local", TRUE, FALSE + "TerrainClass", "Oceanic", "Tile", FALSE, FALSE + } + +[effect_gov_tile_bonus_celebrate] +type = "Output_Inc_Tile_Celebrate" +value = 1 +reqs = + { "type", "name", "range", "present", "quiet" + "OutputType", "Trade", "Local", TRUE, TRUE + "Gov", "Anarchy", "Player", FALSE, FALSE + "Gov", "Tribal", "Player", FALSE, FALSE + "Gov", "Communism", "Player", FALSE, FALSE + "Gov", "Despotism", "Player", FALSE, FALSE +; "Gov", "Monarchy", "Player", FALSE, FALSE + "Gov", "Fundamentalism", "Player", FALSE, FALSE +; "Gov", "Federation", "Player", FALSE, FALSE +; "Gov", "Republic", "Player", FALSE, FALSE +; "Gov", "Democracy", "Player", FALSE, FALSE + } + +[effect_content_tribal] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Tribal", "Player", TRUE + } + +[effect_combat_tribal] +type = "Veteran_Combat" +value = 50 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Tribal", "Player", TRUE, TRUE + "UnitClass", "Land", "Local", TRUE, FALSE + "UnitFlag", "NonMil", "Local", FALSE, FALSE + "UnitFlag", "NoVeteran", "Local", FALSE, FALSE + } + +[effect_revolution_republic] +type = "Revolution_Unhappiness" +value = 2 +reqs = + { "type", "name", "range" + "Gov", "Republic", "Player" + } + +[effect_revolution_democracy] +type = "Revolution_Unhappiness" +value = 2 +reqs = + { "type", "name", "range" + "Gov", "Democracy", "Player" + } + +[effect_senate_federation] +type = "Has_Senate" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Federation", "Player", TRUE + "Building", "Statue of Liberty", "Player", FALSE + } + +[effect_senate_democracy] +type = "Has_Senate" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Democracy", "Player", TRUE + "Building", "Statue of Liberty", "Player", FALSE + } + +[effect_veteran_communism] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range" + "Gov", "Communism", "Player" + "UnitFlag", "Diplomat", "Local" + } + +[effect_veteran_federation] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range" + "Gov", "Federation", "Player" + "UnitFlag", "Diplomat", "Local" + } + +[effect_partisan_communism] +type = "Inspire_Partisans" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Communism", "Player", TRUE + "Tech", "Communism", "Player", TRUE + "Tech", "Gunpowder", "Player", TRUE + "Tech", "Guerilla Warfare", "World", TRUE + "NationGroup", "Barbarian", "Player", FALSE + } + +[effect_partisan_democracy] +type = "Inspire_Partisans" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Democracy", "Player", TRUE + "Tech", "Communism", "Player", TRUE + "Tech", "Gunpowder", "Player", TRUE + "Tech", "Guerilla Warfare", "World", TRUE + "NationGroup", "Barbarian", "Player", FALSE + } + +[effect_lux_federation] +type = "Output_Add_Tile" +value = 2 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Federation", "Player", TRUE + "CityTile", "Center", "Tile", FALSE + "OutputType", "Luxury", "Local", FALSE + } + +[effect_bad_lux_anarchy] +type = "Output_Bonus" +value = -50 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Anarchy", "Player", TRUE + "OutputType", "Luxury", "Local", FALSE + } + +[effect_bad_sci_fundamentalism] +type = "Output_Bonus" +value = -50 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Fundamentalism", "Player", TRUE + "OutputType", "Science", "Local", FALSE + } + +[effect_tithes_fundamentalism] +type = "Happiness_To_Gold" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Fundamentalism", "Player", TRUE + } + +[effect_fanatics_fundamentalism] +type = "Fanatics" +value = 1 +reqs = + { "type", "name", "range" + "Gov", "Fundamentalism", "Player" + } + +[effect_airport] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Airport", "City", TRUE + "UnitClass", "Air", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_airport_0a] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Airport", "City", TRUE + "UnitClass", "Helicopter", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_airport_0b] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Airport", "City", TRUE + "UnitClass", "Missile", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_airport_1] +type = "HP_Regen" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Airport", "City" + "UnitClass", "Air", "Local" + } + +[effect_airport_1a] +type = "HP_Regen" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Airport", "City" + "UnitClass", "Helicopter", "Local" + } + +[effect_airport_2] +type = "Airlift" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Airport", "City" + } + +; Base max city size of 8 +[effect_aqueduct_base] +type = "Size_Adj" +value = 8 + +; Max city size 8 + 8 = 16 +[effect_aqueduct] +type = "Size_Adj" +value = 8 +reqs = + { "type", "name", "range" + "Building", "Aqueduct", "City" + } + +[effect_aqueduct_1] +type = "Health_Pct" +value = 30 +reqs = + { "type", "name", "range" + "Building", "Aqueduct", "City" + } + +[effect_aqueduct_river] +type = "Size_Adj" +value = 8 +reqs = + { "type", "name", "range", "present" + "Building", "Aqueduct, River", "City", TRUE + "Building", "Aqueduct", "City", FALSE + } + +[effect_aqueduct_river_1] +type = "Health_Pct" +value = 30 +reqs = + { "type", "name", "range", "present" + "Building", "Aqueduct, River", "City", TRUE + "Building", "Aqueduct", "City", FALSE + } + +[effect_aqueduct_lake] +type = "Size_Adj" +value = 8 +reqs = + { "type", "name", "range", "present" + "Building", "Aqueduct, Lake", "City", TRUE + "Building", "Aqueduct", "City", FALSE + "Building", "Aqueduct, River", "City", FALSE + } + +[effect_aqueduct_lake_1] +type = "Health_Pct" +value = 30 +reqs = + { "type", "name", "range", "present" + "Building", "Aqueduct, Lake", "City", TRUE + "Building", "Aqueduct", "City", FALSE + "Building", "Aqueduct, River", "City", FALSE + } + +[effect_bank] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Bank", "City" + "OutputType", "Gold", "Local" + } + +[effect_bank_1] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Bank", "City" + "OutputType", "Luxury", "Local" + } + +[effect_barracks_veteran] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "BuildingFlag", "Barracks", "City", TRUE + "UnitClassFlag", "Barracks", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_barracks_regen] +type = "HP_Regen" +value = 100 +reqs = + { "type", "name", "range", "present" + "BuildingFlag", "Barracks", "City", TRUE + "UnitClassFlag", "Barracks", "Local", TRUE + } + +[effect_cathedral] +type = "Make_Content" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Cathedral", "City" + } + +[effect_cathedral_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Cathedral", "City" + } + +[effect_cathedral_1] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range", "present" + "Tech", "Theology", "Player", TRUE + "Building", "Cathedral", "City", TRUE + "Gov", "Communism", "Player", FALSE + } + +; All Ground units +[effect_city_defense_0] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "UnitClassFlag", "Ground", "Local" + "CityTile", "Center", "Tile" + } + +; All Ground and Naval units +[effect_city_defense_1] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present" + "MinSize", "9", "City", TRUE + "CityTile", "Center", "Tile", TRUE + "UnitClassFlag", "Aerial", "Local", FALSE + } + +; Every Land +[effect_city_walls_0] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "City Walls", "City" + "UnitClassFlag", "Ground", "Local" + } + +[effect_city_walls_1] +type = "Unit_No_Lose_Pop" +value = 1 +reqs = + { "type", "name", "range" + "Building", "City Walls", "City" + } + +[effect_city_walls_visible] +type = "Visible_Walls" +value = 1 +reqs = + { "type", "name", "range" + "Building", "City Walls", "City" + } + +[effect_coastal_defense] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Coastal Defense", "City" + "UnitClass", "Sea", "Local" + } + +[effect_coastal_defense_trireme] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Coastal Defense", "City" + "UnitClass", "Trireme", "Local" + } + +[effect_colosseum] +type = "Make_Content" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Colosseum", "City" + } + +[effect_colosseum_1] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Tech", "Electricity", "Player" + "Building", "Colosseum", "City" + } + +[effect_colosseum_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Colosseum", "City" + } + +[effect_courthouse] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Courthouse", "City" + "OutputType", "Trade", "Local" + } + +[effect_courthouse_1] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Courthouse", "City" + "OutputType", "Shield", "local" + } + +; effect always has value>=50, so this halves food waste +[effect_courthouse_2] +type = "Output_Waste_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Courthouse", "City" + "OutputType", "Food", "local" + } + +[effect_courthouse_3] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Courthouse", "City" + } + +; Any city with Courthouse immune to incite (see actions.ruleset) +; Any non empty city gets +100% incite cost +[effect_incite_cost_not_empty] +type = "Incite_Cost_Pct" +value = 100 +reqs = + { "type", "name", "range", "present" + "MaxUnitsOnTile", "0", "Tile", FALSE + } + +[effect_factory] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Factory", "City" + "OutputType", "Shield", "Local" + } + +[effect_factory_1] +type = "Pollu_Pop_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Factory", "City" + } + +; effect always has value>=50, so this halves food waste +[effect_granary] +type = "Output_Waste_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Granary", "City" + "OutputType", "Food", "local" + } + +; Free Granary effects in small cities +[effect_granary_base_grow] +type = "Growth_Food" +value = 50 +reqs = + { "type", "name", "range", "present" + "MinSize", "4", "City", FALSE + } + +[effect_granary_base_shrink] +type = "Shrink_Food" +value = 50 +reqs = + { "type", "name", "range", "present" + "MinSize", "4", "City", FALSE + } + +; Granary size fixed to 10 +[effect_granary_0_grow] +type = "Growth_Food" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Granary", "City", TRUE + "MinSize", "4", "City", TRUE + "MinSize", "5", "City", FALSE + } + +[effect_granary_0_shrink] +type = "Shrink_Food" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Granary", "City", TRUE + "MinSize", "4", "City", TRUE + "MinSize", "5", "City", FALSE + } + +; Size adjusted when Foodbox increases +[effect_granary_1_grow] +type = "Growth_Food" +value = 34 +reqs = + { "type", "name", "range", "present" + "Building", "Granary", "City", TRUE + "MinSize", "5", "City", TRUE + "MinSize", "7", "City", FALSE + } + +[effect_granary_1_shrink] +type = "Shrink_Food" +value = 34 +reqs = + { "type", "name", "range", "present" + "Building", "Granary", "City", TRUE + "MinSize", "5", "City", TRUE + "MinSize", "7", "City", FALSE + } + +; Size adjusted when Foodbox increases +[effect_granary_2_grow] +type = "Growth_Food" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Granary", "City" + "MinSize", "7", "City" + } + +[effect_granary_2_shrink] +type = "Shrink_Food" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Granary", "City" + "MinSize", "7", "City" + } + +[effect_harbor] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range", "present" + "TerrainFlag", "Sea", "Tile", TRUE + "Building", "Harbour", "City", TRUE + "OutputType", "Food", "Local", TRUE + } + +[effect_hydro_plant] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Factory", "City", TRUE + "Building", "Hydro Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_hydro_plant_1] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Mfg. Plant", "City", TRUE + "Building", "Hydro Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_hydro_plant_2] +type = "Pollu_Prod_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Building", "Hydro Plant", "City", TRUE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_hydro_plant_3] +type = "Pollu_Prod_Pct" +value = -25 +reqs = + { "type", "name", "range", "present" + "Building", "Recycling Center", "City", TRUE + "Building", "Hydro Plant", "City", TRUE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_hydro_plant_4] +type = "Pollu_Prod_Pct" +value = -25 +reqs = + { "type", "name", "range", "present" + "Building", "Hoover Dam", "Player", TRUE + "Building", "Hydro Plant", "City", TRUE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_library] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Library", "City" + "OutputType", "Science", "Local" + } + +[effect_library_culture] +type = "History" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Library", "City" + } + +[effect_marketplace] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Marketplace", "City" + "OutputType", "Gold", "Local" + } + +[effect_marketplace_1] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Marketplace", "City" + "OutputType", "Luxury", "Local" + } + +; Counteracts population pollution from any 2 other buildings +[effect_mass_transit] +type = "Pollu_Pop_Pct" +value = -50 +reqs = + { "type", "name", "range" + "Building", "Mass Transit", "City" + } + +[effect_mfg_plant] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Mfg. Plant", "City" + "OutputType", "Shield", "Local" + } + +[effect_mfg_plant_1] +type = "Pollu_Pop_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Mfg. Plant", "City" + } + +[effect_nuclear_plant] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Factory", "City", TRUE + "Building", "Nuclear Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_nuclear_plant_1] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Mfg. Plant", "City", TRUE + "Building", "Nuclear Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_nuclear_plant_2] +type = "Pollu_Prod_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Building", "Nuclear Plant", "City", TRUE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_nuclear_plant_3] +type = "Pollu_Prod_Pct" +value = -25 +reqs = + { "type", "name", "range", "present" + "Building", "Recycling Center", "City", TRUE + "Building", "Nuclear Plant", "City", TRUE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_offshore_platform] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range" + "TerrainClass", "Oceanic", "Tile" + "Building", "Offshore Platform", "City" + "OutputType", "Shield", "Local" + } + +[effect_offshore_platform_1] +type = "Output_Add_Tile" +value = -1 +reqs = + { "type", "name", "range", "present" + "Terrain", "Deep Ocean", "Tile", TRUE + "Building", "Offshore Platform", "City", TRUE + "Extra", "Oil Platform", "Tile", FALSE + "OutputType", "Shield", "Local", TRUE + } + +[effect_offshore_platform_2] +type = "Pollu_Pop_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Offshore Platform", "City" + } + +[effect_palace] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + "OutputType", "Trade", "Local" + } + +[effect_palace_1] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + "OutputType", "Shield", "local" + } + +[effect_palace_2] +type = "Spy_Resistant" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + } + +[effect_palace_2_sabotage] +type = "Building_Saboteur_Resistant" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + } + +; Make it main capital -> value higher than that of Ecclesiastical Palace +[effect_palace_3] +type = "Capital_City" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + } + +[effect_palace_gov_center] +type = "Gov_Center" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + } + +[effect_palace_despotism] +type = "Output_Bonus" +value = 75 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Despotism", "Player", TRUE + "Building", "Palace", "City", FALSE + "OutputType", "Gold", "Local", FALSE + } + +[effect_palace_monarchy] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range", "quiet" + "Gov", "Monarchy", "Player", TRUE + "Building", "Palace", "City", FALSE + "OutputType", "Gold", "Local", FALSE + } + +[effect_palace_culture] +type = "History" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Palace", "City" + } + +[effect_ecclesiastical_palace] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "OutputType", "Trade", "Local", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_1] +type = "Output_Waste_Pct" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "OutputType", "Shield", "local", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_2] +type = "Spy_Resistant" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_2_sabotage] +type = "Building_Saboteur_Resistant" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_gov_center] +type = "Gov_Center" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_secondary_capital] +type = "Capital_City" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_ecclesiastical_palace_despotism] +type = "Output_Bonus" +value = 75 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Despotism", "Player", TRUE, TRUE + "Building", "Ecclesiastical Palace", "City", TRUE, FALSE + "OutputType", "Gold", "Local", TRUE, FALSE + "Building", "Palace", "City", FALSE, FALSE + } + +[effect_ecclesiastical_palace_monarchy] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range", "present", "quiet" + "Gov", "Monarchy", "Player", TRUE, TRUE + "Building", "Ecclesiastical Palace", "City", TRUE, FALSE + "OutputType", "Gold", "Local", TRUE, FALSE + "Building", "Palace", "City", FALSE, FALSE + } + +[effect_ecclesiastical_palace_culture] +type = "History" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Ecclesiastical Palace", "City", TRUE + "Building", "Palace", "City", FALSE + } + +[effect_police_station] +type = "Make_Content" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Police Station", "City" + } + +[effect_police_station_1] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Police Station", "City" + } + +; Net effect is to neutralize one unit's unhappiness +[effect_police_station_democracy] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range", "present" + "Gov", "Democracy", "Player", TRUE + "Building", "Police Station", "City", TRUE + "Building", "Women's Suffrage", "Player", FALSE + } + +[effect_port_facility] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Port Facility", "City", TRUE + "UnitClass", "Sea", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_port_facility_1] +type = "HP_Regen" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Port Facility", "City" + "UnitClass", "Sea", "Local" + } + +[effect_port_facility_trireme] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Port Facility", "City", TRUE + "UnitClass", "Trireme", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_port_facility_trireme_1] +type = "HP_Regen" +value = 100 +reqs = + { "type", "name", "range" + "Building", "Port Facility", "City" + "UnitClass", "Trireme", "Local" + } + +[effect_power_plant] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Factory", "City", TRUE + "Building", "Power Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Nuclear Plant", "City", FALSE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_power_plant_1] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Mfg. Plant", "City", TRUE + "Building", "Power Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Nuclear Plant", "City", FALSE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +; Recycling Center gives a lesser additional bonus with plants +[effect_recycling_center] +type = "Pollu_Prod_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Building", "Recycling Center", "City", TRUE + "Building", "Nuclear Plant", "City", FALSE + "Building", "Hydro Plant", "City", FALSE + "Building", "Solar Plant", "City", FALSE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_research_lab] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Research Lab", "City" + "OutputType", "Science", "Local" + } + +[effect_research_lab_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Research Lab", "City" + } + +[effect_sam_battery] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "SAM Battery", "City" + "UnitClass", "Air", "Local" + } + +[effect_sam_battery_1] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "SAM Battery", "City" + "UnitClass", "Helicopter", "Local" + } + +[effect_sdi_defense] +type = "Nuke_Proof" +value = 100 +reqs = + { "type", "name", "range", "present" + "Building", "SDI Defense", "City", TRUE + "DiplRel", "Foreign", "Local", TRUE + "DiplRel", "Team", "Local", FALSE + } + +[effect_sdi_defense_1] +type = "Defend_Bonus" +value = 100 +reqs = + { "type", "name", "range" + "Building", "SDI Defense", "City" + "UnitClass", "Missile", "Local" + } + +[effect_sewer_system] +type = "Size_Unlimit" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Sewer System", "City" + "Building", "Aqueduct", "City" + } + +[effect_sewer_system_1] +type = "Size_Unlimit" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Sewer System", "City" + "Building", "Aqueduct, Lake", "City" + } + +[effect_sewer_system_2] +type = "Size_Unlimit" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Sewer System", "City" + "Building", "Aqueduct, River", "City" + } + +[effect_sewer_system_health] +type = "Health_Pct" +value = 30 +reqs = + { "type", "name", "range" + "Building", "Sewer System", "City" + } + +[effect_solar_plant] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Factory", "City", TRUE + "Building", "Solar Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_solar_plant_1] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range", "present" + "Building", "Mfg. Plant", "City", TRUE + "Building", "Solar Plant", "City", TRUE + "OutputType", "Shield", "Local", TRUE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_solar_plant_2] +type = "Pollu_Prod_Pct" +value = -75 +reqs = + { "type", "name", "range", "present" + "Building", "Solar Plant", "City", TRUE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_solar_plant_3] +type = "Pollu_Prod_Pct" +value = -25 +reqs = + { "type", "name", "range", "present" + "Building", "Recycling Center", "City", TRUE + "Building", "Solar Plant", "City", TRUE + "Building", "Hoover Dam", "City", FALSE + } + +[effect_space_component] +type = "SS_Component" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Space Component", "City" + } + +[effect_space_module] +type = "SS_Module" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Space Module", "City" + } + +[effect_space_structural] +type = "SS_Structural" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Space Structural", "City" + } + +[effect_plastics_slowdown] +type = "Slow_Down_Timeline" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Tech", "Plastics", "World", TRUE + } + +[effect_superconductor_slowdown] +type = "Slow_Down_Timeline" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Tech", "Superconductors", "World", TRUE + } + +[effect_spaceflight_slowdown] +type = "Slow_Down_Timeline" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Tech", "Space Flight", "World", TRUE + } + +[effect_stock_exchange] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Stock Exchange", "City" + "OutputType", "Gold", "Local" + } + +[effect_stock_exchange_1] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Stock Exchange", "City" + "OutputType", "Luxury", "Local" + } + +; Tiles with farmland don't get Super Highways + road trade bonus +[effect_super_highways] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range", "present" + "Extra", "Road", "Tile", TRUE + "Building", "Super Highways", "City", TRUE + "OutputType", "Trade", "Local", TRUE + "Extra", "Farmland", "Tile", FALSE + "CityTile", "Center", "Tile", FALSE + } + +; City center tiles do get the Super Highways + road trade bonus, even +; if they are already receiving a (possibly 'automatic') farmland bonus +[effect_super_highways_city_center_1] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range", "present" + "Extra", "Road", "Tile", TRUE + "Building", "Super Highways", "City", TRUE + "OutputType", "Trade", "Local", TRUE + "CityTile", "Center", "Tile", TRUE + } + +[effect_super_highways_1] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Super Highways", "City" + "Building", "Stock Exchange", "City" + "OutputType", "Gold", "Local" + } + +[effect_super_highways_2] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Super Highways", "City" + "Building", "Stock Exchange", "City" + "OutputType", "Luxury", "Local" + } + +[effect_super_highways_3] +type = "Pollu_Pop_Pct" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Super Highways", "City" + } + +[effect_supermarket] +type = "Output_Per_Tile" +value = 50 +reqs = + { "type", "name", "range" + "Extra", "Farmland", "Tile" + "Building", "Supermarket", "City" + "OutputType", "Food", "Local" + } + +; Automatic farmland on city center +[effect_supermarket_center] +type = "Output_Per_Tile" +value = 50 +reqs = + { "type", "name", "range", "present" + "CityTile", "Center", "Tile", TRUE + "Extra", "Farmland", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + "Building", "Supermarket", "City", TRUE + "OutputType", "Food", "Local", TRUE + "Extra", "Mine", "Tile", FALSE + "Extra", "Oil Well", "Tile", FALSE + } + +[effect_temple] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Temple", "City" + } + +[effect_temple_1] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range", "present" + "Tech", "Mysticism", "Player", TRUE + "Building", "Temple", "City", TRUE + "Gov", "Communism", "Player", FALSE + } + +[effect_temple_culture] +type = "History" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Temple", "City" + } + +[effect_university] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "University", "City" + "OutputType", "Science", "Local" + } + +[effect_university_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "University", "City" + } + +[effect_apollo_program] +type = "Reveal_Map" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Apollo Program", "Player" + } + +[effect_apollo_program_1] +type = "Enable_Space" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Building", "Apollo Program", "World", TRUE + } + +[effect_apollo_program_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Apollo Program", "City" + } + +[effect_asmiths_trading_co] +type = "Upkeep_Free" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "A.Smith's Trading Co.", "Player", TRUE + "Building", "Stock Exchange", "City", TRUE + "Gov", "Communism", "Player", FALSE + } + +;2 + 1 = 3 +[effect_asmiths_trading_co_1] +type = "Specialist_Output" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Building", "A.Smith's Trading Co.", "World", TRUE + "Specialist", "Taxman", "Local" + "OutputType", "Gold", "Local" + } + +[effect_asmiths_trading_co_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "A.Smith's Trading Co.", "City" + } + +[effect_colossus] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Colossus", "City" + "OutputType", "Trade", "Local" + } + +[effect_colossus_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Colossus", "City" + } + +[effect_copernicus_observatory] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Copernicus' Observatory", "City" + "OutputType", "Science", "Local" + } + +[effect_copernicus_observatory_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Copernicus' Observatory", "City" + } + +[effect_cure_for_cancer] +type = "Output_Add_Tile" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Cure For Cancer", "Player" + "CityTile", "Center", "Tile" + "OutputType", "Luxury", "Local" + } + +[effect_cure_for_cancer_health] +type = "Health_Pct" +value = 10 +reqs = + { "type", "name", "range" + "Building", "Cure For Cancer", "Player" + } + +[effect_cure_for_cancer_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Cure For Cancer", "City" + } + +[effect_darwins_voyage] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Darwin's Voyage", "Player" + "CityTile", "Center", "Tile" + "OutputType", "Science", "Local" + } + +;2 + 1 = 3 +[effect_darwins_voyage_1] +type = "Specialist_Output" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Building", "Darwin's Voyage", "World", TRUE + "Specialist", "Scientist", "Local" + "OutputType", "Science", "Local" + } + +[effect_darwins_voyage_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Darwin's Voyage", "City" + } + +[effect_eiffel_tower] +type = "Gain_AI_Love" +value = 10 +reqs = + { "type", "name", "range", "present", "survives" + "Building", "Eiffel Tower", "Player", TRUE, FALSE + "Building", "Apollo Program", "World", FALSE, TRUE + } + +[effect_eiffel_tower_1] +type = "Pollu_Pop_Pct" +value = -25 +reqs = + { "type", "name", "range" + "Building", "Eiffel Tower", "Player" + } + +[effect_eiffel_tower_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Eiffel Tower", "City" + } + +[effect_great_library] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range", "survives" + "Building", "Great Library", "World", TRUE + "Building", "Library", "City" + "OutputType", "Science", "Local" + } + +[effect_great_library_1] +type = "Output_Add_Tile" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Great Library", "City" + "CityTile", "Center", "Tile" + "OutputType", "Science", "Local" + } + +[effect_great_library_2] +type = "Give_Imm_Tech" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Great Library", "Player" + } + +[effect_great_library_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Great Library", "City" + } + +; All Ground units +[effect_great_wall] +type = "Defend_Bonus" +value = 50 +reqs = + { "type", "name", "range" + "Building", "Great Wall", "Player" + "CityTile", "Center", "Tile" + "UnitClassFlag", "Ground", "Local" + } + +[effect_great_wall_1] +type = "Unit_No_Lose_Pop" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Great Wall", "Player" + } + +[effect_great_wall_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Great Wall", "City" + } + +[effect_hanging_gardens] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Hanging Gardens", "Player" + } + +[effect_hanging_gardens_1] +type = "Output_Add_Tile" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Hanging Gardens", "City" + "CityTile", "Center", "Tile" + "OutputType", "Luxury", "Local" + } + +[effect_hanging_gardens_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Hanging Gardens", "City" + } + +; Hoover Dam behaves like a (self-enhanced) Hydro Plant in its own city +[effect_hoover_dam] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Factory", "City" + "Building", "Hoover Dam", "City" + "OutputType", "Shield", "Local" + } + +[effect_hoover_dam_1] +type = "Output_Bonus" +value = 25 +reqs = + { "type", "name", "range" + "Building", "Mfg. Plant", "City" + "Building", "Hoover Dam", "City" + "OutputType", "Shield", "Local" + } + +[effect_hoover_dam_2] +type = "Pollu_Prod_Pct" +value = -75 +reqs = + { "type", "name", "range" + "Building", "Hoover Dam", "City" + } + +[effect_hoover_dam_3] +type = "Pollu_Prod_Pct" +value = -25 +reqs = + { "type", "name", "range" + "Building", "Recycling Center", "City" + "Building", "Hoover Dam", "City" + } + +[effect_hoover_dam_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Hoover Dam", "City" + } + +[effect_isaac_newtons_college] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range", "survives" + "Building", "Isaac Newton's College", "World", TRUE + "Building", "University", "City" + "OutputType", "Science", "Local" + } + +[effect_isaac_newtons_college_1] +type = "Output_Add_Tile" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Isaac Newton's College", "City" + "CityTile", "Center", "Tile" + "OutputType", "Science", "Local" + } + +[effect_isaac_newtons_college_2] +type = "Give_Imm_Tech" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Isaac Newton's College", "Player" + } + +[effect_isaac_newtons_college_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Isaac Newton's College", "City" + } + +[effect_js_bachs_cathedral] +type = "Output_Add_Tile" +value = 2 +reqs = + { "type", "name", "range" + "Building", "J.S. Bach's Cathedral", "Player" + "CityTile", "Center", "Tile" + "OutputType", "Luxury", "Local" + } + +[effect_js_bachs_cathedral_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "J.S. Bach's Cathedral", "City" + } + +[effect_king_richards_crusade] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range" + "Building", "King Richard's Crusade", "Player" + } + +[effect_king_richards_crusade_1] +type = "Unit_Upkeep_Free_Per_City" +value = 2 +reqs = + { "type", "name", "range" + "Building", "King Richard's Crusade", "Player" + "OutputType", "Gold", "Local" + } + +[effect_king_richards_crusade_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "King Richard's Crusade", "City" + } + +[effect_leonardos_workshop] +type = "Upgrade_Unit" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Leonardo's Workshop", "Player" + } + +[effect_leonardos_workshop_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Leonardo's Workshop", "City" + } + +[effect_lighthouse_move] +type = "Move_Bonus" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Lighthouse", "Player" + "UnitClass", "Sea", "Local" + } + +[effect_lighthouse_veteran] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Lighthouse", "Player", TRUE + "UnitClass", "Sea", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + "Building", "Port Facility", "City", FALSE + } + +[effect_lighthouse_trireme_move] +type = "Move_Bonus" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Lighthouse", "Player", TRUE + "UnitClass", "Trireme", "Local", TRUE +; No move bonus to Triremes starting their turn on rivers +; We also disable move bonus for city tiles in this clause... + "Extra", "River", "Tile", FALSE + "CityTile", "Center", "Tile", FALSE + } + +; ...so that we can use this one to avoid penalising Triremes which start +; in a perfectly legal coastal city which also happens to be on a river +[effect_lighthouse_trireme_move_2] +type = "Move_Bonus" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Lighthouse", "Player" + "UnitClass", "Trireme", "Local" + "CityTile", "Center", "Tile" + "TerrainClass", "Oceanic", "Adjacent" + } + +[effect_lighthouse_trireme_veteran] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Lighthouse", "Player", TRUE + "UnitClass", "Trireme", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + "Building", "Port Facility", "City", FALSE + } + +[effect_lighthouse_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Lighthouse", "City" + } + +[effect_magellans_expedition_move] +type = "Move_Bonus" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Magellan's Expedition", "Player" + "UnitClass", "Sea", "Local" + } + +[effect_magellans_expedition_veteran] +type = "Veteran_Combat" +value = 50 +reqs = + { "type", "name", "range", "present" + "Building", "Magellan's Expedition", "Player", TRUE + "UnitClass", "Sea", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_magellans_expedition_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Magellan's Expedition", "City" + } + +[effect_manhattan_project] +type = "Enable_Nuke" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Building", "Manhattan Project", "World", TRUE + } + +[effect_marco_polos_contact] +type = "Have_Contacts" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Marco Polo's Embassy", "Player" + } + +[effect_manhattan_project_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Manhattan Project", "City" + } + +[effect_marco_polos_embassy] +type = "Have_Embassies" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Marco Polo's Embassy", "Player" + } + +[effect_marco_polos_embassy_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Marco Polo's Embassy", "City" + } + +[effect_michelangelos_chapel] +type = "Make_Content" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Cathedral", "City" + "Building", "Michelangelo's Chapel", "Player" + } + +[effect_michelangelos_chapel_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Michelangelo's Chapel", "City" + } + +[effect_mausoleum_of_mausolos] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Building", "City Walls", "City" + "Building", "Mausoleum of Mausolos", "Player" + } + +[effect_mausoleum_of_mausolos_1] +type = "Make_Content" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Courthouse", "City" + "Building", "Mausoleum of Mausolos", "Player" + } + +[effect_mausoleum_of_mausolos_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Mausoleum of Mausolos", "City" + } + +; Note that this doesn't cancel a whole unit's unhappiness in Democracy +[effect_statue_of_zeus] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Statue of Zeus", "Player" + } + +[effect_statue_of_zeus_1] +type = "Unit_Upkeep_Free_Per_City" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Statue of Zeus", "Player" + "OutputType", "Shield", "Local" + } + +[effect_statue_of_zeus_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Statue of Zeus", "City" + } + +[effect_temple_of_artemis] +type = "Make_Content" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Temple", "City" + "Building", "Temple of Artemis", "Player" + } + +[effect_temple_of_artemis_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Temple of Artemis", "City" + } + +[effect_pyramids] +type = "Output_Inc_Tile" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Pyramids", "City" + "OutputType", "Shield", "Local" + } + +[effect_pyramids_culture] +type = "History" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Pyramids", "City" + } + +[effect_internet] +type = "Output_Bonus" +value = 50 +reqs = + { "type", "name", "range", "survives" + "Building", "Internet", "World", TRUE + "Building", "Research Lab", "City" + "OutputType", "Science", "Local" + } + +[effect_internet_1] +type = "Reveal_Cities" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Internet", "Player" + } + +[effect_internet_2] +type = "Give_Imm_Tech" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Internet", "Player" + } + +[effect_internet_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Internet", "City" + } + +[effect_shakespeares_theatre] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Shakespeare's Theatre", "Player" + "CityTile", "Center", "Tile" + "OutputType", "Luxury", "Local" + } + +[effect_shakespeares_theatre_1] +type = "Output_Add_Tile" +value = 5 +reqs = + { "type", "name", "range" + "Building", "Shakespeare's Theatre", "City" + "CityTile", "Center", "Tile" + "OutputType", "Luxury", "Local" + } + +;2 + 1 = 3 +[effect_shakespeares_theatre_2] +type = "Specialist_Output" +value = 1 +reqs = + { "type", "name", "range", "survives" + "Building", "Shakespeare's Theatre", "World", TRUE + "Specialist", "Elvis", "Local" + "OutputType", "Luxury", "Local" + } + +[effect_shakespeares_theatre_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Shakespeare's Theatre", "City" + } + +; No_Anarchy includes no_senate effect +[effect_statue_of_liberty] +type = "No_Anarchy" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Statue of Liberty", "Player" + } + +[effect_statue_of_liberty_1] +type = "Any_Government" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Statue of Liberty", "Player" + } + +[effect_statue_of_liberty_culture] +type = "History" +value = 4 +reqs = + { "type", "name", "range" + "Building", "Statue of Liberty", "City" + } + +[effect_sun_tzus_war_academy] +type = "Veteran_Build" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Sun Tzu's War Academy", "Player", TRUE + "UnitClassFlag", "Barracks", "Local", TRUE + "UnitFlag", "NonMil", "Local", FALSE + "UnitFlag", "NoVeteran", "Local", FALSE + } + +[effect_sun_tzus_war_academy_culture] +type = "History" +value = 3 +reqs = + { "type", "name", "range" + "Building", "Sun Tzu's War Academy", "City" + } + +[effect_united_nations] +type = "Has_Senate" +value = 1 +reqs = + { "type", "name", "range", "present", "survives" + "Building", "United Nations", "World", TRUE, FALSE + "Building", "Manhattan Project", "World", TRUE, TRUE + "Tech", "Nuclear Fission", "Player", TRUE, FALSE + "Building", "Apollo Program", "World", FALSE, TRUE + } + +[effect_united_nations_1] +type = "Revolution_Unhappiness" +value = 2 +reqs = + { "type", "name", "range", "present" + "Building", "United Nations", "World", TRUE +; Without negated req UN would make revolution less likely instead +; of enabling it with Democracy or Republic (value 2 -> 4 instead of 0 -> 2) + "Gov", "Democracy", "Player", FALSE + "Gov", "Republic", "Player", FALSE + } + +[effect_united_nations_2] +type = "Gain_AI_Love" +value = 10 +reqs = + { "type", "name", "range", "present", "survives" + "Building", "United Nations", "Player", TRUE, FALSE + "Building", "Apollo Program", "World", FALSE, TRUE + } + +[effect_united_nations_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "United Nations", "City" + } + +[effect_womens_suffrage] +type = "Make_Content_Mil" +value = 1 +reqs = + { "type", "name", "range" + "Building", "Women's Suffrage", "Player" + } + +[effect_womens_suffrage_culture] +type = "History" +value = 6 +reqs = + { "type", "name", "range" + "Building", "Women's Suffrage", "City" + } +;pow(2, value/1000) -> Base = 50% +[effect_base_trade_revenue_reduce] +type = "Trade_Revenue_Bonus" +value = -1000 + +;Total = 25% +[effect_railroad_trade_revenue_reduce] +type = "Trade_Revenue_Bonus" +value = -1000 +reqs = + { "type", "name", "range" + "Tech", "Railroad", "Player" + } + +; Fudge factor to more closely approximate Civ2 behavior. (Civ2 is +; really very different -- this just fakes it a little better) +[effect_bonus_fudge_factor] +type = "Trade_Revenue_Bonus" +value = 1585 + +[effect_calendar_base] +type = "Turn_Years" +value = 50 + +; 50 - 25 = 25 +[effect_calendar_1] +type = "Turn_Years" +value = -25 +reqs = + { "type", "name", "range" + "MinYear", "-1000", "World" + } + +; 25 - 5 = 20 +[effect_calendar_2] +type = "Turn_Years" +value = -5 +reqs = + { "type", "name", "range" + "MinYear", "0", "World" + } + +; 20 - 10 = 10 +[effect_calendar_3] +type = "Turn_Years" +value = -10 +reqs = + { "type", "name", "range" + "MinYear", "1000", "World" + } + +; 10 - 5 = 5 +[effect_calendar_4] +type = "Turn_Years" +value = -5 +reqs = + { "type", "name", "range" + "MinYear", "1500", "World" + } + +; 5 - 3 = 2 +[effect_calendar_5] +type = "Turn_Years" +value = -3 +reqs = + { "type", "name", "range" + "MinYear", "1750", "World" + } + +; 2 - 1 = 1 +[effect_calendar_6] +type = "Turn_Years" +value = -1 +reqs = + { "type", "name", "range" + "MinYear", "1900", "World" + } + +; No base pop pollution; buildings will increase it +[effect_pollu_pop] +type = "Pollu_Pop_Pct" +value = -100 + +; tech_upkeep_divider = 6000, Max tech upkeep = 13 +[effect_upkeep_tech_base] +type = "Tech_Upkeep_Free" +value = 3 + +[effect_tech_cost_base] +type = "Tech_Cost_Factor" +value = 3 + +; Cities can always work tiles +[effect_tile_workable] +type = "Tile_Workable" +value = 1 +reqs = + { "type", "name", "range", "present" + "Terrain", "Inaccessible", "Tile", FALSE + } + +; each city has at least one slot to build units +[effect_city_build_slots_basic] +type = "City_Build_Slots" +value = 1 +reqs = + { "type", "name", "range", "present" + "Building", "Mfg. Plant", "City", FALSE + } + +; Mfg. Plant => 2 slots total +[effect_city_build_slots_mfg_plant] +type = "City_Build_Slots" +value = 2 +reqs = + { "type", "name", "range" + "Building", "Mfg. Plant", "City" + } + +; free granary, etc, runs out +[effect_city_image_1] +type = "City_Image" +value = 1 +reqs = + { "type", "name", "range" + "MinSize", "5", "City" + } + +; needs Aqueduct +[effect_city_image_2] +type = "City_Image" +value = 1 +reqs = + { "type", "name", "range" + "MinSize", "9", "City" + } + +[effect_city_image_3] +type = "City_Image" +value = 1 +reqs = + { "type", "name", "range" + "MinSize", "13", "City" + } + +; needs Sewer System +[effect_city_image_4] +type = "City_Image" +value = 1 +reqs = + { "type", "name", "range" + "MinSize", "17", "City" + } + +[effect_city_shield] +type = "Output_Add_Tile" +value = 1 +reqs = + { "type", "name", "range" + "CityTile", "Center", "Tile" + "OutputType", "Shield", "Local" + } + +; Make Mine extra do something +[effect_mine] +type = "Mining_Pct" +value = 100 +reqs = + { "type", "name", "range" + "Extra", "Mine", "Tile" + } + +[effect_oil_well] +type = "Mining_Pct" +value = 100 +reqs = + { "type", "name", "range" + "Extra", "Oil Well", "Tile" + } + +; Make Irrigation extra do something +[effect_irrigation] +type = "Irrigation_Pct" +value = 100 +reqs = + { "type", "name", "range" + "Extra", "Irrigation", "Tile" + } + +; Simulate presence of irrigation extra in unirrigated city centers +[effect_irrigation_center] +type = "Irrigation_Pct" +value = 100 +reqs = + { "type", "name", "range", "present" + "CityTile", "Center", "Tile", TRUE + "Extra", "Irrigation", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + "Extra", "Mine", "Tile", FALSE + ; Oil Well also prevents irrigation, but requires Mine so not needed here + } + +; Desert with river (and no Oasis) gets 1 extra food from irrigation (total 2) +; ("Nile floods" effect) +[effect_irrigation_2] +type = "Irrigation_Pct" +value = 100 +reqs = + { "type", "name", "range", "present" + "Terrain", "Desert", "Tile", TRUE + "Extra", "River", "Tile", TRUE + "Extra", "Oasis", "Tile", FALSE + "Extra", "Irrigation", "Tile", TRUE + } + +; ...same for city centers +[effect_irrigation_3] +type = "Irrigation_Pct" +value = 100 +reqs = + { "type", "name", "range", "present" + "Terrain", "Desert", "Tile", TRUE + "Extra", "River", "Tile", TRUE + "Extra", "Oasis", "Tile", FALSE + "CityTile", "Center", "Tile", TRUE + "Extra", "Irrigation", "Tile", FALSE + "TerrainAlter", "CanIrrigate", "Tile", TRUE + "Extra", "Mine", "Tile", FALSE + ; Oil Well also prevents irrigation, but requires Mine so not needed here + } + +[effect_pollution] +type = "Output_Tile_Punish_Pct" +value = 50 +reqs = + { "type", "name", "range", "present", "quiet" + "Extra", "Pollution", "Tile", TRUE, FALSE + "Extra", "Fallout", "Tile", FALSE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + } + +[effect_fallout] +type = "Output_Tile_Punish_Pct" +value = 50 +reqs = + { "type", "name", "range", "present", "quiet" + "Extra", "Fallout", "Tile", TRUE, FALSE + "Extra", "Pollution", "Tile", FALSE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + } + +[effect_pollution_fallout] +type = "Output_Tile_Punish_Pct" +value = 75 +reqs = + { "type", "name", "range", "present", "quiet" + "Extra", "Fallout", "Tile", TRUE, FALSE + "Extra", "Pollution", "Tile", TRUE, FALSE + "OutputType", "Gold", "Local", FALSE, TRUE + "OutputType", "Luxury", "Local", FALSE, TRUE + "OutputType", "Science", "Local", FALSE, TRUE + } + +[effect_attack_bombard_no_city_destruction] +type = "Unit_No_Lose_Pop" +value = 1 +reqs = + { "type", "name", "range", "present" + "MinSize", "2", "City", FALSE + } + +[effect_incident_caught_steal_tech] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Steal Tech", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_steal_tech] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Steal Tech", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_steal_tech_esc] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Steal Tech Escape Expected", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_steal_tech_esc] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Steal Tech Escape Expected", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_tgt_steal_tech] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Targeted Steal Tech Escape Expected", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_tgt_steal_tech] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Targeted Steal Tech Escape Expected", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_bribe_unit] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Bribe Unit", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_bribe_unit] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Bribe Unit", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_spy_attack] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Spy Attack", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_spy_attack] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Spy Attack", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_incite] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Incite City", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_incite] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Incite City", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_caught_incite_esc] +type = "Casus_Belli_Caught" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Incite City Escape", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_incident_success_incite_esc] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Incite City Escape", "Local", TRUE + "DiplRel", "War", "Local", FALSE + } + +[effect_tgt_sabotage_city_half_chance] +type = "Action_Odds_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Action", "Targeted Sabotage City Escape", "Local", TRUE + } + +[effect_sabotage_city_production_city_half_chance] +type = "Action_Odds_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Action", "Sabotage City Production Escape", "Local", TRUE + } + +[effect_incident_success_explode_nuke] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Explode Nuclear", "Local", TRUE + } + +[effect_explode_nuke_blast_radius] +type = "Nuke_Blast_Radius_1_Sq" +value = 2 +reqs = + { "type", "name", "range", "present" + "Action", "Explode Nuclear", "Local", TRUE + } + +[effect_incident_success_explode_nuke_city] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Nuke City", "Local", TRUE + } + +[effect_nuke_city_blast_radius] +type = "Nuke_Blast_Radius_1_Sq" +value = 2 +reqs = + { "type", "name", "range", "present" + "Action", "Nuke City", "Local", TRUE + } + +[effect_incident_success_explode_nuke_units] +type = "Casus_Belli_Success" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Nuke Units", "Local", TRUE + } + +[effect_nuke_units_blast_radius] +type = "Nuke_Blast_Radius_1_Sq" +value = 2 +reqs = + { "type", "name", "range", "present" + "Action", "Nuke Units", "Local", TRUE + } + +[effect_diplomat_defense_extra] +type = "Spy_Resistant" +value = 25 +reqs = + { "type", "name", "range" + "ExtraFlag", "DiplomatDefense", "Tile" + } + +; Spy resistant: +5% for each 100 culture points of the city +[effect_culture_spy_resistant_1] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "100", "City" + } + +[effect_culture_spy_resistant_2] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "200", "City" + } + +[effect_culture_spy_resistant_3] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "300", "City" + } + +[effect_culture_spy_resistant_4] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "400", "City" + } + +[effect_culture_spy_resistant_5] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "500", "City" + } + +[effect_culture_spy_resistant_6] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "600", "City" + } + +[effect_culture_spy_resistant_7] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "700", "City" + } + +[effect_culture_spy_resistant_8] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "800", "City" + } + +[effect_culture_spy_resistant_9] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "900", "City" + } + +; 5 * 10 = +50% +[effect_culture_spy_resistant_10] +type = "Spy_Resistant" +value = 5 +reqs = + { "type", "name", "range" + "MinCulture", "1000", "City" + } + +; Cost to bribe: +50% for each 1000 culture points of the player +[effect_culture_bribe_1] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "1000", "Player" + } + +[effect_culture_bribe_2] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "2000", "Player" + } + +[effect_culture_bribe_3] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "3000", "Player" + } + +[effect_culture_bribe_4] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "4000", "Player" + } + +[effect_culture_bribe_5] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "5000", "Player" + } + +[effect_culture_bribe_6] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "6000", "Player" + } + +[effect_culture_bribe_7] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "7000", "Player" + } + +[effect_culture_bribe_8] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "8000", "Player" + } + +[effect_culture_bribe_9] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "9000", "Player" + } + +; 50 * 10 = +500% +[effect_culture_bribe_10] +type = "Unit_Bribe_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "10000", "Player" + } + +; Cost to incite: +50% for each 1000 culture points of the player +[effect_culture_incite_1] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "1000", "Player" + } + +[effect_culture_incite_2] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "2000", "Player" + } + +[effect_culture_incite_3] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "3000", "Player" + } + +[effect_culture_incite_4] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "4000", "Player" + } + +[effect_culture_incite_5] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "5000", "Player" + } + +[effect_culture_incite_6] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "6000", "Player" + } + +[effect_culture_incite_7] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "7000", "Player" + } + +[effect_culture_incite_8] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "8000", "Player" + } + +[effect_culture_incite_9] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "9000", "Player" + } + +; 50 * 10 = +500% +[effect_culture_incite_10] +type = "Incite_Cost_Pct" +value = 50 +reqs = + { "type", "name", "range" + "MinCulture", "10000", "Player" + } + +; Double (+100%) buy cost for Great Wonders +[effect_great_wonder_buy_cost] +type = "Building_Buy_Cost_Pct" +value = 100 +reqs = + { "type", "name", "range" + "BuildingGenus", "GreatWonder", "Local" + } + +[effect_action_establish_embassy_success_move_cost] +type = "Action_Success_Actor_Move_Cost" +value = 1 +reqs = + { "type", "name", "range", "quiet" + "Action", "Establish Embassy", "Local", TRUE + } + +[effect_action_success_poison_city_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Poison City Escape", "Local", TRUE + } + +[effect_action_success_sabotage_city_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Sabotage City Escape", "Local", TRUE + } + +[effect_action_success_targeted_sabotage_city_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Targeted Sabotage City Escape", "Local", TRUE + } + +[effect_action_success_sabotage_city_production_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Sabotage City Production Escape", "Local", TRUE + } + +[effect_action_success_steal_tech_escape_expected] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Steal Tech Escape Expected", "Local", TRUE + } + +[effect_action_success_targeted_steal_tech_escape_expected] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Targeted Steal Tech Escape Expected", "Local", TRUE + } + +[effect_action_success_incite_city_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Incite City Escape", "Local", TRUE + } + +[effect_action_success_sabotage_unit_escape] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Sabotage Unit Escape", "Local", TRUE + } + +[effect_action_success_move_cost_investigate] +type = "Action_Success_Actor_Move_Cost" +value = 1 +reqs = + { "type", "name", "range", "present" + "Action", "Investigate City", "Local", TRUE + } + +[effect_action_success_move_cost_capture] +type = "Action_Success_Actor_Move_Cost" +value = 6 +reqs = + { "type", "name", "range", "present" + "Action", "Capture Units", "Local", TRUE + } + +[effect_action_success_move_cost_bombard] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "present" + "Action", "Bombard", "Local", TRUE + } + +[effect_action_success_move_cost_from_non_native] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "present" + "Action", "Transport Disembark 2", "Local", TRUE + "UnitState", "OnNativeTile", "Local", TRUE + "UnitClassFlag", "TerrainSpeed", "Local", TRUE + } + +[effect_action_success_conquer_cost_from_non_native] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "present" + "Action", "Conquer City 2", "Local", TRUE + "UnitState", "OnNativeTile", "Local", TRUE + "UnitClassFlag", "TerrainSpeed", "Local", TRUE + } + +[effect_action_success_move_cost_hut_entry_from_non_native] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "present" + "Action", "Enter Hut 2", "Local", TRUE + "UnitState", "OnNativeTile", "Local", TRUE + "UnitClassFlag", "TerrainSpeed", "Local", TRUE + } + +[effect_action_success_move_cost_hut_frighten_from_non_native] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "present" + "Action", "Frighten Hut 2", "Local", TRUE + "UnitState", "OnNativeTile", "Local", TRUE + "UnitClassFlag", "TerrainSpeed", "Local", TRUE + } + +[effect_action_success_attack_one_attack] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Attack", "Local", TRUE + "UnitFlag", "OneAttack", "Local", TRUE + } + +[effect_action_success_attack_normal] +type = "Action_Success_Actor_Move_Cost" +value = 6 +reqs = + { "type", "name", "range", "present" + "Action", "Attack", "Local", TRUE + "UnitFlag", "OneAttack", "Local", FALSE + } + +[effect_action_success_ransom_one_attack] +type = "Action_Success_Actor_Move_Cost" +value = 65535 +reqs = + { "type", "name", "range", "quiet" + "Action", "Collect Ransom", "Local", TRUE + "UnitFlag", "OneAttack", "Local", TRUE + } + +[effect_action_success_ransom] +type = "Action_Success_Actor_Move_Cost" +value = 6 +reqs = + { "type", "name", "range", "present" + "Action", "Collect Ransom", "Local", TRUE + "UnitFlag", "OneAttack", "Local", FALSE + } + +[effect_unit_shield_value_recycle] +type = "Unit_Shield_Value_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Action", "Disband Unit Recover", "Local", TRUE + } + +[effect_unit_shield_value_in_upgrade_price_calc] +type = "Unit_Shield_Value_Pct" +value = -50 +reqs = + { "type", "name", "range", "present" + "Action", "Upgrade Unit", "Local", TRUE + } diff --git a/game.ruleset b/game.ruleset new file mode 100644 index 0000000..0bdcf4d --- /dev/null +++ b/game.ruleset @@ -0,0 +1,822 @@ +; 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 = "Civ2Civ3 game rules for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +; 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 = "civ2civ3/README.civ2civ3" + +[about] +; Ruleset name +name = _("Civ2Civ3 ruleset") + +; There`s no separate versioning in rulesets part of main freeciv distribution +;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 +; /* TRANS: In the client, this is displayed alongside the contents of +; README.civ2civ3, which are not localized. */ +summary = _("\ +You are playing Freeciv with civ2civ3 rules:\ +\n\n\ +Gameplay more similar to civ3, keeping the combat system from civ2.\ +\n\n\ +Adapted for single player, with AI less aggressive at start,\ + but more challenging at the end.\ +\n\n\ +The differences from the former default ruleset, 'classic', are listed in\ + full in README.civ2civ3.\ +") + +; Detailed description +; When updating this, update also description_file in [ruledit] section to match +description = *civ2civ3/README.civ2civ3* + +; What capabilities ruleset provides for the scenarios. +; See doc/README.rulesets for definitions of official capabilities +; std-terrains - At least standard set of terrains +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 = 20, 20, 20, 20, 20, 30, 30, 40 +granary_food_inc = 0 + +; City center minimum outputs +min_city_center_food = 0 +min_city_center_shield = 0 +min_city_center_trade = 0 + +; Square of initial city radius +init_city_radius_sq = 5 + +; Square of initially visible radius (true distance). +init_vis_radius_sq = 5 + +; A base bribe cost, modified heavily by other factors +base_bribe_cost = 750 + +; 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 = 100 + +; Number of veteran levels lost when upgrading a unit +upgrade_veteran_loss = 1 + +; Number of veteran levels lost when auto-upgrading a unit +autoupgrade_veteran_loss = 1 + +; 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 = FALSE +; ...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 = FALSE +; 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 = FALSE + +; 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 = "Mixed" + +; Whether also homeless units pay gold upkeep. Enabling requires that +; gold_upkeep_style is not "City" +homeless_gold_upkeep = FALSE + +; 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 +; "Embassy" - Information is sent when team has an embassy with Wonder owner +small_wonders = "Always" + +[illness] +; Whether plagues (illness) are possible +illness_on = TRUE + +; the base factor for illness (of percent) +illness_base_factor = 10 + +; minimum city size for illness +illness_min_size = 5 + +; 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 = 1 +unit_factor = 2 +total_factor = 100 + +[combat_rules] +; If tired_attack is set to TRUE, units that attack with less than a single +; move point (per move_fragments in terrain.ruleset) will have their attack +; power reduced accordingly. For instance, if move_fragments = 3, a unit with +; 2/3 move points will have attack power 2/3 of normal. +; If this is set to FALSE units will attack with full strength even if they +; have only fractional moves left. +tired_attack = TRUE + +; 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 = TRUE + +; 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 +; lose 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 + +[borders] +; Base border radius from city. +radius_sq_city = 5 + +; 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 = -3 + +[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 = "Linear" + +; 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 = 10 + +; Minimum research cost. This is applied for techs that have their cost +; calculated by a formula. This is not applied for techs that have their +; cost explicitly stated in the tech.ruleset. +min_tech_cost = 10 + +; 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 = "Embassies" + +; Method of paying tech upkeep +; "None" - no upkeep +; "Basic" - upkeep is calculated as: +; / tech_upkeep_divider - +; "Cities" - upkeep is calculated like "Basic", but multiplied by number of cities +tech_upkeep_style = "Cities" + +; upkeep cost is divided by this value +tech_upkeep_divider = 6000 + +; 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 = "Cheapest" + +[culture] +; Minimum culture points for cultural domination victory +victory_min_points = 20000 + +; How big lead relative to second best player is needed for victory +victory_lead_pct = 100 + +; 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 = 50 + +[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 = _("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. +; Final probability for each city each turn is - +; (this frequency) * (game settings option disasters +; frequency) / 1000000. +; If omitted, default is 0 and this disaster will not 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 + +[disaster_earthquake] +name = _("Earthquake") +reqs = + { "type", "name", "range" + "Terrain", "Hills", "Tile" + } +frequency = 10 +effects = "EmptyProdStock" + +[disaster_flood] +name = _("Flood") +reqs = + { "type", "name", "range" + "Extra", "River", "Adjacent" + } +frequency = 10 +effects = "EmptyFoodStock" + +[disaster_fire] +name = _("Fire") +reqs = + { "type", "name", "range" + "MinSize", "9", "City" + } +frequency = 10 +effects = "DestroyBuilding" + +[disaster_industrial_accident] +name = _("Industrial Accident") +reqs = + { "type", "name", "range" + "Building", "Mfg. Plant", "City" + } +frequency = 10 +effects = "ReducePopulation", "Pollution" + +[disaster_nuclear_accident] +name = _("Nuclear Accident") +reqs = + { "type", "name", "range" + "Building", "Nuclear Plant", "City" + } +frequency = 10 +effects = "ReducePopulation", "Fallout" + +; /* <-- 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_spaceship] +name = _("Spaceship Launch") +type = "Spaceship" +unique = FALSE +culture = 5000 +first_msg = _("You're the first one to launch a spaceship towards Alpha Centauri!") +cons_msg = _("You have launched a spaceship towards Alpha Centauri!") + +[achievement_map_known] +name = _("Entire Map Known") +type = "Map_Known" +unique = FALSE +value = 100 +culture = 1000 +first_msg = _("You're the first one to have mapped the entire world!") +cons_msg = _("You have mapped the entire world!") + +[achievement_another_island] +name = _("Land Ahoy") +type = "Land_Ahoy" +unique = FALSE +value = 2 +culture = 100 +first_msg = _("Your people were the first in history to sight a foreign shore!") +cons_msg = _("You sighted your first foreign shore!") + +[achievement_literate] +name = _("Literate") +type = "Literate" +unique = FALSE +value = 100 +culture = 1000 +; /* xgettext:no-c-format */ +first_msg = _("Your nation is the first to reach 100% literacy!") +; /* xgettext:no-c-format */ +cons_msg = _("Your nation has reached 100% literacy!") + +[achievement_multicultural] +name = _("Multicultural") +type = "Multicultural" +unique = FALSE +value = 2 +culture = 1000 +first_msg = _("You're the first nation to have citizens of multiple nationalities!") +cons_msg = _("Your nation now has citizens of multiple nationalities!") + +[achievement_metropolis] +name = _("Metropolis") +type = "Metropolis" +unique = FALSE +value = 20 +culture = 1000 +first_msg = _("Your nation is the first with a city of population 20!") +cons_msg = _("One of your cities has reached population 20!") + +[achievement_cultured_city] +name = _("Cultured City") +type = "Cultured_City" +unique = FALSE +value = 1000 +culture = 1000 +first_msg = _("Your nation is the first with a city of 1000 culture points!") +cons_msg = _("One of your cities has 1000 culture points!") + +[achievement_cultured_nation] +name = _("Cultured Nation") +type = "Cultured_Nation" +unique = FALSE +value = 10000 +first_msg = _("Your nation is the first one to achieve 10000 culture points!") +cons_msg = _("Your nation has achieved 10000 culture points!") + +; +; 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 trade routes 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 trade route 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", 100, "Cancel", "Gold" + "INIC", 200, "Cancel", "Gold" + "Ally", 100, "Cancel", "Gold" + "AllyIC", 200, "Cancel", "Gold" + "Enemy", 0, "Cancel", "Gold" + "EnemyIC", 0, "Cancel", "Gold" + "Team", 100, "Cancel", "Gold" + "TeamIC", 200, "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 + +; Reveal the trade partner city on map. +reveal_trade_partner = FALSE + +; 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 trade route gets 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. +; - "Self-Provided" = Good requirement (in requirement lists of other rules) +; is fulfilled also for the city exporting, or capable of exporting, +; the good. Otherwise it would be true only for cities importing the +; good from elsewhere. +; 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", +; "SharedTiles" +; 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" + +; /* <-- avoid gettext warnings +;Counter 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". +;checkpoint = Trigger value of the counter. When counter`s +; value is at least this much, the "Counter" requirement +; is fulfilled. +;def = Initial value of the counter. +;type = Behavior of the counter: +; "Owned" - Increased each turn, zeroed when city changes owner +; "Celebraring" - Increased each celebrates turn. In case city +; does not celebrates, counter is zeroed +; "Disorder" - Increased each turn city is in disorder state. In +; case riots are eliminated, value is zeroed. +;helptext = Description about relation with requirement +; vectors (effects, building, units, etc.) +; and when counter req of this counter +; will be fulfilled. +; */ <-- avoid gettext warnings + +[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 civ2civ3 ruleset +; +set = + { "name", "value" + "aifill", 6 + "generator", "FRACTAL" + "topology", "ISO|HEX" + "wrap", "WRAPX|WRAPY" + "mapsize", "PLAYER" + "tilesperplayer", 100 + "tinyisles", "ENABLED" + "temperature", 60 + "flatpoles", 0 + "startunits", "cwsx" + "citymindist", 3 + "techlevel", 1 + "borders", "ENABLED" + "foggedborders", "ENABLED" + "restrictinfra", "ENABLED" + "unreachableprotects", "DISABLED" + "onsetbarbs", 120 + "occupychance", 100 + "razechance", 10 + "techlossforgiveness", 0 + "techlossrestore", 50 + "revolentype", "RANDQUICK" + "tradeworldrelpct", 100 + "disasters", 100 + "animals", 14 + } diff --git a/governments.ruleset b/governments.ruleset new file mode 100644 index 0000000..8b4770f --- /dev/null +++ b/governments.ruleset @@ -0,0 +1,465 @@ + +; 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 = "Civ2Civ3 governments data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[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 compatibility 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 specifying preferred graphic +; graphic_alt = alternate graphics tag if preferred is not found; +; should be a standard tag if preferred is not; +; otherwise may be "-" +; sound = Sound tag for the audio to play when player switch +; to government. +; sound_alt = Alternative sound tag, in case primary one is not found. +; sound_alt2 = Second alternative sound tag, in case neither primary tag +; nor the first alt tag is found. +; 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 = "-" +sound = "g_anarchy" +sound_alt = "-" +sound_alt2 = "-" + +ruler_male_title = _("Warlord %s") +ruler_female_title = _("Warlady %s") + +helptext = _("\ +Anarchy is simply the absence of any recognizable government.\ + Citizens are disorganized and unproductive, and will spend all\ + income as quickly as possible, rather than paying taxes or\ + conducting research.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Buildings and technologies do not require any upkeep.\n\ +* Each worked tile that gives more than 2 Food, Shield, or Trade will\ + suffer a -1 penalty, unless the city working it is celebrating.\ + (Cities below size 3 will not celebrate.)\n\ +* Each city can support up to 2 units for free; further units each cost\ + 1 shield per turn.\n\ +* Military units do not cause unhappiness even when deployed aggressively.\n\ +* Military units impose martial law. Up to 3 military units inside a city\ + will each force 1 unhappy citizen to become content.\n\ +* You have no control over tax rates. All trade income is\ + converted to luxuries.\n\ +* Half of the luxuries, including those converted from other\ + trade income, are wasted.\n\ +* Conventional corruption increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 30%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_tribal] + +name = _("Tribal") +; No reqs +graphic = "gov.tribal" +graphic_alt = "s.tax_luxury" +sound = "g_tribal" +sound_alt = "g_generic" +sound_alt2 = "-" +ai_better = "Republic" + +ruler_male_title = _("Warlord %s") +ruler_female_title = _("Warlady %s") + +helptext = _("\ +Under a Tribal government, you are part ruler of your people. Your\ + control over your citizens is maintained largely by spiritual counsel.\ +"), _("\ +Compared to Despotism, a Tribal economy is more shield-oriented. Its\ + bonuses to veterancy can be an advantage in wartime, but it lacks the\ + martial law of other early governments.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Increases by half the chance of land units getting the next veteran level\ + after a battle.\n\ +* Each worked tile that gives more than 2 Food, Shield, or Trade will\ + suffer a -1 penalty, unless the city working it is celebrating.\ + (Cities below size 3 will not celebrate.)\n\ +* Each city gets 1 extra content citizen.\n\ +* Each city can support up to 2 units for free; further units each cost\ + 1 shield per turn.\n\ +* Unlike later governments, military units do not cause unhappiness even\ + when deployed aggressively.\n\ +* Base corruption is 30% (the highest under any government). This\ + increases with distance from the capital (half as fast with knowledge\ + of The Corporation).\n\ +* There is no base level of production waste, but an increasing amount\ + with distance from the capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_despotism] + +name = _("Despotism") +; No reqs +graphic = "gov.despotism" +graphic_alt = "-" +sound = "g_despotism" +sound_alt = "g_generic" +sound_alt2 = "-" +ai_better = "Monarchy" + +ruler_male_title = _("Chief %s") +ruler_female_title = _("?female:Chief %s") + +helptext = _("\ +Under Despotism, you are the absolute ruler of your people. Your\ + control over your citizens is maintained largely by martial law.\ +"), _("\ +Compared to Tribalism, a Despotic economy is more trade-oriented.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Your centers of government (cities with Palace and Ecclesiastical\ + Palace) get a +75% bonus to gold production.\n\ +* Each worked tile that gives more than 2 Food, Shield, or Trade will\ + suffer a -1 penalty, unless the city working it is celebrating.\ + (Cities below size 3 will not celebrate.)\n\ +* Each city can support up to 2 units for free; further units each cost\ + 1 gold per turn.\n\ +* Unlike later governments, military units do not cause unhappiness even\ + when deployed aggressively.\n\ +* Military units impose martial law. Up to 3 military units inside a city\ + will each force 1 unhappy citizen to become content.\n\ +* Base corruption is 20%. This increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 10%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_monarchy] + +name = _("Monarchy") +reqs = { "type", "name", "range" + "tech", "Monarchy", "Player" + } +graphic = "gov.monarchy" +graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("King %s") +ruler_female_title = _("Queen %s") + +helptext = _("\ +Under Monarchy, a king or queen serves as a hereditary figurehead\ + for your government.\ +"), _("\ +Monarchy gives low unit upkeep costs.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Your centers of government (cities with Palace and Ecclesiastical\ + Palace) get a +50% bonus to gold production.\n\ +* Celebrating cities produce one extra trade point for every tile which is\ + already producing trade. (Cities below size 3 will not celebrate.)\n\ +* Each city can support up to 3 units for free (the maximum possible);\ + further units each cost 1 gold per turn.\n\ +* Each city tolerates up to 3 aggressively deployed military units;\ + each further unit causes 1 unhappy citizen.\n\ +* Military units impose martial law. Up to 3 military units inside a city\ + will each force 1 unhappy citizen to become content.\n\ +* Base corruption is 10%. This increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 20%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_communism] + +name = _("Communism") +reqs = { "type", "name", "range" + "tech", "Communism", "Player" + } +graphic = "gov.communism" +graphic_alt = "-" +sound = "g_communism" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("Comrade %s") +ruler_female_title = _("?female:Comrade %s") + +helptext = _("\ +A Communist government is based on the ideal that all people are\ + equal. All goods are owned by the state, rather than by private\ + citizens. Communism gives a balance between military and commercial\ + styles of government.\ +"), _("\ +Communism is a good government for maximizing shield production, and\ + for large empires.\ +"), +; /* xgettext:no-c-format */ +_("\ +* City improvements which would normally have an upkeep of 1 gold are\ + free of upkeep.\n\ +* Cancels the bonus from Mysticism and Theology (to Temples and Cathedrals).\n\ +* Each city can support up to 3 units for free (the maximum possible);\ + further units each cost 1 shield per turn.\n\ +* Each city tolerates up to 3 aggressively deployed military units;\ + each further unit causes 1 unhappy citizen.\n\ +* Military units impose martial law. Up to 3 military units inside a city\ + will each force 2 unhappy citizens to become content (the maximum\ + possible).\n\ +* Base corruption is 30%, but is not affected by distance to the capital.\n\ +* There is no production waste.\ +") + +;------------------------------------------------------------------------ +[government_fundamentalism] + +name = _("Fundamentalism") +reqs = { "type", "name", "range" + "tech", "Theology", "Player" + } +graphic = "gov.fundamentalism" +graphic_alt = "-" +sound = "g_fundamentalism" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("High Priest %s") +ruler_female_title = _("High Priestess %s") + +helptext = _("\ +Fundamentalism is a form of government organized around a central\ + set of beliefs. The beliefs, usually religious in nature, form\ + a rigid guideline for actions and reactions of both the rulers\ + and the people.\ +"), _("\ +In a fundamentalist society, the people and the rulers are entirely\ + devoted to their beliefs, and are usually willing to die to\ + preserve them.\ +"), _("\ +Improvements that normally convert unhappy citizens to content\ + citizens, produce `tithes' (gold) equivalent to the number\ + of people they would convert, and require no maintenance.\ +"), _("\ +Fundamentalism is a good government for maximizing gold, and its Fanatics\ + are useful in wartime, but it has a heavy penalty to technological\ + progress.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Base science production is half that of other governments. (A\ + Fundamentalist city with a Library produces as much science as a\ + city under another government does alone.)\n\ +* Each city can support up to 2 units for free; further units each cost\ + 2 gold per turn (except for Fanatics).\n\ +* Each city tolerates up to 2 aggressively deployed military units;\ + each further unit causes 1 unhappy citizen.\n\ +* Base corruption is 15%. This increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 15%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_federation] + +name = _("Federation") +reqs = { "type", "name", "range" + "tech", "Economics", "Player" + } +graphic = "gov.federation" +graphic_alt = "s.tax_gold" +sound = "g_federation" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("Consul %s") +ruler_female_title = _("?female:Consul %s") + +helptext = _("\ +Federalism is a system in which the power to govern is shared between\ + national and provincial governments. \ + This decentralization minimizes the corruption and waste caused by distance\ + to capital, and avoids separatist movements.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Each city gets 2 extra luxury points.\n\ +* Celebrating cities produce one extra trade point for every tile which is\ + already producing trade. (Cities below size 3 will not celebrate.)\n\ +* Each city can support up to 2 units for free; further units each cost\ + 2 gold per turn.\n\ +* Each city tolerates up to 2 aggressively deployed military units;\ + each further unit causes 1 unhappy citizen.\n\ +* There is no base level of corruption, but an increasing amount\ + with distance from the capital (half as much as with most other\ + governments). Knowledge of The Corporation eliminates this corruption.\n\ +* Base production waste is 30%, but is not affected by distance to the\ + capital.\n\ +* Has a senate that may prevent declaration of war.\ +") + +;------------------------------------------------------------------------ +[government_republic] + +name = _("Republic") +reqs = { "type", "name", "range" + "tech", "The Republic", "Player" + } +graphic = "gov.republic" +graphic_alt = "-" +sound = "g_republic" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("President %s") +ruler_female_title = _("?female:President %s") + +helptext = _("\ +Under a Republican government, citizens hold an election to select a\ + representative who will govern them; since elected leaders must\ + remain popular to remain in control, citizens are given a greater\ + degree of freedom. Citizens under the Republic become unhappy\ + easily, but the self-sufficiency of your citizens allows high levels\ + of trade.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Cities produce an extra trade point for every worked land tile that is\ + already producing trade.\n\ +* Celebrating cities produce a further trade point for every worked tile\ + (land or water) which is already producing trade. (Cities below size 3\ + will not celebrate.)\n\ +* Each city can support one unit for free; further units each cost\ + 1 shield per turn.\n\ +* Each city tolerates a single aggressively deployed military unit;\ + each further unit causes 1 unhappy citizen.\n\ +* Base corruption is 25%. This increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 5%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\ +") + +;------------------------------------------------------------------------ +[government_democracy] + +name = _("Democracy") +reqs = { "type", "name", "range" + "tech", "Democracy", "Player" + } +graphic = "gov.democracy" +graphic_alt = "-" +sound = "g_democracy" +sound_alt = "g_generic" +sound_alt2 = "-" + +ruler_male_title = _("Prime Minister %s") +ruler_female_title = _("?female:Prime Minister %s") + +helptext = _("\ +Under Democracy, citizens govern directly by voting on issues.\ + Democracy offers the highest possible level of trade, but also\ + offers the most potential for unhappiness; citizens become very\ + upset during wars.\ +"), +; /* xgettext:no-c-format */ +_("\ +* Cities produce an extra trade point for every worked land tile that is\ + already producing trade.\n\ +* Celebrating cities produce a further trade point for every worked tile\ + (land or water) which is already producing trade. (Cities below size 3\ + will not celebrate.)\n\ +* Each city can support one unit for free; further units each cost\ + 2 gold per turn.\n\ +* Each city tolerates a single aggressively deployed military unit;\ + each further unit causes 2 unhappy citizens.\n\ +* Base corruption is 5%. This increases with distance from the capital\ + (half as fast with knowledge of The Corporation).\n\ +* Base production waste is 25%. This increases with distance from the\ + capital (half as fast with knowledge of Trade).\n\ +* Has a senate that may prevent declaration of war.\ +") + +; /* <-- 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. +; minimum_turns = how often multiplier can be changed, or: how long one is stuck +; with the given value after changing to it +; 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 diff --git a/nations.ruleset b/nations.ruleset new file mode 100644 index 0000000..1e3e21d --- /dev/null +++ b/nations.ruleset @@ -0,0 +1,69 @@ + +; 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. + +[datafile] +description = "Default nations data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +; This section contains meta information for freeciv-ruledit and freeciv-ruleup +; 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 = "default/nationlist.ruleset" + +; List of nations to embed to main nations.ruleset despite separate nationlist +; being used for other nations. +embedded_nations = "Barbarian", "Pirate", "Animal Kingdom" + +[compatibility] +; Initial government for all the nations that do not +; have it explicitly defined +default_government = "Despotism" + +[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. +; _min and _max give the range from which the trait value +; is randomly chosen for a given AI player unless 'traitdistribution' +; server setting is 'FIXED' +; _default is the exaxt trait value used when 'traitdistribution' +; is 'FIXED'. If _default has not been given, it's set to the +; midpoint between _min and _max. + +; Value of trait "expansionist" defines how much AI wants to settle new territory. +expansionist_min = 30 +expansionist_max = 90 +expansionist_default = 50 + +; Value of trait "trader" defines how much AI wants to establish trade routes. +trader_min = 30 +trader_max = 90 +trader_default = 50 + +; Value of trait "aggressive" defines how easily AI declares war. +aggressive_min = 30 +aggressive_max = 90 +aggressive_default = 50 + +; Value of trait "builder" defines how much AI wants to build buildings +builder_min = 30 +builder_max = 90 +builder_default = 50 + +; Please keep [ruledit] section in sync with these includes +*include "default/nationlist.ruleset" +; This ruleset uses model of two separate barbarian nations +*include "nation/barbarian.ruleset" +*include "nation/pirate.ruleset" +*include "nation/animals.ruleset" diff --git a/parser.lua b/parser.lua new file mode 100644 index 0000000..ea4bf8c --- /dev/null +++ b/parser.lua @@ -0,0 +1,13 @@ +-- 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. diff --git a/script.lua b/script.lua new file mode 100644 index 0000000..b930021 --- /dev/null +++ b/script.lua @@ -0,0 +1,363 @@ +-- 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. + + +-- Place Ruins at the location of the destroyed city. +function city_destroyed_callback(city, loser, destroyer) + city.tile:create_extra("Ruins", NIL) + -- continue processing + return false +end + +signal.connect("city_destroyed", "city_destroyed_callback") + +-- Check if there is certain terrain in ANY CAdjacent tile. +function adjacent_to(tile, terrain_name) + for adj_tile in tile:circle_iterate(1) do + if adj_tile.id ~= tile.id then + local adj_terr = adj_tile.terrain + local adj_name = adj_terr:rule_name() + if adj_name == terrain_name then + return true + end + end + end + return false +end + +-- Check if there is certain terrain in ALL CAdjacent tiles. +function surrounded_by(tile, terrain_name) + for adj_tile in tile:circle_iterate(1) do + if adj_tile.id ~= tile.id then + local adj_terr = adj_tile.terrain + local adj_name = adj_terr:rule_name() + if adj_name ~= terrain_name then + return false + end + end + end + return true +end + +-- Add random labels to the map. +function place_map_labels() + local rivers = 0 + local deeps = 0 + local oceans = 0 + local lakes = 0 + local swamps = 0 + local glaciers = 0 + local tundras = 0 + local deserts = 0 + local plains = 0 + local grasslands = 0 + local jungles = 0 + local forests = 0 + local hills = 0 + local mountains = 0 + + local selected_river = 0 + local selected_deep = 0 + local selected_ocean = 0 + local selected_lake = 0 + local selected_swamp = 0 + local selected_glacier = 0 + local selected_tundra = 0 + local selected_desert = 0 + local selected_plain = 0 + local selected_grassland = 0 + local selected_jungle = 0 + local selected_forest = 0 + local selected_hill = 0 + local selected_mountain = 0 + + -- Count the tiles that has a terrain type that may get a label. + for place in whole_map_iterate() do + local terr = place.terrain + local tname = terr:rule_name() + + if place:has_extra("River") then + rivers = rivers + 1 + elseif tname == "Deep Ocean" then + deeps = deeps + 1 + elseif tname == "Ocean" then + oceans = oceans + 1 + elseif tname == "Lake" then + lakes = lakes + 1 + elseif tname == "Swamp" then + swamps = swamps + 1 + elseif tname == "Glacier" then + glaciers = glaciers + 1 + elseif tname == "Tundra" then + tundras = tundras + 1 + elseif tname == "Desert" then + deserts = deserts + 1 + elseif tname == "Plains" then + plains = plains + 1 + elseif tname == "Grassland" then + grasslands = grasslands + 1 + elseif tname == "Jungle" then + jungles = jungles + 1 + elseif tname == "Forest" then + forests = forests + 1 + elseif tname == "Hills" then + hills = hills + 1 + elseif tname == "Mountains" then + mountains = mountains + 1 + end + end + + -- Decide if a label should be included and, in case it should, where. + if random(1, 100) <= rivers then + selected_river = random(1, rivers) + end + if random(1, 100) <= deeps then + selected_deep = random(1, deeps) + end + if random(1, 100) <= oceans then + selected_ocean = random(1, oceans) + end + if random(1, 100) <= lakes then + selected_lake = random(1, lakes) + end + if random(1, 100) <= swamps then + selected_swamp = random(1, swamps) + end + if random(1, 100) <= glaciers then + selected_glacier = random(1, glaciers) + end + if random(1, 100) <= tundras then + selected_tundra = random(1, tundras) + end + if random(1, 100) <= deserts then + selected_desert = random(1, deserts) + end + if random(1, 100) <= plains then + selected_plain = random(1, plains) + end + if random(1, 100) <= grasslands then + selected_grassland = random(1, grasslands) + end + if random(1, 100) <= jungles then + selected_jungle = random(1, jungles) + end + if random(1, 100) <= forests then + selected_forest = random(1, forests) + end + if random(1, 100) <= hills then + selected_hill = random(1, hills) + end + if random(1, 100) <= mountains then + selected_mountain = random(1, mountains) + end + + -- Place the included labels at the location determined above. + for place in whole_map_iterate() do + local terr = place.terrain + local tname = terr:rule_name() + + if place:has_extra("River") then + selected_river = selected_river - 1 + if selected_river == 0 then + if tname == "Hills" then + place:set_label(_("Grand Canyon")) + elseif tname == "Mountains" then + place:set_label(_("Deep Gorge")) + elseif tname == "Tundra" then + place:set_label(_("Fjords")) + elseif random(1, 100) <= 50 then + place:set_label(_("Waterfalls")) + else + place:set_label(_("Travertine Terraces")) + end + end + elseif tname == "Deep Ocean" then + selected_deep = selected_deep - 1 + if selected_deep == 0 then + if surrounded_by(place, "Deep Ocean") then + -- Fully surrounded + place:set_label(_("Deep Trench")) + else + place:set_label(_("Thermal Vent")) + end + end + elseif tname == "Ocean" then + selected_ocean = selected_ocean - 1 + if selected_ocean == 0 then + if surrounded_by(place, "Ocean") then + -- Fully surrounded + place:set_label(_("Atoll Chain")) + elseif adjacent_to(place, "Glacier") then + place:set_label(_("Glacier Bay")) + elseif adjacent_to(place, "Deep Ocean") then + place:set_label(_("Great Barrier Reef")) + else + -- Coast (not adjacent to glacier nor deep ocean) + place:set_label(_("Great Blue Hole")) + end + end + elseif tname == "Lake" then + selected_lake = selected_lake - 1 + if selected_lake == 0 then + if surrounded_by(place, "Lake") then + -- Fully surrounded + place:set_label(_("Great Lakes")) + elseif not adjacent_to(place, "Lake") then + -- Isolated + place:set_label(_("Dead Sea")) + else + place:set_label(_("Rift Lake")) + end + end + elseif tname == "Swamp" then + selected_swamp = selected_swamp - 1 + if selected_swamp == 0 then + if not adjacent_to(place, "Swamp") then + -- Isolated + place:set_label(_("Grand Prismatic Spring")) + elseif adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("Mangrove Forest")) + else + place:set_label(_("Cenotes")) + end + end + elseif tname == "Glacier" then + selected_glacier = selected_glacier - 1 + if selected_glacier == 0 then + if surrounded_by(place, "Glacier") then + -- Fully surrounded + place:set_label(_("Ice Sheet")) + elseif not adjacent_to(place, "Glacier") then + -- Isolated + place:set_label(_("Frozen Lake")) + elseif adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("Ice Shelf")) + else + place:set_label(_("Advancing Glacier")) + end + end + elseif tname == "Tundra" then + selected_tundra = selected_tundra - 1 + if selected_tundra == 0 then + place:set_label(_("Geothermal Area")) + end + elseif tname == "Desert" then + selected_desert = selected_desert - 1 + if selected_desert == 0 then + if surrounded_by(place, "Desert") then + -- Fully surrounded + place:set_label(_("Sand Sea")) + elseif not adjacent_to(place, "Desert") then + -- Isolated + place:set_label(_("Salt Flat")) + elseif random(1, 100) <= 50 then + place:set_label(_("Singing Dunes")) + else + place:set_label(_("White Desert")) + end + end + elseif tname == "Plains" then + selected_plain = selected_plain - 1 + if selected_plain == 0 then + if adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("Long Beach")) + elseif random(1, 100) <= 50 then + place:set_label(_("Valley of Geysers")) + else + place:set_label(_("Rock Pillars")) + end + end + elseif tname == "Grassland" then + selected_grassland = selected_grassland - 1 + if selected_grassland == 0 then + if adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("White Cliffs")) + elseif random(1, 100) <= 50 then + place:set_label(_("Giant Cave")) + else + place:set_label(_("Rock Formation")) + end + end + elseif tname == "Jungle" then + selected_jungle = selected_jungle - 1 + if selected_jungle == 0 then + if surrounded_by(place, "Jungle") then + -- Fully surrounded + place:set_label(_("Rainforest")) + elseif adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("Subterranean River")) + else + place:set_label(_("Sinkholes")) + end + end + elseif tname == "Forest" then + selected_forest = selected_forest - 1 + if selected_forest == 0 then + if adjacent_to(place, "Mountains") then + place:set_label(_("Stone Forest")) + elseif surrounded_by(place, "Forest") then + -- Fully surrounded + place:set_label(_("Sequoia Forest")) + else + place:set_label(_("Millenary Trees")) + end + end + elseif tname == "Hills" then + selected_hill = selected_hill - 1 + if selected_hill == 0 then + if not adjacent_to(place, "Hills") then + if adjacent_to(place, "Mountains") then + -- Isolated (but adjacent to mountains) + place:set_label(_("Table Mountain")) + else + -- Isolated (not adjacent to hills nor mountains) + place:set_label(_("Inselberg")) + end + elseif random(1, 100) <= 50 then + place:set_label(_("Karst Landscape")) + else + place:set_label(_("Mud Volcanoes")) + end + end + elseif tname == "Mountains" then + selected_mountain = selected_mountain - 1 + if selected_mountain == 0 then + if surrounded_by(place, "Mountains") then + -- Fully surrounded + place:set_label(_("Highest Peak")) + elseif not adjacent_to(place, "Mountains") then + -- Isolated + place:set_label(_("Sacred Mount")) + elseif adjacent_to(place, "Ocean") then + -- Coast + place:set_label(_("Cliff Coast")) + elseif random(1, 100) <= 50 then + place:set_label(_("Active Volcano")) + else + place:set_label(_("High Summit")) + end + end + end + end + return false +end + +signal.connect("map_generated", "place_map_labels") diff --git a/styles.ruleset b/styles.ruleset new file mode 100644 index 0000000..c764717 --- /dev/null +++ b/styles.ruleset @@ -0,0 +1,254 @@ + +; 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. + +[datafile] +description = "Nation theme data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +; /* <-- 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_european] +name = _("?style:European") + +[style_classical] +name = _("?style:Classical") + +[style_tropical] +name = _("?style:Tropical") + +[style_asian] +name = _("?style:Asian") + +[style_babylonian] +name = _("?style:Babylonian") + +[style_celtic] +name = _("?style:Celtic") + +; /* <-- 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 +; reqs = requirements for this city style (see README.effects) +; +; */ <-- avoid gettext warnings + +[citystyle_european] +name = _("?citystyle:European") +graphic = "city.european" +graphic_alt = "-" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "European", "Player" + } + +[citystyle_classical] +name = _("?citystyle:Classical") +graphic = "city.classical" +graphic_alt = "-" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "Classical", "Player" + } + +[citystyle_tropical] +name = _("?citystyle:Tropical") +graphic = "city.tropical" +graphic_alt = "city.european" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "Tropical", "Player" + } + +[citystyle_asian] +name = _("?citystyle:Asian") +graphic = "city.asian" +graphic_alt = "city.classical" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "Asian", "Player" + } + +[citystyle_babylonian] +name = _("?citystyle:Babylonian") +graphic = "city.babylonian" +graphic_alt = "city.classical" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "Babylonian", "Player" + } + +[citystyle_celtic] +name = _("?citystyle:Celtic") +graphic = "city.celtic" +graphic_alt = "city.european" +citizens_graphic = "ancient" +reqs = { "type", "name", "range" + "Style", "Celtic", "Player" + } + +[citystyle_industrial] +name = _("?citystyle:Industrial") +graphic = "city.industrial" +graphic_alt = "-" +citizens_graphic = "industrial" +reqs = { "type", "name", "range" + "tech", "Railroad", "Player" + } + +[citystyle_electric] +name = _("?citystyle:ElectricAge") +graphic = "city.electricage" +graphic_alt = "city.modern" +citizens_graphic = "electricage" +reqs = { "type", "name", "range" + "tech", "Automobile", "Player" + } + +[citystyle_modern] +name = _("?citystyle:Modern") +graphic = "city.modern" +graphic_alt = "-" +citizens_graphic = "modern" +reqs = { "type", "name", "range" + "tech", "Rocketry", "Player" + } + +[citystyle_postmodern] +name = _("?citystyle:PostModern") +graphic = "city.postmodern" +graphic_alt = "-" +citizens_graphic = "postmodern" +reqs = { "type", "name", "range" + "tech", "Superconductors", "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_european] +music_peaceful = "music_european_peace" +music_combat = "music_european_combat" +reqs = + { "type", "name", "range" + "Style", "European", "Player" + } + +[musicstyle_classical] +music_peaceful = "music_classical_peace" +music_combat = "music_classical_combat" +reqs = + { "type", "name", "range" + "Style", "Classical", "Player" + } + +[musicstyle_tropical] +music_peaceful = "music_tropical_peace" +music_combat = "music_tropical_combat" +reqs = + { "type", "name", "range" + "Style", "Tropical", "Player" + } + +[musicstyle_asian] +music_peaceful = "music_asian_peace" +music_combat = "music_asian_combat" +reqs = + { "type", "name", "range" + "Style", "Asian", "Player" + } + +[musicstyle_babylonian] +music_peaceful = "music_babylonian_peace" +music_combat = "music_babylonian_combat" +reqs = + { "type", "name", "range" + "Style", "Babylonian", "Player" + } + +[musicstyle_celtic] +music_peaceful = "music_celtic_peace" +music_combat = "music_celtic_combat" +reqs = + { "type", "name", "range" + "Style", "Celtic", "Player" + } + +[musicstyle_renaissance] +music_peaceful = "music_renaissance_peace" +music_combat = "music_renaissance_combat" +reqs = + { "type", "name", "range" + "Tech", "University", "Player" + } + +[musicstyle_industrial] +music_peaceful = "music_industrial_peace" +music_combat = "music_industrial_combat" +reqs = + { "type", "name", "range" + "Tech", "Railroad", "Player" + } + +[musicstyle_electricage] +music_peaceful = "music_electricage_peace" +music_combat = "music_electricage_combat" +reqs = + { "type", "name", "range" + "Tech", "Automobile", "Player" + } + +[musicstyle_modern] +music_peaceful = "music_modern_peace" +music_combat = "music_modern_combat" +reqs = + { "type", "name", "range" + "Tech", "Rocketry", "Player" + } + +[musicstyle_postmodern] +music_peaceful = "music_postmodern_peace" +music_combat = "music_postmodern_combat" +reqs = + { "type", "name", "range" + "Tech", "Superconductors", "Player" + } diff --git a/techs.ruleset b/techs.ruleset new file mode 100644 index 0000000..d2503fa --- /dev/null +++ b/techs.ruleset @@ -0,0 +1,870 @@ + +; 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. + +[datafile] +description = "Civ2Civ3 technology data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[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 400. +; +; 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. +; Requiring a tech here instead 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 extras that +; require bridge when occurring with some other +; extra. See "bridged_over" extra property in +; terrain.ruleset. +; "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_advanced_flight] +name = _("Advanced Flight") +req1 = "Radio" +req2 = "Machine Tools" +flags = "" +graphic = "a.advanced_flight" +graphic_alt = "-" +helptext = _("Enables movement of nuclear units.") + +[advance_alphabet] +name = _("Alphabet") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.alphabet" +graphic_alt = "-" + +[advance_amphibious_warfare] +name = _("Amphibious Warfare") +req1 = "Engineering" +req2 = "Tactics" +flags = "" +graphic = "a.amphibious_warfare" +graphic_alt = "-" + +[advance_astronomy] +name = _("Astronomy") +req1 = "Mysticism" +req2 = "Mathematics" +flags = "" +graphic = "a.astronomy" +graphic_alt = "-" +helptext = _("Increases units' vision when in fortresses.") + +[advance_atomic_theory] +name = _("Atomic Theory") +req1 = "Chemistry" +req2 = "Refrigeration" +flags = "" +graphic = "a.atomic_theory" +graphic_alt = "-" + +[advance_automobile] +name = _("Automobile") +req1 = "Combustion" +req2 = "Steel" +flags = "" +graphic = "a.automobile" +graphic_alt = "-" + +[advance_banking] +name = _("Banking") +req1 = "Trade" +req2 = "The Republic" +flags = "" +graphic = "a.banking" +graphic_alt = "-" + +[advance_bridge_building] +name = _("Bridge Building") +req1 = "The Wheel" +req2 = "Construction" +flags = "Bridge" +graphic = "a.bridge_building" +graphic_alt = "-" +helptext = _("Allows roads to be built on river tiles.") + +[advance_bronze_working] +name = _("Bronze Working") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.bronze_working" +graphic_alt = "-" + +[advance_ceremonial_burial] +name = _("Ceremonial Burial") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.ceremonial_burial" +graphic_alt = "-" + +[advance_chemistry] +name = _("Chemistry") +req1 = "University" +req2 = "Medicine" +flags = "" +graphic = "a.chemistry" +graphic_alt = "-" + +[advance_chivalry] +name = _("Chivalry") +req1 = "Feudalism" +req2 = "Horseback Riding" +flags = "" +graphic = "a.chivalry" +graphic_alt = "-" + +[advance_code_of_laws] +name = _("Code of Laws") +req1 = "Alphabet" +req2 = "None" +flags = "" +graphic = "a.code_of_laws" +graphic_alt = "-" + +[advance_combined_arms] +name = _("Combined Arms") +req1 = "Mobile Warfare" +req2 = "Advanced Flight" +flags = "" +graphic = "a.combined_arms" +graphic_alt = "-" + +[advance_combustion] +name = _("Combustion") +req1 = "Refining" +req2 = "Engineering" +flags = "" +graphic = "a.combustion" +graphic_alt = "-" + +[advance_communism] +name = _("Communism") +req1 = "Theology" +req2 = "Industrialization" +flags = "" +graphic = "a.communism" +graphic_alt = "-" + +[advance_computers] +name = _("Computers") +req1 = "Miniaturization" +req2 = "Radio" +flags = "" +graphic = "a.computers" +graphic_alt = "-" + +[advance_conscription] +name = _("Conscription") +req1 = "Democracy" +req2 = "Metallurgy" +flags = "" +graphic = "a.conscription" +graphic_alt = "-" + +[advance_construction] +name = _("Construction") +req1 = "Masonry" +req2 = "Iron Working" +flags = "" +graphic = "a.construction" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers, Engineers, and military infantry \ +units to build forts and fortresses.\ +") + +[advance_currency] +name = _("Currency") +req1 = "Bronze Working" +req2 = "None" +flags = "" +graphic = "a.currency" +graphic_alt = "-" + +[advance_democracy] +name = _("Democracy") +req1 = "Banking" +req2 = "Invention" +flags = "" +graphic = "a.democracy" +graphic_alt = "-" + +[advance_economics] +name = _("Economics") +req1 = "Banking" +req2 = "University" +flags = "" +graphic = "a.economics" +graphic_alt = "-" + +[advance_electricity] +name = _("Electricity") +req1 = "Metallurgy" +req2 = "Theory of Gravity" +flags = "" +graphic = "a.electricity" +graphic_alt = "-" +helptext = _("\ +Allows irrigation without an adjacent water source, improves the \ +effect of Amphitheaters, and increases city vision radius.\ +") + +[advance_electronics] +name = _("Electronics") +req1 = "The Corporation" +req2 = "Electricity" +flags = "" +graphic = "a.electronics" +graphic_alt = "-" + +[advance_engineering] +name = _("Engineering") +req1 = "Electricity" +req2 = "Steam Engine" +flags = "" +graphic = "a.engineering" +graphic_alt = "-" + +[advance_environmentalism] +name = _("Environmentalism") +req1 = "Recycling" +req2 = "Space Flight" +flags = "" +graphic = "a.environmentalism" +graphic_alt = "-" + +[advance_espionage] +name = _("Espionage") +req1 = "Communism" +req2 = "Democracy" +flags = "" +graphic = "a.espionage" +graphic_alt = "-" + +[advance_explosives] +name = _("Explosives") +req1 = "Gunpowder" +req2 = "Chemistry" +flags = "" +graphic = "a.explosives" +graphic_alt = "-" + +[advance_feudalism] +name = _("Feudalism") +req1 = "Iron Working" +req2 = "Monarchy" +flags = "" +graphic = "a.feudalism" +graphic_alt = "-" + +[advance_flight] +name = _("Flight") +req1 = "Combustion" +req2 = "Tactics" +flags = "Build_Airborne" +graphic = "a.flight" +graphic_alt = "-" + +[advance_fusion_power] +name = _("Fusion Power") +req1 = "Superconductors" +req2 = "Labor Union" +flags = "" +graphic = "a.fusion_power" +graphic_alt = "-" +helptext = _("Makes it possible for Engineers to transform terrains.") + +[advance_genetic_engineering] +name = _("Genetic Engineering") +req1 = "Refrigeration" +req2 = "The Corporation" +flags = "" +graphic = "a.genetic_engineering" +graphic_alt = "-" + +[advance_guerilla_warfare] +name = _("Guerilla Warfare") +req1 = "Communism" +req2 = "Tactics" +flags = "" +graphic = "a.guerilla_warfare" +graphic_alt = "-" + +[advance_gunpowder] +name = _("Gunpowder") +req1 = "Invention" +req2 = "Feudalism" +graphic = "a.gunpowder" +graphic_alt = "-" + +[advance_horseback_riding] +name = _("Horseback Riding") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.horseback_riding" +graphic_alt = "-" + +[advance_industrialization] +name = _("Industrialization") +req1 = "Railroad" +req2 = "Banking" +graphic = "a.industrialization" +graphic_alt = "-" + +[advance_invention] +name = _("Invention") +req1 = "Bridge Building" +req2 = "Literacy" +flags = "" +graphic = "a.invention" +graphic_alt = "-" +helptext = _("Halves the upgrade cost of your units.") + +[advance_iron_working] +name = _("Iron Working") +req1 = "Bronze Working" +req2 = "Warrior Code" +flags = "" +graphic = "a.iron_working" +graphic_alt = "-" + +[advance_labor_union] +name = _("Labor Union") +req1 = "Communism" +req2 = "Mobile Warfare" +flags = "" +graphic = "a.labor_union" +graphic_alt = "-" + +[advance_laser] +name = _("Laser") +req1 = "Computers" +req2 = "Nuclear Power" +flags = "" +graphic = "a.laser" +graphic_alt = "-" + +[advance_leadership] +name = _("Leadership") +req1 = "Chivalry" +req2 = "Gunpowder" +flags = "" +graphic = "a.leadership" +graphic_alt = "-" + +[advance_literacy] +name = _("Literacy") +req1 = "Writing" +req2 = "Code of Laws" +flags = "" +graphic = "a.literacy" +graphic_alt = "-" + +[advance_machine_tools] +name = _("Machine Tools") +req1 = "Steel" +req2 = "Tactics" +flags = "" +graphic = "a.machine_tools" +graphic_alt = "-" + +[advance_magnetism] +name = _("Magnetism") +req1 = "Seafaring" +req2 = "Astronomy" +flags = "" +graphic = "a.magnetism" +graphic_alt = "-" + +[advance_map_making] +name = _("Map Making") +req1 = "Alphabet" +req2 = "None" +flags = "" +graphic = "a.map_making" +graphic_alt = "-" + +[advance_masonry] +name = _("Masonry") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.masonry" +graphic_alt = "-" + +[advance_mass_production] +name = _("Mass Production") +req1 = "Automobile" +req2 = "The Corporation" +flags = "" +graphic = "a.mass_production" +graphic_alt = "-" + +[advance_mathematics] +name = _("Mathematics") +req1 = "Alphabet" +req2 = "Masonry" +flags = "" +graphic = "a.mathematics" +graphic_alt = "-" + +[advance_medicine] +name = _("Medicine") +req1 = "Philosophy" +req2 = "Trade" +flags = "" +graphic = "a.medicine" +graphic_alt = "-" +; /* xgettext:no-c-format */ +helptext = _("\ +Reduces the risk of plague in your cities by 30% of the base chance \ +(this is additive with the benefits of any buildings).\ +") + +[advance_metallurgy] +name = _("Metallurgy") +req1 = "Gunpowder" +req2 = "Mathematics" +flags = "" +graphic = "a.metallurgy" +graphic_alt = "-" + +[advance_miniaturization] +name = _("Miniaturization") +req1 = "Combustion" +req2 = "Electronics" +flags = "" +graphic = "a.miniaturization" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers, Engineers, and Transports to build \ +oil platforms on Deep Ocean, required to get the bonus from \ +Offshore Platforms.\ +") + +[advance_mobile_warfare] +name = _("Mobile Warfare") +req1 = "Automobile" +req2 = "Machine Tools" +flags = "" +graphic = "a.mobile_warfare" +graphic_alt = "-" + +[advance_monarchy] +name = _("Monarchy") +req1 = "Ceremonial Burial" +req2 = "Code of Laws" +flags = "" +graphic = "a.monarchy" +graphic_alt = "-" + +[advance_monotheism] +name = _("Monotheism") +req1 = "Astronomy" +req2 = "Polytheism" +flags = "" +graphic = "a.monotheism" +graphic_alt = "-" + +[advance_mysticism] +name = _("Mysticism") +req1 = "Ceremonial Burial" +req2 = "None" +flags = "" +graphic = "a.mysticism" +graphic_alt = "-" +helptext = _("Improves the effect of Temples.") + +[advance_navigation] +name = _("Navigation") +req1 = "Invention" +req2 = "Physics" +flags = "" +graphic = "a.navigation" +graphic_alt = "-" + +[advance_nuclear_fission] +name = _("Nuclear Fission") +req1 = "Mass Production" +req2 = "Atomic Theory" +flags = "" +graphic = "a.nuclear_fission" +graphic_alt = "-" + +[advance_nuclear_power] +name = _("Nuclear Power") +req1 = "Nuclear Fission" +req2 = "Miniaturization" +flags = "" +graphic = "a.nuclear_power" +graphic_alt = "-" +helptext = _("Gives sea units one extra move.") + +[advance_philosophy] +name = _("Philosophy") +req1 = "Mysticism" +req2 = "Literacy" +flags = "Bonus_Tech" +bonus_message = _("Great philosophers from all the world join \ +your civilization: you learn %s immediately.") +graphic = "a.philosophy" +graphic_alt = "-" + +[advance_physics] +name = _("Physics") +req1 = "The Wheel" +req2 = "Magnetism" +flags = "" +graphic = "a.physics" +graphic_alt = "-" + +[advance_plastics] +name = _("Plastics") +req1 = "Mass Production" +req2 = "Robotics" +flags = "" +graphic = "a.plastics" +graphic_alt = "-" + +[advance_polytheism] +name = _("Polytheism") +req1 = "Horseback Riding" +req2 = "Ceremonial Burial" +flags = "" +graphic = "a.polytheism" +graphic_alt = "-" + +[advance_pottery] +name = _("Pottery") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.pottery" +graphic_alt = "-" + +[advance_radio] +name = _("Radio") +req1 = "Flight" +req2 = "Electronics" +flags = "" +graphic = "a.radio" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers and Engineers to build airstrips, \ +airbases and buoys. Allows Transports to build buoys.\ +") + +[advance_railroad] +name = _("?tech:Railroad") +req1 = "Steam Engine" +req2 = "Metallurgy" +flags = "" +graphic = "a.railroad" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers and Engineers to upgrade roads to \ +railroads.\ +"), _("\ +For Despotism or Tribal governments, cancels the penalty to worked \ +tiles with output greater than 2 (as if all your cities were always \ +celebrating).\ +") + +[advance_recycling] +name = _("Recycling") +req1 = "Mass Production" +req2 = "Sanitation" +flags = "" +graphic = "a.recycling" +graphic_alt = "-" + +[advance_refining] +name = _("Refining") +req1 = "Explosives" +req2 = "Industrialization" +flags = "" +graphic = "a.refining" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers and Engineers to upgrade \ +mines to oil wells on Desert and Glacier tiles, for an extra production \ +point.\ +") + +[advance_refrigeration] +name = _("Refrigeration") +req1 = "Sanitation" +req2 = "Electricity" +flags = "" +graphic = "a.refrigeration" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers and Engineers to upgrade \ +irrigation systems to farmland.\ +") + +[advance_robotics] +name = _("Robotics") +req1 = "Mobile Warfare" +req2 = "Computers" +flags = "" +graphic = "a.robotics" +graphic_alt = "-" + +[advance_rocketry] +name = _("Rocketry") +req1 = "Advanced Flight" +req2 = "Miniaturization" +flags = "" +graphic = "a.rocketry" +graphic_alt = "-" +helptext = _("Doubles movement of nuclear units.") + +[advance_sanitation] +name = _("Sanitation") +req1 = "Bridge Building" +req2 = "Medicine" +flags = "" +graphic = "a.sanitation" +graphic_alt = "-" + +[advance_seafaring] +name = _("Seafaring") +req1 = "Pottery" +req2 = "Map Making" +flags = "" +graphic = "a.seafaring" +graphic_alt = "-" + +[advance_space_flight] +name = _("Space Flight") +req1 = "Computers" +req2 = "Rocketry" +flags = "" +graphic = "a.space_flight" +graphic_alt = "-" + +[advance_stealth] +name = _("Stealth") +req1 = "Plastics" +req2 = "Space Flight" +flags = "" +graphic = "a.stealth" +graphic_alt = "-" + +[advance_steam_engine] +name = _("Steam Engine") +req1 = "Chemistry" +req2 = "Navigation" +flags = "" +graphic = "a.steam_engine" +graphic_alt = "-" + +[advance_steel] +name = _("Steel") +req1 = "Engineering" +req2 = "Industrialization" +flags = "" +graphic = "a.steel" +graphic_alt = "-" + +[advance_superconductors] +name = _("Superconductors") +req1 = "Space Flight" +req2 = "Laser" +flags = "" +graphic = "a.superconductors" +graphic_alt = "-" +helptext = _("\ +Allows Settlers, Migrants, Workers and Engineers to upgrade railroads \ +with maglev.\ +") + +[advance_tactics] +name = _("Tactics") +req1 = "Conscription" +req2 = "Leadership" +flags = "" +graphic = "a.tactics" +graphic_alt = "-" + +[advance_the_corporation] +name = _("The Corporation") +req1 = "Economics" +req2 = "Industrialization" +flags = "" +graphic = "a.the_corporation" +graphic_alt = "-" +helptext = _("\ +Halves the corruption of trade related to distance from the capital \ +(or eliminates it for Federation governments).\ +") + +[advance_the_republic] +name = _("The Republic") +req1 = "Code of Laws" +req2 = "Literacy" +flags = "" +graphic = "a.the_republic" +graphic_alt = "-" + +[advance_the_wheel] +name = _("The Wheel") +req1 = "Horseback Riding" +req2 = "None" +flags = "" +graphic = "a.the_wheel" +graphic_alt = "-" + +[advance_theology] +name = _("Theology") +req1 = "Philosophy" +req2 = "Monotheism" +flags = "" +graphic = "a.theology" +graphic_alt = "-" +helptext = _("Improves the effect of Cathedrals.") + +[advance_theory_of_gravity] +name = _("Theory of Gravity") +req1 = "Physics" +req2 = "University" +flags = "" +graphic = "a.theory_of_gravity" +graphic_alt = "-" + +[advance_trade] +name = _("Trade") +req1 = "Currency" +req2 = "Pottery" +flags = "" +graphic = "a.trade" +graphic_alt = "-" +helptext = _("\ +Halves the waste of production related to distance from the capital.\ +") + +[advance_university] +name = _("University") +req1 = "Mathematics" +req2 = "Philosophy" +flags = "" +graphic = "a.university" +graphic_alt = "-" + +[advance_warrior_code] +name = _("Warrior Code") +req1 = "None" +req2 = "None" +flags = "" +graphic = "a.warrior_code" +graphic_alt = "-" + +[advance_writing] +name = _("Writing") +req1 = "Alphabet" +req2 = "None" +flags = "" +graphic = "a.writing" +graphic_alt = "-" diff --git a/terrain.ruleset b/terrain.ruleset new file mode 100644 index 0000000..5902813 --- /dev/null +++ b/terrain.ruleset @@ -0,0 +1,2347 @@ + +; 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 = "Civ2Civ3 tile_type data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[control] +; Names for custom terrain flags. There can be up to 10 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" + _("Oil"), _("Mine can be upgraded to Oil Well.") + _("Sea"), _("Allows cities to build Harbors and coastal wonders.") + _("NoPollution"), _("No Pollution nor Fallout appear here.") + _("NoFortify"), _("No units can fortify on this terrain.") + } + +; Names for custom extra flags. There can be up to 10 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" + _("ParadropFrom"), _("Units can paradrop from this tile.") + _("DiplomatDefense"), + ; /* xgettext:no-c-format */ + _("Diplomatic units get a 25% defense bonus in diplomatic fights.") + _("IrrigationSource") + _("AllowsFarmlandOnDesert") + } + +[parameters] + +; Percentage of "land" tiles required to be adjacent to a water tile before +; it may be "reclaimed" into a land tile (0-101; 0=anywhere, default 101=nowhere) +ocean_reclaim_requirement = 30 + +; Percentage of "water" tiles required to be adjacent to a land tile before +; it may be "channeled" into a water tile (0-101; 0=anywhere, default 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 = 0 + +; 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 = 0 + +; 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 = 14 + +; 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 = 6 + +; How many move_fragments IgTer unit movement costs +igter_cost = 2 + +; 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 "-" +; graphic_alt2 = second alternate graphic, to be used when neither +; main tag nor first alternate tag is not found. +; 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 +; resource_freq = (optional) list of relative frequencies for each +; possible resource on this terrain. When specified, +; must be the same length as resource list. +; Otherwise, all resources occur with approximately +; equal frequency. +; 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. +; cultivate_result = cultivate activity changes to that terrain +; 'no' to disable cultivate +; cultivate_time = time to cultivate +; plant_result = plant activity changes to that terrain +; 'no' to disable planting +; plant_time = time to plant +; 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_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 +; placing_time = time for 'placing' an extra; if 0, cannot place +; Nonzero values only affect extras with build_time 0. +; Such extras can modify time with build_time_factor. +; Default is 1. +; pillage_time = time to pillage extra from the tile (0 = impossible) +; Nonzero values only affect extras with removal_time 0. +; extra_settings = table of extra specific settings +; - "extra" - Name of the extra +; - "removal_time" - Time for cleaning activities (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; does not 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 voyage for +; units with flag "CoastStrict" +; - 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 +; - EnterBorders = Borders on this terrain are not blocking peaceful +; units from entering and moving. +; - 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 an average level +; 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 +; +; */ <-- avoid gettext warnings + +[terrain_inaccesible] +name = _("Inaccessible") +graphic = "inaccessible" +graphic_alt = "arctic" +graphic_alt2 = "-" +identifier = "i" +class = "Land" +movement_cost = 0 +defense_bonus = 0 +food = 0 +shield = 0 +trade = 0 +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 0 +road_time = 0 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "no" +transform_time = 0 +placing_time = 0 +pillage_time = 0 +animal = "None" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "no" +flags = "NotGenerated", "NoPollution", "NoCities", "UnsafeCoast", "Frozen" +color.r = 25 +color.g = 25 +color.b = 25 +helptext = _("\ +No unit can enter this terrain, nor can any city work its tiles.\ +") + +[terrain_lake] +name = _("Lake") +graphic = "lake" +graphic_alt = "coast" +graphic_alt2 = "-" +identifier = "+" +class = "Oceanic" +movement_cost = 1 +defense_bonus = 0 +food = 2 +shield = 0 +trade = 2 +resources = "Fish" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 1 +road_time = 0 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Grassland" +transform_time = 36 +placing_time = 0 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Swamp" +warmer_drier_result = "no" +cooler_wetter_result = "Glacier" +cooler_drier_result = "no" +native_to = "Sea", "Air", "Missile", "Helicopter", "Trireme" +flags = "NoCities", "NoBarbs", "NoPollution", "FreshWater", "NoZoc", "NoFortify" +property_ocean_depth = 0 +color.r = 46 +color.g = 120 +color.b = 182 +helptext = _("\ +Lakes are substantial bodies of fresh water.\ +") + +[terrain_ocean] +name = _("Ocean") +graphic = "coast" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = " " +class = "Oceanic" +movement_cost = 1 +defense_bonus = 0 +food = 1 +shield = 0 +trade = 2 +resources = "Fish", "Whales" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 1 +road_time = 0 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Grassland" +transform_time = 36 +placing_time = 0 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "Storm" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "Glacier" +cooler_drier_result = "no" +native_to = "Sea", "Air", "Missile", "Helicopter", "Trireme" +flags = "NoCities", "UnsafeCoast", "NoZoc", "NoFortify", "Sea" +property_ocean_depth = 35 +color.r = 0 +color.g = 46 +color.b = 137 +helptext = _("\ +Shallow oceans are mostly found near coastlines, and are often rich\ + sources of food and other resources.\ +") + +[terrain_deep_ocean] +name = _("Deep Ocean") +graphic = "floor" +graphic_alt = "coast" +graphic_alt2 = "-" +identifier = ":" +class = "Oceanic" +movement_cost = 1 +defense_bonus = 0 +food = 1 +shield = 0 +trade = 2 +;resources = "none" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 1 +road_time = 0 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 10 +transform_result = "no" +transform_time = 0 +placing_time = 0 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "Storm" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "no" +native_to = "Sea", "Air", "Missile", "Helicopter" +flags = "NoCities", "NoPollution", "UnsafeCoast", "NoZoc", "NoFortify", "Sea" +property_ocean_depth = 70 +color.r = 0 +color.g = 33 +color.b = 129 +helptext = _("\ +Deep oceans cover much of the world away from coastlines, and only\ + seaworthy units (not including Triremes) can travel on them.\ +") + +[terrain_glacier] +name = _("Glacier") +graphic = "arctic" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "a" +class = "Land" +movement_cost = 2 +defense_bonus = 0 +food = 0 +shield = 0 +trade = 0 +resources = "Ivory", "Oil" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 2 +road_time = 4 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 1 +mining_time = 10 +transform_result = "Lake" +transform_time = 24 +placing_time = 4 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Lake" +warmer_drier_result = "Tundra" +cooler_wetter_result = "no" +cooler_drier_result = "no" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "NoBarbs", "NoCities", "CanHaveRiver", "Oil", "Frozen" +property_frozen = 100 +color.r = 232 +color.g = 232 +color.b = 232 +helptext = _("\ +Glaciers are found only in the most northerly or southerly\ + reaches of the world. They are very cold, and hence difficult to\ + work with.\ +") + +[terrain_desert] +name = _("Desert") +graphic = "desert" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "d" +class = "Land" +movement_cost = 1 +defense_bonus = 0 +food = 0 +shield = 1 +trade = 0 +resources = "Oasis", "Oil" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 100 +base_time = 1 +road_time = 2 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 1 +irrigation_time = 5 +mining_shield_incr = 1 +mining_time = 5 +transform_result = "Plains" +transform_time = 24 +placing_time = 2 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Swamp" +warmer_drier_result = "no" +cooler_wetter_result = "Tundra" +cooler_drier_result = "Tundra" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "CanHaveRiver", "Oil" +property_dry = 100 +property_tropical = 50 +property_temperate = 20 +color.r = 214 +color.g = 185 +color.b = 106 +helptext = _("\ +Deserts are regions of extreme dryness, making agriculture and\ + trade very difficult.\ +"), _("\ +Deserts can be irrigated for a small amount of extra food, but without\ + an oasis or river, bare desert cannot be further improved with\ + farmland.\ +"), _("\ +Rivers bring fertile soil to deserts; on a desert river not already\ + benefiting from an oasis, building irrigation will yield two extra food\ + resources rather than the usual one.\ +") + +[terrain_forest] +name = _("Forest") +graphic = "forest" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "f" +class = "Land" +movement_cost = 2 +defense_bonus = 25 +food = 1 +shield = 2 +trade = 0 +resources = "Pheasant", "Silk" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 2 +road_time = 4 +cultivate_result = "Plains" +cultivate_time = 10 +plant_result = "Grassland" +plant_time = 15 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Hills" +transform_time = 24 +placing_time = 4 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Jungle" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "no" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "Starter", "CanHaveRiver" +property_cold = 20 +property_wet = 20 +property_foliage = 50 +property_temperate = 50 +color.r = 43 +color.g = 107 +color.b = 19 +helptext = _("\ +Forests are densely wooded, making agriculture somewhat\ + problematic.\ +") + +[terrain_grassland] +name = _("Grassland") +graphic = "grassland" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "g" +class = "Land" +movement_cost = 1 +defense_bonus = 0 +food = 2 +shield = 0 +trade = 0 +resources = "Resources" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 100 +base_time = 1 +road_time = 2 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "Forest" +plant_time = 15 +irrigation_food_incr = 1 +irrigation_time = 5 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Lake" +transform_time = 36 +placing_time = 2 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Swamp" +warmer_drier_result = "Swamp" +cooler_wetter_result = "Swamp" +cooler_drier_result = "Tundra" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "Starter", "CanHaveRiver" +property_green = 50 +property_temperate = 50 +color.r = 11 +color.g = 138 +color.b = 4 +helptext = _("\ +Grasslands afford exceptional agricultural opportunities.\ +") + +[terrain_hills] +name = _("Hills") +graphic = "hills" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "h" +class = "Land" +movement_cost = 2 +defense_bonus = 50 +food = 1 +shield = 1 +trade = 0 +resources = "Coal", "Wine" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 2 +road_time = 4 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 1 +irrigation_time = 10 +mining_shield_incr = 2 +mining_time = 10 +transform_result = "Plains" +transform_time = 24 +placing_time = 4 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "no" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "Starter", "CanHaveRiver" +property_green = 50 +property_mountainous = 30 +color.r = 24 +color.g = 97 +color.b = 5 +helptext = _("\ +In addition to being amenable to agriculture, Hills are frequently\ + rich in resources.\ +"), _("\ +Cities built in hills are at risk of earthquakes, which can interrupt\ + a city's current project.\ +") + +[terrain_jungle] +name = _("Jungle") +graphic = "jungle" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "j" +class = "Land" +movement_cost = 2 +defense_bonus = 25 +food = 1 +shield = 1 +trade = 0 +resources = "Gems", "Fruit" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 2 +road_time = 4 +cultivate_result = "Swamp" +cultivate_time = 10 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Forest" +transform_time = 24 +placing_time = 4 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "Forest" +native_to = "Land", "Small Land", "Merchant", "Air", "Missile", "Helicopter" +flags = "CanHaveRiver" +property_foliage = 50 +property_tropical = 50 +property_wet = 50 +color.r = 55 +color.g = 156 +color.b = 38 +helptext = _("\ +Jungles are densely overgrown, making agriculture somewhat\ + problematic. Big Land units may not move into jungle without\ + a road.\ +") + +[terrain_mountains] +name = _("Mountains") +graphic = "mountains" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "m" +class = "Land" +movement_cost = 3 +defense_bonus = 100 +food = 0 +shield = 1 +trade = 0 +resources = "Gold", "Iron" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 3 +road_time = 6 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 2 +mining_time = 10 +transform_result = "Hills" +transform_time = 36 +placing_time = 6 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "no" +warmer_drier_result = "no" +cooler_wetter_result = "no" +cooler_drier_result = "no" +native_to = "Land", "Small Land", "Merchant", "Air", "Missile", "Helicopter" +flags = "NoCities", "CanHaveRiver" +property_mountainous = 70 +color.r = 129 +color.g = 127 +color.b = 118 +helptext = _("\ +Mountains are regions of extreme altitude, making agriculture and\ + trade very difficult.\ +"), _("\ +Land units that move into mountains can see an extra space, but a\ + fast land unit ending its turn in mountains without a road will start\ + its next turn with one fewer movement point. Big Land units may not\ + move into mountains without a road.\ +") + +[terrain_plains] +name = _("Plains") +graphic = "plains" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "p" +class = "Land" +movement_cost = 1 +defense_bonus = 0 +food = 1 +shield = 1 +trade = 0 +resources = "Buffalo", "Wheat" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 100 +base_time = 1 +road_time = 2 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "Forest" +plant_time = 10 +irrigation_food_incr = 1 +irrigation_time = 5 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Lake" +transform_time = 36 +placing_time = 2 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Swamp" +warmer_drier_result = "Desert" +cooler_wetter_result = "Desert" +cooler_drier_result = "Desert" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "Starter", "CanHaveRiver" +property_green = 50 +property_temperate = 50 +color.r = 122 +color.g = 156 +color.b = 46 +helptext = _("\ +Plains are very broad, sparse regions, which makes trade slightly\ + inconvenient.\ +") + +[terrain_swamp] +name = _("Swamp") +graphic = "swamp" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "s" +class = "Land" +movement_cost = 2 +defense_bonus = 25 +food = 1 +shield = 0 +trade = 0 +resources = "Peat", "Spice" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 0 +base_time = 2 +road_time = 4 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 1 +irrigation_time = 5 +mining_shield_incr = 0 +mining_time = 0 +transform_result = "Grassland" +transform_time = 24 +placing_time = 4 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Desert" +warmer_drier_result = "no" +cooler_wetter_result = "Tundra" +cooler_drier_result = "Desert" +native_to = "Land", "Small Land", "Merchant", "Air", "Missile", "Helicopter" +flags = "CanHaveRiver" +property_wet = 100 +property_tropical = 10 +property_temperate = 10 +property_cold = 10 +color.r = 48 +color.g = 85 +color.b = 97 +helptext = _("\ +Swamps suffer from an over-abundance of water, making agriculture\ + somewhat problematic. Big Land units may not move in swamps without\ + a road.\ +") + +[terrain_tundra] +name = _("Tundra") +graphic = "tundra" +graphic_alt = "-" +graphic_alt2 = "-" +identifier = "t" +class = "Land" +movement_cost = 1 +defense_bonus = 0 +food = 1 +shield = 0 +trade = 0 +resources = "Game", "Furs" +road_food_incr_pct = 0 +road_shield_incr_pct = 0 +road_trade_incr_pct = 100 +base_time = 1 +road_time = 2 +cultivate_result = "no" +cultivate_time = 0 +plant_result = "no" +plant_time = 0 +irrigation_food_incr = 0 +irrigation_time = 0 +mining_shield_incr = 1 +mining_time = 5 +transform_result = "Plains" +transform_time = 24 +placing_time = 2 +pillage_time = 1 +extra_settings = + { "extra", "removal_time" + "Pollution", 3 + "Fallout", 3 + } +animal = "None" +warmer_wetter_result = "Swamp" +warmer_drier_result = "Swamp" +cooler_wetter_result = "Glacier" +cooler_drier_result = "Desert" +native_to = "Land", "Small Land", "Merchant", "Big Land", "Air", "Missile", "Helicopter" +flags = "NoBarbs", "CanHaveRiver" +property_cold = 50 +color.r = 188 +color.g = 188 +color.b = 188 +helptext = _("\ +Tundra are broad, cold regions, fit for some agriculture and little\ + else.\ +") + +; /* <-- 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_gold] +extra = "Gold" +identifier = "$" +trade = 6 +# glacier, hills, mountains. + +[resource_iron] +extra = "Iron" +identifier = "/" +shield = 3 +# mountains. + +[resource_game] +extra = "Game" +identifier = "e" +food = 2 +shield = 1 +# tundra. + +[resource_furs] +extra = "Furs" +identifier = "u" +food = 1 +trade = 3 +# tundra-only (beaver pelts). + +[resource_coal] +extra = "Coal" +identifier = "c" +shield = 2 +# hills. + +[resource_fish] +extra = "Fish" +identifier = "y" +food = 2 +# ocean. + +[resource_fruit] +extra = "Fruit" +identifier = "f" +food = 3 +trade = 1 +# jungle. + +[resource_gems] +extra = "Gems" +identifier = "g" +trade = 4 +# jungle. + +; "h" reserved for strategic horses + +[resource_buffalo] +extra = "Buffalo" +identifier = "b" +shield = 2 +# plains (horses => buffalo => cattle). + +[resource_wheat] +extra = "Wheat" +identifier = "j" +food = 2 +# plains. + +; "k" reserved for (cane) sugar + +; "l" reserved for tobacco + +; "m" reserved for marble + +[resource_oasis] +extra = "Oasis" +identifier = "o" +food = 3 +# desert. + +[resource_peat] +extra = "Peat" +identifier = "a" +shield = 4 +# swamp (petroleum => peat => petroleum). + +[resource_pheasant] +extra = "Pheasant" +identifier = "p" +food = 2 +# forest, forested. + +; "r" reserved for rubber + +[resource_bonus] +extra = "Resources" +identifier = "r" +shield = 1 +# grassland. + +[resource_icy_ivory] +extra = "Ivory" +identifier = "i" +food = 1 +shield = 1 +trade = 4 +# glacier (seals => walrus). + +[resource_silk] +extra = "Silk" +identifier = "s" +trade = 3 +# forest, wooded. + +[resource_spice] +extra = "Spice" +identifier = "t" +food = 1 +trade = 4 +# swamp-only. + +; "u" reserved for uranium + +[resource_whales] +extra = "Whales" +identifier = "v" +food = 1 +shield = 1 +# ocean (sea). + +[resource_wine] +extra = "Wine" +identifier = "w" +trade = 4 +# hills-only. + +[resource_oil] +extra = "Oil" +identifier = "x" +shield = 3 ; glacier used to have 4 +# glacier, desert + + +[extraui] + +; Player visible names of the base gui types. + +; ui_name_base_fortress refers to all bases that have gui_type "Fortress" +ui_name_base_fortress = _("?gui_type:Build Fort/Fortress/Buoy") + +; ui_name_base_airbase refers to all bases that have gui_type "Airbase" +ui_name_base_airbase = _("?gui_type:Build Airstrip/Airbase") + +; /* <-- avoid gettext warnings +; +; Each extra, including bases and roads, must have a section here. +; Bases and roads have additional sections for their specific features below. +; +; +; 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. +; "Clean", "Pillage", "Disappear", or "Enter" +; infracost = Number of infrapoints it costs to place this +; extra. 0, the default, means extra cannot be placed. +; 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 +; rmact_gfx_alt2 = tag for second 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 +; no_aggr_near_city = When at least zero, units inside are not considered +; aggressive when there`s a friendly city within this distance +; 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_irrigation] +name = _("Irrigation") +category = "Infra" +causes = "Irrigation" +rmcauses = "Pillage" +graphic = "tx.irrigation" +graphic_alt = "-" +activity_gfx = "unit.irrigation" +act_gfx_alt = "unit.cultivate" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +build_time = 0 +removal_time = 0 +conflicts = "Mine", "Oil Well" +hidden_by = "Farmland" +flags = "IrrigationSource" +helptext = _("\ +Building an irrigation system on a suitable tile causes it to \ +produce some extra food each turn. Most tiles yield one extra food; \ +a desert with a river will yield two, if it is not already benefiting \ +from an oasis.\ +"), _("\ +Without knowledge of Electricity, irrigation requires a nearby source \ +of water: an ocean, lake, or river tile, or another tile with an \ +irrigation system, must share an edge (not just a corner) with the \ +target tile. However, once irrigated, land remains so even if the \ +water source is removed. Once Electricity is known, any suitable \ +tile may be irrigated without a water source.\ +"), _("\ +Building irrigation on a tile with a mine or oil well will destroy it.\ +"), _("\ +City center tiles get their terrain's irrigation bonus automatically, \ +if there is no conflicting mine or oil well on the tile; however, \ +this does not make cities count as a water source for further \ +irrigation. Irrigation can be built on the city tile simply to allow \ +building further irrigation elsewhere, but will not give the tile any \ +further bonus.\ +") + +[extra_mine] +name = _("?extra:Mine") +category = "Infra" +causes = "Mine" +rmcauses = "Pillage" +graphic = "tx.mine" +graphic_alt = "-" +activity_gfx = "unit.mine" +act_gfx_alt = "unit.plant" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "TerrainClass", "Oceanic", "Tile", FALSE, TRUE + "UnitClass", "Sea", "Local", FALSE, TRUE + } +build_time = 0 +removal_time = 0 +conflicts = "Irrigation", "Farmland" +hidden_by = "Oil Well" +helptext = _("\ +Mines can be built on some types of terrain, which increases the \ +number of production points produced by that tile. Hills and Mountains \ +get an extra 2 production points per tile; other terrains get 1 extra \ +production point.\ +"), _("\ +Building a mine on an irrigated tile will destroy the irrigation.\ +") + +[extra_oil_well] +name = _("Oil Well") +category = "Infra" +causes = "Mine" +rmcauses = "Pillage" +graphic = "tx.oil_mine" +graphic_alt = "tx.mine" +activity_gfx = "unit.oil_mine" +act_gfx_alt = "unit.mine" +act_gfx_alt2 = "unit.plant" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Refining", "Player", TRUE, FALSE + "TerrainFlag", "Oil", "Tile", TRUE, TRUE + "Extra", "Mine", "Tile", TRUE, FALSE + "UnitClass", "Sea", "Local", FALSE, TRUE + } +build_time = 0 +removal_time = 0 +conflicts = "Irrigation", "Farmland" +helptext = _("\ +Once Refining is known, mines on Desert and Glacier tiles can be \ +upgraded to oil wells for an extra production point.\ +") + +[extra_oil_platform] +name = _("Oil Platform") +category = "Infra" +causes = "Mine" +rmcauses = "Pillage" +graphic = "tx.oil_rig" +graphic_alt = "tx.mine" +activity_gfx = "unit.oil_rig" +act_gfx_alt = "unit.mine" +act_gfx_alt2 = "unit.plant" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present" + "Tech", "Miniaturization", "Player", TRUE + "Terrain", "Deep Ocean", "Tile", TRUE + } +build_time = 0 +removal_time = 0 +conflicts = "Buoy" +helptext = _("\ +Oil platforms allow cities with Offshore Platforms to get an extra \ +production point from Deep Ocean tiles.\ +"), _("\ +Oil platforms can be built by Workers and similar units on board ships, \ +or directly by Transport units.\ +") + +[extra_pollution] +name = _("?extra:Pollution") +category = "Nuisance" +causes = "Pollution" +rmcauses = "Clean" +graphic = "tx.pollution" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "unit.pollution" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "TerrainFlag", "NoPollution", "Tile", FALSE, TRUE + } +removal_time = 0 +flags = "GlobalWarming" +helptext = _("\ +Pollution appears on tiles around cities with high production or \ +population, or when a Mfg. Plant suffers an industrial accident. \ +It halves all output from its tile, and contributes to the risk of \ +global warming.\ +"), _("\ +The pollution can only be cleared by dispatching Workers, Migrants, \ +Settlers, Engineers, or a Transport with the \"clean pollution\" order.\ +"), _("\ +Pollution from production is likely to start becoming important as \ +your civilization becomes more industrialized, giving you buildings \ +such as Factory and Power Plant which boost production. Replacing a \ +Power Plant with cleaner forms of energy -- a Hydro Plant / Hoover \ +Dam, Nuclear Plant, or Solar Plant -- will reduce pollution from \ +production, as will a Recycling Center.\ +"), _("\ +The city's population starts adding to pollution with the Factory, \ +Super Highways, Offshore Platform, and Mfg. Plant buildings; each \ +building causes the population to add more to pollution. A Mass \ +Transit will counteract the pollution from two buildings in a city, \ +and the Eiffel Tower wonder will counteract the pollution from one \ +building in all the owner's cities.\ +"), _("\ +The contribution of these factors can be seen in the city dialog; once \ +it exceeds a threshold, the excess is the percent chance of pollution \ +appearing each turn.\ +"), _("\ +When an unused tile becomes polluted, there is the temptation to avoid \ +the effort of cleaning it; but the spread of pollution has far more \ +terrible results than the immediate economic impact -- every polluted \ +tile increases the chance of global warming. Each time global warming \ +advances, the entire world loses coastal land to the sea and to jungles \ +and swamps, and inland tiles are lost to desert. This tends to \ +devastate cities and leads to global impoverishment.\ +"), _("\ +The risk of global warming is cumulative; the longer polluted tiles \ +are left uncleaned, the higher the risk becomes, and the risk can \ +linger for some time even after all pollution has been cleaned. If a \ +long time passes with an elevated risk of warming, its effects will be \ +all the more severe when it does occur.\ +") + +[extra_hut] +name = _("Minor Tribe Village") +rule_name = "Hut" +category = "Bonus" +causes = "Hut" +rmcauses = "Enter" +graphic = "tx.village" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range" + "TerrainClass", "Land", "Tile" + "MaxLatitude", "980", "Tile" + "MinLatitude", "-980", "Tile" + } +helptext = _("\ +Villages (also called \"huts\") are primitive communities spread \ +across the world at the beginning of the game. Any land unit can enter \ +a village, making the village disappear and deliver a random response. \ +If the village proves hostile, it could produce barbarians or the unit \ +entering may simply be destroyed. If they are friendly, the player \ +could receive gold, a new technology, a military unit (occasionally a \ +settler; and sometimes a unit that the player cannot yet create), or \ +even a new city.\ +"), _("\ +Later in the game, helicopters may also enter villages, but overflight \ +by other aircraft will cause the villagers to take fright and disband.\ +") + +[extra_farmland] +name = _("Farmland") +category = "Infra" +causes = "Irrigation" +rmcauses = "Pillage" +graphic = "tx.farmland" +graphic_alt = "-" +activity_gfx = "unit.farmland" +act_gfx_alt = "unit.irrigation" +act_gfx_alt2 = "unit.cultivate" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +; Note, there are extra restrictions on where farmland can be built +; through "Build Irrigation" action enablers +reqs = + { "type", "name", "range" + "Tech", "Refrigeration", "Player" + "Extra", "Irrigation", "Tile" + } +build_time = 0 +removal_time = 0 +conflicts = "Mine", "Oil Well" +; /* xgettext:no-c-format */ +helptext = _("\ +Once Refrigeration is known, irrigation systems can be upgraded to \ +farmland by irrigating them a second time; if the city working the tile \ +has a Supermarket, a farmland tile provides 50% more food. (Hence, \ +farmland is only useful on tiles which with irrigation yield 2 or more \ +food.)\ +"), _("\ +Farmland on a tile prevents any trade bonus from Super Highways.\ +"), _("\ +Like irrigation, farmland is incompatible with mines and oil wells.\ +") + +[extra_fallout] +name = _("Fallout") +category = "Nuisance" +causes = "Fallout" +rmcauses = "Clean" +graphic = "tx.fallout" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "unit.fallout" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "TerrainFlag", "NoPollution", "Tile", FALSE, TRUE + } +removal_time = 0 +flags = "NuclearWinter" +helptext = _("\ +Nuclear fallout can appear on tiles when a Nuclear unit is \ +detonated, or when a city's Nuclear Plant has an accident. It halves \ +all output from its tile.\ +"), _("\ +Every tile with nuclear fallout also increases the risk of global \ +nuclear winter. If nuclear winter occurs, land across the globe \ +changes into desert, tundra, and ice, and lakes and oceans freeze.\ +"), _("\ +Settlers, Workers, Migrants, Engineers, and Transport units can all \ +clean up nuclear fallout.\ +") + +[extra_fort] +name = _("Fort") +category = "Infra" +causes = "Base" +rmcauses = "Pillage" +graphic = "base.outpost" +graphic_alt = "base.fortress" +activity_gfx = "unit.outpost" +act_gfx_alt = "unit.fortress" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Construction", "Player", TRUE, FALSE + "TerrainClass", "Land", "Tile", TRUE, FALSE + "UnitFlag", "Fortress", "Local", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + } +build_time = 0 +build_time_factor = 2 +removal_time = 0 +native_to = "Land", "Small Land", "Merchant", "Big Land" +conflicts = "Airstrip", "Airbase" +hidden_by = "Fortress" +flags = "NativeTile", "DiplomatDefense" +; /* xgettext:no-c-format */ +helptext = _("\ +Forts are rapidly-built fortifications providing some defense (+50%) \ +against land units and boats. A fort is also necessary to start building \ +a fortress.\ +") + +[extra_fortress] +name = _("Fortress") +category = "Infra" +causes = "Base" +rmcauses = "Pillage" +graphic = "base.fortress" +graphic_alt = "-" +activity_gfx = "unit.fortress" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Extra", "Fort", "Tile", TRUE, FALSE + "Tech", "Construction", "Player", TRUE, FALSE + "TerrainClass", "Land", "Tile", TRUE, FALSE + "UnitFlag", "Fortress", "Local", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + "Extra", "River", "Tile", FALSE, FALSE + } +build_time = 0 +build_time_factor = 2 +removal_time = 0 +native_to = "Land", "Small Land", "Merchant", "Big Land" +conflicts = "Airstrip", "Airbase" +no_aggr_near_city = 3 +flags = "NativeTile", "DiplomatDefense" +helptext = _("\ +Fortresses are more permanent forts; construction on them can only begin \ +once the underlying fort is complete. Forts on River tiles cannot be \ +upgraded to Fortresses.\ +"), +; /* xgettext:no-c-format */ +_("\ +Compared to a fort, units in a fortress receive extra defense (+50%) \ +against all units (in total, their defense against land units and boats \ +is doubled), and do not count as aggressive if near a friendly city. \ +Any kind of land unit remaining in a fortress for a whole turn without \ +moving recovers a quarter of its hit points.\ +"), _("\ +With Astronomy, fortresses gain watchtowers from which units can see \ +further afield.\ +") + +[extra_airstrip] +name = _("Airstrip") +category = "Infra" +causes = "Base" +rmcauses = "Pillage" +graphic = "base.airstrip" +graphic_alt = "base.airbase" +activity_gfx = "unit.airstrip" +act_gfx_alt = "unit.airbase" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Radio", "Player", TRUE, FALSE + "TerrainClass", "Land", "Tile", TRUE, FALSE + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + } +build_time = 0 +build_time_factor = 2 +removal_time = 0 +native_to = "Air", "Helicopter", "Missile" +conflicts = "Fort", "Fortress" +hidden_by = "Airbase" +flags = "Refuel", "ParadropFrom" +helptext = _("\ +Airstrips are rapidly-built runways allowing air units to land, refuel, \ +and recover outside cities; an aircraft remaining on an airstrip for a \ +whole turn without moving recovers a tenth of its hit points (that is, \ +the same amount it loses each turn while airborne). However, air units on \ +an airstrip are vulnerable to attack by land units.\ +"), +; /* xgettext:no-c-format */ +_("\ +Any units on an airstrip receive extra defense (+50%) against enemy \ +aircraft.\ +"), _("\ +An airstrip is necessary to start building an airbase.\ +") + +[extra_airbase] +name = _("Airbase") +category = "Infra" +causes = "Base" +rmcauses = "Pillage" +graphic = "base.airbase" +graphic_alt = "-" +activity_gfx = "unit.airbase" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Extra", "Airstrip", "Tile", TRUE, FALSE + "Tech", "Radio", "Player", TRUE, FALSE + "TerrainClass", "Land", "Tile", TRUE, FALSE + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + "Extra", "River", "Tile", FALSE, FALSE + } +build_time = 0 +build_time_factor = 2 +removal_time = 0 +native_to = "Air", "Helicopter", "Missile" +conflicts = "Fort", "Fortress" +no_aggr_near_city = 3 +flags = "Refuel", "ParadropFrom" +helptext = _("\ +Airbases are more permanent airstrips; construction on them can only \ +begin once the underlying airstrip is complete. Airstrips on River tiles \ +cannot be upgraded to Airbases.\ +"), +; /* xgettext:no-c-format */ +_("\ +Compared to an airstrip, units in an airbase receive extra defense (+50%) \ +against all units (in total, their defense against air units and missiles \ +is doubled), do not count as aggressive if near a friendly city, and can \ +see further afield. Also, air units recover more hit points (a third per \ +turn, the same as in a city without an Airport).\ +") + +[extra_buoy] +name = _("Buoy") +category = "Infra" +causes = "Base" +rmcauses = "Pillage" +graphic = "base.buoy" +graphic_alt = "base.fortress" +activity_gfx = "unit.buoy" +act_gfx_alt = "unit.fortress" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Radio", "Player", TRUE, FALSE + "TerrainClass", "Oceanic", "Tile", TRUE, FALSE + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + } +build_time = 3 +removal_time = 0 +conflicts = "Oil Platform" +flags = "ShowFlag" +helptext = _("\ +Buoys may be built in the ocean by Transports (or by worker units on a \ +sea-going vessel) to allow their owner to see the surrounding tiles.\ +") + +[extra_ruins] +name = _("Ruins") +category = "Bonus" +;causes = "" +rmcauses = "Pillage" +graphic = "extra.ruins" +graphic_alt = "base.ruins" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "TerrainClass", "Land", "Tile", TRUE, FALSE + "CityTile", "Center", "Tile", FALSE, TRUE + } +buildable = FALSE +removal_time = 0 +flags = "TerrChangeRemoves" +helptext = _("\ +Ruins mark the former site of a city that was destroyed or abandoned. \ +They have no effect on gameplay.\ +") + +[extra_road] +name = _("Road") +category = "Infra" +causes = "Road" +rmcauses = "Pillage" +graphic = "road.road" +graphic_alt = "-" +activity_gfx = "unit.road" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "UnitClass", "Sea", "Local", FALSE, TRUE + "TerrainClass", "Land", "Tile", TRUE, FALSE + } +build_time = 0 +removal_time = 0 +native_to = "Land", "Small Land", "Big Land", "Merchant" +hidden_by = "Railroad", "Maglev" +bridged_over = "River" +flags = "NativeTile", "AlwaysOnCityCenter" +helptext = _("\ +Roads allow your land units to move more quickly, and allow wheeled\ + Big Land units such as Chariots and Catapults to travel through\ + otherwise difficult terrain (Mountains, Jungle, and Swamp).\ +"), _("\ +On some terrains, roads also provide a trade bonus.\ +"), _("\ +Building roads on river tiles requires knowledge of Bridge Building.\ + City center tiles automatically get roads (even on a river tile).\ +") + +[extra_railroad] +name = _("Railroad") +category = "Infra" +causes = "Road" +rmcauses = "Pillage" +graphic = "road.rail" +graphic_alt = "-" +activity_gfx = "unit.rail" +act_gfx_alt = "unit.road" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Railroad", "Player", TRUE, FALSE + "Extra", "Road", "Tile", TRUE, FALSE + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "UnitClass", "Sea", "Local", FALSE, TRUE + "TerrainClass", "Land", "Tile", TRUE, FALSE + } +build_time = 3 +removal_time = 0 +native_to = "Land", "Small Land", "Big Land", "Merchant" +flags = "NativeTile", "AutoOnCityCenter" +hidden_by = "Maglev" +bridged_over = "River" +helptext = _("\ +Once you learn the Railroad technology, you may upgrade your roads\ + to railroads. Units travel considerably faster along railroads than\ + along roads.\ +"), _("\ +A railroad also increases any shield resources produced by a tile by half.\ + A tile whose road is upgraded to a railroad retains any trade bonus\ + from the road as well.\ +"), _("\ +City center tiles with roads are automatically upgraded to railroads\ + when you learn the Railroad technology.\ +") + +[extra_maglev] +name = _("Maglev") +category = "Infra" +causes = "Road" +rmcauses = "Pillage" +graphic = "road.maglev" +graphic_alt = "road.rail" +activity_gfx = "unit.maglev" +act_gfx_alt = "unit.road" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +reqs = + { "type", "name", "range", "present", "quiet" + "Tech", "Superconductors", "Player", TRUE, FALSE + "Extra", "Railroad", "Tile", TRUE, FALSE + "UnitFlag", "Settlers", "Local", TRUE, FALSE + "UnitClass", "Sea", "Local", FALSE, TRUE + "TerrainClass", "Land", "Tile", TRUE, FALSE + } +build_time = 3 +removal_time = 0 +native_to = "Land", "Small Land" +flags = "NativeTile", "AutoOnCityCenter" +bridged_over = "River" +helptext = _("\ +With sufficient technology, you may build magnetic levitation systems\ + along your railroad routes. Land and Small Land units expend no\ + movement points when riding a maglev; you may ride indefinitely.\ + (As may your enemies!)\ +"), _("\ +Your regular railroads are still used to carry heavy Big Land and\ + Merchant units for which the maglev system is unsuitable, and they\ + continue to provide production and trade bonuses.\ +"), _("\ +City center tiles with railroads are automatically upgraded to maglev\ + when you learn about Superconductors.\ +") + +[extra_river] +name = _("River") +category = "Natural" +causes = "Road" +;rmcauses = "" +graphic = "road.river" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +buildable = FALSE +native_to = "Land", "Small Land", "Merchant", "Trireme" +defense_bonus = 25 +flags = "NativeTile", "IrrigationSource", "AllowsFarmlandOnDesert" +; /* xgettext:no-c-format */ +helptext = _("\ +Any land terrain type may have a River on it. A River adds 1\ + trade to the resources produced by that tile. It also increases a\ + tile's defense factor by 25%.\ +"), _("\ +Land units may move along rivers for faster travel (but not diagonally).\ + Triremes may also travel up rivers (although later boats cannot).\ +"), _("\ +Roads and railroads can only be built on River tiles if your\ + civilization has learned Bridge Building technology. Fortresses and\ + Airbases cannot be built on River tiles.\ +"), _("\ +Cities built on or next to rivers incur a small risk of flooding,\ + which will destroy stored food.\ +") + +[extra_gold] +name = _("Gold") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.gold" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_iron] +name = _("Iron") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.iron" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_game] +name = _("?animals:Game") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.tundra_game" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_furs] +name = _("Furs") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.furs" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_coal] +name = _("Coal") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.coal" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_fish] +name = _("Fish") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.fish" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_fruit] +name = _("Fruit") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.fruit" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_gems] +name = _("Gems") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.gems" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_buffalo] +name = _("Buffalo") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.buffalo" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_wheat] +name = _("Wheat") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.wheat" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_oasis] +name = _("Oasis") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.oasis" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" +flags = "AllowsFarmlandOnDesert" + +[extra_peat] +name = _("Peat") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.peat" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_pheasant] +name = _("Pheasant") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.pheasant" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_resources] +name = _("Resources") +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 = "-" +rmact_gfx_alt2 = "-" + +[extra_ivory] +name = _("Ivory") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.arctic_ivory" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_silk] +name = _("Silk") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.silk" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_spice] +name = _("Spice") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.spice" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_whales] +name = _("Whales") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.whales" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_wine] +name = _("Wine") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.wine" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +[extra_oil] +name = _("Oil") +category = "Resource" +causes = "Resource" +;rmcauses = "" +graphic = "ts.oil" +graphic_alt = "-" +activity_gfx = "None" +act_gfx_alt = "-" +act_gfx_alt2 = "-" +rmact_gfx = "None" +rmact_gfx_alt = "-" +rmact_gfx_alt2 = "-" + +; /* <-- 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" +; See also [extraui] section +; 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 does "Conquer Extras" to 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 +; +; */ <-- avoid gettext warnings + +[base_fort] +extra = "Fort" +gui_type = "Fortress" +border_sq = -1 + +[base_fortress] +extra = "Fortress" +gui_type = "Fortress" +border_sq = -1 + +[base_airstrip] +extra = "Airstrip" +gui_type = "Airbase" +border_sq = -1 + +[base_airbase] +extra = "Airbase" +gui_type = "Airbase" +border_sq = -1 + +[base_buoy] +extra = "Buoy" +gui_type = "Fortress" +vision_main_sq = 5 + +; /* <-- 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 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 loading old savegames. +; gui_type = How gui should handle this base. +; Value can be "Road", "Railroad", "Maglev", or "Other" +; 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_road] +extra = "Road" +move_cost = 2 +food_incr = 0 +shield_incr = 0 +trade_incr = 1 +food_bonus = 0 +shield_bonus = 0 +trade_bonus = 0 +compat_special = "Road" +gui_type = "Road" + +[road_railroad] +extra = "Railroad" +move_cost = 1 +food_incr = 0 +shield_incr = 0 +trade_incr = 0 +food_bonus = 0 +shield_bonus = 50 +trade_bonus = 0 +compat_special = "Railroad" +gui_type = "Railroad" + +[road_maglev] +extra = "Maglev" +move_cost = 0 +food_incr = 0 +shield_incr = 0 +trade_incr = 0 +food_bonus = 0 +shield_bonus = 0 +trade_bonus = 0 +gui_type = "Maglev" + +[road_river] +extra = "River" +move_cost = 2 +move_mode = "Cardinal" +trade_incr_const = 1 +compat_special = "River" +flags = "River" +gui_type = "Other" diff --git a/units.ruleset b/units.ruleset new file mode 100644 index 0000000..272ec33 --- /dev/null +++ b/units.ruleset @@ -0,0 +1,2893 @@ +; 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. +; +; You should sort role units from worst to better, as often the best +; available role unit of a given sort will be picked by choosing +; the first available (not obsolete) such unit, or by picking the last +; such unit directly. When determining starting units, the first +; unit with the relevant role that the player can build will be chosen. +; If no such unit can be found (eg Explorers that require Seafaring), +; then the first unit with this role will be chosen. + +[datafile] +description = "Domesecration unit_type data for Freeciv" +options = "+Freeciv-3.2-ruleset web-compatible" +format_version = 30 + +[control] +; Names for custom unit type flags. There can be up to 50 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" + _("Fortress"), _("Can build Forts and Fortresses.") + _("Transform") + _("AirAttacker"), _("Very bad at attacking AEGIS.") + _("Submarine"), _("Attack value halved when attacking Destroyer.") + _("Unbribable") + _("TradeRoute"), _("Can establish trade routes (must travel to target city).") + _("HelpWonder") + _("Capturer"), _("Can capture some enemy units.") + _("Capturable"), _("Can be captured by some enemy units.") + _("Bombarder") + _("Cities") + _("AddToCity") + _("Nuclear") + _("Paratroopers"), _("Can be paradropped from a friendly city or suitable base.") + _("Marines"), _("Can launch attack from non-native tiles.") + _("Cant_Fortify") + _("OneAttack") + _("Herd"), _("Feeds on grasslands, farms and plains.") + } + +; Names for custom unit class flags. There can be up to 25 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" + _("Airliftable"), _("Can be airlifted from a suitable city.") + _("AttFromNonNative"), _("Can launch attack from non-native tiles.") + _("Missile") + _("CanPillage") + _("CanFortify"), + ; /* xgettext:no-c-format */ + _("Gets a 50% defensive bonus while in cities.") + _("Barracks"), _("Benefits from barracks") + _("Ground"), _("Ground units") + _("Aerial"), _("Aerial units") + } + +[veteran_system] +; What are the names of the levels? +veteran_names = _("green"), _("veteran"), _("hardened"), _("elite") + +; The percentage chance of increasing level through combat +veteran_base_raise_chance = 50, 33, 20, 0 + +; The percentage chance of a settler/engineer increasing level through +; performing useful work (per turn) +veteran_work_raise_chance = 3, 2, 1, 0 + +; Power factors are as a percentage. +; +50% is represented by 150 +veteran_power_fact = 100, 150, 175, 200 + +; 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, 0, 0, 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 defense 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 harbor) +; 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 +; "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 undefended barbarian leader +; "ZOC" = Unit is subject to ZOC rules. Unit type flag "IgZOC" can +; override this +; "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. The effect "Unit_No_Lose_Pop" and the server +; setting 'killcitizen' can disable this. +; "HutFrighten" = Will frighten rather than enter huts. +; "NonNatBombardTgt" = Certain attacks against these units are considered +; Nonnative Bombard Attack type +; +; */ <-- avoid gettext warnings + +[unitclass_missile] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Missile") +min_speed = 0 +hp_loss_pct = 0 +flags = "Missile", "Unreachable", "DoesntOccupyTile", "Airliftable", + "HutFrighten", "Aerial" + +[unitclass_land] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Land") +min_speed = 1 +hp_loss_pct = 0 +flags = "TerrainSpeed", "DamageSlows", "CanOccupyCity", "BuildAnywhere", + "CollectRansom", "ZOC", "CanFortify", "CanPillage", + "TerrainDefense", "Airliftable", "NonNatBombardTgt", + "Barracks", "Ground" + +[unitclass_land_small] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Small Land") +min_speed = 1 +hp_loss_pct = 0 +flags = "TerrainSpeed", "DamageSlows", "BuildAnywhere", "CollectRansom", + "ZOC", "CanFortify", "TerrainDefense", "DoesntOccupyTile", + "Airliftable", "NonNatBombardTgt", "Barracks", "Ground" + +[unitclass_land_big] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Big Land") +min_speed = 1 +hp_loss_pct = 0 +flags = "TerrainSpeed", "DamageSlows", "CanOccupyCity", "BuildAnywhere", + "CollectRansom","ZOC", "CanFortify", "KillCitizen", "Airliftable", + "NonNatBombardTgt", "Barracks", "Ground" + +[unitclass_merchant] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Merchant") +min_speed = 1 +hp_loss_pct = 0 +flags = "BuildAnywhere", "DoesntOccupyTile", + "ZOC", "TerrainDefense", "TerrainSpeed", "Airliftable", + "NonNatBombardTgt", "Barracks", "Ground" + +[unitclass_sea] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Sea") +min_speed = 2 +hp_loss_pct = 0 +flags = "DamageSlows", "AttackNonNative", "AttFromNonNative" + +[unitclass_trireme] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Trireme") +min_speed = 2 +hp_loss_pct = 0 +flags = "ZOC", "DamageSlows", "AttFromNonNative" + +[unitclass_heli] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Helicopter") +min_speed = 1 +hp_loss_pct = 10 +flags = "Unreachable", "DoesntOccupyTile", "CanOccupyCity", "CollectRansom", "Airliftable", + "Aerial" + +[unitclass_air] +; /* TRANS: Unit class: used adjectivally */ +name = _("?unitclass:Air") +min_speed = 1 +hp_loss_pct = 10 +flags = "Unreachable", "DoesntOccupyTile", "CanPillage", + "Airliftable", "HutFrighten", "Aerial" + +; /* <-- avoid gettext warnings +; +; Below: The individual unit types, one per section. +; +; The number can be variable, up to 300. +; However for the "official" rulesets, units should not be removed +; because that would break backward compatibility 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. +; graphic_alt2 = tag for second alternative graphic. +; reqs = requirements to build the unit (see effects.ruleset +; and README.effects for help on requirements) +; 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 = Max number of units that can be transported. +; 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) +; tp_defense = Method to decide if unit can be selected as a defender when +; transported. +; "Blocked" - Can't defend when transported +; "Alight" - Can defend if can alight or unload (current default) +; "Always" - Can defend even when transported +; 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 +; +; veteran_names = Special veteran level for this unit. See the definitions in +; game.ruleset. All of the veteran_* entries have to have the +; same length! +; veteran_base_raise_chance = +; veteran_work_raise_chance = +; veteran_power_fact = +; veteran_move_bonus = +; +; 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. +; "LowFirepower" = Defender firepower is reduced to low firepower +; value defined in game.ruleset when +; ever this has non-zero value. +; Bonus is defined in attackers entry. +; "CityDefensePct" = In a city, instead of "Defend_Bonus" effect +; uses this bonus. +; Bonus is defined in defenders 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 +; "FieldUnit" = cause unhappiness even when not being aggressive +; "Settlers" = can irrigate and build roads +; "Diplomat" = can defend against 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 +; "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 is built with no homecity, 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 +; "RandomMovement" = Unit makes random movements in the beginning of the turn, +; player has no control over its movement +; +; 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. +; "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 +; "BarbarianBoatTech" = can be created as boat for sea barbarian, if someone has +; researched its tech requirements +; "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_settlers] +name = _("Settlers") +class = "Small Land" +;reqs +obsolete_by = "None" +graphic = "u.settlers" +graphic_alt = "-" +sound_move = "m_settlers" +sound_move_alt = "m_generic" +sound_fight = "f_settlers" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 2 +attack = 0 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 1 +uk_gold = 0 +tp_defense = "Alight" +flags = "Settlers", "Cant_Fortify", "NonMil", "HasNoZOC", "AddToCity", + "Cities", "Fortress" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "CitiesStartUnit" +helptext = _("\ +Settlers are one of the key units in the game, as they are your main \ +means of founding new cities.\ +"), _("\ +Settlers can also perform the same terrain alterations as Workers.\ +"), _("\ +TIP: optimal production of Settlers occurs in cities of at most \ +size 4, or cities with a Granary of at most size 6.\ +") + +[unit_migrants] +name = _("Migrants") +class = "Small Land" +reqs = + { "type", "name", "range" + "Tech", "Pottery", "Player" + } +obsolete_by = "None" +graphic = "u.migrants" +graphic_alt = "u.worker" +sound_move = "m_worker" +sound_move_alt = "m_generic" +sound_fight = "f_worker" +sound_fight_alt = "f_generic" +build_cost = 10 +pop_cost = 1 +attack = 0 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 1 +uk_gold = 0 +tp_defense = "Alight" +flags = "Settlers", "Cant_Fortify", "NonMil", "HasNoZOC", "AddToCity", + "Capturable", "Fortress" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "Settlers" +helptext = _("\ +Migrants can be used to transfer population to other cities, but \ +may not found new cities. They can also perform the same terrain \ +alterations as Workers.\ +"), _("\ +TIP: Migrants can be a good alternative to Workers in overpopulated \ +cities, as they benefit from free food upkeep.\ +") + +[unit_worker] +name = _("?unit:Workers") +class = "Small Land" +;reqs +obsolete_by = "Engineers" +graphic = "u.worker" +graphic_alt = "u.engineers" ; for compatibility +sound_move = "m_worker" +sound_move_alt = "m_generic" +sound_fight = "f_worker" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "Settlers", "Cant_Fortify", "NonMil", "HasNoZOC", "Fortress" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "Settlers", "WorkerStartUnit" +helptext = _("\ +Workers have the ability to improve terrain tiles. See the help on \ +Terrain and Terrain Alterations for the effects of their actions.\ +") + +[unit_engineers] +name = _("Engineers") +class = "Small Land" +reqs = + { "type", "name", "range" + "Tech", "Explosives", "Player" + } +obsolete_by = "None" +graphic = "u.engineers" +graphic_alt = "-" +sound_move = "m_engineers" +sound_move_alt = "m_generic" +sound_fight = "f_engineers" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 0 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "Settlers", "Cant_Fortify", "NonMil", "HasNoZOC", "Fortress", "Transform" +veteran_names = _("beginner"), _("seasoned"), _("senior"), _("expert") +veteran_base_raise_chance = 50, 33, 20, 0 +veteran_work_raise_chance = 3, 2, 1, 0 +veteran_power_fact = 100, 150, 175, 200 +veteran_move_bonus = 0, 0, 0, 0 +roles = "Settlers", "WorkerStartUnit" +helptext = _("\ +Engineers are similar to Workers, but they work twice as fast, \ +move twice as fast, and may gain experience from work enabling \ +them to work even faster.\ +"), _("\ +With knowledge of Fusion Power, Engineers may also perform more \ +radical terrain transformations than Workers, Settlers, or Migrants, \ +with the \"transform\" order. Examples include conversion of \ +Tundra into Plains, or even Ocean into Swamp in some circumstances \ +(when on board an ocean-going vessel, on a tile surrounded by \ +sufficient existing land). See the Terrain Alterations section \ +for more details.\ +") + +[unit_warriors] +name = _("Warriors") +class = "Land" +;reqs +obsolete_by = "Musketeers" +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 = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer", "Fortress" +roles = "DefendOk", "DefendOkStartUnit", "FirstBuild" +helptext = _("\ +This unit may be built from the start of the game. It is the\ + weakest offensive unit.\ +") + +[unit_phalanx] +name = _("Phalanx") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Bronze Working", "Player" + } +obsolete_by = "Pikemen" +graphic = "u.phalanx" +graphic_alt = "-" +sound_move = "m_phalanx" +sound_move_alt = "m_generic" +sound_fight = "f_phalanx" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 0 +attack = 1 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit", "FirstBuild" +helptext = _("\ +The Phalanx is armored infantry, suitable for defending your cities.\ +") + +[unit_archers] +name = _("Archers") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Warrior Code", "Player" + } +obsolete_by = "Musketeers" +graphic = "u.archers" +graphic_alt = "-" +sound_move = "m_archers" +sound_move_alt = "m_generic" +sound_fight = "f_archers" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 0 +attack = 3 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer", "Fortress" +roles = "DefendOk", "Hut" +helptext = _("\ +Archers fight with bows and arrows and have a good offensive\ + value.\ +") + +[unit_legion] +name = _("Legion") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Iron Working", "Player" + } +obsolete_by = "Musketeers" +graphic = "u.legion" +graphic_alt = "-" +sound_move = "m_legion" +sound_move_alt = "m_generic" +sound_fight = "f_legion" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 4 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Marines", "Capturer", "Fortress" +roles = "DefendOk", "BarbarianBuild", "BarbarianSea" +helptext = _("\ +Legions are heavily armed and well disciplined infantry\ + units with an excellent offensive value.\ +") + +[unit_pikemen] +name = _("Pikemen") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Feudalism", "Player" + } +obsolete_by = "Musketeers" +graphic = "u.pikemen" +graphic_alt = "-" +sound_move = "m_pikemen" +sound_move_alt = "m_generic" +sound_fight = "f_pikemen" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 2 +defense = 3 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit", "FirstBuild" +helptext = _("\ +Equipped with long pikes, Pikemen replaces Phalanx\ + as the preferred city defender.\ +") + +[unit_musketeers] +name = _("Musketeers") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Gunpowder", "Player" + } +obsolete_by = "Riflemen" +graphic = "u.musketeers" +graphic_alt = "-" +sound_move = "m_musketeers" +sound_move_alt = "m_generic" +sound_fight = "f_musketeers" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 3 +defense = 3 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Marines", "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit", "FirstBuild", "HutTech", + "BarbarianTech", "BarbarianBuildTech", "BarbarianSeaTech" +helptext = _("\ +Musketeers are infantry equipped with early\ + firearms and replace Pikemen as the preferred\ + city defender.\ +") + +[unit_riflemen] +name = _("Riflemen") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Conscription", "Player" + } +obsolete_by = "Marines" +graphic = "u.riflemen" +graphic_alt = "-" +sound_move = "m_riflemen" +sound_move_alt = "m_generic" +sound_fight = "f_riflemen" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 5 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Marines", "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit", "FirstBuild" +helptext = _("\ +Riflemen are World War-era infantry, very good\ + at defending your cities.\ +") + +[unit_alpine_troops] +name = _("Alpine Troops") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Tactics", "Player" + } +obsolete_by = "None" +graphic = "u.alpine_troops" +graphic_alt = "-" +sound_move = "m_alpine_troops" +sound_move_alt = "m_generic" +sound_fight = "f_alpine_troops" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 7 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +embarks = "Helicopter" +disembarks = "Helicopter" +flags = "IgTer", "Capturer", "Fortress" +roles = "DefendOk", "DefendOkStartUnit" +helptext = _("\ +Alpine Troops are highly mobile units as well as\ + excellent defenders.\ +") + +[unit_partisan] +name = _("Partisan") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Guerilla Warfare", "Player" + } +obsolete_by = "None" +graphic = "u.partisan" +graphic_alt = "-" +sound_move = "m_partisan" +sound_move_alt = "m_generic" +sound_fight = "f_partisan" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 4 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 6 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +embarks = "Helicopter" +disembarks = "Helicopter" +flags = "IgTer", "IgZOC", "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit", "Partisan", "BarbarianTech" +helptext = _("\ +Partisans are guerilla fighters who are experts\ + at using the terrain to their advantage.\ +"), _("\ +A number of Partisans are granted free when an enemy conquers your\ + city -- they automatically assume defensive positions in the\ + surrounding countryside -- but only under these conditions:\n\ + - Guerilla Warfare must be known by at least one player.\n\ + - At least three quarters of the citizens must have your nationality.\n\ + - You must know about Communism and Gunpowder.\n\ + - You must run either a Democracy or a Communist government.\ +") + +[unit_fanatics] +name = _("Fanatics") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Guerilla Warfare", "Player" + "Gov", "Fundamentalism", "Player" + } +obsolete_by = "None" +graphic = "u.fanatics" +graphic_alt = "-" +sound_move = "m_fanatics" +sound_move_alt = "m_generic" +sound_fight = "f_fanatics" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 1 +attack = 5 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 1 +uk_gold = 0 +tp_defense = "Alight" +embarks = "Helicopter" +disembarks = "Helicopter" +flags = "Fanatic", "AddToCity", "Capturer", "Fortress" +roles = "DefendGood", "DefendGoodStartUnit" +helptext = _("\ +Fanatics are warriors extremely devoted to a higher cause.\ +"), _("\ +Fundamentalist nations can maintain Fanatic units without\ + having to pay any upkeep nor causing military unhappiness. \ + Instead, each unit reduces the population by 1.\ +") + +[unit_marines] +name = _("Marines") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Amphibious Warfare", "Player" + } +obsolete_by = "None" +graphic = "u.marines" +graphic_alt = "-" +sound_move = "m_marines" +sound_move_alt = "m_generic" +sound_fight = "f_marines" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 8 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +embarks = "Helicopter" +disembarks = "Helicopter" +flags = "Marines", "Capturer", "Fortress" +roles = "DefendGood", "DefendOkStartUnit", "FirstBuild", "BarbarianSeaTech" +helptext = _("\ +Marines are infantry who are experts at marine warfare.\ +") + +[unit_paratroopers] +name = _("Paratroopers") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Combined Arms", "Player" + } +obsolete_by = "None" +graphic = "u.paratroopers" +graphic_alt = "-" +sound_move = "m_paratroopers" +sound_move_alt = "m_generic" +sound_fight = "f_paratroopers" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 6 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +embarks = "Helicopter" +disembarks = "Helicopter" +flags = "Paratroopers", "Capturer", "Fortress" +roles = "DefendOk" +helptext = _("\ +Paratroopers are experts at airborne attacks. From a friendly city, \ +airbase, or airstrip, Paratroopers who have not expended any \ +movement points can paradrop directly to any tile in range, and be \ +immediately ready to act there. (Beware dropping into unseen territory, \ +as Paratroopers landing on a tile occupied by enemy units are easy \ +targets!)\ +") +paratroopers_range = 10 + +[unit_mech_inf] +name = _("Mech. Inf.") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Labor Union", "Player" + } +obsolete_by = "None" +graphic = "u.mech_inf" +graphic_alt = "-" +sound_move = "m_mech_inf" +sound_move_alt = "m_generic" +sound_fight = "f_mech_inf" +sound_fight_alt = "f_generic" +build_cost = 70 +pop_cost = 0 +attack = 6 +defense = 6 +hitpoints = 30 +firepower = 1 +move_rate = 3 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "" +roles = "DefendGood", "DefendGoodStartUnit", "FirstBuild" +helptext = _("\ +The Mechanized Infantry has the strongest inherent defensive strength \ +of any land unit, and is very fast on roads and easy terrain, but it is \ +hindered rather than helped by rough terrain (it cannot move into \ +mountains, swamps, or jungles), and it is only available near the end \ +of the technology tree.\ +") + +[unit_horsemen] +name = _("Horsemen") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Horseback Riding", "Player" + } +obsolete_by = "Knights" +graphic = "u.horsemen" +graphic_alt = "-" +sound_move = "m_horsemen" +sound_move_alt = "m_generic" +sound_fight = "f_horsemen" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 0 +attack = 2 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "AttackFastStartUnit", "Hut", "Barbarian", "Hunter" +helptext = _("\ +Horsemen are mounted warriors and an early\ + shock-troop that can penetrate deep into\ + enemy territory.\ +") + +[unit_chariot] +name = _("Chariot") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "The Wheel", "Player" + } +obsolete_by = "Dragoons" +graphic = "u.chariot" +graphic_alt = "-" +sound_move = "m_chariot" +sound_move_alt = "m_generic" +sound_fight = "f_chariot" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 4 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "AttackFastStartUnit" +helptext = _("\ +Chariots are horse-pulled war wagons. They have a stronger attack than \ +Horsemen, but their speed comes at a cost: they are more expensive \ +to build, they cannot take advantage of terrain to defend themselves, \ +they cannot move in rough terrain (mountains, swamps, and jungles) \ +without roads, and they cannot be transported by sea using early ships \ +(Triremes and Caravels).\ +") + +[unit_elephants] +name = _("Elephants") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Polytheism", "Player" + } +obsolete_by = "Dragoons" +graphic = "u.elephants" +graphic_alt = "u.chariot" +sound_move = "m_elephants" +sound_move_alt = "m_generic" +sound_fight = "f_elephants" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 3 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "DefendOk", "AttackFastStartUnit", "Hunter" +helptext = _("\ +Elephants are towering animals trained for war that are often used as\ + powerful shock troops.\ +") + +[unit_crusaders] +name = _("Crusaders") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Monotheism", "Player" + } +obsolete_by = "Dragoons" +graphic = "u.crusaders" +graphic_alt = "u.knights" +sound_move = "m_crusaders" +sound_move_alt = "m_generic" +sound_fight = "f_crusaders" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 5 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "AttackFastStartUnit", "Hunter" +helptext = _("\ +Crusaders are highly disciplined mounted\ + warriors driven by a higher cause.\ +") + +[unit_knights] +name = _("Knights") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Chivalry", "Player" + } +obsolete_by = "Dragoons" +graphic = "u.knights" +graphic_alt = "-" +sound_move = "m_knights" +sound_move_alt = "m_generic" +sound_fight = "f_knights" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 4 +defense = 3 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "DefendOk", "AttackFastStartUnit", + "HutTech","BarbarianTech", "BarbarianBuildTech", "Hunter" +helptext = _("\ +Knights are mounted and heavily armored warriors.\ +") + +[unit_dragoons] +name = _("Dragoons") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Leadership", "Player" + } +obsolete_by = "Cavalry" +graphic = "u.dragoons" +graphic_alt = "-" +sound_move = "m_dragoons" +sound_move_alt = "m_generic" +sound_fight = "f_dragoons" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 5 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "AttackFastStartUnit", "BarbarianBuildTech", "Hunter" +helptext = _("\ +Dragoons are mounted warriors carrying early firearms.\ +") + +[unit_cavalry] +name = _("Cavalry") +class = "Land" +reqs = + { "type", "name", "range" + "Tech", "Tactics", "Player" + } +obsolete_by = "Armor" +graphic = "u.cavalry" +graphic_alt = "-" +sound_move = "m_cavalry" +sound_move_alt = "m_generic" +sound_fight = "f_cavalry" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 8 +defense = 3 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "Capturer" +roles = "AttackFastStartUnit", "Hunter" +helptext = _("\ +Cavalry are mounted and highly trained soldiers.\ +") + +[unit_armor] +name = _("Armor") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Mobile Warfare", "Player" + } +obsolete_by = "None" +graphic = "u.armor" +graphic_alt = "-" +sound_move = "m_armor" +sound_move_alt = "m_generic" +sound_fight = "f_armor" +sound_fight_alt = "f_generic" +build_cost = 90 +pop_cost = 0 +attack = 10 +defense = 5 +hitpoints = 30 +firepower = 1 +move_rate = 3 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "" +roles = "DefendOk", "AttackFastStartUnit", "Hunter" +helptext = _("\ +Armors are motorized war wagons that are faster, stronger, and can take \ +more damage than any mounted unit. However, they are less adaptable to \ +very rough terrain (they cannot move into mountains, swamps, or jungles \ +without roads), and unable to use less rough terrain to improve their \ +defense.\ +") + +[unit_catapult] +name = _("Catapult") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Mathematics", "Player" + } +obsolete_by = "Cannon" +graphic = "u.catapult" +graphic_alt = "-" +sound_move = "m_catapult" +sound_move_alt = "m_generic" +sound_fight = "f_catapult" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 6 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "" +roles = "AttackStrongStartUnit" +helptext = _("\ +Catapults are large rock-throwing machines of war.\ + They are very strong attackers but equally weak\ + defenders and will need an escort to be effective.\ +"), _("\ +While powerful, Catapults (and their successors) are bulky and awkward; \ +they require roads to move in rough terrain (mountains, swamps, and \ +jungles), are difficult to defend, and are too big for early ships \ +(Triremes and Caravels).\ +") + +[unit_cannon] +name = _("Cannon") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Metallurgy", "Player" + } +obsolete_by = "Artillery" +graphic = "u.cannon" +graphic_alt = "-" +sound_move = "m_cannon" +sound_move_alt = "m_generic" +sound_fight = "f_cannon" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 8 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "" +roles = "AttackStrongStartUnit", "BarbarianTech", "BarbarianBuildTech" +helptext = _("\ +Cannons are large firearms that can fire heavy projectiles over long \ +distances. As with the catapults they replace, they are very strong \ +attackers but equally weak defenders and will need an escort to be \ +effective, and have limited mobility.\ +") + +[unit_artillery] +name = _("Artillery") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Machine Tools", "Player" + } +obsolete_by = "Howitzer" +graphic = "u.artillery" +graphic_alt = "-" +sound_move = "m_artillery" +sound_move_alt = "m_generic" +sound_fight = "f_artillery" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 10 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "CityBuster" +roles = "AttackStrongStartUnit" +helptext = _("\ +The artillery is an upgraded cannon. As with its predecessors, it is a \ +very strong attacker but equally weak defender and will need an escort \ +to be effective, and has limited mobility.\ +") + +[unit_howitzer] +name = _("Howitzer") +class = "Big Land" +reqs = + { "type", "name", "range" + "Tech", "Robotics", "Player" + } +obsolete_by = "None" +graphic = "u.howitzer" +graphic_alt = "-" +sound_move = "m_howitzer" +sound_move_alt = "m_generic" +sound_fight = "f_howitzer" +sound_fight_alt = "f_generic" +build_cost = 80 +pop_cost = 0 +attack = 12 +defense = 2 +hitpoints = 30 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "CityBuster" +roles = "AttackStrongStartUnit" +helptext = _("\ +Howitzers are upgraded artillery with improved defensive as well as \ +offensive capabilities. However, they still have the limited mobility \ +of their predecessors.\ +") + +[unit_fighter] +name = _("Fighter") +class = "Air" +reqs = + { "type", "name", "range" + "Tech", "Flight", "Player" + } +obsolete_by = "Stealth Fighter" +graphic = "u.fighter" +graphic_alt = "-" +sound_move = "m_fighter" +sound_move_alt = "m_generic" +sound_fight = "f_fighter" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 4 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 10 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 2 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +targets = "Air", "Missile", "Helicopter" +flags = "AirAttacker", "HasNoZOC" +roles = "DefendOk", "DefendOkStartUnit" +helptext = _("\ +Fighters are your first airborne units. They can\ + move anywhere and attack any unit.\ +"), +; /* xgettext:no-c-format */ +_("\ +Fighters and other aircraft lose 10% of their hitpoints for every \ +turn not spent in a city, airstrip, or airbase, or on a Carrier.\ +") + +[unit_bomber] +name = _("Bomber") +class = "Air" +reqs = + { "type", "name", "range" + "Tech", "Advanced Flight", "Player" + } +obsolete_by = "Stealth Bomber" +graphic = "u.bomber" +graphic_alt = "-" +sound_move = "m_bomber" +sound_move_alt = "m_generic" +sound_fight = "f_bomber" +sound_fight_alt = "f_generic" +build_cost = 100 +pop_cost = 0 +attack = 6 +defense = 2 +hitpoints = 30 +firepower = 1 +move_rate = 8 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 3 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "FieldUnit", "OneAttack", "AirAttacker", "Bombarder", "HasNoZOC" +roles = "" +helptext = _("\ +Bombers are specialized airborne units that may\ + only attack ground targets, not other airborne\ + units.\ +"), _("\ +A Bomber's attack against units on land is a bombard attack; against\ + units on water it has a regular attack.\ +"), +; /* xgettext:no-c-format */ +_("\ +As with other aircraft, Bombers lose 10% of their hitpoints for every \ +turn not spent in a city, airstrip, or airbase, or on a Carrier.\ +") +bombard_rate = 3 + +[unit_helicopter] +name = _("Helicopter") +class = "Helicopter" +reqs = + { "type", "name", "range" + "Tech", "Combined Arms", "Player" + } +obsolete_by = "None" +graphic = "u.helicopter" +graphic_alt = "-" +sound_move = "m_helicopter" +sound_move_alt = "m_generic" +sound_fight = "f_helicopter" +sound_fight_alt = "f_generic" +build_cost = 70 +pop_cost = 0 +attack = 5 +defense = 3 +hitpoints = 30 +firepower = 1 +move_rate = 6 +vision_radius_sq = 8 +transport_cap = 1 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land" +flags = "OneAttack", "AirAttacker", "Bombarder", "HasNoZOC", + "Provoking" +roles = "" +helptext = _("\ +A Helicopter's attack against units on land is a bombard attack; against \ +units on water it has a regular attack.\ +"), _("\ +Helicopters can also transport one military land unit; while most troops \ +must load or unload in a city, airstrip, or airbase (and not in the field \ +or onboard a Carrier), units specializing in mobility (Paratroopers, \ +Alpine Troops, Marines, Partisans, and Fanatics) can embark or disembark \ +at any time.\ +"), _("\ +Unlike other aircraft, Helicopters are not required to return to a city, \ +base, or Carrier to refuel after a set number of turns; however, care \ +must be exercised, due to the health they lose every turn.\ +") +bombard_rate = 2 + +[unit_stealth_fighter] +name = _("Stealth Fighter") +class = "Air" +reqs = + { "type", "name", "range" + "Tech", "Stealth", "Player" + } +obsolete_by = "None" +graphic = "u.stealth_fighter" +graphic_alt = "-" +sound_move = "m_stealth_fighter" +sound_move_alt = "m_generic" +sound_fight = "f_stealth_fighter" +sound_fight_alt = "f_generic" +build_cost = 80 +pop_cost = 0 +attack = 8 +defense = 8 +hitpoints = 20 +firepower = 1 +move_rate = 14 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 2 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +targets = "Air", "Missile", "Helicopter" +vision_layer = "Stealth" +flags = "AirAttacker", "HasNoZOC" +roles = "DefendGood", "DefendGoodStartUnit" +helptext = _("\ +An improved Fighter, with improved attack and a higher movement\ + radius.\ +") + +[unit_stealth_bomber] +name = _("Stealth Bomber") +class = "Air" +reqs = + { "type", "name", "range" + "Tech", "Stealth", "Player" + } +obsolete_by = "None" +graphic = "u.stealth_bomber" +graphic_alt = "-" +sound_move = "m_stealth_bomber" +sound_move_alt = "m_generic" +sound_fight = "f_stealth_bomber" +sound_fight_alt = "f_generic" +build_cost = 120 +pop_cost = 0 +attack = 9 +defense = 5 +hitpoints = 30 +firepower = 1 +move_rate = 12 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 3 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +vision_layer = "Stealth" +flags = "FieldUnit", "OneAttack", "AirAttacker", "Bombarder", "HasNoZOC" +roles = "DefendOk", "DefendOkStartUnit" +helptext = _("\ +An improved Bomber, with improved attack and a higher movement\ + radius.\ +") +bombard_rate = 4 + +[unit_trireme] +name = _("Trireme") +class = "Trireme" +reqs = + { "type", "name", "range" + "Tech", "Map Making", "Player" + } +obsolete_by = "Transport" +graphic = "u.trireme" +graphic_alt = "-" +sound_move = "m_trireme" +sound_move_alt = "m_generic" +sound_fight = "f_trireme" +sound_fight_alt = "f_generic" +build_cost = 20 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_radius_sq = 2 +transport_cap = 2 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land", "Small Land", "Merchant" +flags = "BadCityDefender", "HasNoZOC", "Provoking", "NonMil" +roles = "Ferryboat", "FerryStartUnit" +helptext = _("\ +The Trireme is your first boat unit. It can act\ + as a transport ship, and unlike later boats can\ + travel on rivers, but it may not enter deep ocean\ + tiles. It cannot attack other ships, though it\ + may still defend itself when attacked.\ +") + +[unit_caravel] +name = _("Caravel") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Magnetism", "Player" + } +obsolete_by = "Galleon" +graphic = "u.caravel" +graphic_alt = "-" +sound_move = "m_caravel" +sound_move_alt = "m_generic" +sound_fight = "f_caravel" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 0 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_radius_sq = 2 +transport_cap = 3 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land", "Small Land", "Merchant" +flags = "BadCityDefender", "Only_Native_Attack", "HasNoZOC", + "Provoking", "NonMil" +roles = "Ferryboat", "FerryStartUnit", "BarbarianBoat" +helptext = _("\ +The Caravel is a sailing ship that can enter\ + any ocean tile.\ +") + +[unit_galleon] +name = _("Galleon") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Navigation", "Player" + } +obsolete_by = "Transport" +graphic = "u.galleon" +graphic_alt = "-" +sound_move = "m_galleon" +sound_move_alt = "m_generic" +sound_fight = "f_galleon" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 0 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 4 +vision_radius_sq = 2 +transport_cap = 4 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land", "Small Land", "Big Land", "Merchant" +flags = "BadCityDefender", "HasNoZOC", "Provoking", "NonMil" +roles = "Ferryboat", "FerryStartUnit", "BarbarianBoat" +helptext = _("\ +The Galleon is a big transport ship, the first which can\ + transport large wheeled units.\ +") + +[unit_frigate] +name = _("Frigate") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Navigation", "Player" + } +obsolete_by = "Ironclad" +graphic = "u.frigate" +graphic_alt = "-" +sound_move = "m_frigate" +sound_move_alt = "m_generic" +sound_fight = "f_frigate" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 3 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 4 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "BadCityDefender" +roles = "Hunter" +helptext = _("\ +The Frigate is a specialized ship with a strong offensive value,\ + and can attack units on land, but it cannot transport units.\ +") + +[unit_ironclad] +name = _("Ironclad") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Steam Engine", "Player" + } +obsolete_by = "Destroyer" +graphic = "u.ironclad" +graphic_alt = "-" +sound_move = "m_ironclad" +sound_move_alt = "m_generic" +sound_fight = "f_ironclad" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 4 +defense = 3 +hitpoints = 20 +firepower = 1 +move_rate = 4 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "BadCityDefender" +roles = "Hunter" +helptext = _("\ +The Ironclad is an armored ship,\ + more sturdy than the Frigate.\ +") + +[unit_destroyer] +name = _("Destroyer") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Engineering", "Player" + } +obsolete_by = "None" +graphic = "u.destroyer" +graphic_alt = "-" +sound_move = "m_destroyer" +sound_move_alt = "m_generic" +sound_fight = "f_destroyer" +sound_fight_alt = "f_generic" +build_cost = 60 +pop_cost = 0 +attack = 4 +defense = 4 +hitpoints = 30 +firepower = 1 +move_rate = 6 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +bonuses = + { "flag", "type", "value" + "Submarine", "DefenseMultiplier", 1 + } +flags = "BadCityDefender" +roles = "Hunter" +helptext = _("\ +An improved Ironclad, with better move rate and vision.\ + Anti-submarine weapons double its defense against Submarines.\ +"), _("\ +TIP: A very fast unit, which is very useful for hunting down enemy\ + Transports and Submarines.\ +") + +[unit_cruiser] +name = _("Cruiser") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Steel", "Player" + } +obsolete_by = "AEGIS Cruiser" +graphic = "u.cruiser" +graphic_alt = "-" +sound_move = "m_cruiser" +sound_move_alt = "m_generic" +sound_fight = "f_cruiser" +sound_fight_alt = "f_generic" +build_cost = 80 +pop_cost = 0 +attack = 6 +defense = 6 +hitpoints = 30 +firepower = 1 +move_rate = 5 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "BadCityDefender" +roles = "DefendOk", "DefendOkStartUnit" +helptext = _("\ +The Cruiser is a strong offensive boat unit.\ +") + +[unit_aegis_cruiser] +name = _("AEGIS Cruiser") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Rocketry", "Player" + } +obsolete_by = "None" +graphic = "u.aegis_cruiser" +graphic_alt = "-" +sound_move = "m_aegis_cruiser" +sound_move_alt = "m_generic" +sound_fight = "f_aegis_cruiser" +sound_fight_alt = "f_generic" +build_cost = 100 +pop_cost = 0 +attack = 8 +defense = 8 +hitpoints = 30 +firepower = 1 +move_rate = 5 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +bonuses = + { "flag", "type", "value" + "AirAttacker", "DefenseMultiplier", 4 + } +flags = "BadCityDefender" +roles = "DefendGood", "DefendGoodStartUnit" +helptext = _("\ +The AEGIS Cruiser is equipped with an advanced\ + defensive missile system.\ +") + +[unit_battleship] +name = _("Battleship") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Mass Production", "Player" + } +obsolete_by = "None" +graphic = "u.battleship" +graphic_alt = "-" +sound_move = "m_battleship" +sound_move_alt = "m_generic" +sound_fight = "f_battleship" +sound_fight_alt = "f_generic" +build_cost = 160 +pop_cost = 0 +attack = 12 +defense = 12 +hitpoints = 30 +firepower = 1 +move_rate = 4 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +flags = "BadCityDefender" +roles = "DefendOk", "DefendOkStartUnit" +helptext = _("\ +The Battleship is the supreme naval unit with\ + excellent offensive and defensive values.\ +") + +[unit_submarine] +name = _("Submarine") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Combustion", "Player" + } +obsolete_by = "None" +graphic = "u.submarine" +graphic_alt = "-" +sound_move = "m_submarine" +sound_move_alt = "m_generic" +sound_fight = "f_submarine" +sound_fight_alt = "f_generic" +build_cost = 70 +pop_cost = 0 +attack = 12 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 5 +vision_radius_sq = 8 +transport_cap = 8 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Missile" +vision_layer = "Subsurface" +flags = "BadCityDefender", "Only_Native_Attack", + "Submarine", "Provoking" +roles = "Hunter" +helptext = _("\ +Traveling under the surface of the ocean, Submarines have\ + a very high strategic value, but a weak defense if caught\ + off guard.\ +") + +[unit_carrier] +name = _("Carrier") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Advanced Flight", "Player" + } +obsolete_by = "None" +graphic = "u.carrier" +graphic_alt = "-" +sound_move = "m_carrier" +sound_move_alt = "m_generic" +sound_fight = "f_carrier" +sound_fight_alt = "f_generic" +build_cost = 150 +pop_cost = 0 +attack = 0 +defense = 9 +hitpoints = 40 +firepower = 1 +move_rate = 5 +vision_radius_sq = 8 +transport_cap = 8 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land", "Air", "Missile", "Helicopter" +flags = "BadCityDefender", "HasNoZOC", "Provoking" +roles = "DefendGood" +helptext = _("\ +The Carrier is a mobile airport.\ +"), _("\ +It can transport aircraft and military land units (not wheeled),\ + although land units cannot always be transferred to and from Helicopters\ + while onboard (see Helicopter help).\ +"), _("\ +TIP: Guard Carriers with a handful of fast-moving ships and a\ + battleship, as losing a fully-equipped Carrier is VERY\ + painful and expensive.\ +") + +[unit_transport] +name = _("Transport") +class = "Sea" +reqs = + { "type", "name", "range" + "Tech", "Engineering", "Player" + } +obsolete_by = "None" +graphic = "u.transport" +graphic_alt = "-" +sound_move = "m_transport" +sound_move_alt = "m_generic" +sound_fight = "f_transport" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 0 +defense = 3 +hitpoints = 30 +firepower = 1 +move_rate = 5 +vision_radius_sq = 8 +transport_cap = 8 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 1 +tp_defense = "Alight" +cargo = "Land", "Small Land", "Big Land", "Merchant" +flags = "Settlers", "BadCityDefender", "HasNoZOC", + "Provoking", "NonMil" +veteran_names = _("green"), _("veteran"), _("hardened"), _("elite") +veteran_base_raise_chance = 50, 33, 20, 0 +veteran_work_raise_chance = 0, 0, 0, 0 +veteran_power_fact = 100, 150, 175, 200 +veteran_move_bonus = 0, 0, 0, 0 +roles = "Ferryboat", "FerryStartUnit" +helptext = _("\ +The Transport cannot attack on its own but\ + may defend itself when under attack.\ +"), _("\ +Transports can also clean pollution and fallout on water tiles, and \ +with knowledge of Miniaturization, may build oil platforms on deep ocean \ +tiles (for use by Offshore Platforms).\ +") +; FIXME: also cleans pollution/fallout in coastal cities (and faster +; than Engineers) + +[unit_cruise_missile] +name = _("Cruise Missile") +class = "Missile" +reqs = + { "type", "name", "range" + "Tech", "Rocketry", "Player" + } +obsolete_by = "None" +graphic = "u.cruise_missile" +graphic_alt = "-" +sound_move = "m_cruise_missile" +sound_move_alt = "m_generic" +sound_fight = "f_cruise_missile" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 18 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 16 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +targets = "Air", "Missile", "Helicopter" +flags = "OneAttack", "AirAttacker", "CityBuster", "HasNoZOC" +roles = "" +helptext = _("\ +The Cruise Missile is a long-distance missile\ + that can strike deep into enemy territory.\ +"), _("\ +TIP: A handful of these can successfully keep the waters around\ + your treasured homeland free of enemy ships.\ +") + +[unit_nuclear] +name = _("Nuclear") +class = "Missile" +reqs = + { "type", "name", "range" + "Tech", "Nuclear Fission", "Player" + } +obsolete_by = "None" +graphic = "u.nuclear" +graphic_alt = "-" +sound_move = "m_nuclear" +sound_move_alt = "m_generic" +sound_fight = "f_nuclear" +sound_fight_alt = "f_generic" +build_cost = 160 +pop_cost = 0 +attack = 99 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 0 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "FieldUnit", "OneAttack", "Nuclear", "HasNoZOC" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "" +helptext = _("\ +You can build Nuclear units when you have the required advance, and\ + the Manhattan Project wonder has been built by any player.\ + However, without further technology they cannot move on their own.\ +"), _("\ +With Advanced Flight, all Nuclear units (including those already\ + built) gain a range of 8 movement points, and Rocketry increases\ + this to 16.\ +"), _("\ +On impact, the blast will destroy any unit in an area 3 tiles wide\ + (3x3 squares for rectangular grids), including friendly units.\ + Any city within the blast area loses half its population, and\ + land tiles within the blast area are subject to nuclear fallout.\ +"), _("\ +Nuclear fallout reduces tile output and increases the risk of global\ + nuclear winter; see the help on Fallout.\ +"), _("\ +TIP: You may be involved in a situation where you've invaded an\ + enemy country en masse, but the enemy cities are too strong.\ + Before using a Nuclear unit, assemble a gang of cleanup units\ + next to the city and have them ready to fix the fallout on the\ + same turn it occurs! This minimizes the chance of nuclear winter.\ + Eco-friendly nukes!\ +") + +[unit_diplomat] +name = _("Diplomat") +class = "Small Land" +reqs = + { "type", "name", "range" + "Tech", "Alphabet", "Player" + } +obsolete_by = "Spy" +graphic = "u.diplomat" +graphic_alt = "-" +sound_move = "m_diplomat" +sound_move_alt = "m_generic" +sound_fight = "f_diplomat" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 0 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +vision_layer = "Stealth" +flags = "Diplomat", "IgZOC", "NonMil", "HasNoZOC", + "Provoking" +veteran_names = +; /* TRANS: diplomatic rank. */ + _("?diplomatic_rank:attaché"), +; /* TRANS: diplomatic rank */ + _("?diplomatic_rank:secretary"), +; /* TRANS: diplomatic rank */ + _("?diplomatic_rank:envoy"), +; /* TRANS: diplomatic rank */ + _("?diplomatic_rank:ambassador") +veteran_base_raise_chance = 50, 33, 20, 0 +veteran_work_raise_chance = 0, 0, 0, 0 +veteran_power_fact = 100, 105, 110, 115 +veteran_move_bonus = 0, 0, 0, 0 +roles = "DiplomatStartUnit" +helptext = _("\ +A Diplomat is an official that carries your dispatches and\ + is authorized to deal with foreign dignitaries. He may\ + also undertake various covert operations with the intent of\ + harming your opponents; Diplomats in your own cities defend\ + them against such actions.\ +"), _("\ +Many covert actions may be attempted even in peacetime, but the more\ + aggressive actions will be discovered and cause diplomatic incidents,\ + giving an excuse for the breaking of treaties by a Federation or\ + Democracy, or a nuclear-armed regime otherwise restrained by the\ + United Nations.\ +"), _("\ +If a foreign unit is alone on a tile, you may attempt to bribe it\ + with your Diplomat. By paying a sum of gold the unit will immediately\ + become yours; the exact sum depends on the status of the unit and\ + that of the civilization owning it. Bribery when not at war will cause\ + a diplomatic incident. Homeless Diplomats cannot bribe units.\ +"), _("\ +Diplomats can also perform a number of actions in another player's\ + city, although each Diplomat may attempt only one action. Most of\ + these actions have a chance of failure. Also, any enemy Diplomats or\ + Spies in the city will oppose hostile actions, as will the enemy Leader\ + in games with leaders; in this case, either your unit or the defending\ + unit will die (if you go up against the Leader you will always die). If\ + the defending unit dies, you lose one movement point and may try again.\ +"), _("\ +The actions available to Diplomats in a city are:\ +"), _("\ + - \"Establish Embassy\": This action always succeeds, and gives\ + permanent contact with the city's owner, as well as intelligence\ + on their tax rates and technology. Each player you have an embassy\ + with that knows a technology reduces that technology's research\ + cost to you.\ +"), _("\ + - \"Investigate City\": Your unit attempts to report detailed\ + information about the city: its status, what buildings and units are\ + within, and what it is currently producing.\ + The unit is not consumed by this action.\ +"), _("\ + - \"Sabotage City\": Your unit attempts either to disrupt all the\ + city's work so far towards its current project, or to destroy an\ + existing building in the city, at random. Once built, Palaces and\ + Wonders cannot be sabotaged, and attempts to sabotage City Walls\ + or any building in a capital each halve the chance of success.\ + Sabotage may only be attempted when openly at war.\ +"), _("\ + - \"Steal Technology\": Your unit attempts to learn the secrets of a\ + random technology known to the city's owner but not to you. Technology\ + may only be stolen once from a given enemy city by Diplomats. This\ + action may be attempted even when not at war, but will cause a\ + diplomatic incident.\ +"), _("\ + - \"Incite a Revolt\": In return for gold a foreign city will change\ + allegiance and join your empire, bringing along all nearby units that\ + call it home, but reducing its size by 1. Units in other cities\ + remain in the enemy's control, but units outside cities are lost to\ + both players. The exact sum depends on the status of the city and\ + that of the civilization that owns it. It is not possible to incite\ + a rebellion in a capital, or in any city with Courthouse. Incitement\ + may be attempted in peacetime, but will cause a diplomatic incident.\ +"), _("\ +In some game strategies, hordes of Diplomats can be used to wreak\ + havoc on the enemy. Little wonder that Diplomats are often\ + viewed with suspicion and fear!\ +"), _("\ +Diplomats built under Communist or Federation governments will\ + start at the first veteran level (secretary).\ +"), +; /* xgettext:no-c-format */ +_("\ +The cost to bribe units or incite cities increases +50% for each 1000 \ +culture points accumulated by the target player, up to +500% (as if \ +the distance to the capital was 6 times lower) when the player reaches \ +10000 culture points.\ +"), +; /* xgettext:no-c-format */ +_("\ +A city gets +5% resistance in diplomatic fights against enemy agents for \ +each 100 culture points, up to +50% when the city reaches 1000 culture \ +points.\ +") + +[unit_spy] +name = _("Spy") +class = "Small Land" +reqs = + { "type", "name", "range" + "Tech", "Espionage", "Player" + } +obsolete_by = "None" +graphic = "u.spy" +graphic_alt = "-" +sound_move = "m_spy" +sound_move_alt = "m_generic" +sound_fight = "f_spy" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 0 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +vision_layer = "Stealth" +flags = "Diplomat", "IgZOC", "NonMil", "HasNoZOC", + "Spy", "Provoking" +veteran_names = +; /* TRANS: Spy veteran level */ + _("?spy_level:informant"), +; /* TRANS: Spy veteran level */ + _("?spy_level:handler"), +; /* TRANS: Spy veteran level */ + _("?spy_level:agent"), +; /* TRANS: Spy veteran level */ + _("?spy_level:spymaster") +veteran_base_raise_chance = 50, 33, 20, 0 +veteran_work_raise_chance = 0, 0, 0, 0 +veteran_power_fact = 100, 105, 110, 115 +veteran_move_bonus = 0, 0, 0, 0 +roles = "DiplomatStartUnit" +helptext = _("\ +A Spy is more skilled in the arts of espionage than her Diplomat predecessor.\ +"), _("\ +She can perform all the functions of the Diplomat; refer to the Diplomat\ + entry for more details. Unlike a Diplomat, a Spy may also survive an\ + operation in a foreign city and become more experienced as a result.\ + Spies are also more effective than Diplomats at defending cities\ + against foreign Diplomats and Spies.\ +"), _("\ +A Spy can also be used to:\n\ + - sabotage an enemy unit (reducing its hit points to half), if it is\ + alone on a tile and the players are at war;\n\ + - poison the water supply of an enemy city (reducing the population\ + by one);\n\ + - steal specific technology (with a reduced chance of success);\n\ + - steal further technologies from a city which has already been\ + stolen from (although cities become more resistant each time they\ + are stolen from);\n\ + - sabotage predetermined city targets (with a reduced chance of\ + success).\ +"), _("\ +A Spy that survives the more aggressive actions (sabotage, theft,\ + inciting rebellion, and poisoning) escapes to the safety of the\ + nearest friendly city.\ +"), _("\ +Spies built under Communist or Federation governments will start\ + at the first veteran level (handler).\ +") + +[unit_caravan] +name = _("Caravan") +class = "Merchant" +reqs = + { "type", "name", "range" + "Tech", "Trade", "Player" + } +obsolete_by = "Freight" +graphic = "u.caravan" +graphic_alt = "-" +sound_move = "m_caravan" +sound_move_alt = "m_generic" +sound_fight = "f_caravan" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "TradeRoute", "HelpWonder", "NonMil", "HasNoZOC", "Capturable" +roles = "" +helptext = _("\ +A Caravan carries goods or material for trading with other nations,\ + or to help build wonders in your own cities.\ +"), _("\ +Caravans cannot take advantage of maglevs, but may travel on\ + the railroads that accompany them.\ +"), _("\ +A Caravan sent to a foreign city (one not owned by an enemy) can\ + establish a trade route. The route's ongoing revenue is doubled\ + if the two cities involved are on different continents. Each city\ + can support a maximum of two trade routes.\ +"), _("\ +A Caravan sent to one of your own cities that is building a wonder\ + can add 50 shields towards its production. If your city is not\ + building a wonder, the Caravan can take no special action.\ +"), _("\ +TIP: You can stockpile a stack of Caravans in advance and bring\ + them all into a city where you have started to build a wonder,\ + and finish it in only one turn!\ +") + +[unit_freight] +name = _("Freight") +class = "Merchant" +reqs = + { "type", "name", "range" + "Tech", "The Corporation", "Player" + } +obsolete_by = "None" +graphic = "u.freight" +graphic_alt = "-" +sound_move = "m_freight" +sound_move_alt = "m_generic" +sound_fight = "f_freight" +sound_fight_alt = "f_generic" +build_cost = 50 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "TradeRoute", "HelpWonder", "NonMil", "HasNoZOC", "Capturable" +roles = "" +helptext = _("\ +The Freight unit replaces the Caravan, and moves at twice the speed.\ + It has the same behavior and movement restrictions.\ +") + +[unit_explorer] +name = _("Explorer") +class = "Small Land" +reqs = + { "type", "name", "range" + "Tech", "Seafaring", "Player" + } +obsolete_by = "None" +graphic = "u.explorer" +graphic_alt = "-" +sound_move = "m_explorer" +sound_move_alt = "m_generic" +sound_fight = "f_explorer" +sound_fight_alt = "f_generic" +build_cost = 30 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_radius_sq = 6 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "IgTer", "IgZOC", "NonMil", "HasNoZOC", "Cant_Fortify" +roles = "Explorer", "ExplorerStartUnit" +helptext = _("\ +Explorers are brave individuals that are very useful for\ + mapping unknown territory.\ +"), _("\ +Explorers can also perform some actions in another player's city:\ +"), _("\ + - \"Establish Embassy\": This action always succeeds, and gives\ + permanent contact with the city's owner, as well as intelligence\ + on their tax rates and technology. Each player you have an embassy\ + with that knows a technology reduces that technology's research\ + cost to you.\ +"), _("\ + - \"Investigate City\": Your unit attempts to report detailed\ + information about the city: its status, what buildings and units are\ + within, and what it is currently producing.\ + The unit is not consumed by this action.\ +") + +[unit_leader] +name = _("?unit:Leader") +class = "Land" +;reqs +obsolete_by = "None" +graphic = "u.leader" +graphic_alt = "u.explorer" +sound_move = "m_leader" +sound_move_alt = "m_generic" +sound_fight = "f_leader" +sound_fight_alt = "f_generic" +build_cost = 10 +pop_cost = 0 +attack = 0 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_radius_sq = 8 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +tp_defense = "Alight" +flags = "IgZOC", "NonMil", "NoBuild", "NoHome", "SuperSpy", + "EvacuateFirst", "Unbribable", "GameLoss", "Unique", + "Provoking" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "KingStartUnit" +helptext = _("\ +This is you. If you lose this unit, you lose the game. So don't.\ +"), _("\ +Won't unleash barbarians from huts.\ +") + +[unit_barbarian_leader] +name = _("Barbarian Leader") +class = "Land" +;reqs +obsolete_by = "None" +graphic = "u.barbarian_leader" +graphic_alt = "u.diplomat" +sound_move = "m_barbarian_leader" +sound_move_alt = "m_generic" +sound_fight = "f_barbarian_leader" +sound_fight_alt = "f_generic" +build_cost = 40 +pop_cost = 0 +attack = 0 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_radius_sq = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +tp_defense = "Alight" +flags = "IgZOC", "NonMil", "Unbribable", + "EvacuateFirst", "SuperSpy", "NoHome", "NoBuild" +; No veteran levels (level name is never displayed) +veteran_names = _("green") +veteran_base_raise_chance = 0 +veteran_work_raise_chance = 0 +veteran_power_fact = 100 +veteran_move_bonus = 0 +roles = "BarbarianLeader" +helptext = _("\ +One Barbarian Leader appears every time there is a barbarian uprising\ + somewhere in the world.\ +"), _("\ +When a Barbarian Leader is killed on a tile without any defending units,\ + the ransom is paid, but only to land units and helicopters.\ + Usually the ransom is 100 gold, but can be less if the barbarian has\ + less money.\ +") + +[unit_awacs] +name = _("AWACS") +class = "Air" +reqs = + { "type", "name", "range" + "Tech", "Advanced Flight", "Player" + } +obsolete_by = "None" +graphic = "u.awacs" +graphic_alt = "u.bomber" ; backwards compatibility +sound_move = "m_awacs" +sound_move_alt = "m_generic" +sound_fight = "f_awacs" +sound_fight_alt = "f_generic" +build_cost = 140 +pop_cost = 0 +attack = 0 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 16 +vision_radius_sq = 26 +transport_cap = 0 +fuel = 3 +uk_happy = 0 +uk_shield = 1 +uk_food = 0 +uk_gold = 1 +tp_defense = "Alight" +flags = "HasNoZOC" +roles = "" +helptext = _("\ +The AWACS (Airborne Warning and Control System) is an airplane with an \ +advanced radar that can determine the location of enemy units over a \ +wide area.\ +") + +[unit_storm] +name = _("Storm") +class = "Sea" +; reqs = +obsolete_by = "None" +graphic = "u.storm" +graphic_alt = "u.galleon" +sound_move = "m_storm" +sound_move_alt = "m_generic" +sound_fight = "f_storm" +sound_fight_alt = "f_generic" +build_cost = 10 +pop_cost = 0 +attack = 0 +defense = 9 +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 +tp_defense = "Alight" +flags = "NoBuild", "Cant_Fortify", "Unbribable", + "HasNoZOC", "NoVeteran", "RandomMovement" +roles = "" +helptext = _("\ +Storms move randomly at seas.\ +")