I loved playing with Pollina because she would always pop in with an exact answer--seemingly glad to research it. With me, it have to go kicking and screaming into the code. I often come up with a partial answer. It can give me a headache, but this time it didn't take too long.
The answer is: if the capital is not in the "area", which I take to mean Toku is off-continent, then you double the distance.
Therefore, our capital is 'closer' to Shanghai than Tokyo is.
See, that's a partial answer. I doesn't explain the culture thing. Want me to go back in? <= See, this is me complaining
Thanks for checking this!
Knowing about the distance doubling for overseas cities might have saved us from a minor disaster.
This shows the doubling I was talking about:
Code:int iCapitalDistance = ::plotDistance(getX_INLINE(), getY_INLINE(), pCapital->getX_INLINE(), pCapital->getY_INLINE()); if (area() != pCapital->area()) { iCapitalDistance *= 2; }
And this shows how culture and distance are both used to pick the winner: (Pretty short and sweet, but it gives me a headache)
Code:int iCultureTimes100 = getCultureTimes100((PlayerTypes)iPlayer); if (bConquest) { if (iPlayer == getOriginalOwner()) { iCultureTimes100 *= 3; iCultureTimes100 /= 2; } } if (GET_PLAYER((PlayerTypes)iPlayer).getTeam() == getTeam() || GET_TEAM(GET_PLAYER((PlayerTypes)iPlayer).getTeam()).isVassal(getTeam()) || GET_TEAM(getTeam()).isVassal(GET_PLAYER((PlayerTypes)iPlayer).getTeam())) { iCultureTimes100 *= 2; iCultureTimes100 = (iCultureTimes100 + iTotalCultureTimes100) / 2; } int iValue = std::max(100, iCultureTimes100) / std::max(1, iCapitalDistance); if (iValue > iBestValue) { iBestValue = iValue; eBestPlayer = (PlayerTypes)iPlayer; }
I can't make sense out of code, but I did notice that +1 per turn in cities very close to Tokyo didn't lose their (Liberate) option after gaining a few
Hmm
Last edited: