From July 30 to August 16, 2003: -------------------------------- - Units are now built with different materials. A new field in unit_type: base_material_cost, a vector that establishes the amount of each material that is needed to complete each build_cost unity. - Changes in city dialog (always in gtk2 client): i) A table that shows the materials stock, materials production and the base_material_cost of the actual city production. ii) The "Prod" in info table shows the units of build_production that will be incremented this turn. iii) The base_material_cost is also shown in the help dialog of the unit type - A lot of test and bug fixes. - The power of labour now is taken account only for the completion of the city production. The food and shield extraction from tiles aren't anymore limited by p.o.l. - New concept: mining level. For those tile terrains where mines can be built, the shield extraction is limited by the product of mining_level and mining_increment: Multiple mines can be built in the same terrain in order to reach the maximal shield that can be extracted. - The citymap in the client city dialog displays tens in the shield extraction. - Added fundamentalism to freeciv2 rulesets. - Disabled the possibility of buying the city production (very ugly feature for me: the money can't be converted to production, money only can be used to buy something that other one has produced. The future extended trading system will allow this.) - The CMA machine doesn't work with materials. I have spent several hours analizing the actual code, and have concluded that an eventual new CMA implies very hard efforts and modifications, so I decided to left this work for an undefined far future. - A continuous sync with the cvs version. - Only the freeciv2 rulesets works with new code. - Some AI code modifications to fit with new features. - Test of AI players: they play much better that I though with new features! July, 29, 2003: --------------- - Some strategical code preparation for materials in common/city.[hc]: 1) Added a new concept: power of labour. The power of labour limites the amount of food and prod that can be obtained from a tile, and limites the rate of completion of the city production. The rules are exactly the same as before except that: - The food produced by each tile can't be greater than the double of the power of labour. - The shield produced by each tile can't be greater than the power of labour. - The shield surplus can't be greater than the power of labour. For now, the basic power of labour equals the size of the city (see the function get_city_power_of_labour). Then, to calculate the shield surplus (not the tile shield and food), the power of labour is affected by building as normal. 2) Semanthical changes in struct city in order to recycle as code as possible: - shield_prod is total material produced. - shield_surplus is the amount of city production that the city can increment each turn (the rate of completion mentioned above). It depends on the availability of materials needed by the particular production, the power of labour of the city and the substracted shield_waste. - shield_stock conserves its original meaning: It is the amount of labour and materials converted into city production. It is the accumulated shield_surplus. 3) Code modifications to reflect this semanthical changes. I have discovered that this pair of semanthical changes avoids me the effort of very complex modifications all around the code of freeciv. 4) New fields in struct city: - m_prod[MAX_NUM_MATERIALS] - m_surplus[MAX_NUM_MATERIALS] - m_stock[MAX_NUM_MATERIALS] m_prod is the material extracted each turn from worked terrain tiles. m_surplus is the material that is not used for city production, and goes to the m_stock. Please note the semanthic difference of "surplus" in shield_surplus and m_surplus. m_stock is the amount of material stocked for future use. Please note the semanthic difference of "stock" in shield_stock and m_stock. The difference (math.) between m_prod and m_surplus is the materials converted into shield_surplus (before substracting shield_waste). July, 27, 2003: --------------- - Materials have come to the existence! They are useless for now, but the first step is done. Only the gtk2 client supports them (and I don't think to work in the other clients). New files: common/materials.c common/materials.h data/freeciv2.serv data/freeciv2 (rulesets directory) Raw materials are defined in terrain.rulesets. The default rules are a special case, with only one material. But I can see that with the next steps I will have to abandon the compatibility with traditional game (other way, the code would be very complex) - In what I'm calling freeciv2 rulesets, I have separated the unit "settler" into two separate units: the proper "settler" that can fund cities, and the "worker" that can irrigate, build roads, etc (I wander why the flag that determines the workers activities is called "Settler") July, 23, 2003: --------------- - Some bug fixes in the veteran style code. - AI code updated for the new veteran styles. July, 22, 2003: --------------- - Patch upgraded to fit to current cvs version (1.14.1-devel) February 19, 2000: ----------------- - Modified in order to be compatible with actual cvs version - Added a new veteran_style mode 2, similar to mode 1, except that experience number doesn't increase. October 21, 2000: ---------------- - A unit created in a city with Barracks has an initial and minimum Experience of 16. - Now the probability to decrease the experience is 10 percent. - If the experience of a unit reaches 16, this number will be the minimum experience number when decreasing it by inactivity. Also, the probability to decrease this number will be aprox. 6 percent. - Fixes in server/unithand.c, server/unitfunc.c, - Updated the civ1 and civ2 game.ruleset - Updated data/helpdata.txt, common/capstr.c October 6, 2000: ---------------- -New feature: (game.ruleset:veteran_style) Alternate veteran units system. You can choice between the civ original system and a more complex one, in which each unit has an experience number, starting from 10. The probability of victory of a unit with Exp=A is increased by a factor A/10. In theory there is no limit for the Exp number, although gaining experience depends on the number of combats that a unit had since it was created, the Exp number of the units against which it fought, comparison between fire power, attack strength and defense strenght; and when your unit has high experience is more difficult to gain new one. The Exp number may be even reduced in a long period of inactivity. Note: Only the gtk client has capability of displaying Exp level. -Some fixes in client/packhand.h so the client has awareness of the new added options. -This new options now fall under a section named combat_rules in game.ruleset. October 3, 2000: ---------------- For now, with this patch you can customize the following combat rules (read game.ruleset): - killstack. This modifier allows to change the unit stack behavior when one of the unit is killed: destroy all the units in the same tile or destroy only the attacked one. - damage. This modifier allows to regulate the damage that can be dealt to both units in an attack. Even if this modifier is low enough, both units can survive in an attack. Note that the cost of units must be higher in that case, to prevent unit proliferation!. My intend with this option is to manage with less number of units than in the standard rule, in order to give more importance to logistics in the player strategy. Apply over cvs freeciv version (1.11.5-devel). ---------------------------------------------------------------- Please send suggestions, test this patch. I will continue developing more ideas about customizing combat rules.