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
- CvDiplomacyAI::DoAddNewStatementToDiploLog(PlayerTypes, DiploStatementTypes)
- CvDiplomacyAI::GetNumTurnsSinceStatementSent(PlayerTypes, DiploStatementTypes)
- CvDiplomacyAI::GetWarmongerThreat(PlayerTypes) const
- CvDiplomacyAI::IsGoingForWorldConquest()
- CvGame::getJonRandNum(int, const char *)
- CvGlobals::getGame()