void CvPlot::doCulture()
[...]
if (getCulture(ePlayerX) > 0)
{
if (GC.getGame().isOption(GAMEOPTION_CULTURE_EQUILIBRIUM))
{
// By limiting decay to avoid 2+ -> 0, we can ensure that putting 2 culture on a tile will always be above 1 turn decay
const int iIsOverOne = getCulture(ePlayerX) > 1;
if (isInCultureRangeOfCityByPlayer(ePlayerX))
{
setCulture(ePlayerX, std::max(iIsOverOne, getCulture(ePlayerX) * (1000 - decayPermille) / 1000), false, false, true);
}
// Decay 15x faster (to 45% at default speeds) if outside of city control in equilibrium, since we can't immediately set to unowned when negative
else
{
setCulture(ePlayerX, std::max(iIsOverOne, getCulture(ePlayerX) * (1000 - 15 * decayPermille) / 1000), false, false, true);
}
}
else if (getCultureRateThisTurn(ePlayerX) < 1 && (!getPlotCity() || getOwner() != ePlayerX))
{
setCulture(ePlayerX, std::max(0, getCulture(ePlayerX) * (1000 - decayPermille) / 1000), false, false, true);
}
}