If you conquer/marry/MOV a City State, do its votes in the UN....

Evie94

Warlord
Joined
Feb 15, 2013
Messages
255
Location
Ireland
still count towards the total necessary for the Diplomatic Victory?

Just reconsidering my Austria strategy, and formulating my Venice strategy, is it better to pursue a Science Victory because when you add the CS' to your Empire it becomes impossible to acquire its votes?
 
I'm 90% sure the answer will be no. I think, since they're no longer a CS ally, you don't get the additional votes.
 
no the votes don't carry over. For Venice you can still win diplo if you don't go crazy, 2 puppets is enough IMO.
 
I believe the required number of votes for a diplomatic victory is dependent on the number of city states currently in the game, so it may actually go down when a CS is converted to a regular city. I'm not 100% certain of this, however.
 
still count towards the total necessary for the Diplomatic Victory?

No, the number of votes necessary goes down.

I've not yet had any problem with the WC in over 15 Venice games, including some in which Austria also married CS.

The only time the Diplo Vict became very hard was when Casimir and Genghis went berserk capturing CS (I think they captured 6-7 between them), while Venice had bought six and Austria had married a few. Captured CS aren't removed from the total as they could be liberated, and even with all the remaining CS allied + the delegates from Globalization it was not enough to become WL unless the AI would have voted for me or I had liberated the CS.

It was the only time this happened, otherwise even buying many puppets isn't enough.
 
Thanks guys, really makes my Venice Strat easier: I was gonna buy Spaceship Parts under Freedom but this makes life much easier
 
While the count needed does go down when city states are removed from the game; it's not 1:1; it's more like every two city states you buy/marry decreases the count by one.

Post patch; it may still be faster as Venice to buy space ship parts even with now needing 2K gold each rather than 1K with the starting value to win diplomatic victory also having increased.
 
Bought out does not count for anything... it's as if the bought CS did not even start the game.

Dead CS count as half. Same with major civs.

Notice that everything in the code below that is CAPITALIZED represents an XML variable exported to the XML files, so we can now (after the Fall patch) change the coefficients and constants of the logarithmic regressions that control the effects of the number of CS and civs for Diplo Victory...

Code:
/// Update diplo victory parameters, such as how many votes are needed to win
void CvGame::DoUpdateDiploVictory()
{
	int iVotesForHost = 1;
	int iVotesPerCiv = 1;
	int iVotesPerCityState = 1;
	for (int i = 0; i < GC.getNumLeagueSpecialSessionInfos(); i++)
	{
		LeagueSpecialSessionTypes e = (LeagueSpecialSessionTypes)i;
		CvLeagueSpecialSessionEntry* pInfo = GC.getLeagueSpecialSessionInfo(e);
		CvAssert(pInfo != NULL);
		if (pInfo != NULL)
		{
			if (pInfo->IsUnitedNations())
			{
				iVotesForHost = pInfo->GetHostDelegates();
				iVotesPerCiv = pInfo->GetCivDelegates();
				iVotesPerCityState = pInfo->GetCityStateDelegates();
			}
		}
	}

	float fCivsToCount = 0.0f;
	float fCityStatesToCount = 0.0f;
	for (uint i = 0; i < MAX_CIV_PLAYERS; i++)
	{
		PlayerTypes e = (PlayerTypes)i;
		CvPlayer* pPlayer = &GET_PLAYER(e);
		if (pPlayer != NULL && pPlayer->isEverAlive())
		{
			// Minor civ
			if (pPlayer->isMinorCiv())
			{
				// Bought out does not count (they are no longer in the pool of teams, cannot be liberated, etc.)
				if (!pPlayer->GetMinorCivAI()->IsBoughtOut())
				{
					if (pPlayer->isAlive())
					{
						fCityStatesToCount += 1.0f;
					}
					else
					{
						fCityStatesToCount += 0.5f;
					}
				}
			}
			// Major civ
			else
			{
				if (pPlayer->isAlive())
				{
					fCivsToCount += 1.0f;
				}
				else
				{
					fCivsToCount += 0.5f;
				}
			}
		}
	}

	// Number of delegates needed to win increases the more civs and city-states there are in the game,
	// but these two scale differently since civs' delegates are harder to secure. These functions 
	// are based on a logarithmic regression.
	float fCivVotesPortion = (GC.getDIPLO_VICTORY_CIV_DELEGATES_COEFFICIENT() * (float)log(fCivsToCount)) + GC.getDIPLO_VICTORY_CIV_DELEGATES_CONSTANT();
	if (fCivVotesPortion < 0.0f)
	{
		fCivVotesPortion = 0.0f;
	}
	float fCityStateVotesPortion = (GC.getDIPLO_VICTORY_CS_DELEGATES_COEFFICIENT() * (float)log(fCityStatesToCount)) + GC.getDIPLO_VICTORY_CS_DELEGATES_CONSTANT();
	if (fCityStateVotesPortion < 0.0f)
	{
		fCityStateVotesPortion = 0.0f;
	}

	int iVotesToWin = (int)floor(fCivVotesPortion + fCityStateVotesPortion);
	iVotesToWin = MAX(iVotesForHost + iVotesPerCiv + 1, iVotesToWin);
	iVotesToWin = MIN(iVotesForHost + (iVotesPerCiv * (int)fCivsToCount) + (iVotesPerCityState * (int)fCityStatesToCount), iVotesToWin);

	SetVotesNeededForDiploVictory(iVotesToWin);
	GC.GetEngineUserInterface()->setDirty(LeagueScreen_DIRTY_BIT, true);
}
 
Top Bottom