Influence Calculation question

Resipsa

King
Joined
Jul 20, 2012
Messages
998
In pic related why am I suffering ideological unhappiness? Three civs have received ideologies each with the same amount of influence with me and each a different ideology.
 

Attachments

  • 2015-03-22_00001.jpg
    2015-03-22_00001.jpg
    227.8 KB · Views: 122
People prefer autocracy, it says so in the screenshot. Why does that happen? Because the civilization that has influenced your civilization more is using autocracy. If you could get your civilization's ttourism up that would be more helpful for your civilization's mood since you will be influencing them with the ideology that you have adopted.
 
In pic related why am I suffering ideological unhappiness? Three civs have received ideologies each with the same amount of influence with me and each a different ideology.

seems weird. I would have thought that, since you are also influenced by order with the same amount, they would cancel each other out.
 
seems weird. I would have thought that, since you are also influenced by order with the same amount, they would cancel each other out.

External influence can influence you and the civilization that has the most tourism that's content and has the ideology that you're copying. If you don't have enough tourism to influence the external influences that have different ideologies and more tourism, then you might have sudden unhappiness. Either that or you could adopt social policies that give happiness.
 
In order to not have any unhappiness, the pressure for your ideology has to be equal or greater than the SUM of the pressures for BOTH other ideologies.

Otherwise, such as in your case where 1 < 2, your preferred ideology is one of the other two. Which one? Here it gets interesting.

Spoiler :

F,A,O - let's define these as "pressure for freedom", "pressure for autocracy", "pressure for order"

If you are freedom, then:
If A > O, preferred ideology is autocracy​
otherwise, it is order​

If you are autocracy, then:
If F >= O, preferred ideology is freedom​
otherwise, it is order​

If you are order, then:
If F > A, preferred ideology is freedom​
otherwise, it is autocracy​



Basically, in situations where the pressure for your ideology is lower than the SUM OF BOTH other ideologies, AND the pressure for those other ideologies is equal, the game defaults to order if you are freedom, to freedom if you are autocracy, and to autocracy if you are order. Splendid!

Pressure values are integers, so it doesn't matter if someone has 15% influence on you, and someone else has 16%. As long as they are both in the exotic range, they exert the same influence.

Taken straight from the source code, CvCultureClasses.cpp in CvGameCoreDLL_Expansion2, starting from line 3239.

Spoiler :

// Now compute satisfaction with this branch compared to two other ones
int iDissatisfaction = 0;
if (eCurrentIdeology == eFreedomBranch)
{
if (iPressureForFreedom >= (iPressureForAutocracy + iPressureForOrder))
{
m_eOpinion = PUBLIC_OPINION_CONTENT;
}
else
{
if (iPressureForAutocracy > iPressureForOrder)
{
m_ePreferredIdeology = eAutocracyBranch;
}
else if (iPressureForOrder >= iPressureForAutocracy)
{
m_ePreferredIdeology = eOrderBranch;
}
iDissatisfaction = (iPressureForAutocracy + iPressureForOrder) - iPressureForFreedom;
}
}
else if (eCurrentIdeology == eAutocracyBranch)
{
if (iPressureForAutocracy >= (iPressureForFreedom + iPressureForOrder))
{
m_eOpinion = PUBLIC_OPINION_CONTENT;
}
else
{
if (iPressureForFreedom >= iPressureForOrder)
{
m_ePreferredIdeology = eFreedomBranch;
}
else if (iPressureForOrder > iPressureForFreedom)
{
m_ePreferredIdeology = eOrderBranch;
}
iDissatisfaction = (iPressureForFreedom + iPressureForOrder) - iPressureForAutocracy;
}
}
else
{
if (iPressureForOrder >= (iPressureForFreedom + iPressureForAutocracy))
{
m_eOpinion = PUBLIC_OPINION_CONTENT;
}
else
{
if (iPressureForFreedom > iPressureForAutocracy)
{
m_ePreferredIdeology = eFreedomBranch;
}
else if (iPressureForAutocracy >= iPressureForFreedom)
{
m_ePreferredIdeology = eAutocracyBranch;
}
iDissatisfaction = (iPressureForFreedom + iPressureForAutocracy) - iPressureForOrder;
}
}


PS - is there a way to paste code without losing the tabulation?
 
Top Bottom