Correct the rulesets civ1 and civ2

Do you want to help out with Freeciv development? Then check out this forum.
sveinung
Elite
Posts: 548
Joined: Wed Feb 20, 2013 4:50 pm

Re: Correct the rulesets civ1 and civ2

Post by sveinung »

nef wrote:"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).
Fixed as a part of Bug #850673 after cazfi discovered that 2.6, not covered by my original patch, had this problem too.
sveinung
Elite
Posts: 548
Joined: Wed Feb 20, 2013 4:50 pm

Re: Correct the rulesets civ1 and civ2

Post by sveinung »

sveinung wrote:Civ 2: What should boarding and disembarking ships do to the movement points of land units? See bug #23782
I have improved civ1 and civ2 dis/embark move cost fidelity for Freeciv 3.1. I probably got the details wrong. Follow up patches with fine tuning would be great.

The new rules: Alighting to or boarding from a city or other transport at the same tile is free. The civ1 ruleset takes all movement when disembarking from a transport to an adjacent tile. Both civ1 and civ2 takes all movement when embarking to a transport from an adjacent tile. Embarking to a transport at an adjacent tile is legal for both.

Update: The civ1 rules. The civ2 rules.

"Transport Disembark 2" action is here already. If a "Transport Embark 2" helps civ1 or civ2 fidelity please request it before the 3.1 data file format freeze.
Ignatus
Elite
Posts: 644
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Correct the rulesets civ1 and civ2

Post by Ignatus »

Civ2 Fighters in cities:
  • Have x4 defense against bombers;
  • Have x2 defense against another fighters;
  • Don't have SAM bonus unless the attacker is a missile.
Actually, we can't yet do this (defender-specific combat bonuses affected by the tile and city) but it's for the developers to think the way.
-->HRM#865085 HRM#865084 HRM#865086
Ignatus
Elite
Posts: 644
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Correct the rulesets civ1 and civ2

Post by Ignatus »

Palace: if I get it right, in Civ I palace could be sold (in Democracy and Communism it had likely no ill effects), and in Civ II it was not rebuilt automatically if lost. The corruption without a capital is devastating but not 100% (we can model it giving "Gov_Center" effect to all cities and lifting basic waste). I also think, in all comercial Civ games palace is an improvement (just civ-unique one), not a wonder, in most senses (CivII AI usually have enough money to rush it the same turn they lose their capital).

Civil war is triggered when the conqueror is less strong (in Civ1, just has less cities or is a barbarian), and cities tend to fall to separatists if they have high corruption.

Also, in CivII incited cities likely don't shrink, but all planes inside are destroyed.
nef
Elite
Posts: 324
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Post by nef »

In Civ I the palace is much like any other improvement with some exceptions:
A. Only one at a time (per player). If you build a duplicate the other is lost (no sales revenue I believe)
B. With civil war both players get a free replacement.
C. No civil war -> NO free replacement.

According to 'Rome' the corruption formula (p223) is:

Corruption = Total Trade * Dist * 3 / (10 * Gov) where Gov is = 8 (Anarchy), 12 (Despotism), 16 (Monarchy), 20 (Communism), 24 (Republic), 0 (Democracy) [The last is obviously a mistake - the corruption is zero for Democracy]. Divide by 2 for palace or courthouse in the city. Dist is always 10 for communism (and by implication 0 for Democracy so one could make Gov = 28). For the others Dist = 32 if you have no palace. but note 1. 'Rome' states that 32 is the maximum so in fc one should perhaps consider map size issue, 2. 'Rome' is ambiguous as to what happens with Communism and Democracy when there is no palace.

Also the metric used by Civ I (& II) is max(abs(dx), abs(dy)) + min(abs(dx),abs(dy))/2 giving what I consider to be a respectable approximation of a pythagorean sqrt. In any event, far superior to Chebyshev or Manhatten, being a compromise between the two, much like the sqrt pythagorean.

As for conditions for civil war 'Rome' again:

A. There must be a replacement civilisation. (That is one whose colour is not currently in use.)
B. There must be 4 or more cities left to divide up.
C. Empire larger than 'yours' (I presume this includes other AI`s but 'Rome' is silent on this).
Ignatus
Elite
Posts: 644
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Correct the rulesets civ1 and civ2

Post by Ignatus »

nef wrote:According to 'Rome' the corruption formula (p223) is:

Corruption = Total Trade * Dist * 3 / (10 * Gov) where Gov is = 8 (Anarchy), 12 (Despotism), 16 (Monarchy), 20 (Communism), 24 (Republic), 0 (Democracy) [The last is obviously a mistake - the corruption is zero for Democracy]. Divide by 2 for palace or courthouse in the city. Dist is always 10 for communism (and by implication 0 for Democracy so one could make Gov = 28). For the others Dist = 32 if you have no palace. but note 1. 'Rome' states that 32 is the maximum so in fc one should perhaps consider map size issue, 2. 'Rome' is ambiguous as to what happens with Communism and Democracy when there is no palace.

Also the metric used by Civ I (& II) is max(abs(dx), abs(dy)) + min(abs(dx),abs(dy))/2 giving what I consider to be a respectable approximation of a pythagorean sqrt. In any event, far superior to Chebyshev or Manhatten, being a compromise between the two, much like the sqrt pythagorean.
I found these pages on corruption and (for civ2) waste: civ1 civ2. Note that Civ2 calculates prod waste after paying unit upkeeps And maybe it just uses "diagonal=1.5" distance formula for corruption, i.e. (map_distance+real_map_distance)/2 (oh, that's effectively exactly equal to what you wrote).
nef
Elite
Posts: 324
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Post by nef »

(oh, that's effectively exactly equal to what you wrote).
Six of one and half a dozen of the other.

I wrote it that way because of the way it can be compared to the others:
  • A. max(abs(dx), abs(dy)) + min(abs(dx), abs(dy)) * 1 (Manhatten) (aka abs(dx) +abs(dy))
    B. max(abs(dx), abs(dy)) + min(abs(dx), abs(dy)) * 1/2 (Civ I/II) (aka straight distance + 1.5 diagonal)
    C. max(abs(dx), abs(dy)) + min(abs(dx), abs(dy)) * 0 (Chebyshev) (aka max (abs(dx), abs(dy)))

One sees that (B) is a neat compromise between the extremes of (A) and (C). One could go further and write these three in a single parametric form:
  • max(abs(dx), abs(dy)) + min(abs(dx), abs(dy)) * parameter, or better?:
    max(abs(dx), abs(dy)) * pmax + min(abs(dx), abs(dy)) * pmin
cazfi
Elite
Posts: 3069
Joined: Tue Jan 29, 2013 6:54 pm

Re: Correct the rulesets civ1 and civ2

Post by cazfi »

Did civ1 have one-time-bonus given when trade route was established? Our ruleset currently grants bonus to gold and science.

Also, another comment in trade settings part of the ruleset:
; TODO: What`s correct "cancelling" behavior for civ1? If you have established
; traderoute with enemy city nearby and conquer it -> what happens to traderoute
; between your cities with less than trademindist distance?
nef
Elite
Posts: 324
Joined: Mon Jun 25, 2018 5:01 pm

Re: Correct the rulesets civ1 and civ2

Post by nef »

cazfi wrote:Did civ1 have one-time-bonus given when trade route was established? Our ruleset currently grants bonus to gold and science.
Gold only. Maybe meynaf can help with the rest.
User avatar
meynaf
Hardened
Posts: 155
Joined: Sun Jan 21, 2018 10:27 am
Location: Lyon / France
Contact:

Re: Correct the rulesets civ1 and civ2

Post by meynaf »

cazfi wrote: Also, another comment in trade settings part of the ruleset:
; TODO: What`s correct "cancelling" behavior for civ1? If you have established
; traderoute with enemy city nearby and conquer it -> what happens to traderoute
; between your cities with less than trademindist distance?
Just tested (second test, correctly this time).
Trade route should be cancelled (= completely removed).
Post Reply