CvDiplomacyAI::DoBulliedCityStateStatement(PlayerTypes, DiploStatementTypes &, int &)
- Defined in
- CvDiplomacyAI.cpp, line 13912
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoBulliedCityStateStatement
Hooks
static bool BeforeCvDiplomacyAI_DoBulliedCityStateStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);static void AfterCvDiplomacyAI_DoBulliedCityStateStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);static void ReplaceCvDiplomacyAI_DoBulliedCityStateStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&, int&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoBulliedCityStateStatement>(host, &BeforeCvDiplomacyAI_DoBulliedCityStateStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoBulliedCityStateStatement>(host, &AfterCvDiplomacyAI_DoBulliedCityStateStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoBulliedCityStateStatement>(host, &ReplaceCvDiplomacyAI_DoBulliedCityStateStatement);
Code
13911/// Possible Contact Statement13912void CvDiplomacyAI::DoBulliedCityStateStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement, int& iData1)13913{13914 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Anton your save file and version.");13915 CvAssertMsg(ePlayer < MAX_MAJOR_CIVS, "DIPLOMACY_AI: Invalid Player Index. Please send Anton your save file and version.");1391613917 if(eStatement == NO_DIPLO_STATEMENT_TYPE)13918 {13919 // Bullied a City State we're protective towards13920 if(GetTurnsSincePlayerBulliedProtectedMinor(ePlayer) == 0)13921 {13922 // Have we asked you to make a promise before?13923 if(IsPlayerBrokenBullyCityStatePromise(ePlayer) ||13924 IsPlayerIgnoredBullyCityStatePromise(ePlayer))13925 {13926 // We don't even want to bother with you again, so do nothing13927 }13928 else if(IsPlayerMadeBullyCityStatePromise(ePlayer))13929 {13930 // You broke the promise you made!13931 SetPlayerBrokenBullyCityStatePromise(ePlayer, true);13932 SetPlayerMadeBullyCityStatePromise(ePlayer, false);13933 }13934 // Otherwise, ask you to make a promise13935 else13936 {13937 DiploStatementTypes eTempStatement = DIPLO_STATEMENT_BULLIED_PROTECTED_CITY_STATE;13938 int iTurnsBetweenStatements = 1;1393913940 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements)13941 {13942 PlayerTypes eMinorCiv = GetOtherPlayerProtectedMinorBullied(ePlayer);13943 if(eMinorCiv != NO_PLAYER)13944 {13945 CvAssert(eMinorCiv >= MAX_MAJOR_CIVS);13946 CvAssert(eMinorCiv < MAX_CIV_PLAYERS);13947 // Minor civ must still be alive!13948 if(GET_PLAYER(eMinorCiv).isAlive())13949 {13950 eStatement = eTempStatement;13951 iData1 = eMinorCiv;13952 }13953 }13954 }13955 }13956 }13957 }13958}
Calls
- CvDiplomacyAI::GetNumTurnsSinceStatementSent(PlayerTypes, DiploStatementTypes)
- CvDiplomacyAI::GetOtherPlayerProtectedMinorBullied(PlayerTypes)
- CvDiplomacyAI::GetTurnsSincePlayerBulliedProtectedMinor(PlayerTypes)
- CvDiplomacyAI::IsPlayerBrokenBullyCityStatePromise(PlayerTypes)
- CvDiplomacyAI::IsPlayerIgnoredBullyCityStatePromise(PlayerTypes)
- CvDiplomacyAI::IsPlayerMadeBullyCityStatePromise(PlayerTypes)
- CvDiplomacyAI::SetPlayerBrokenBullyCityStatePromise(PlayerTypes, bool)
- CvDiplomacyAI::SetPlayerMadeBullyCityStatePromise(PlayerTypes, bool)
- CvPlayer::isAlive() const
- CvPlayerAI::getPlayer(PlayerTypes)