glider1
Deity
There are in theory a number of reasons why chain denouncement can happen. Here are a few:
// Does this player feel it's time to denounce ePlayer?
bool CvDiplomacyAI::IsDenounceAcceptable(PlayerTypes ePlayer, bool bBias)
int CvDiplomacyAI::GetDenounceWeight(PlayerTypes ePlayer, bool bBias)
{
// Base Personality value; ranges from 0 to 10 (ish)
// Hostile: Bonus
iWeight += 6;
// Afraid: Penalty
iWeight += -10;
// Unforgivable: Big Bonus
iWeight += 10;
// Enemy: Bonus
iWeight += 5;
// Competitor: Small Bonus
iWeight += 2;
// Good Relations: Penalty
iWeight += -10;
else if(eOpinion == MAJOR_CIV_OPINION_FRIEND)
iWeight += -25;
else if(eOpinion == MAJOR_CIV_OPINION_ALLY)
iWeight += -50;
// We are at war
iWeight += 2;
// Look for other players we like or are strong, and add a bonus if they've denounced this guy, or are at war with him
// We must not be on bad relations with eThirdParty
// If we're hostile or planning war, we don't care about this guy
// We're close to this guy who's at war - want to gain favor
iWeight += 1;
// Are they strong?
iWeight += (GetPlayerMilitaryStrengthComparedToUs(eThirdParty)
// Are we friends with them?
iWeight += 4;
// Rand: 0-5
// Used when friends are asking us to denounce someone
if(bBias)
iWeight += 3;
Spoiler :
// Does this player feel it's time to denounce ePlayer?
bool CvDiplomacyAI::IsDenounceAcceptable(PlayerTypes ePlayer, bool bBias)
int CvDiplomacyAI::GetDenounceWeight(PlayerTypes ePlayer, bool bBias)
{
// Base Personality value; ranges from 0 to 10 (ish)
// Hostile: Bonus
iWeight += 6;
// Afraid: Penalty
iWeight += -10;
// Unforgivable: Big Bonus
iWeight += 10;
// Enemy: Bonus
iWeight += 5;
// Competitor: Small Bonus
iWeight += 2;
// Good Relations: Penalty
iWeight += -10;
else if(eOpinion == MAJOR_CIV_OPINION_FRIEND)
iWeight += -25;
else if(eOpinion == MAJOR_CIV_OPINION_ALLY)
iWeight += -50;
// We are at war
iWeight += 2;
// Look for other players we like or are strong, and add a bonus if they've denounced this guy, or are at war with him
// We must not be on bad relations with eThirdParty
// If we're hostile or planning war, we don't care about this guy
// We're close to this guy who's at war - want to gain favor
iWeight += 1;
// Are they strong?
iWeight += (GetPlayerMilitaryStrengthComparedToUs(eThirdParty)
// Are we friends with them?
iWeight += 4;
// Rand: 0-5
// Used when friends are asking us to denounce someone
if(bBias)
iWeight += 3;