CvDiplomacyAI::DoExpansionWarningStatement(PlayerTypes, DiploStatementTypes &)
- Defined in
- CvDiplomacyAI.cpp, line 13961
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoExpansionWarningStatement
Hooks
static bool BeforeCvDiplomacyAI_DoExpansionWarningStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void AfterCvDiplomacyAI_DoExpansionWarningStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void ReplaceCvDiplomacyAI_DoExpansionWarningStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoExpansionWarningStatement>(host, &BeforeCvDiplomacyAI_DoExpansionWarningStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoExpansionWarningStatement>(host, &AfterCvDiplomacyAI_DoExpansionWarningStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoExpansionWarningStatement>(host, &ReplaceCvDiplomacyAI_DoExpansionWarningStatement);
Code
13960/// Possible Contact Statement13961void CvDiplomacyAI::DoExpansionWarningStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement)13962{13963 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");13964 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.");1396513966 // Comment on aggressive expansion13967 if(eStatement == NO_DIPLO_STATEMENT_TYPE)13968 {13969 bool bSendStatement = false;13970 if (GET_PLAYER(ePlayer).GetTurnsSinceSettledLastCity() < GC.getEXPANSION_BICKER_TIMEOUT() && !EverMadeExpansionPromise(ePlayer) && !IsPlayerMadeExpansionPromise(ePlayer) && !IsPlayerIgnoredExpansionPromise(ePlayer) && !IsPlayerBrokenExpansionPromise(ePlayer))13971 {13972 // We're fiercely opposed to their expansion13973 if(GetLandDisputeLevel(ePlayer) >= DISPUTE_LEVEL_FIERCE)13974 bSendStatement = true;1397513976 // Have a strong dispute over land now, and didn't last turn13977 else if(GetLandDisputeLevel(ePlayer) >= DISPUTE_LEVEL_STRONG && GetLastTurnLandDisputeLevel(ePlayer) < DISPUTE_LEVEL_STRONG)13978 {13979 if(GetExpansionAggressivePosture(ePlayer) >= AGGRESSIVE_POSTURE_MEDIUM)13980 bSendStatement = true;13981 }13982 }1398313984 if(bSendStatement)13985 {13986 DiploStatementTypes eTempStatement = DIPLO_STATEMENT_EXPANSION_WARNING;13987 int iTurnsBetweenStatements = (GC.getEXPANSION_PROMISE_TURNS_EFFECTIVE() * GC.getGame().getGameSpeedInfo().getOpinionDurationPercent()) / 100;1398813989 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements)13990 eStatement = eTempStatement;13991 }13992 }13993}
Calls
- CvDiplomacyAI::EverMadeExpansionPromise(PlayerTypes)
- CvDiplomacyAI::GetExpansionAggressivePosture(PlayerTypes) const
- CvDiplomacyAI::GetLandDisputeLevel(PlayerTypes) const
- CvDiplomacyAI::GetLastTurnLandDisputeLevel(PlayerTypes) const
- CvDiplomacyAI::GetNumTurnsSinceStatementSent(PlayerTypes, DiploStatementTypes)
- CvDiplomacyAI::IsPlayerBrokenExpansionPromise(PlayerTypes)
- CvDiplomacyAI::IsPlayerIgnoredExpansionPromise(PlayerTypes)
- CvDiplomacyAI::IsPlayerMadeExpansionPromise(PlayerTypes, int)
- CvGame::getGameSpeedInfo() const
- CvGameSpeedInfo::getOpinionDurationPercent() const
- CvGlobals::getEXPANSION_BICKER_TIMEOUT()
- CvGlobals::getEXPANSION_PROMISE_TURNS_EFFECTIVE()
- CvGlobals::getGame()
- CvPlayer::GetTurnsSinceSettledLastCity() const
- CvPlayerAI::getPlayer(PlayerTypes)