Correct the rulesets civ1 and civ2

Do you want to help out with Freeciv development? Then check out this forum.
nef
Veteran
Posts: 130
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Postby nef » Mon Mar 11, 2019 12:22 pm

In Civ I (and civ1 ruleset) the legion only has defense = 1. The help text is correct:

Code: Select all

helptext      = _("\
Legions are heavily armed and well disciplined infantry\
 units with an excellent offensive value.\
")
Note the 'excellent offensive value'.

As supplied in the distro the roles are inappropriate and should be:

Code: Select all

; roles         = "DefendOk", "DefendOkStartUnit",
roles         = "AttackStrongStartUnit",    ;nef
                "Hut", "BarbarianBuild", "BarbarianSea"

nef
Veteran
Posts: 130
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Postby nef » Mon Mar 11, 2019 12:24 pm

"Airliftable" flag in civ1 should be removed from [unitclass_land]. Can never be done because the effect Airlift is never set but AGH hasn't figured this out (and probably shouldn't need to).

Change the flags list in section [unitclass_land] so:

Code: Select all

; flags         = "TerrainSpeed", "DamageSlows", "CanOccupyCity", "BuildAnywhere",
flags         = "TerrainSpeed",  "CanOccupyCity", "BuildAnywhere", ;nef
                "CollectRansom", "ZOC", "CanFortify", "CanPillage",
;                 "TerrainDefense", "KillCitizen", "Airliftable"
                "TerrainDefense", "KillCitizen"                    ;nef


nef
Veteran
Posts: 130
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Postby nef » Mon Mar 18, 2019 10:47 am

nef wrote:As I recall free shield upkeep should be MIN (city size, 3) under despotism (and anarchy?).

If so then replace sections [effect_upkeep_free_units_anarchy] and
[effect_upkeep_free_units_despotism] with the following:

Code: Select all

[effect_upkeep_free_units_1]
type    = "Unit_Upkeep_Free_Per_City"
value   = 1
reqs    =
    { "type",       "name",      "range", "present"
      "MinSize",      1,         "city",   TRUE
      "Gov",        "Monarchy",  "Player", FALSE
      "Gov",        "Republic",  "Player", FALSE
      "Gov",        "Democracy", "Player", FALSE
      "Gov",        "Communism", "Player", FALSE
      "OutputType", "Shield",    "Local",  TRUE
    }

[effect_upkeep_free_units_2]
type    = "Unit_Upkeep_Free_Per_City"
value   = 1
reqs    =
    { "type",       "name",      "range", "present"
      "MinSize",      2,         "city",   TRUE
      "Gov",        "Monarchy",  "Player", FALSE
      "Gov",        "Republic",  "Player", FALSE
      "Gov",        "Democracy", "Player", FALSE
      "Gov",        "Communism", "Player", FALSE
      "OutputType", "Shield",    "Local",  TRUE
    }

[effect_upkeep_free_units_3]
type    = "Unit_Upkeep_Free_Per_City"
value   = 1
reqs    =
    { "type",       "name",      "range", "present"
      "MinSize",      3,         "city",   TRUE
      "Gov",        "Monarchy",  "Player", FALSE
      "Gov",        "Republic",  "Player", FALSE
      "Gov",        "Democracy", "Player", FALSE
      "Gov",        "Communism", "Player", FALSE
      "OutputType", "Shield",    "Local",  TRUE
    }


Can someone confirm/deny?


In response to meynaf's response I include the civ2civ3 style solution for cities up to size 19:
upkeep.txt
(8.42 KiB) Downloaded 2 times


This should be enough:
    Cities larger than this are not so easy in despotism
    If you are using despotism with cities this size you need your head read
    You can add more if you are really desperate

nef
Veteran
Posts: 130
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Postby nef » Mon Mar 18, 2019 10:54 am

Trade Routes:

As I reported in a previous post my recollection is that trade routes maxxed out at about 13 each in the (late?) middle game, declining to something insignificant at the end.

The effect "Traderoute_Pct" can be used to implement this. I used the calendar year breaks to degrade the recurrent revenue by 20% per break ending up at a residual of 20%. An example of each [effect_trade_*] is

Code: Select all

[effect_trade_1]
type    = "Traderoute_Pct"
value   = -20
reqs    =
    { "type", "name", "range"
      "MinYear", "1000", "World"
    }


The full set:
trade.txt
(646 Bytes) Downloaded 1 time


Features:

1. Although the steps are a little coarse the overall effect is remarkably similar to how I remember it.

2. These trade rules have a dramatic effect on the acceleration of the tech race that occurs at the end of the game reducing the rate from 3 techs per turn to just 1 - still much too fast (IMO) but a vast improvement.

There are other factors that affect the tech rate - such as tiles per player - so some tinkering may be in order for different map sizes etc.. The first rule in the attachment actually has no effect but I left it there for tinkerers.

There is a glitch: someone forgot to tell the client about the effect "Traderoute_pct".