commit 27c674d2d650e48d0a31dce79067b542d6186897 Author: Adrien Jaguenet Date: Sat Feb 21 14:29:36 2026 +0100 First commit 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.\ +")