diff -r -u -N freeciv-orig/client/packhand.c freeciv-1.9.0/client/packhand.c --- freeciv-orig/client/packhand.c Sat Dec 25 11:55:49 1999 +++ freeciv-1.9.0/client/packhand.c Mon Jan 3 21:01:32 2000 @@ -1092,6 +1092,7 @@ u->defense_strength = p->defense_strength; u->move_rate = p->move_rate; u->tech_requirement = p->tech_requirement; + u->improve_requirement = p->improve_requirement; u->vision_range = p->vision_range; u->transport_capacity = p->transport_capacity; u->hp = p->hp; @@ -1155,6 +1156,8 @@ strcpy(b->name, p->name); b->is_wonder = p->is_wonder; b->tech_requirement = p->tech_requirement; + b->req[0] = p->req[0]; + b->req[1] = p->req[1]; b->build_cost = p->build_cost; b->shield_upkeep = p->shield_upkeep; b->obsolete_by = p->obsolete_by; diff -r -u -N freeciv-orig/common/city.c freeciv-1.9.0/common/city.c --- freeciv-orig/common/city.c Sat Dec 25 11:55:48 1999 +++ freeciv-1.9.0/common/city.c Mon Jan 3 21:01:28 2000 @@ -322,10 +322,15 @@ int could_build_improvement(struct city *pcity, enum improvement_type_id id) { /* modularized so the AI can choose the tech it wants -- Syela */ + struct improvement_type *pimprovement; if (!improvement_exists(id)) return 0; if (city_got_building(pcity, id)) return 0; + pimprovement = get_improvement_type(id); + if ((pimprovement->req[0] != B_NONE && !city_got_building(pcity, pimprovement->req[0])) || + (pimprovement->req[1] != B_NONE && !city_got_building(pcity, pimprovement->req[1]))) + return 0; if ((city_got_building(pcity, B_HYDRO)|| city_got_building(pcity, B_POWER) || city_got_building(pcity, B_NUCLEAR)) && (id==B_POWER || id==B_HYDRO || id==B_NUCLEAR)) return 0; @@ -476,6 +481,9 @@ if (!can_build_unit_direct(pcity, id)) return 0; if (can_build_unit_direct(pcity, unit_types[id].obsoleted_by)) + return 0; + if (unit_types[id].improve_requirement != B_NONE && + !city_got_building(pcity, unit_types[id].improve_requirement)) return 0; return 1; } diff -r -u -N freeciv-orig/common/city.h freeciv-1.9.0/common/city.h --- freeciv-orig/common/city.h Sat Dec 25 11:55:48 1999 +++ freeciv-1.9.0/common/city.h Mon Jan 3 21:01:28 2000 @@ -37,11 +37,15 @@ B_CAPITAL, B_LAST }; +/* Originally set to -1 but packet transfered it as unsigned 8 bit number */ +#define B_NONE B_LAST + struct improvement_type { char name[MAX_LEN_NAME]; char name_orig[MAX_LEN_NAME]; /* untranslated */ int is_wonder; int tech_requirement; + int req[2]; int build_cost; int shield_upkeep; int obsolete_by; diff -r -u -N freeciv-orig/common/packets.c freeciv-1.9.0/common/packets.c --- freeciv-orig/common/packets.c Sat Dec 25 11:55:48 1999 +++ freeciv-1.9.0/common/packets.c Mon Jan 3 21:01:28 2000 @@ -2137,6 +2137,7 @@ cptr=put_uint8(cptr, packet->defense_strength); cptr=put_uint8(cptr, packet->move_rate); cptr=put_uint8(cptr, packet->tech_requirement); + cptr=put_uint8(cptr, packet->improve_requirement); cptr=put_uint8(cptr, packet->vision_range); cptr=put_uint8(cptr, packet->transport_capacity); cptr=put_uint8(cptr, packet->hp); @@ -2187,6 +2188,7 @@ iget_uint8(&iter, &packet->defense_strength); iget_uint8(&iter, &packet->move_rate); iget_uint8(&iter, &packet->tech_requirement); + iget_uint8(&iter, &packet->improve_requirement); iget_uint8(&iter, &packet->vision_range); iget_uint8(&iter, &packet->transport_capacity); iget_uint8(&iter, &packet->hp); @@ -2295,6 +2297,8 @@ cptr=put_uint8(cptr, packet->id); cptr=put_uint8(cptr, packet->is_wonder); cptr=put_uint8(cptr, packet->tech_requirement); + cptr=put_uint8(cptr, packet->req[0]); + cptr=put_uint8(cptr, packet->req[1]); cptr=put_uint16(cptr, packet->build_cost); cptr=put_uint8(cptr, packet->shield_upkeep); cptr=put_uint8(cptr, packet->obsolete_by); @@ -2326,6 +2330,8 @@ iget_uint8(&iter, &packet->id); iget_uint8(&iter, &packet->is_wonder); iget_uint8(&iter, &packet->tech_requirement); + iget_uint8(&iter, &packet->req[0]); + iget_uint8(&iter, &packet->req[1]); iget_uint16(&iter, &packet->build_cost); iget_uint8(&iter, &packet->shield_upkeep); iget_uint8(&iter, &packet->obsolete_by); diff -r -u -N freeciv-orig/common/packets.h freeciv-1.9.0/common/packets.h --- freeciv-orig/common/packets.h Sat Dec 25 11:55:48 1999 +++ freeciv-1.9.0/common/packets.h Mon Jan 3 21:01:28 2000 @@ -481,6 +481,7 @@ int defense_strength; int move_rate; int tech_requirement; + int improve_requirement; int vision_range; int transport_capacity; int hp; @@ -519,6 +520,7 @@ char name[MAX_LEN_NAME]; int is_wonder; int tech_requirement; + int req[2]; int build_cost; int shield_upkeep; int obsolete_by; diff -r -u -N freeciv-orig/common/unit.h freeciv-1.9.0/common/unit.h --- freeciv-orig/common/unit.h Sat Dec 25 11:55:48 1999 +++ freeciv-1.9.0/common/unit.h Mon Jan 3 21:01:28 2000 @@ -179,6 +179,7 @@ int defense_strength; int move_rate; int tech_requirement; + int improve_requirement; int vision_range; int transport_capacity; int hp; diff -r -u -N freeciv-orig/data/mom/buildings.ruleset freeciv-1.9.0/data/mom/buildings.ruleset --- freeciv-orig/data/mom/buildings.ruleset Wed Dec 31 19:00:00 1969 +++ freeciv-1.9.0/data/mom/buildings.ruleset Mon Jan 3 21:01:28 2000 @@ -0,0 +1,1050 @@ + +; 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 "set buildings " 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, including non-default variants. + +[datafile] +description="Default buildings data for Freeciv (as Civ2, minus a few)" +options="1.9" + +; Below: The individual buildings, one per section. +; (Buildings = City Improvements and Wonders) +; For now, the number of such sections must be kept the same (=68). +; Also, the actual building effects are currently still hardwired, +; according to position in this list of sections. +; +; 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 = name as seen by user +; tech_req = advance required to build; special value "Never" +; meaning building is never available +; obsolete_by = advance which makes building obsolete; value "None" +; if does not become obsolete +; is_wonder = 1 for wonders (only one instance can ever be built) +; build_cost = production shields required to build +; upkeep = monetary upkeep value +; variant = controls hardwired effects options, unique to each +; building; 0 means default effect; see README.rulesets +; helptext = optional help text string; should escape all raw newlines +; so that xgettext parsing works + +[building_airport] +name = _("Airport") +tech_req = "Radio" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 3 +variant = 0 +helptext = _("\ +Allows a city to produce veteran air units. Also, damaged air units\ + which stay in town for one full turn without moving are completely\ + restored.\ +\n\n\ +Two cities with Airports can airlift one unit per turn. \ + 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.\ +") + +[building_aqueduct] +name = _("Aqueduct") +tech_req = "Construction" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 2 +variant = 0 +; auto-help + +[building_bank] +name = _("Bank") +tech_req = "Banking" +obsolete_by = "None" +is_wonder = 0 +build_cost = 120 +upkeep = 3 +variant = 0 +helptext = _("\ +Together with the Marketplace improvement, a Bank increases the\ + luxury and tax production within a city by 100%.\ +") + +[building_barracks] +name = _("Barracks") +tech_req = "None" +obsolete_by = "Gunpowder" +req1 = "Granary" +req2 = "None" +is_wonder = 0 +build_cost = 40 +upkeep = 1 +variant = 0 +helptext = _("\ +With a Barracks, each new land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defence strengths are increased by 50%. Also, damaged land units\ + which stay in town for one full turn without moving are completely\ + restored.\ +") +; auto-help on obsolete +; Variant 1: Affects all units, not just land units. + +[building_barracks_ii] +name = _("Barracks II") +tech_req = "Gunpowder" +obsolete_by = "Mobile Warfare" +is_wonder = 0 +build_cost = 40 +upkeep = 1 +variant = 0 +helptext = _("\ +With a Barracks, each new land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defence strengths are increased by 50%. Also, damaged land units\ + which stay in town for one full turn without moving are completely\ + restored.\ +") +; auto-help on obsolete +; Variant: Uses Barracks variant. + +[building_barracks_iii] +name = _("Barracks III") +tech_req = "Mobile Warfare" +obsolete_by = "None" +is_wonder = 0 +build_cost = 40 +upkeep = 1 +variant = 0 +helptext = _("\ +With a Barracks, each new land unit built in a city will\ + automatically have Veteran status, which means that its attack and\ + defence strengths are increased by 50%. Also, damaged land units\ + which stay in town for one full turn without moving are completely\ + restored.\ +") +; Variant: Uses Barracks variant. + +[building_cathedral] +name = _("Cathedral") +tech_req = "Monotheism" +obsolete_by = "None" +is_wonder = 0 +build_cost = 120 +upkeep = 3 +variant = 0 +helptext = _("\ +A Cathedral makes 3 unhappy citizens content in a city, making it\ + easier to maintain order in that city.\ +") +; auto-help tech + +[building_city_walls] +name = _("City Walls") +tech_req = "Masonry" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 0 +variant = 0 +helptext = _("\ +City Walls make it easier to defend a city. They triple the defence\ + strength of units within the city against ground and helicopter\ + units. They are ineffective against airborne and sea units as well\ + as Howitzers. City Walls also prevent the loss of population which\ + occurs when a defending unit is destroyed by a land unit.\ +") +; Variant 1: Also effective against sea units. + +[building_coastal_defense] +name = _("Coastal Defense") +tech_req = "Metallurgy" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 1 +variant = 0 +helptext = _("\ +Increases the defence strength of units within a city by a factor\ + of 2 when defending against bombardments from enemy ships.\ +") + +[building_colosseum] +name = _("Colosseum") +tech_req = "Construction" +obsolete_by = "None" +is_wonder = 0 +build_cost = 100 +upkeep = 4 +variant = 0 +helptext = _("\ +Entertains the citizens of a city, making 3 unhappy citizens content.\ +") +; auto-help tech + +[building_courthouse] +name = _("Courthouse") +tech_req = "Code of Laws" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 1 +variant = 0 +helptext = _("\ +Reduces the corruption in a city by 50%. Under a Democracy, a\ + Courthouse makes 1 unhappy citizen content. \ + Also halves the effective distance to the capital, for the purpose\ + of calculating revolt cost.\ +") + +[building_factory] +name = _("Factory") +tech_req = "Industrialization" +obsolete_by = "None" +is_wonder = 0 +build_cost = 200 +upkeep = 4 +variant = 0 +helptext = _("\ +Increases the shield production in a city by 50%, but also contributes\ + significantly to pollution.\ +") + +[building_granary] +name = _("Granary") +tech_req = "Pottery" +obsolete_by = "None" +is_wonder = 0 +build_cost = 60 +upkeep = 1 +variant = 0 +helptext = _("\ +The amount of stored food will be set to half full whenever a city\ + with a Granary shrinks or grows. This helps a city to grow faster\ + and more easily withstand famine.\ +") +; NOTE: +; In Civ2, city size reduction does not generate food like this. +; Dare I ask where this food comes from?? :-) + +[building_harbour] +name = _("Harbour") +tech_req = "Seafaring" +obsolete_by = "None" +is_wonder = 0 +build_cost = 60 +upkeep = 1 +variant = 0 +helptext = _("\ +Gives one extra food resource on all Ocean squares. The city needs\ + to be coastal to build this improvement.\ +") + +[building_hydro_plant] +name = _("Hydro Plant") +tech_req = "Electronics" +obsolete_by = "None" +is_wonder = 0 +build_cost = 240 +upkeep = 4 +variant = 0 +helptext = _("\ +Reduces the amount of pollution generated in a city. It also\ + increases the shield production of a Factory or Mfg. Plant in the\ + city: a Factory and a Hydro Plant together give a 75% production\ + bonus, and a Factory, Mfg. Plant and Hydro Plant together give\ + a 150% production bonus.\ +\n\n\ +A city can only have one Hydro Plant, Power Plant, or Nuclear\ + Plant. A city can only build a Hydro Plant if it is next to (or\ + on) a Mountain or River tile.\ +") +; NOTE: +; For Civ1 the first number above should be 100%, but the above +; describes current freeciv rules. + +[building_library] +name = _("Library") +tech_req = "Writing" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 1 +variant = 0 +helptext = _("\ +Increases the science output in a city by 50%.\ +") + +[building_marketplace] +name = _("Marketplace") +tech_req = "Currency" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 1 +variant = 0 +helptext = _("\ +Increases the luxury and tax output in a city by 50%.\ +") + +[building_mass_transit] +name = _("Mass Transit") +tech_req = "Mass Production" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 4 +variant = 0 +helptext = _("\ +Neutralises the pollution generated by the population. \ + The population simply has no effect on the pollution generated in\ + the city.\ +") + +[building_mfg_plant] +name = _("Mfg. Plant") +tech_req = "Robotics" +obsolete_by = "None" +is_wonder = 0 +build_cost = 320 +upkeep = 6 +variant = 0 +helptext = _("\ +Together with a Factory, a Manufacturing Plant increases the shield\ + production in a city by 100%.\ +") + +[building_nuclear_plant] +name = _("Nuclear Plant") +tech_req = "Nuclear Power" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 2 +variant = 0 +helptext = _("\ +Reduces the amount of pollution generated in a city. It also\ + increases the shield production of a Factory or Mfg. Plant in\ + the city: a Factory and a Nuclear Plant together give a 75%\ + production bonus, and a Factory, Mfg. Plant and Nuclear Plant\ + together give a 150% production bonus.\ +\n\n\ +A city can only have one Hydro Plant, or a Power Plant, or a\ + Nuclear Plant.\ +") +; NOTE: +; For Civ1 the first number above should be 100%, but the above +; describes current freeciv rules. +; There would also be a change of meltdown during civil disorder, +; but that has not been implemented yet. + +[building_offshore_platform] +name = _("Offshore Platform") +tech_req = "Miniaturization" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 3 +variant = 0 +helptext = _("\ +Adds 1 extra shield resource on all Ocean squares in a city. The\ + city needs to be coastal to build this improvement.\ +") + +[building_palace] +name = _("Palace") +tech_req = "Masonry" +obsolete_by = "None" +is_wonder = 0 +build_cost = 100 +upkeep = 0 +variant = 0 +helptext = _("\ +Makes a city the capital and the centre of your government. \ + Corruption in other cities is related to how far away from the\ + capital they are, except when the government is Democracy or\ + Communism. The cost of inciting a revolt in a city also depends\ + upon the city's distance from the capital (under all forms of\ + government).\ +\n\n\ +Take good care of your capital, as it's loss may result in your\ + empire plunging into civil war.\ +") + +[building_police_station] +name = _("Police Station") +tech_req = "Communism" +obsolete_by = "None" +is_wonder = 0 +build_cost = 60 +upkeep = 2 +variant = 0 +helptext = _("\ +Reduces the unhappiness caused by military units outside the city\ + by 2 under Democracy and 1 under Republic. This improvement has no\ + effect under other governments.\ +") +; Variant: Has the same variant and effect as "Women's Suffrage" (see +; also), but only for the city where it is built. + +[building_port_facility] +name = _("Port Facility") +tech_req = "Amphibious Warfare" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 3 +variant = 0 +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.\ +") + +[building_power_plant] +name = _("Power Plant") +tech_req = "Refining" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 4 +variant = 0 +helptext = _("\ +Increases the shield production of a Factory or Mfg. Plant in a\ + city: a Factory and a Power Plant together give a 75% production\ + bonus, and a Factory, Mfg. Plant and Power Plant together give\ + a 150% production bonus. The extra production may lead to the city\ + generating more pollution.\ +\n\n\ +A city can only have one Hydro Plant, or a Power Plant, or\ + a Nuclear Plant.\ +") +; NOTE: +; For Civ1 the first number above should be 100%, but the above +; describes current freeciv rules. + +[building_recycling_center] +name = _("Recycling Center") +tech_req = "Recycling" +obsolete_by = "None" +is_wonder = 0 +build_cost = 200 +upkeep = 2 +variant = 0 +helptext = _("\ +Building a recycling centre reduces the amount of pollution\ + generated by a city by 65%.\ +") + +[building_research_lab] +name = _("Research Lab") +tech_req = "Computers" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 3 +variant = 0 +helptext = _("\ +Together with a Library and a University, a Research Lab increases\ + the science production of a city by 150%.\ +") + +[building_sam_battery] +name = _("SAM Battery") +tech_req = "Rocketry" +obsolete_by = "None" +is_wonder = 0 +build_cost = 100 +upkeep = 2 +variant = 0 +helptext = _("\ +Doubles the defense of all units inside the city when attacked by\ + non-nuclear air units.\ +") + +[building_sdi_defense] +name = _("SDI Defense") +tech_req = "Laser" +obsolete_by = "None" +is_wonder = 0 +build_cost = 200 +upkeep = 4 +variant = 0 +helptext = _("\ +Protects a city from attacks from Nuclear units. Nuclear attacks\ + simply have no effect on the city. Also, doubles defence against\ + non-nuclear missiles.\ +") + +[building_sewer_system] +name = _("Sewer System") +tech_req = "Sanitation" +obsolete_by = "None" +is_wonder = 0 +build_cost = 120 +upkeep = 2 +variant = 0 +; auto-help + +[building_solar_plant] +name = _("Solar Plant") +tech_req = "Never" ; "Environmentalism" +obsolete_by = "None" +is_wonder = 0 +build_cost = 320 +upkeep = 4 +variant = 0 +; not implemented + +[building_space_component] +name = _("Space Component") +tech_req = "Plastics" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 0 +variant = 0 +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.\ +\n\n\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_space_module] +name = _("Space Module") +tech_req = "Superconductors" +obsolete_by = "None" +is_wonder = 0 +build_cost = 320 +upkeep = 0 +variant = 0 +helptext = _("\ +Space Modules are the most expensive parts of spaceships. There\ + are three different types of Space Module:\ +\n\n\ +- Habitation Module: provides living space for 10,000 people.\ +\n\n\ +- Life Support Module: provides food and water for the population of\ + one Habitation Module.\ +\n\n\ +- Solar Panels: provides the energy needed for any two of the other\ + Modules.\ +\n\n\ +You can build up to 4 Space Modules of each kind.\ +\n\n\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_space_structural] +name = _("Space Structural") +tech_req = "Space Flight" +obsolete_by = "None" +is_wonder = 0 +build_cost = 80 +upkeep = 0 +variant = 0 +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.\ +\n\n\ +Before you can build any spaceship parts, the Apollo Program wonder\ + must have been built by any player.\ +") + +[building_stock_exchange] +name = _("Stock Exchange") +tech_req = "Economics" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 4 +variant = 0 +helptext = _("\ +Together with a Marketplace and a Bank, a Stock Exchange boosts\ + tax and luxury production in a city by 150%.\ +") + +[building_super_highways] +name = _("Super Highways") +tech_req = "Automobile" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 3 +variant = 0 +helptext = _("\ +Increases trade resources by 50% on all squares with roads or\ + railroads.\ +") + +[building_supermarket] +name = _("Supermarket") +tech_req = "Refrigeration" +obsolete_by = "None" +is_wonder = 0 +build_cost = 120 +upkeep = 3 +variant = 0 +helptext = _("\ +Increases the food resources by 50% on each farmland square which\ + is being used around the city. Farmland squares are those which\ + have been irrigated a second time.\ +") + +[building_temple] +name = _("Temple") +tech_req = "Ceremonial Burial" +obsolete_by = "None" +is_wonder = 0 +build_cost = 40 +upkeep = 1 +variant = 0 +helptext = _("\ +Makes one unhappy citizen content. Both the Mysticism advance\ + and the Oracle wonder double this effect. With both Mysticism\ + and the Oracle, 4 citizens are made content.\ +") + +[building_university] +name = _("University") +tech_req = "University" +obsolete_by = "None" +is_wonder = 0 +build_cost = 160 +upkeep = 3 +variant = 0 +helptext = _("\ +Together with a Library, a University increases the science\ + production of a city by 100%.\ +") + +[building_apollo_program] +name = _("Apollo Program") +tech_req = "Space Flight" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +All cities on the map become visible for the player who owns it. \ + It allows all players to start building spaceship parts (assuming\ + they have researched the necessary technologies).\ +") + +[building_asmiths_trading_co] +name = _("A.Smith's Trading Co.") +tech_req = "Economics" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +City improvements which would normally have an upkeep of 1 are free\ + of upkeep, for all cities.\ +") + +[building_colossus] +name = _("Colossus") +tech_req = "Bronze Working" +obsolete_by = "Flight" +is_wonder = 1 +build_cost = 200 +upkeep = 0 +variant = 0 +helptext = _("\ +Each square around the city where this wonder is built produces one\ + extra trade resource.\ +") + +[building_copernicus_observatory] +name = _("Copernicus' Observatory") +tech_req = "Astronomy" +obsolete_by = "None" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Boosts science production by 50% in the city where it is built.\ +") + +[building_cure_for_cancer] +name = _("Cure For Cancer") +tech_req = "Genetic Engineering" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +This stunning technological achievement makes one unhappy\ + citizen content in all cities.\ +") + +[building_darwins_voyage] +name = _("Darwin's Voyage") +tech_req = "Railroad" +obsolete_by = "None" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Charles Darwin's voyage sparked the discovery of the evolution\ + of the species, which inspired greater confidence in science.\ + Gives two immediate technology advances.\ +") + +[building_eiffel_tower] +name = _("Eiffel Tower") +tech_req = "Never" +obsolete_by = "None" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +; Not implemented + +[building_great_library] +name = _("Great Library") +tech_req = "Literacy" +obsolete_by = "Electricity" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +The civilization which builds the Great Library gets every advance\ + that at least two other civilizations have achieved.\ +") + +[building_great_wall] +name = _("Great Wall") +tech_req = "Masonry" +obsolete_by = "Metallurgy" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Works as a City Wall in all cities.\ +") + +[building_hanging_gardens] +name = _("Hanging Gardens") +tech_req = "Pottery" +obsolete_by = "Railroad" +is_wonder = 1 +build_cost = 200 +upkeep = 0 +variant = 0 +helptext = _("\ +Makes one content citizen happy in every city. Makes two extra\ + content citizens happy in the city containing the Hanging Gardens\ + (that is, a total of 3). In the unlikely event where there are no\ + content citizens to get the effect of Hanging Gardens, the wonder\ + applies to unhappy citizens (making them content instead).\ +") + +[building_hoover_dam] +name = _("Hoover Dam") +tech_req = "Electronics" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +Works as if you had a Hydro Plant in every city. (This reduces\ + pollution and increases the effects of Factories and Mfg. Plants.)\ + Like a Hydro Plant, the Hoover Dam can only be built in a city\ + which is next to (or on) a Mountain or River tile. However, its\ + effect is applicable to the whole of your civilization (regardless\ + of whether a city is next to, or on, a Mountain or River tile).\ +") +; Variant 1: As above, but works only on the same continent as the +; city where it is built. + +[building_isaac_newtons_college] +name = _("Isaac Newton's College") +tech_req = "Theory of Gravity" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +Boosts science production by 100% in the city where it is built.\ +") + +[building_js_bachs_cathedral] +name = _("J.S. Bach's Cathedral") +tech_req = "Theology" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +Makes two unhappy citizens content in every city.\ +") +; Variant 1: As above, but works only on the same continent as the +; city where it is built. + +[building_king_richards_crusade] +name = _("King Richard's Crusade") +tech_req = "Engineering" +obsolete_by = "Industrialization" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Adds one extra shield resource on every square around the city\ + where it is built.\ +") + +[building_leonardos_workshop] +name = _("Leonardo's Workshop") +tech_req = "Invention" +obsolete_by = "Automobile" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +Upgrades one obsolete unit per game turn.\ +") +; Variant 1: Upgrades all obsolete units each turn. + +[building_lighthouse] +name = _("Lighthouse") +tech_req = "Map Making" +obsolete_by = "Magnetism" +is_wonder = 1 +build_cost = 200 +upkeep = 0 +variant = 0 +helptext = _("\ +Gives all sea units 1 additional movement point and eliminates the\ + risk of losing Triremes on the high seas. Makes all new sea units\ + veterans (for all cities).\ +") + +[building_magellans_expedition] +name = _("Magellan's Expedition") +tech_req = "Navigation" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +Gives all sea units 2 additional movement points.\ +") +; Variant 1: Only gives 1 additional movement point. + +[building_manhattan_project] +name = _("Manhattan Project") +tech_req = "Nuclear Fission" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +; auto-help + +[building_marco_polos_embassy] +name = _("Marco Polo's Embassy") +tech_req = "Trade" +obsolete_by = "Communism" +is_wonder = 1 +build_cost = 200 +upkeep = 0 +variant = 0 +helptext = _("\ +The player who owns it gets an embassy with all players.\ +") + +[building_michelangelos_chapel] +name = _("Michelangelo's Chapel") +tech_req = "Monotheism" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +helptext = _("\ +Counts as having a Cathedral in each of your cities. \ + This makes 3 unhappy citizens content in each city.\ +") +; auto-help tech + +[building_oracle] +name = _("Oracle") +tech_req = "Mysticism" +obsolete_by = "Theology" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Doubles the effect of Temples, in all cities.\ +") + +[building_pyramids] +name = _("Pyramids") +tech_req = "Masonry" +obsolete_by = "None" +is_wonder = 1 +build_cost = 200 +upkeep = 0 +variant = 0 +helptext = _("\ +Counts as having a Granary in every city.\ +") +; Variant 1: +; Allows you to choose any government, including those that have not yet +; been researched by your civilization, and without the transition +; period of Anarchy. + +[building_seti_program] +name = _("SETI Program") +tech_req = "Computers" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +Boosts science production in each city by 50%. (Counts as having\ + a Research Lab in all of your cities.)\ +") + +[building_shakespeares_theatre] +name = _("Shakespeare's Theatre") +tech_req = "Medicine" +obsolete_by = "None" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +Makes all unhappy citizens content, in the city where it is located.\ +") + +[building_statue_of_liberty] +name = _("Statue of Liberty") +tech_req = "Democracy" +obsolete_by = "None" +is_wonder = 1 +build_cost = 400 +upkeep = 0 +variant = 0 +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.\ +") + +[building_sun_tzus_war_academy] +name = _("Sun Tzu's War Academy") +tech_req = "Feudalism" +obsolete_by = "Mobile Warfare" +is_wonder = 1 +build_cost = 300 +upkeep = 0 +variant = 0 +helptext = _("\ +All your new ground units become veterans (for all cities). \ + The chance of a unit becoming a veteran after a battle increases\ + from 50% to 100%.\ +") +; Variant: Uses Barracks variant. + +[building_united_nations] +name = _("United Nations") +tech_req = "Communism" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +Units regain one extra hitpoint per turn.\ +") +; Variant 1: +; Allows you to choose any government, including those that have not yet +; been researched by your civilization, and without the transition +; period of Anarchy. +; +; NOTE: +; Variant 1 does not match Civ1 or Civ2, but diplomatic effects are +; not very effective in multiplayer, and hitpoints effects do not +; apply for Civ1. Note in Civ1 Pyramids have a gov-change effect, +; but become obsolete, and the Statue of Liberty does not exist. + +[building_womens_suffrage] +name = _("Women's Suffrage") +tech_req = "Industrialization" +obsolete_by = "None" +is_wonder = 1 +build_cost = 600 +upkeep = 0 +variant = 0 +helptext = _("\ +Counts as a Police Station in every city. (That is, for each city,\ + reduces unhappiness for military units outside the city by 2 under\ + Democracy and 1 under Republic. This wonder has no effect under\ + other governments.)\ +") +; Variant 1: The unhappiness effect of every unit (not just one unit +; per city) is reduced by 1. This means that in a Republic, units do +; not cause unhappiness, and in a Democracy, aggressive units cause +; only 1 unhappy citizen each. + +[building_capitalization] ; Special case +name = _("Capitalization") +tech_req = "The Corporation" +obsolete_by = "None" +is_wonder = 0 +build_cost = 999 +upkeep = 0 +variant = 0 +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).\ +") + +[b_special] + +; Special values: + +aqueduct_size=8; +sewer_size=12; + +; Techs which modify building effects: + +cathedral_plus="Theology" +cathedral_minus="Communism" +colosseum_plus="Electricity" +temple_plus="Mysticism" diff -r -u -N freeciv-orig/data/mom/units.ruleset freeciv-1.9.0/data/mom/units.ruleset --- freeciv-orig/data/mom/units.ruleset Wed Dec 31 19:00:00 1969 +++ freeciv-1.9.0/data/mom/units.ruleset Mon Jan 3 21:01:28 2000 @@ -0,0 +1,1397 @@ + +; 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 "set units " 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="Civ2 unit_type data for Freeciv (incomplete)" +options="1.9" + +[units_adjust] +max_hitpoints=0 ; 0 means no max +max_firepower=0 ; 0 means no max +firepower_factor=1 ; convenient for Civ1 + +; Below: The individual units, one per section. +; +; The number can be variable, up to 200. +; However for the "official" rulesets, units should not be removed +; because that would break backward compatability with savegames. +; +; The order here matters: later units are considered "better" for +; a given flag or role. +; +; The actual tag used (the * in [unit_*]) does not matter, except +; it must be unique within this file, and it may be used in debug +; output when reading this file. +; +; Notes: +; +; name = name as seen by user +; graphic = tag specifing preferred graphic +; graphic_alt = tag for alternate garphic if preferred graphic is not +; present; especially if preferred graphic is non-standard, +; this should be a standard tag. Otherwise can use eg "-" +; for no alternate graphic. +; tech_req = required advance, names from techs.ruleset, or special: +; "None" => available from start; "Never" => never available +; obsolete_by = another unit name +; move_type = "Land" or "Sea" or "Air" or "Heli" +; transport_cap = Number of units (ground, or air/missiles, depending on flags) +; fuel = number of turns, for air units +; uk_* = upkeep costs, these are used as base values in the game +; flags = special flag strings, as in common/unit.h,unit.c +; roles = special role strings, as in common/unit.h,unit.c +; helptext = optional help text string; should escape all raw newlines +; so that xgettext parsing works +; +; Following flag strings require extra fields: +; "Paratroopers" +; paratroopers_range = the maximal range the unit can be paradropped to +; paratroopers_mr_req = the move rate which is required at least for +; paradropping +; paratroopers_mr_sub = the move rate which is subtracted after paradropping +; + +[unit_settlers] +name = _("Settlers") +move_type = "Land" +tech_req = "None" +obsolete_by = "Engineers" +graphic = "u.settlers" +graphic_alt = "-" +build_cost = 40 +attack = 0 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 0 +flags = "Settlers", "NonMil", "Airbase" +roles = "" +helptext = _("\ +Setters are one of the key units in the game. They can be used to\ + found new cities, irrigate land, build roads, railroads,\ + fortresses, airbases\ + and mines, and clean up pollution. Upkeep for Settlers is in food\ + as well as production, and a Setter can die if its supporting city\ + runs out of food.\ +\n\n\ +Settlers and Engineers may work together to decrease the amount of\ + time required for long projects. If two or more Settlers and/or\ + Engineers are both working on the same task in the same square,\ + their efforts will be added together each turn until the task is\ + finished. Be careful not to dedicate too many workers to one task,\ + though; excess effort can be wasted, and a group of Settlers and/or\ + Engineers is highly vulnerable to enemy attacks.\ +") + +[unit_engineers] +name = _("Engineers") +move_type = "Land" +tech_req = "Explosives" +obsolete_by = "None" +graphic = "u.engineers" +graphic_alt = "-" +build_cost = 40 +attack = 0 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 1 +uk_food = 1 +uk_gold = 0 +flags = "Settlers", "NonMil", "Transform", "Airbase" +roles = "" +helptext = _("\ +Engineers are similar to Settlers, but they work twice as fast and\ + move twice as fast. Engineers may also perform major terrain\ + transformations (for example, converting Tundra into Desert) which\ + are beyond the capabilities of Settlers.\ +\n\n\ +TIP 1: Upgrade Settlers to Engineers when possible, as Engineers\ + require the same resources as ordinary Settlers.\ +\n\n\ +TIP 2: If you manage to build Leonardo's Workshop, research\ + Explosives before the Workshop becomes obsolete. This way,\ + your Settler units will be upgraded for free.\ +") + +[unit_warriors] +name = _("Warriors") +move_type = "Land" +tech_req = "None" +improve_req = "Barracks" +obsolete_by = "Pikemen" +graphic = "u.warriors" +graphic_alt = "-" +build_cost = 10 +attack = 1 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendOk", "FirstBuild" +helptext = _("\ +This unit may be built from the start of the game. It is the\ + weakest unit.\ +") + +[unit_phalanx] +name = _("Phalanx") +move_type = "Land" +tech_req = "Bronze Working" +obsolete_by = "Pikemen" +graphic = "u.phalanx" +graphic_alt = "-" +build_cost = 20 +attack = 1 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendGood", "FirstBuild" + +[unit_archers] +name = _("Archers") +move_type = "Land" +tech_req = "Warrior Code" +obsolete_by = "Musketeers" +graphic = "u.archers" +graphic_alt = "-" +build_cost = 30 +attack = 3 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendOk" + +[unit_legion] +name = _("Legion") +move_type = "Land" +tech_req = "Iron Working" +obsolete_by = "Musketeers" +graphic = "u.legion" +graphic_alt = "-" +build_cost = 40 +attack = 4 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendOk", "Hut" + +[unit_pikemen] +name = _("Pikemen") +move_type = "Land" +tech_req = "Feudalism" +obsolete_by = "Musketeers" +graphic = "u.pikemen" +graphic_alt = "-" +build_cost = 20 +attack = 1 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Pikemen" +roles = "DefendGood", "FirstBuild" + +[unit_musketeers] +name = _("Musketeers") +move_type = "Land" +tech_req = "Gunpowder" +obsolete_by = "Riflemen" +graphic = "u.musketeers" +graphic_alt = "-" +build_cost = 30 +attack = 3 +defense = 3 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendGood", "FirstBuild", "HutTech" + +[unit_fanatics] +name = _("Fanatics") +move_type = "Land" +tech_req = "Never" +obsolete_by = "None" +graphic = "u.fanatics" +graphic_alt = "-" +build_cost = 20 +attack = 4 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendGood" + +[unit_partisan] +name = _("Partisan") +move_type = "Land" +tech_req = "Guerilla Warfare" +obsolete_by = "None" +graphic = "u.partisan" +graphic_alt = "-" +build_cost = 50 +attack = 4 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "IgTer", "IgZOC" +roles = "DefendGood", "Partisan" +helptext = _("\ +A number of Partisans are granted free when an enemy conquers your\ + city, but only under these conditions:\ +\n\n\ + - Guerilla Warfare must be known by at least 1 player.\ +\n\n\ + - You must be the player who originally built the city.\ +\n\n\ + - You must know about Communism and Gunpowder.\ +\n\n\ + - You must run either a Democracy or a Communist government.\ +") + +[unit_alpine_troops] +name = _("Alpine Troops") +move_type = "Land" +tech_req = "Tactics" +obsolete_by = "None" +graphic = "u.alpine_troops" +graphic_alt = "-" +build_cost = 50 +attack = 5 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "IgTer" +roles = "DefendGood" + +[unit_riflemen] +name = _("Riflemen") +move_type = "Land" +tech_req = "Conscription" +obsolete_by = "None" +graphic = "u.riflemen" +graphic_alt = "-" +build_cost = 40 +attack = 5 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendGood", "FirstBuild" + +[unit_marines] +name = _("Marines") +move_type = "Land" +tech_req = "Amphibious Warfare" +obsolete_by = "None" +graphic = "u.marines" +graphic_alt = "-" +build_cost = 60 +attack = 8 +defense = 5 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Marines" +roles = "DefendOk" + +[unit_paratroopers] +name = _("Paratroopers") +move_type = "Land" +tech_req = "Combined Arms" +obsolete_by = "None" +graphic = "u.paratroopers" +graphic_alt = "-" +build_cost = 60 +attack = 6 +defense = 4 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Paratroopers" +roles = "DefendOk" + +paratroopers_range = 10 +paratroopers_mr_req = 1 +paratroopers_mr_sub = 0 + +[unit_mech_inf] +name = _("Mech. Inf.") +move_type = "Land" +tech_req = "Labor Union" +obsolete_by = "None" +graphic = "u.mech_inf" +graphic_alt = "-" +build_cost = 50 +attack = 6 +defense = 6 +hitpoints = 30 +firepower = 1 +move_rate = 3 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "DefendGood" +helptext = _("\ +Mechanized Infantry; this unit has the strongest defence strength\ + of any land unit, but is only available near the end of the\ + technology tree.\ +") + +[unit_horsemen] +name = _("Horsemen") +move_type = "Land" +tech_req = "Horseback Riding" +obsolete_by = "Knights" +graphic = "u.horsemen" +graphic_alt = "-" +build_cost = 20 +attack = 2 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Horse" +roles = "AttackFast", "Hut" + +[unit_chariot] +name = _("Chariot") +move_type = "Land" +tech_req = "The Wheel" +obsolete_by = "Knights" +graphic = "u.chariot" +graphic_alt = "-" +build_cost = 30 +attack = 3 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Horse" +roles = "AttackFast", "Hut" + +[unit_elephants] +name = _("Elephants") +move_type = "Land" +tech_req = "Never" +obsolete_by = "Crusaders" +graphic = "u.elephants" +graphic_alt = "-" +build_cost = 40 +attack = 4 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackFast" + +[unit_crusaders] +name = _("Crusaders") +move_type = "Land" +tech_req = "Never" +obsolete_by = "Dragoons" +graphic = "u.crusaders" +graphic_alt = "-" +build_cost = 40 +attack = 5 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Horse" +roles = "AttackFast" + +[unit_knights] +name = _("Knights") +move_type = "Land" +tech_req = "Chivalry" +obsolete_by = "Dragoons" +graphic = "u.knights" +graphic_alt = "-" +build_cost = 40 +attack = 4 +defense = 2 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Horse" +roles = "AttackFast", "HutTech" + +[unit_dragoons] +name = _("Dragoons") +move_type = "Land" +tech_req = "Leadership" +obsolete_by = "Cavalry" +graphic = "u.dragoons" +graphic_alt = "-" +build_cost = 50 +attack = 5 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "Horse" +roles = "AttackFast" + +[unit_cavalry] +name = _("Cavalry") +move_type = "Land" +tech_req = "Tactics" +obsolete_by = "Armor" +graphic = "u.cavalry" +graphic_alt = "-" +build_cost = 60 +attack = 8 +defense = 3 +hitpoints = 20 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackFast" + +[unit_armor] +name = _("Armor") +move_type = "Land" +tech_req = "Mobile Warfare" +obsolete_by = "None" +graphic = "u.armor" +graphic_alt = "-" +build_cost = 80 +attack = 10 +defense = 5 +hitpoints = 30 +firepower = 1 +move_rate = 3 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackFast" + +[unit_catapult] +name = _("Catapult") +move_type = "Land" +tech_req = "Mathematics" +obsolete_by = "Cannon" +graphic = "u.catapult" +graphic_alt = "-" +build_cost = 40 +attack = 6 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackStrong" + +[unit_cannon] +name = _("Cannon") +move_type = "Land" +tech_req = "Metallurgy" +obsolete_by = "Artillery" +graphic = "u.cannon" +graphic_alt = "-" +build_cost = 40 +attack = 8 +defense = 1 +hitpoints = 20 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackStrong" + +[unit_artillery] +name = _("Artillery") +move_type = "Land" +tech_req = "Machine Tools" +obsolete_by = "Howitzer" +graphic = "u.artillery" +graphic_alt = "-" +build_cost = 50 +attack = 10 +defense = 1 +hitpoints = 20 +firepower = 2 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "AttackStrong" + +[unit_howitzer] +name = _("Howitzer") +move_type = "Land" +tech_req = "Robotics" +obsolete_by = "None" +graphic = "u.howitzer" +graphic_alt = "-" +build_cost = 70 +attack = 12 +defense = 2 +hitpoints = 30 +firepower = 2 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "IgWall" +roles = "AttackStrong" + +[unit_fighter] +name = _("Fighter") +move_type = "Air" +tech_req = "Flight" +obsolete_by = "Stealth Fighter" +graphic = "u.fighter" +graphic_alt = "-" +build_cost = 60 +attack = 4 +defense = 3 +hitpoints = 20 +firepower = 2 +move_rate = 10 +vision_range = 2 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "Fighter" +roles = "" + +[unit_bomber] +name = _("Bomber") +move_type = "Air" +tech_req = "Advanced Flight" +obsolete_by = "Stealth Bomber" +graphic = "u.bomber" +graphic_alt = "-" +build_cost = 120 +attack = 12 +defense = 1 +hitpoints = 20 +firepower = 2 +move_rate = 8 +vision_range = 2 +transport_cap = 0 +fuel = 2 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "OneAttack" +roles = "" + +[unit_helicopter] +name = _("Helicopter") +move_type = "Heli" +tech_req = "Combined Arms" +obsolete_by = "None" +graphic = "u.helicopter" +graphic_alt = "-" +build_cost = 100 +attack = 10 +defense = 3 +hitpoints = 20 +firepower = 2 +move_rate = 6 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "OneAttack" +roles = "" +helptext = _("\ +The Helicopter is a very powerful unit, as it can both fly and\ + conquer cities. Care must be exercised, because Helicopters lose a\ + small amount of health for every turn not spent in a city, unless\ + you have the United Nations wonder.\ +") + +[unit_stealth_fighter] +name = _("Stealth Fighter") +move_type = "Air" +tech_req = "Stealth" +obsolete_by = "None" +graphic = "u.stealth_fighter" +graphic_alt = "-" +build_cost = 80 +attack = 8 +defense = 4 +hitpoints = 20 +firepower = 2 +move_rate = 14 +vision_range = 2 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "Fighter" +roles = "" +helptext = _("\ +An improved Fighter, with improved attack and a higher movement\ + radius.\ +") + +[unit_stealth_bomber] +name = _("Stealth Bomber") +move_type = "Air" +tech_req = "Stealth" +obsolete_by = "None" +graphic = "u.stealth_bomber" +graphic_alt = "-" +build_cost = 160 +attack = 14 +defense = 5 +hitpoints = 20 +firepower = 2 +move_rate = 12 +vision_range = 2 +transport_cap = 0 +fuel = 2 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "OneAttack" +roles = "" +helptext = _("\ +An improved Bomber, with improved attack and a higher movement\ + radius.\ +") + +[unit_trireme] +name = _("Trireme") +move_type = "Sea" +tech_req = "Map Making" +obsolete_by = "Caravel" +graphic = "u.trireme" +graphic_alt = "-" +build_cost = 40 +attack = 1 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_range = 1 +transport_cap = 2 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "Trireme" +roles = "Ferryboat" + +[unit_caravel] +name = _("Caravel") +move_type = "Sea" +tech_req = "Navigation" +obsolete_by = "Galleon" +graphic = "u.caravel" +graphic_alt = "-" +build_cost = 40 +attack = 2 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_range = 1 +transport_cap = 3 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "Ferryboat" + +[unit_galleon] +name = _("Galleon") +move_type = "Sea" +tech_req = "Magnetism" +obsolete_by = "Transport" +graphic = "u.galleon" +graphic_alt = "-" +build_cost = 40 +attack = 0 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 4 +vision_range = 1 +transport_cap = 4 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "Ferryboat" + +[unit_frigate] +name = _("Frigate") +move_type = "Sea" +tech_req = "Magnetism" +obsolete_by = "Ironclad" +graphic = "u.frigate" +graphic_alt = "-" +build_cost = 50 +attack = 4 +defense = 2 +hitpoints = 20 +firepower = 1 +move_rate = 4 +vision_range = 1 +transport_cap = 2 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit" +roles = "" + +[unit_ironclad] +name = _("Ironclad") +move_type = "Sea" +tech_req = "Steam Engine" +obsolete_by = "Destroyer" +graphic = "u.ironclad" +graphic_alt = "-" +build_cost = 60 +attack = 4 +defense = 4 +hitpoints = 30 +firepower = 1 +move_rate = 4 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit" +roles = "" + +[unit_destroyer] +name = _("Destroyer") +move_type = "Sea" +tech_req = "Electricity" +obsolete_by = "None" +graphic = "u.destroyer" +graphic_alt = "-" +build_cost = 60 +attack = 4 +defense = 4 +hitpoints = 30 +firepower = 1 +move_rate = 6 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit" +roles = "" +helptext = _("\ +TIP: A very fast unit, which is very useful for hunting down enemy\ + Transports.\ +") + +[unit_cruiser] +name = _("Cruiser") +move_type = "Sea" +tech_req = "Steel" +obsolete_by = "AEGIS Cruiser" +graphic = "u.cruiser" +graphic_alt = "-" +build_cost = 80 +attack = 6 +defense = 6 +hitpoints = 30 +firepower = 2 +move_rate = 5 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit" +roles = "" + +[unit_aegis_cruiser] +name = _("AEGIS Cruiser") +move_type = "Sea" +tech_req = "Rocketry" +obsolete_by = "None" +graphic = "u.aegis_cruiser" +graphic_alt = "-" +build_cost = 100 +attack = 8 +defense = 8 +hitpoints = 30 +firepower = 2 +move_rate = 5 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "AEGIS" +roles = "" + +[unit_battleship] +name = _("Battleship") +move_type = "Sea" +tech_req = "Automobile" +obsolete_by = "None" +graphic = "u.battleship" +graphic_alt = "-" +build_cost = 160 +attack = 12 +defense = 12 +hitpoints = 40 +firepower = 2 +move_rate = 4 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit" +roles = "" + +[unit_submarine] +name = _("Submarine") +move_type = "Sea" +tech_req = "Combustion" +obsolete_by = "None" +graphic = "u.submarine" +graphic_alt = "-" +build_cost = 60 +attack = 10 +defense = 2 +hitpoints = 30 +firepower = 2 +move_rate = 3 +vision_range = 2 +transport_cap = 8 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "Submarine" +roles = "" +helptext = _("\ +This unit is invisible unless it is next to an enemy unit or city.\ + It cannot make shore bombardments against enemy land units or cities.\ +\n\n\ +Submarines have a very high strategic value, but have a weak\ + defence.\ +") + +[unit_carrier] +name = _("Carrier") +move_type = "Sea" +tech_req = "Advanced Flight" +obsolete_by = "None" +graphic = "u.carrier" +graphic_alt = "-" +build_cost = 160 +attack = 1 +defense = 9 +hitpoints = 40 +firepower = 2 +move_rate = 5 +vision_range = 2 +transport_cap = 8 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "Carrier" +roles = "" +helptext = _("\ +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") +move_type = "Sea" +tech_req = "Industrialization" +obsolete_by = "None" +graphic = "u.transport" +graphic_alt = "-" +build_cost = 50 +attack = 0 +defense = 3 +hitpoints = 30 +firepower = 1 +move_rate = 5 +vision_range = 2 +transport_cap = 8 +fuel = 0 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "" +roles = "Ferryboat" + +[unit_cruise_missile] +name = _("Cruise Missile") +move_type = "Air" +tech_req = "Rocketry" +obsolete_by = "None" +graphic = "u.cruise_missile" +graphic_alt = "-" +build_cost = 60 +attack = 18 +defense = 0 +hitpoints = 10 +firepower = 3 +move_rate = 12 +vision_range = 1 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "OneAttack", "Missile" +roles = "" +helptext = _("\ +TIP: A handful of these can successfully keep the waters around\ + your treasured homeland free of enemy ships.\ +") + +[unit_nuclear] +name = _("Nuclear") +move_type = "Air" +tech_req = "Rocketry" +obsolete_by = "None" +graphic = "u.nuclear" +graphic_alt = "-" +build_cost = 160 +attack = 99 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 16 +vision_range = 1 +transport_cap = 0 +fuel = 1 +uk_happy = 1 +uk_shield = 1 +uk_food = 0 +uk_gold = 0 +flags = "FieldUnit", "OneAttack", "Missile", "Nuclear" +roles = "" +helptext = _("\ +You can build Nuclear units when you have the required advance, and\ + the Manhattan Project wonder has been built by any player.\ +\n\n\ +On impact, the blast will destroy any unit in a 3x3-square area,\ + including friendly units. When striking a city, the city size is\ + halved, and the surrounding squares are polluted.\ +\n\n\ +TIP 1: Nuking the ocean will not generate pollution, and is a most\ + effective (but expensive!!) way of getting rid of enemy\ + ships.\ +\n\n\ +TIP 2: 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 Settlers\ + and/or Engineers next to the city and have them ready to fix\ + the pollution on the same turn it occurs! This minimises the\ + chance of global warming. Eco-friendly nukes!\ +") + +[unit_diplomat] +name = _("Diplomat") +move_type = "Land" +tech_req = "Writing" +obsolete_by = "Spy" +graphic = "u.diplomat" +graphic_alt = "-" +build_cost = 30 +attack = 0 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +flags = "Diplomat", "IgZOC", "NonMil" +roles = "" +helptext = _("\ +- A Diplomat can establish embassies with other civilizations\ + by moving into another player's city.\ +\n\n\ +- Diplomats can also try to sabotage enemy production, or steal\ + an advance from an enemy city. (An advance can only be stolen\ + once per city).\ +\n\n\ +- A Diplomat can also bribe an enemy unit, if that unit is the only\ + unit on its square.\ +\n\n\ +- Diplomats can even start a revolution in an enemy city and turn\ + it into your own, if you have the money!\ +\n\n\ +- 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!\ +") + +[unit_spy] +name = _("Spy") +move_type = "Land" +tech_req = "Espionage" +obsolete_by = "None" +graphic = "u.spy" +graphic_alt = "-" +build_cost = 30 +attack = 0 +defense = 0 +hitpoints = 10 +firepower = 1 +move_rate = 3 +vision_range = 2 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +flags = "Diplomat", "IgZOC", "NonMil", "Spy" +roles = "" +helptext = _("\ +A Spy is a full time professional and as such is much more\ + skilled in the arts of espionage than her Diplomat predecessor.\ +\n\n\ +The most inoffensive skills in a Spy's repertoire are her ability\ + to investigate cities - revealing detailed information, and\ + the establishment of embassies. However, if your Spy has gained\ + herself a reputation for clandestine behaviour she will be\ + executed if she tries to establish an embassy.\ +\n\n\ +She can also be used to: poison the water supply of an enemy city\ + (reducing the population); steal specific technology; and sabotage\ + predetermined city targets (note: sabotaging improvements in a\ + capital or sabotaging City Walls increases the risks of capture).\ + A Spy can also infiltrate a city and ferment a revolt.\ +\n\n\ +A Spy can also be of aid on the battlefield - sabotaging enemy units\ + as well as bribing them to change allegiance.\ +") + +[unit_caravan] +name = _("Caravan") +move_type = "Land" +tech_req = "Trade" +obsolete_by = "Freight" +graphic = "u.caravan" +graphic_alt = "-" +build_cost = 50 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +flags = "Caravan", "IgZOC", "NonMil" +roles = "" +helptext = _("\ +Every Caravan that is used to build a wonder will add 50 shields\ + towards the production of the wonder.\ +\n\n\ +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") +move_type = "Land" +tech_req = "The Corporation" +obsolete_by = "None" +graphic = "u.freight" +graphic_alt = "-" +build_cost = 50 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 2 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +flags = "Caravan", "IgZOC", "NonMil" +roles = "" +helptext = _("\ +The Freight unit replaces the Caravan, and moves at twice the speed.\ +") + +[unit_explorer] +name = _("Explorer") +move_type = "Land" +tech_req = "Seafaring" +obsolete_by = "Partisan" +graphic = "u.explorer" +graphic_alt = "-" +build_cost = 30 +attack = 0 +defense = 1 +hitpoints = 10 +firepower = 1 +move_rate = 1 +vision_range = 1 +transport_cap = 0 +fuel = 0 +uk_happy = 0 +uk_shield = 0 +uk_food = 0 +uk_gold = 0 +flags = "IgTer", "IgZOC", "NonMil" +roles = "Explorer" +helptext = _("\ +Explorers are very useful for mapping unknown territory.\ +") + +[u_specials] +partisan_req = "Gunpowder","Communism" + diff -r -u -N freeciv-orig/data/mom.serv freeciv-1.9.0/data/mom.serv --- freeciv-orig/data/mom.serv Wed Dec 31 19:00:00 1969 +++ freeciv-1.9.0/data/mom.serv Mon Jan 3 21:01:28 2000 @@ -0,0 +1,17 @@ +# Server commands to make rules similar to Civ2. +# +# Use this as, eg, "./ser -r data/civ2.serv" +# +# Civ2 start: +set settlers 2 +set explorer 0 +# +# Minor civ2 rules: +set civstyle 2 +# +# Rulesets: +set terrain civ2 +set techs civ2 +set governments civ2 +set units mom +set buildings mom diff -r -u -N freeciv-orig/server/ruleset.c freeciv-1.9.0/server/ruleset.c --- freeciv-orig/server/ruleset.c Sat Dec 25 11:55:49 1999 +++ freeciv-1.9.0/server/ruleset.c Mon Jan 3 21:01:30 2000 @@ -42,6 +42,9 @@ static int lookup_unit_type(struct section_file *file, char *prefix, char *entry, int required, char *filename, char *description); +static int lookup_building(struct section_file *file, char *prefix, + char *entry, int required, char *filename, + char *description); static int lookup_tech(struct section_file *file, char *prefix, char *entry, int required, char *filename, char *description); @@ -162,6 +165,40 @@ /************************************************************************** Lookup a string prefix.entry in the file and return the corresponding + improvement_type id. If (!required), return -1 if match "None" or can't + match. + If (required), die if can't match. + If description is not NULL, it is used in the warning message + instead of prefix (eg pass unit->name instead of prefix="units2.u27") +**************************************************************************/ +static int lookup_building(struct section_file *file, char *prefix, + char *entry, int required, char *filename, + char *description) +{ + char *sval; + int i; + + sval = secfile_lookup_str_default(file, "None", "%s.%s", prefix, entry); + if (!required && strcmp(sval, "None")==0) { + i = B_NONE; + } else { + i = find_improvement_by_name(sval); + if (i==B_LAST) { + freelog((required?LOG_FATAL:LOG_NORMAL), + "for %s %s couldn't match building \"%s\" (%s)", + (description?description:prefix), entry, sval, filename); + if (required) { + exit(1); + } else { + i = B_LAST; + } + } + } + return i; +} + +/************************************************************************** + Lookup a string prefix.entry in the file and return the corresponding advances id. If (!required), return A_LAST if match "Never" or can't match. If (required), die if can't match. Note the first tech should have name "None" so that will always match. @@ -522,6 +559,8 @@ u = &unit_types[i]; u->tech_requirement = lookup_tech(file, sec[i], "tech_req", 0, filename, u->name); + u->improve_requirement = lookup_building(file, sec[i], "improve_req", + 0, filename, u->name); } for( i=0; iname, secfile_lookup_str(&file, "%s.name", sec[i])); + b++; + } + for( i=0, j=0; iname, secfile_lookup_str(&file, "%s.name", sec[i])); b->is_wonder = secfile_lookup_int(&file, "%s.is_wonder", sec[i]); b->tech_requirement = lookup_tech(&file, sec[i], "tech_req", 0, filename, b->name); + /* building requirements */ + b->req[0] = lookup_building(&file, sec[i], "req1", 0, filename, b->name); + b->req[1] = lookup_building(&file, sec[i], "req2", 0, filename, b->name); + /* B_LAST and B_NONE are the same currently */ +/* if ((b->req[0]==B_LAST && b->req[1]!=B_LAST) || + (b->req[0]!=B_LAST && b->req[1]==B_LAST)) { + freelog(LOG_NORMAL, + "for building %s: \"Never\" with non-\"Never\" (%s)", + b->name, filename); + b->req[0] = b->req[1] = B_LAST; + }*/ + if (b->req[0]==B_NONE && b->req[1]!=B_NONE) { + freelog(LOG_NORMAL, "building %s: should have \"None\" second (%s)", + b->name, filename); + b->req[0] = b->req[1]; + b->req[1] = B_NONE; + } + b->obsolete_by = lookup_tech(&file, sec[i], "obsolete_by", 0, filename, b->name); if (b->obsolete_by==A_LAST || !tech_exists(b->obsolete_by)) { @@ -1567,6 +1630,7 @@ packet.defense_strength = u->defense_strength; packet.move_rate = u->move_rate; packet.tech_requirement = u->tech_requirement; + packet.improve_requirement = u->improve_requirement; packet.vision_range = u->vision_range; packet.transport_capacity = u->transport_capacity; packet.hp = u->hp / game.firepower_factor; @@ -1631,6 +1695,8 @@ strcpy(packet.name, b->name_orig); packet.is_wonder = b->is_wonder; packet.tech_requirement = b->tech_requirement; + packet.req[0] = b->req[0]; + packet.req[1] = b->req[1]; packet.build_cost = b->build_cost; packet.shield_upkeep = b->shield_upkeep; packet.obsolete_by = b->obsolete_by; @@ -1877,8 +1943,8 @@ load_ruleset_techs(game.ruleset.techs); load_ruleset_cities(game.ruleset.cities); load_ruleset_governments(game.ruleset.governments); - load_ruleset_units(game.ruleset.units); load_ruleset_buildings(game.ruleset.buildings); + load_ruleset_units(game.ruleset.units); load_ruleset_nations(game.ruleset.nations); load_ruleset_terrain(game.ruleset.terrain); translate_data_names(); @@ -1900,8 +1966,8 @@ send_ruleset_control(dest); send_ruleset_techs(dest); send_ruleset_governments(dest); - send_ruleset_units(dest); send_ruleset_buildings(dest); + send_ruleset_units(dest); send_ruleset_terrain(dest); send_ruleset_nations(dest); send_ruleset_cities(dest);