Bazaar developer reference

CvDiplomacyAI::DoWarmongerStatement(PlayerTypes, DiploStatementTypes &)

Defined in
CvDiplomacyAI.cpp, line 15159
Class
CvDiplomacyAI
Hook name
CivHooks::CvDiplomacyAI_DoWarmongerStatement

Hooks

static bool BeforeCvDiplomacyAI_DoWarmongerStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void AfterCvDiplomacyAI_DoWarmongerStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void ReplaceCvDiplomacyAI_DoWarmongerStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoWarmongerStatement>(host, &BeforeCvDiplomacyAI_DoWarmongerStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoWarmongerStatement>(host, &AfterCvDiplomacyAI_DoWarmongerStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoWarmongerStatement>(host, &ReplaceCvDiplomacyAI_DoWarmongerStatement);

Code

15158/// Possible Contact Statement15159void CvDiplomacyAI::DoWarmongerStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement)15160{15161	CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");15162	CvAssertMsg(ePlayer < MAX_MAJOR_CIVS, "DIPLOMACY_AI: Invalid Player Index.  Please send Jon this with your last 5 autosaves and what changelist # you're playing.");1516315164	if(eStatement == NO_DIPLO_STATEMENT_TYPE)15165	{15166		if(GetWarmongerThreat(ePlayer) >= THREAT_SEVERE)15167		{15168			bool bSendStatement = true;1516915170			// Don't send statement if we're going for conquest ourselves15171			if(IsGoingForWorldConquest())15172				bSendStatement = false;1517315174			// 2 in 3 chance we don't actually send the message (don't want to bombard the player from all sides)15175			if(33 < GC.getGame().getJonRandNum(100, "Diplomacy AI: rand roll to see if we warn a player about being a warmonger"))15176				bSendStatement = false;1517715178			DiploStatementTypes eTempStatement = DIPLO_STATEMENT_WARMONGER;15179			int iTurnsBetweenStatements = MAX_TURNS_SAFE_ESTIMATE;1518015181			if(bSendStatement)15182			{15183				if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements)15184					eStatement = eTempStatement;15185			}15186			// Add this statement to the log so we don't evaluate it again next turn15187			else15188				DoAddNewStatementToDiploLog(ePlayer, eTempStatement);15189		}15190	}15191}

Calls

Called by