What the crap??

Korut Zelva

Chieftain
Joined
May 24, 2007
Messages
11
I've got town wanting to join backward nations all the time, even if they have 0% culture of that civilization and I'm the culture leader by a wide margin. I hate being prompted every other turn about it.

Once I recaptured one of my town and it got liberated as one of my vassal city despite being 86% of my culture byb now. They didn't ask me my opinion about it, I mean my soldiers are walking in the streets, you'd think I'd had a say!

Is that a bug or is that a feature that can be turned off?
 
I've got town wanting to join backward nations all the time, even if they have 0% culture of that civilization and I'm the culture leader by a wide margin. I hate being prompted every other turn about it.


I agree. Every 3rd turn I was being prompted by cities wanting to join civ "X". When I say no, the answer should be NO. Why does the system ask again and again as if I will change my mind just because it asked me 15 times. I don't mind it asking once or twice, but time after time ... it gets a little boring.
 
someone who can mod the game should write a script and turn this crap off.
 
guyz there's an option you have to unlock to avoid this.
Escape > Option > Game : then uncheck the "Helping advice" or something like that ( sorry but i'm not playing on English version :p ). Its the same option that cheers you to build colosseum or market in a city by a pop up on the screen.

uncheck this option will disable those messages, i hope i was clear, it's a bite late and i'm not sure.
 
The irony of course, is that you can have 70% culture in an enemy's city and it won't culture flip. I've never had what you describe happen to me though, but I have had bundles of 70% culture cities never flip.
 
Culture flipping is also dependent on number of troops present in the city. If an enemy posts enough troops in the city, then the chance of culture flipping falls to zero, even if your culture has an overwhelming presence in the city. Also, since the cities you are pressuring with culture are likely to be AI border cities, the AI will post extra troops there anyway.

However, what the OP is describing, I think, is the game's help files, not a city revolting to join another Civ. In this case, you can just turn off the game's advice and you'll be fine.
 
I think it appears as 'cost cutting advice'

because by losing the city you can cut costs, it probably lists the civ that it would cost the least to own.

For all who can read it well, here is the code .. it seems that
Whoever has the highest (Culture)/(Palace Distance) is the 'rightful owner'
but everyone gets a default culture of 1 for the city
*2 to palace distance if the civs palace is on a spperate continent (1/2 to total value)
*1.5 to culture if the civ is the Founder


They seem to be just saying that city X would cost less for civ A to run than it does you... would you like to cut your costs?

Basically the Popup should be blocked (maybe allow it if you are on their team.. not vassal Master but Permanent Allytype team)


Spoiler :

PlayerTypes CvCity::getLiberationPlayer(bool bConquest) const
{
if (isCapital())
{
return NO_PLAYER;
}

for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; ++iPlayer)
{
CvPlayer& kLoopPlayer = GET_PLAYER((PlayerTypes)iPlayer);
if (kLoopPlayer.isAlive() && kLoopPlayer.getParent() == getOwnerINLINE())
{
CvCity* pLoopCapital = kLoopPlayer.getCapitalCity();
if (NULL != pLoopCapital)
{
if (pLoopCapital->area() == area())
{
return (PlayerTypes)iPlayer;
}
}
}
}

CvPlayer& kOwner = GET_PLAYER(getOwnerINLINE());
if (kOwner.canSplitEmpire() && kOwner.canSplitArea(area()->getID()))
{
PlayerTypes ePlayer = GET_PLAYER(getOwnerINLINE()).getSplitEmpirePlayer(area()->getID());

if (NO_PLAYER != ePlayer)
{
if (GET_PLAYER(ePlayer).isAlive())
{
return ePlayer;
}
}
}

PlayerTypes eBestPlayer = NO_PLAYER;
int iBestValue = 0;

int iTotalCultureTimes100 = countTotalCultureTimes100();

for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; ++iPlayer)
{
CvPlayer& kLoopPlayer = GET_PLAYER((PlayerTypes)iPlayer);

if (kLoopPlayer.isAlive())
{
if (kLoopPlayer.canReceiveTradeCity())
{
CvCity* pCapital = kLoopPlayer.getCapitalCity();
if (NULL != pCapital)
{
int iCapitalDistance = ::plotDistance(getX_INLINE(), getY_INLINE(), pCapital->getX_INLINE(), pCapital->getY_INLINE());
if (area() != pCapital->area())
{
iCapitalDistance *= 2;
}

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;
}
}
}
}
}

if (NO_PLAYER != eBestPlayer)
{
if (getOwnerINLINE() == eBestPlayer)
{
return NO_PLAYER;
}

for (int iPlot = 0; iPlot < NUM_CITY_PLOTS; ++iPlot)
{
CvPlot* pLoopPlot = ::plotCity(getX_INLINE(), getY_INLINE(), iPlot);

if (NULL != pLoopPlot)
{
if (pLoopPlot->isVisibleEnemyUnit(eBestPlayer))
{
return NO_PLAYER;
}
}
}
}

return eBestPlayer;
}
 
I think it appears as 'cost cutting advice'

because by losing the city you can cut costs, it probably lists the civ that it would cost the least to own.

For all who can read it well, here is the code .. it seems that
Whoever has the highest (Culture)/(Palace Distance) is the 'rightful owner'
but everyone gets a default culture of 1 for the city
*2 to palace distance if the civs palace is on a spperate continent (1/2 to total value)
*1.5 to culture if the civ is the Founder


They seem to be just saying that city X would cost less for civ A to run than it does you... would you like to cut your costs?

Basically the Popup should be blocked (maybe allow it if you are on their team.. not vassal Master but Permanent Allytype team)


Spoiler :

PlayerTypes CvCity::getLiberationPlayer(bool bConquest) const
{
if (isCapital())
{
return NO_PLAYER;
}

for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; ++iPlayer)
{
CvPlayer& kLoopPlayer = GET_PLAYER((PlayerTypes)iPlayer);
if (kLoopPlayer.isAlive() && kLoopPlayer.getParent() == getOwnerINLINE())
{
CvCity* pLoopCapital = kLoopPlayer.getCapitalCity();
if (NULL != pLoopCapital)
{
if (pLoopCapital->area() == area())
{
return (PlayerTypes)iPlayer;
}
}
}
}

CvPlayer& kOwner = GET_PLAYER(getOwnerINLINE());
if (kOwner.canSplitEmpire() && kOwner.canSplitArea(area()->getID()))
{
PlayerTypes ePlayer = GET_PLAYER(getOwnerINLINE()).getSplitEmpirePlayer(area()->getID());

if (NO_PLAYER != ePlayer)
{
if (GET_PLAYER(ePlayer).isAlive())
{
return ePlayer;
}
}
}

PlayerTypes eBestPlayer = NO_PLAYER;
int iBestValue = 0;

int iTotalCultureTimes100 = countTotalCultureTimes100();

for (int iPlayer = 0; iPlayer < MAX_CIV_PLAYERS; ++iPlayer)
{
CvPlayer& kLoopPlayer = GET_PLAYER((PlayerTypes)iPlayer);

if (kLoopPlayer.isAlive())
{
if (kLoopPlayer.canReceiveTradeCity())
{
CvCity* pCapital = kLoopPlayer.getCapitalCity();
if (NULL != pCapital)
{
int iCapitalDistance = ::plotDistance(getX_INLINE(), getY_INLINE(), pCapital->getX_INLINE(), pCapital->getY_INLINE());
if (area() != pCapital->area())
{
iCapitalDistance *= 2;
}

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;
}
}
}
}
}

if (NO_PLAYER != eBestPlayer)
{
if (getOwnerINLINE() == eBestPlayer)
{
return NO_PLAYER;
}

for (int iPlot = 0; iPlot < NUM_CITY_PLOTS; ++iPlot)
{
CvPlot* pLoopPlot = ::plotCity(getX_INLINE(), getY_INLINE(), iPlot);

if (NULL != pLoopPlot)
{
if (pLoopPlot->isVisibleEnemyUnit(eBestPlayer))
{
return NO_PLAYER;
}
}
}
}

return eBestPlayer;
}

I tried reloading and conquering the city again and this time I got it. There must be some random factor in there too...
 
Well the auto-liberate on capture was designed for teammates
but they accidentally extended it to auto liberating for your vassals

That was corrected in 3.13 so that might be why you have the different results.
(now you only auto-liberate for you Ally or your Master.. if you could be a Vassal)
 
Yeah just turn off the irritating Adviser pop-ups, I did that during my first game of BTS because I found those pop-ups annoying, hasn't bothered me since...
 
I find culture flipping quite useful but thats because I've been recently playing Pericles the most . I had a couple of enemy towns flip over to me and it was sweet because they had access to key resources and I didn't even have to move a single troop to do it . :D

Especially with Pericles , I generate those GA at a high rate and usually ' culture bomb' my border cities which really put a strain on the enemy and encourage his towns to flip to me . :D
 
Top Bottom