[Freeciv-Dev] Re: (PR#14760) More govt generalization
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: |
[Freeciv-Dev] Re: (PR#14760) More govt generalization |
From: |
"Per I. Mathisen" <per@xxxxxxxxxxx> |
Date: |
Fri, 9 Dec 2005 14:34:12 -0800 |
Reply-to: |
bugs@xxxxxxxxxxx |
<URL: http://bugs.freeciv.org/Ticket/Display.html?id=14760 >
On Sat, 3 Dec 2005, Per I. Mathisen wrote:
> This pushes the last pieces of government special attributes over into
> effects, that is production_*_bonus and production_*_penalty, adding two
> new effects Output_Penalty_Tile and Output_Inc_Tile_Celebrate. The ability
> to set a separate penalty for cities that celebrate is lost - it was never
> used either.
New patch to be committed:
- add helptext support (also for waste)
- make clear that we remove the communism bonus to incite and bribe costs
- remove superfluous helptexts from civ1/2 rulesets (really unrelated)
- tile penalty does not apply if city is celebrating (as before)
- add capability
- add civ1/2 ruleset support
- Per
Index: server/cityturn.c
===================================================================
--- server/cityturn.c (revision 11322)
+++ server/cityturn.c (working copy)
@@ -1387,10 +1387,6 @@
dist = 32;
}
- if (g->waste[O_TRADE].fixed_distance != 0) {
- dist = MIN(g->waste[O_TRADE].fixed_distance, dist);
- }
-
size = MAX(1, pcity->size
+ pcity->ppl_happy[4]
- pcity->ppl_unhappy[4]
Index: server/ruleset.c
===================================================================
--- server/ruleset.c (revision 11322)
+++ server/ruleset.c (working copy)
@@ -1692,24 +1692,6 @@
sz_strlcpy(g->graphic_alt,
secfile_lookup_str(file, "%s.graphic_alt", sec[i]));
- output_type_iterate(o) {
- g->output_inc_tile[o]
- = secfile_lookup_int_default(file, 0, "%s.production_%s_bonus",
- sec[i], get_output_identifier(o));
- g->celeb_output_inc_tile[o]
- = secfile_lookup_int_default(file, 0, "%s.production_%s_bonus,1",
- sec[i], get_output_identifier(o));
-
- g->output_before_penalty[o]
- = secfile_lookup_int_default(file, FC_INFINITY,
- "%s.production_%s_penalty", sec[i],
- get_output_identifier(o));
- g->celeb_output_before_penalty[o]
- = secfile_lookup_int_default(file, FC_INFINITY,
- "%s.production_%s_penalty,1", sec[i],
- get_output_identifier(o));
- } output_type_iterate_end;
-
g->helptext = lookup_helptext(file, sec[i]);
} government_iterate_end;
@@ -2829,13 +2811,6 @@
} requirement_vector_iterate_end;
gov.reqs_count = j;
- output_type_iterate(o) {
- gov.output_before_penalty[o] = g->output_before_penalty[o];
- gov.celeb_output_before_penalty[o] = g->celeb_output_before_penalty[o];
- gov.output_inc_tile[o] = g->output_inc_tile[o];
- gov.celeb_output_inc_tile[o] = g->celeb_output_inc_tile[o];
- } output_type_iterate_end;
-
gov.num_ruler_titles = g->num_ruler_titles;
sz_strlcpy(gov.name, g->name_orig);
Index: server/diplomats.c
===================================================================
--- server/diplomats.c (revision 11322)
+++ server/diplomats.c (working copy)
@@ -1296,7 +1296,6 @@
**************************************************************************/
int unit_bribe_cost(struct unit *punit)
{
- struct government *g = get_gov_pplayer(unit_owner(punit));
int cost;
struct city *capital;
int dist;
@@ -1310,8 +1309,6 @@
}
else
dist=32;
- if (g->waste[O_TRADE].fixed_distance != 0)
- dist = MIN(g->waste[O_TRADE].fixed_distance, dist);
cost /= dist + 2;
cost *= unit_build_shield_cost(punit->type) / 10;
Index: data/default/effects.ruleset
===================================================================
--- data/default/effects.ruleset (revision 11322)
+++ data/default/effects.ruleset (working copy)
@@ -538,6 +538,58 @@
"UnitFlag", "Diplomat", "Local"
}
+[effect_gov_tile_bonus_0]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Anarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_1]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Despotism", "Player"
+ }
+
+[effect_gov_tile_bonus_2]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Monarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_3]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Communism", "Player"
+ }
+
+[effect_gov_tile_bonus_4]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Republic", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
+[effect_gov_tile_bonus_5]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Democracy", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
[effect_revolution_0]
name = "Revolution_When_Unhappy"
value = 1
Index: data/default/governments.ruleset
===================================================================
--- data/default/governments.ruleset (revision 11322)
+++ data/default/governments.ruleset (working copy)
@@ -39,11 +39,6 @@
; ai_better = AI will not consider this government for use if the
; government listed here is available
-; production_*_bonus = added to base production for each worked tile;
-; second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is
-; reduced by one; second value used when celebrating
-
; ruler_titles = ruler titles by nation, "-" is default, and non-matched
; nations are ignored
@@ -58,14 +53,6 @@
graphic = "gov.anarchy"
graphic_alt = "-"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Mr.")
ruler_female_title = _("Ms.")
@@ -88,14 +75,6 @@
graphic_alt = "-"
ai_better = "Monarchy"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Emperor")
ruler_female_title = _("Empress")
@@ -118,14 +97,6 @@
graphic_alt = "-"
ai_better = "Communism"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("King")
ruler_female_title = _("Queen")
@@ -147,14 +118,6 @@
graphic = "gov.communism"
graphic_alt = "-"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Comrade")
ruler_female_title = _("Comrade")
@@ -166,10 +129,7 @@
\n\n\
Under Communism, corruption does not vary by distance from\
the capital; all cities (including the capital) have a modest amount\
- of corruption. In addition, Communist cities more than 10\
- squares away from the capital are considered to be only 10 squares\
- away when computing the cost of inciting a revolt. \
- See Units, Diplomat.\
+ of corruption.\
")
;------------------------------------------------------------------------
@@ -182,14 +142,6 @@
graphic = "gov.republic"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Consul")
ruler_female_title = _("Consul")
@@ -200,8 +152,6 @@
degree of freedom. Citizens under the Republic become unhappy\
easily, but the self-sufficiency of your citizens allows high levels\
of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption.\
")
;------------------------------------------------------------------------
@@ -214,14 +164,6 @@
graphic = "gov.democracy"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("President")
ruler_female_title = _("President")
Index: data/civ1/effects.ruleset
===================================================================
--- data/civ1/effects.ruleset (revision 11322)
+++ data/civ1/effects.ruleset (working copy)
@@ -19,6 +19,58 @@
; Specialist output bonuses
+[effect_gov_tile_bonus_0]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Anarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_1]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Despotism", "Player"
+ }
+
+[effect_gov_tile_bonus_2]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Monarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_3]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Communism", "Player"
+ }
+
+[effect_gov_tile_bonus_4]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Republic", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
+[effect_gov_tile_bonus_5]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Democracy", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
[effect_corruption_anarchy0]
name = "Output_Waste"
value = 25
Index: data/civ1/governments.ruleset
===================================================================
--- data/civ1/governments.ruleset (revision 11322)
+++ data/civ1/governments.ruleset (working copy)
@@ -39,11 +39,6 @@
; should be a standard tag if preferred is not;
; otherwise may be "-"
-; production_*_bonus = added to base production for each worked tile;
-; second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is
-; reduced by one; second value used when celebrating
-
; ruler_titles = ruler titles by nation, "-" is default, and non-matched
; nations are ignored
@@ -58,14 +53,6 @@
graphic = "gov.anarchy"
graphic_alt = "-"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Mr.")
ruler_female_title = _("Ms.")
@@ -77,20 +64,6 @@
\n\n\
Anarchy offers slightly less corruption than Despotism, but slightly\
more unhappiness.\
-\n\n\
-Settlers consume 1 food per turn under Anarchy. Squares which would\
- normally yield more than 2 units of food, shields or trade suffer\
- a 1-unit penalty (e.g., an irrigated grassland square which would\
- normally yield 3 food only yields 2 food while you are in Anarchy).\
- (This penalty is removed if the city is celebrating; see Happiness.)\
-\n\n\
-Under Anarchy, each of your cities can support a number of military\
- units equal to its size without paying shields for upkeep.\
- (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Anarchy: each military unit inside\
- a city will keep one unhappy citizen content. (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
")
;------------------------------------------------------------------------
@@ -102,14 +75,6 @@
graphic_alt = "-"
ai_better = "Monarchy"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Emperor")
ruler_female_title = _("Empress")
@@ -119,21 +84,6 @@
\n\n\
Despotism suffers the highest level of corruption of all forms of\
government.\
-\n\n\
-Settlers consume 1 food per turn under Despotism. Squares which\
- would normally yield more than 2 units of food, shields or trade\
- suffer a 1-unit penalty (e.g., an irrigated grassland square which\
- would normally yield 3 food only yields 2 food while you are under\
- Despotic rule). (This penalty is removed if the city is\
- celebrating; see Happiness.)\
-\n\n\
-Under Despotism, each of your cities can support a number of\
- military units equal to its size without paying shields for\
- upkeep. (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Despotism: each military unit\
- inside a city will keep one unhappy citizen content. (Or at least,\
- unhappy citizens will act content, and will not cause disorder.)\
")
;------------------------------------------------------------------------
@@ -147,14 +97,6 @@
graphic_alt = "-"
ai_better = "Communism"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("King")
ruler_female_title = _("Queen")
@@ -164,19 +106,6 @@
\n\n\
Monarchy suffers the same small amount of corruption that the\
Republic does.\
-\n\n\
-Settlers consume 1 food per turn under Monarchy.\
-\n\n\
-If a city governed by a Monarchy is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade. See Happiness for details.\
-\n\n\
-Under Monarchy, your cities can support up to 3 military units\
- without paying shields for upkeep. (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose martial law under Monarchy: each military unit in a\
- city will keep one unhappy citizen content.\
")
;------------------------------------------------------------------------
@@ -189,14 +118,6 @@
graphic = "gov.communism"
graphic_alt = "-"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Comrade")
ruler_female_title = _("Comrade")
@@ -208,25 +129,7 @@
\n\n\
Under Communism, corruption does not vary by distance from the\
capital; all cities (including the capital) have a modest amount\
- of corruption. In addition, Communist cities more than 10 squares\
- away from the capital are considered to be only 10 squares away when\
- computing the cost of inciting a revolt (see Units, Diplomat).\
-\n\n\
-Settlers consume 1 food per turn under Communism.\
-\n\n\
-If a city governed by Communism is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade. See Happiness for details.\
-\n\n\
-Diplomats and Spies created under Communism are always veterans.\
-\n\n\
-Under Communism, your cities can support up to 3 military units\
- without paying shields for upkeep. (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose martial law under Communism: each military unit inside\
- a city will keep one unhappy citizen content. (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
+ of corruption.\
")
;------------------------------------------------------------------------
@@ -239,14 +142,6 @@
graphic = "gov.republic"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Consul")
ruler_female_title = _("Consul")
@@ -257,29 +152,6 @@
degree of freedom. Citizens under the Republic become unhappy\
easily, but the self-sufficiency of your citizens allows high levels\
of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption.\
-\n\n\
-Settlers consume 2 food per turn under the Republic. Squares with\
- at least 1 trade resource get a trade bonus of 1 under the Republic.\
-\n\n\
-Republican cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-Under the Republic, military units require 1 production shield each\
- for upkeep. In addition the following units are considered\
- aggressive units:\
-\n\n\
-- units with an attack strength greater than 0 which are not\
- inside a city or inside a fortress within 3 squares of a friendly\
- city\
-\n\n\
-- air units (including missiles and helicopters)\
- with an attack strength greater than 0, regardless of their\
- location\
-\n\n\
-The citizens of a city will tolerate 1 aggressive unit; subsequent\
- units will generate 1 unhappy citizen each.\
")
;------------------------------------------------------------------------
@@ -292,14 +164,6 @@
graphic = "gov.democracy"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("President")
ruler_female_title = _("President")
@@ -309,26 +173,6 @@
offers the most potential for unhappiness. There is no corruption\
during Democracy, but citizens become very upset during wars.\
\n\n\
-Settlers consume 2 food per turn under Democracy. Squares with\
- at least 1 trade resource get a trade bonus of 1 under Democracy.\
-\n\n\
-Democratic cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-Under Democracy, military units require 1 production shield each for\
- upkeep. In addition the following units generate unhappiness:\
-\n\n\
-- Units with an attack strength greater than 0 which are not\
- inside a city, or inside a fortress within 3 squares of a\
- friendly city, generate 2 unhappy citizens.\
-\n\n\
-- Air units with an attack strength greater than 0 which are\
- inside a city generate only 1 unhappy citizen.\
-\n\n\
-If a city remains in disorder more than 2 turns under Democratic\
- rule, the citizens will spontaneously revolt and plunge your\
- civilization into Anarchy.\
-\n\n\
Because (happy) citizens of Democracy believe strongly in the\
government, their loyalty is unswerving. Military units of\
Democratic civilizations cannot be bribed, and Democratic cities\
Index: data/civ2/effects.ruleset
===================================================================
--- data/civ2/effects.ruleset (revision 11322)
+++ data/civ2/effects.ruleset (working copy)
@@ -16,6 +16,67 @@
; /* <-- avoid gettext warnings
; */ <-- avoid gettext warnings
+[effect_gov_tile_bonus_0]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Anarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_1]
+name = "Output_Penalty_Tile"
+value = 2
+reqs =
+ { "type", "name", "range"
+ "Gov", "Despotism", "Player"
+ }
+
+[effect_gov_tile_bonus_2]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Monarchy", "Player"
+ }
+
+[effect_gov_tile_bonus_3]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "OutputType", "Trade", "Local"
+ "Gov", "Communism", "Player"
+ }
+
+[effect_gov_tile_bonus_4]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Republic", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
+[effect_gov_tile_bonus_5]
+name = "Output_Inc_Tile"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Democracy", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
+[effect_gov_tile_bonus_6]
+name = "Output_Inc_Tile_Celebrate"
+value = 1
+reqs =
+ { "type", "name", "range"
+ "Gov", "Fundamentalism", "Player"
+ "OutputType", "Trade", "Local"
+ }
+
[effect_corruption_anarchy0]
name = "Output_Waste"
value = 37
Index: data/civ2/governments.ruleset
===================================================================
--- data/civ2/governments.ruleset (revision 11322)
+++ data/civ2/governments.ruleset (working copy)
@@ -37,11 +37,6 @@
; should be a standard tag if preferred is not;
; otherwise may be "-"
-; production_*_bonus = added to base production for each worked tile;
-; second value is used instead when city is celebrating
-; production_*_penalty = if non-zero, tile production above this amount is
-; reduced by one; second value used when celebrating
-
; ruler_titles = ruler titles by nation, "-" is default, and non-matched
; nations are ignored
@@ -56,14 +51,6 @@
graphic = "gov.anarchy"
graphic_alt = "-"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Mr.")
ruler_female_title = _("Ms.")
@@ -75,20 +62,6 @@
\n\n\
Anarchy offers slightly less corruption and waste than Despotism, but\
slightly more unhappiness.\
-\n\n\
-Settlers consume 1 food per turn under Anarchy. Squares which would\
- normally yield more than 2 units of food, shields or trade suffer\
- a 1-unit penalty (e.g., an irrigated grassland square which would\
- normally yield 3 food only yields 2 food while you are in Anarchy).\
- (This penalty is removed if the city is celebrating; see Happiness.)\
-\n\n\
-Under Anarchy, each of your cities can support a number of military\
- units equal to its size without paying shields for upkeep.\
- (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Anarchy: each military unit inside\
- a city will keep one unhappy citizen content. (Or at least, unhappy\
- citizens will act content, and will not cause disorder.)\
")
;------------------------------------------------------------------------
@@ -100,14 +73,6 @@
graphic_alt = "-"
ai_better = "Monarchy"
-production_trade_bonus = 0, 0
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 2, 0
-production_shield_penalty = 2, 0
-production_food_penalty = 2, 0
-
ruler_male_title = _("Emperor")
ruler_female_title = _("Empress")
@@ -117,23 +82,6 @@
\n\n\
Despotism suffers the highest level of corruption and waste of all\
forms of government.\
-\n\n\
-Settlers consume 1 food per turn under Despotism. Squares which\
- would normally yield more than 2 units of food, shields or trade\
- suffer a 1-unit penalty (e.g., an irrigated grassland square which\
- would normally yield 3 food only yields 2 food while you are under\
- Despotic rule). (This penalty is removed if the city is\
- celebrating; see Happiness.)\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 60%.\
-\n\n\
-Under Despotism, each of your cities can support a number of\
- military units equal to its size without paying shields for\
- upkeep. (Additional units require 1 production shield each.)\
-\n\n\
-You may impose martial law under Despotism: each military unit\
- inside a city will keep one unhappy citizen content. (Or at least,\
- unhappy citizens will act content, and will not cause disorder.)\
")
;------------------------------------------------------------------------
@@ -147,14 +95,6 @@
graphic_alt = "-"
ai_better = "Communism"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("King")
ruler_female_title = _("Queen")
@@ -164,22 +104,6 @@
\n\n\
Monarchy suffers the same small amount of corruption and waste that\
the Republic does.\
-\n\n\
-Settlers consume 1 food per turn under Monarchy.\
-\n\n\
-If a city governed by a Monarchy is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade. See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 70%.\
-\n\n\
-Under Monarchy, your cities can support up to 3 military units\
- without paying shields for upkeep. (Additional units require 1\
- production shield each.)\
-\n\n\
-You may impose limited martial law under Monarchy: each military\
- unit in a city, up to a maximum of 3, will keep one unhappy citizen\
- content.\
")
;------------------------------------------------------------------------
@@ -192,14 +116,6 @@
graphic = "gov.communism"
graphic_alt = "-"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Comrade")
ruler_female_title = _("Comrade")
@@ -211,27 +127,7 @@
\n\n\
Under Communism, corruption and waste does not vary by distance from\
the capital; all cities (including the capital) have a modest amount\
- of corruption. In addition, Communist cities more than 10 squares\
- away from the capital are considered to be only 10 squares away when\
- computing the cost of inciting a revolt (see Units, Diplomat).\
-\n\n\
-Settlers consume 2 food per turn under Communism.\
-\n\n\
-If a city governed by Communism is celebrating, it will receive a\
- bonus of 1 trade in each square which already produces at least 1\
- trade. See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-Diplomats and Spies created under Communism are always veterans.\
-\n\n\
-Under Communism, your cities can support up to 3 military units\
- without paying shields for upkeep. (Additional units require 1\
- production shield each.)\
-\n\n\
-You impose limited but efficient martial law under Communism. Each\
- military unit inside a city, up to a maximum of 3, will keep 2\
- unhappy citizens content.\
+ of corruption.\
")
;------------------------------------------------------------------------
@@ -244,14 +140,6 @@
graphic = "gov.fundamentalism"
graphic_alt = "-"
-production_trade_bonus = 0, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("High Priest")
ruler_female_title = _("High Priestess")
@@ -265,25 +153,6 @@
devoted to their beliefs, and are usually willing to die to\
preserve them.\
\n\n\
-Under Fundamentalism, your cities can support up to 10 military\
- units without paying shields for upkeep. (Additional units\
- require 1 production shield each.) Fanatics units need no upkeep.\
-\n\n\
-Settlers consume 2 food per turn under Fundamentalism.\
-\n\n\
-If a city governed by Fundamentalism is celebrating, it will receive\
- a bonus of 1 trade in each square which already produces at least 1\
- trade. See Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-The maximum effective rate for science is 50%, the surplus is used\
- for collecting tax, and furthermore the science production is\
- halved.\
-\n\n\
-Cities under Fundamentalism suffer a small amount of corruption and\
- waste.\
-\n\n\
Improvement that normally convert unhappy citizens to content\
citizens, produces `tithes' (gold) equivalent to the number\
of people they would convert, and require no maintenance.\
@@ -299,14 +168,6 @@
graphic = "gov.republic"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("Consul")
ruler_female_title = _("Consul")
@@ -317,32 +178,6 @@
degree of freedom. Citizens under the Republic become unhappy\
easily, but the self-sufficiency of your citizens allows high levels\
of trade.\
-\n\n\
-Cities under the Republic suffer a small amount of corruption and\
- waste.\
-\n\n\
-Settlers consume 2 food per turn under the Republic. Squares with\
- at least 1 trade resource get a trade bonus of 1 under the Republic.\
-\n\n\
-Republican cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-The maximum rate you can set for science, tax or luxuries is 80%.\
-\n\n\
-Under the Republic, military units require 1 production shield each\
- for upkeep. In addition the following units are considered\
- aggressive units:\
-\n\n\
-- units with an attack strength greater than 0 which are not\
- inside a city or inside a fortress within 3 squares of a friendly\
- city\
-\n\n\
-- air units (including missiles and helicopters, but not fighters)\
- with an attack strength greater than 0, regardless of their\
- location\
-\n\n\
-The citizens of a city will tolerate 1 aggressive unit; subsequent\
- units will generate 1 unhappy citizen each.\
")
;------------------------------------------------------------------------
@@ -355,14 +190,6 @@
graphic = "gov.democracy"
graphic_alt = "-"
-production_trade_bonus = 1, 1
-production_shield_bonus = 0, 0
-production_food_bonus = 0, 0
-
-production_trade_penalty = 0, 0
-production_shield_penalty = 0, 0
-production_food_penalty = 0, 0
-
ruler_male_title = _("President")
ruler_female_title = _("President")
@@ -373,30 +200,6 @@
or waste during Democracy, but citizens become very upset during\
wars.\
\n\n\
-Settlers consume 2 food per turn under Democracy. Squares with\
- at least 1 trade resource get a trade bonus of 1 under Democracy.\
-\n\n\
-Democratic cities which are celebrating grow at a rate of 1 citizen\
- per turn; see Happiness for details.\
-\n\n\
-There are no taxation limits under Democracy; you can set science, tax\
- or luxuries to 100%.\
-\n\n\
-Under Democracy, military units require 1 production shield each for\
- upkeep. In addition the following units generate unhappiness:\
-\n\n\
-- Units with an attack strength greater than 0 which are not\
- inside a city, or inside a fortress within 3 squares of a\
- friendly city, generate 2 unhappy citizens.\
-\n\n\
-- Air units with an attack strength greater than 0 which are\
- inside a city generate only 1 unhappy citizen. Fighters generate\
- no unhappiness.\
-\n\n\
-If a city remains in disorder more than 2 turns under Democratic\
- rule, the citizens will spontaneously revolt and plunge your\
- civilization into Anarchy.\
-\n\n\
Because (happy) citizens of Democracy believe strongly in the\
government, their loyalty is unswerving. Military units of\
Democratic civilizations cannot be bribed, and Democratic cities\
Index: common/packets.def
===================================================================
--- common/packets.def (revision 11322)
+++ common/packets.def (working copy)
@@ -1115,11 +1115,6 @@
UINT8 reqs_count;
REQUIREMENT reqs[MAX_NUM_REQS:reqs_count];
- UINT8 output_before_penalty[O_MAX];
- UINT8 celeb_output_before_penalty[O_MAX];
- UINT8 output_inc_tile[O_MAX];
- UINT8 celeb_output_inc_tile[O_MAX];
-
UINT8 num_ruler_titles;
STRING name[MAX_LEN_NAME];
Index: common/city.c
===================================================================
--- common/city.c (revision 11322)
+++ common/city.c (working copy)
@@ -650,29 +650,27 @@
}
if (pcity) {
- struct government *g = get_gov_pcity(pcity);
- int before_penalty = (is_celebrating
- ? g->celeb_output_before_penalty[otype]
- : g->output_before_penalty[otype]);
-
prod += get_city_tile_output_bonus(pcity, ptile, output,
EFT_OUTPUT_ADD_TILE);
-
- /* Government & effect bonus/penalty. */
if (prod > 0) {
- prod += (is_celebrating
- ? g->celeb_output_inc_tile[otype]
- : g->output_inc_tile[otype]);
+ int penalty_limit = get_city_tile_output_bonus(pcity, ptile, output,
+ EFT_OUTPUT_PENALTY_TILE);
+
+ if (is_celebrating) {
+ prod += get_city_tile_output_bonus(pcity, ptile, output,
+ EFT_OUTPUT_INC_TILE_CELEBRATE);
+ penalty_limit = 0; /* no penalty if celebrating */
+ }
prod += get_city_tile_output_bonus(pcity, ptile, output,
- EFT_OUTPUT_INC_TILE);
+ EFT_OUTPUT_INC_TILE);
+ prod += (prod
+ * get_city_tile_output_bonus(pcity, ptile, output,
+ EFT_OUTPUT_PER_TILE))
+ / 100;
+ if (!is_celebrating && penalty_limit > 0 && prod > penalty_limit) {
+ prod--;
+ }
}
-
- prod += (prod * get_city_tile_output_bonus(pcity, ptile, output,
- EFT_OUTPUT_PER_TILE)) / 100;
-
- if (before_penalty > 0 && prod > before_penalty) {
- prod--;
- }
}
if (contains_special(tile.special, S_POLLUTION)) {
Index: common/capstr.c
===================================================================
--- common/capstr.c (revision 11322)
+++ common/capstr.c (working copy)
@@ -82,7 +82,7 @@
* as long as possible. We want to maintain network compatibility with
* the stable branch for as long as possible.
*/
-#define CAPABILITY "+Freeciv.Devel.2005.Dec.03"
+#define CAPABILITY "+Freeciv.Devel.2005.Dec.09"
void init_our_capability(void)
{
Index: common/effects.c
===================================================================
--- common/effects.c (revision 11322)
+++ common/effects.c (working copy)
@@ -113,7 +113,9 @@
"Upkeep_Factor",
"Unit_Upkeep_Free_Per_City",
"Output_Waste",
- "Output_Waste_By_Distance"
+ "Output_Waste_By_Distance",
+ "Output_Penalty_Tile",
+ "Output_Inc_Tile_Celebrate"
};
static bool initialized = FALSE;
Index: common/effects.h
===================================================================
--- common/effects.h (revision 11322)
+++ common/effects.h (working copy)
@@ -33,9 +33,9 @@
EFT_SPECIALIST_OUTPUT,
EFT_OUTPUT_BONUS,
EFT_OUTPUT_BONUS_2,
- EFT_OUTPUT_ADD_TILE,
- EFT_OUTPUT_INC_TILE,
- EFT_OUTPUT_PER_TILE,
+ EFT_OUTPUT_ADD_TILE, /* add to each worked tile */
+ EFT_OUTPUT_INC_TILE, /* add to each worked tile that already has output */
+ EFT_OUTPUT_PER_TILE, /* increase tile output by given % */
EFT_OUTPUT_WASTE_PCT,
EFT_FORCE_CONTENT,
/* TODO: EFT_FORCE_CONTENT_PCT, */
@@ -102,6 +102,8 @@
EFT_UNIT_UPKEEP_FREE_PER_CITY, /* this many units are free from upkeep */
EFT_OUTPUT_WASTE,
EFT_OUTPUT_WASTE_BY_DISTANCE,
+ EFT_OUTPUT_PENALTY_TILE, /* -1 penalty to tiles producing more than this */
+ EFT_OUTPUT_INC_TILE_CELEBRATE,
EFT_LAST /* keep this last */
};
Index: common/government.h
===================================================================
--- common/government.h (revision 11322)
+++ common/government.h (working copy)
@@ -54,26 +54,6 @@
struct ruler_title *ruler_titles;
int num_ruler_titles;
- /* government production penalties (when celebrating and when not) */
- int output_before_penalty[O_MAX];
- int celeb_output_before_penalty[O_MAX];
-
- /* government production bonuses. These act as an EFT_XXX_INC_TILE
- * effect. There are separate values for celebrating versus normal
- * cities. */
- int output_inc_tile[O_MAX];
- int celeb_output_inc_tile[O_MAX];
-
- /* waste/corruption modifiers - see governments.ruleset for more detail */
- struct gov_waste {
- int level;
- int modifier;
- int fixed_distance;
- int distance_factor;
- int extra_distance;
- int max_distance_cap;
- } waste[O_MAX];
-
char *helptext;
/* AI cached data for this government. */
Index: ai/aicity.c
===================================================================
--- ai/aicity.c (revision 11322)
+++ ai/aicity.c (working copy)
@@ -347,7 +347,6 @@
case EFT_OUTPUT_WASTE_BY_DISTANCE:
case EFT_OUTPUT_WASTE_PCT:
case EFT_SPECIALIST_OUTPUT:
- case EFT_NO_DIPLOMACY:
break;
case EFT_CITY_VISION_RADIUS_SQ:
@@ -643,6 +642,9 @@
case EFT_INSPIRE_PARTISANS:
case EFT_HAPPINESS_TO_GOLD:
case EFT_FANATICS:
+ case EFT_NO_DIPLOMACY:
+ case EFT_OUTPUT_PENALTY_TILE:
+ case EFT_OUTPUT_INC_TILE_CELEBRATE:
case EFT_TRADE_REVENUE_BONUS:
break;
case EFT_LAST:
Index: ai/aihand.c
===================================================================
--- ai/aihand.c (revision 11322)
+++ ai/aihand.c (working copy)
@@ -320,9 +320,7 @@
bonus += get_player_bonus(pplayer, EFT_INSPIRE_PARTISANS) ? 3 : 0;
bonus += get_player_bonus(pplayer, EFT_RAPTURE_GROW) ? 2 : 0;
bonus += get_player_bonus(pplayer, EFT_FANATICS) ? 3 : 0;
- output_type_iterate(o) {
- val += gov->output_inc_tile[o];
- } output_type_iterate_end;
+ bonus += get_player_bonus(pplayer, EFT_OUTPUT_INC_TILE) * 8;
val += (val * bonus) / 100;
Index: client/text.c
===================================================================
--- client/text.c (revision 11322)
+++ client/text.c (working copy)
@@ -47,7 +47,9 @@
int x = get_output_tile(ptile, i);
if (game.player_ptr) {
- before_penalty = game.player_ptr->government->output_before_penalty[i];
+ before_penalty = get_player_output_bonus(game.player_ptr,
+ get_output_type(i),
+ EFT_OUTPUT_PENALTY_TILE);
}
if (before_penalty > 0 && x > before_penalty) {
Index: client/packhand.c
===================================================================
--- client/packhand.c (revision 11322)
+++ client/packhand.c (working copy)
@@ -2258,13 +2258,6 @@
}
assert(gov->reqs.size == p->reqs_count);
- output_type_iterate(o) {
- gov->output_before_penalty[o] = p->output_before_penalty[o];
- gov->celeb_output_before_penalty[o] = p->celeb_output_before_penalty[o];
- gov->output_inc_tile[o] = p->output_inc_tile[o];
- gov->celeb_output_inc_tile[o] = p->celeb_output_inc_tile[o];
- } output_type_iterate_end;
-
gov->num_ruler_titles = p->num_ruler_titles;
sz_strlcpy(gov->name_orig, p->name);
Index: client/helpdata.c
===================================================================
--- client/helpdata.c (revision 11322)
+++ client/helpdata.c (working copy)
@@ -1265,14 +1265,16 @@
/* Effects */
sprintf(buf + strlen(buf), _("Features:\n"));
effect_list_iterate(get_req_source_effects(&source), peffect) {
- Output_type_id output = O_LAST;
+ Output_type_id output_type = O_LAST;
struct unit_class *unitclass = NULL;
enum unit_flag_id unitflag = F_LAST;
+ const char *output = "All";
/* Grab output type, if there is one */
requirement_list_iterate(peffect->reqs, preq) {
if (preq->source.type == REQ_OUTPUTTYPE) {
- output = preq->source.value.outputtype;
+ output_type = preq->source.value.outputtype;
+ output = get_output_name(output_type);
} else if (preq->source.type == REQ_UNITCLASS) {
unitclass = preq->source.value.unitclass;
} else if (preq->source.type == REQ_UNITFLAG) {
@@ -1298,20 +1300,19 @@
peffect->value);
break;
case EFT_UPKEEP_FACTOR:
- if (peffect->value > 1 && output != O_LAST) {
+ if (peffect->value > 1 && output_type != O_LAST) {
sprintf(buf + strlen(buf), _("* You pay %d times normal %s "
- "upkeep for your units.\n"), peffect->value,
- get_output_name(output));
+ "upkeep for your units.\n"), peffect->value, output);
} else if (peffect->value > 1) {
sprintf(buf + strlen(buf), _("* You pay %d times normal "
"upkeep for your units.\n"), peffect->value);
}
break;
case EFT_UNIT_UPKEEP_FREE_PER_CITY:
- if (output != O_LAST) {
+ if (output_type != O_LAST) {
sprintf(buf + strlen(buf), _("* Each of your cities will avoid "
"paying %d %s towards unit upkeep.\n"), peffect->value,
- get_output_name(output));
+ output);
} else {
sprintf(buf + strlen(buf), _("* Each of your cities will avoid "
"paying %d towards unit upkeep.\n"), peffect->value);
@@ -1404,68 +1405,49 @@
sprintf(buf + strlen(buf), _("* Veteran units.\n"));
}
break;
+ case EFT_OUTPUT_PENALTY_TILE:
+ sprintf(buf + strlen(buf), _("* Each worked tile that gives more "
+ "than %d %s will suffer a -1 penalty when not "
+ "celebrating.\n"), peffect->value, output);
+ break;
+ case EFT_OUTPUT_INC_TILE_CELEBRATE:
+ sprintf(buf + strlen(buf), _("* Each worked tile with at least 1 "
+ "%s will yield %d additional %s when celebrating.\n"),
+ output, peffect->value, output);
+ break;
+ case EFT_OUTPUT_INC_TILE:
+ sprintf(buf + strlen(buf), _("* Each worked tile with at least 1 "
+ "%s will yield %d additional %s.\n"), output,
+ peffect->value, output);
+ break;
+ case EFT_OUTPUT_WASTE:
+ if (peffect->value > 30) {
+ sprintf(buf + strlen(buf), _("* %s production will suffer "
+ "massive waste.\n"), output);
+ } else if (peffect->value >= 15) {
+ sprintf(buf + strlen(buf), _("* %s production will suffer "
+ "some waste.\n"), output);
+ } else {
+ sprintf(buf + strlen(buf), _("* %s production will suffer "
+ "a small amount of waste.\n"), output);
+ }
+ break;
+ case EFT_OUTPUT_WASTE_BY_DISTANCE:
+ if (peffect->value >= 3) {
+ sprintf(buf + strlen(buf), _("* %s waste will increase quickly "
+ "with distance from capital.\n"), output);
+ } else if (peffect->value == 2) {
+ sprintf(buf + strlen(buf), _("* %s waste will increase "
+ "with distance from capital.\n"), output);
+ } else {
+ sprintf(buf + strlen(buf), _("* %s waste will increase slowly "
+ "with distance from capital.\n"), output);
+ }
default:
break;
}
} effect_list_iterate_end;
- output_type_iterate(ot) {
- if (gov->output_before_penalty[ot] > 0
- && gov->output_before_penalty[ot]
- == gov->celeb_output_before_penalty[ot]) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile that gives more "
- "than %d %s will suffer a -1 penalty.\n"),
- gov->output_before_penalty[ot], get_output_name(ot));
- } else if (gov->output_before_penalty[ot] > 0) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile that gives more than %d %s will "
- "suffer a -1 penalty when not celebrating.\n"),
- gov->output_before_penalty[ot], get_output_name(ot));
- }
- } output_type_iterate_end;
- output_type_iterate(ot) {
- if (gov->celeb_output_before_penalty[ot] > 0
- && gov->celeb_output_before_penalty[ot]
- != gov->output_before_penalty[ot]) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile that gives more "
- "than %d %s will suffer a -1 penalty when celebrating.\n"),
- gov->celeb_output_before_penalty[ot], get_output_name(ot));
- }
- } output_type_iterate_end;
- output_type_iterate(ot) {
- if (gov->output_inc_tile[ot] > 0
- && gov->output_inc_tile[ot] == gov->celeb_output_inc_tile[ot]) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile with at least 1 "
- "%s will yield %d additional %s.\n"), get_output_name(ot),
- gov->output_inc_tile[ot], get_output_name(ot));
- } else if (gov->output_inc_tile[ot] > 0) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile with at least 1 "
- "%s will yield %d additional %s when not celebrating.\n"),
- get_output_name(ot), gov->output_inc_tile[ot],
- get_output_name(ot));
- }
- } output_type_iterate_end;
- output_type_iterate(ot) {
- if (gov->celeb_output_inc_tile[ot] > 0
- && gov->celeb_output_inc_tile[ot] != gov->output_inc_tile[ot]) {
- sprintf(buf + strlen(buf),
- _("* Each worked tile with at least 1 "
- "%s will yield %d additional %s when celebrating.\n"),
- get_output_name(ot), gov->celeb_output_inc_tile[ot],
- get_output_name(ot));
- }
- } output_type_iterate_end;
- output_type_iterate(ot) {
- if (gov->waste[ot].level > 0) {
- sprintf(buf + strlen(buf), _("* %s production will suffer "
- "waste.\n"), get_output_name(ot));
- }
- } output_type_iterate_end;
-
unit_type_iterate(utype) {
if (utype->gov_requirement == gov) {
sprintf(buf + strlen(buf),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Freeciv-Dev] Re: (PR#14760) More govt generalization,
Per I. Mathisen <=
|
|