CvDiplomacyAI::DoWeLikedTheirProposal(PlayerTypes, DiploStatementTypes &)
- Defined in
- CvDiplomacyAI.cpp, line 16084
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoWeLikedTheirProposal
Hooks
static bool BeforeCvDiplomacyAI_DoWeLikedTheirProposal(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void AfterCvDiplomacyAI_DoWeLikedTheirProposal(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void ReplaceCvDiplomacyAI_DoWeLikedTheirProposal(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoWeLikedTheirProposal>(host, &BeforeCvDiplomacyAI_DoWeLikedTheirProposal);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoWeLikedTheirProposal>(host, &AfterCvDiplomacyAI_DoWeLikedTheirProposal);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoWeLikedTheirProposal>(host, &ReplaceCvDiplomacyAI_DoWeLikedTheirProposal);
Code
16084void CvDiplomacyAI::DoWeLikedTheirProposal(PlayerTypes ePlayer, DiploStatementTypes& eStatement)16085{16086 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");16087 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.");1608816089 if(eStatement == NO_DIPLO_STATEMENT_TYPE)16090 {16091 DiploStatementTypes eTempStatement = NO_DIPLO_STATEMENT_TYPE;16092 bool bEffect = GetLikedTheirProposalScore(ePlayer) != 0;16093 if (bEffect)16094 {16095 bool bSkip = false;16096 MajorCivOpinionTypes eOpinion = GetMajorCivOpinion(ePlayer);16097 MajorCivApproachTypes eApproach = GetMajorCivApproach(ePlayer, /*bHideTrueFeelings*/ true);16098 if(eOpinion <= MAJOR_CIV_OPINION_COMPETITOR)16099 bSkip = true;16100 if(eApproach == MAJOR_CIV_APPROACH_WAR || eApproach == MAJOR_CIV_APPROACH_HOSTILE)16101 bSkip = true;16102 if (!bSkip && GetChattiness() > GC.getGame().getJonRandNum(10, "Diplomacy AI: rand roll to see if we tell a player we liked their World Congress proposal"))16103 {16104 eTempStatement = DIPLO_STATEMENT_WE_LIKED_THEIR_PROPOSAL;16105 int iTurnsBetweenStatements = GC.getOPINION_WEIGHT_WE_LIKED_THEIR_PROPOSAL_NUM_TURNS();1610616107 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= iTurnsBetweenStatements)16108 eStatement = eTempStatement;16109 }16110 }16111 }16112}
Calls
- CvDiplomacyAI::GetChattiness() const
- CvDiplomacyAI::GetLikedTheirProposalScore(PlayerTypes)
- CvDiplomacyAI::GetMajorCivApproach(PlayerTypes, bool) const
- CvDiplomacyAI::GetMajorCivOpinion(PlayerTypes) const
- CvDiplomacyAI::GetNumTurnsSinceStatementSent(PlayerTypes, DiploStatementTypes)
- CvGame::getJonRandNum(int, const char *)
- CvGlobals::getGame()
- CvGlobals::getOPINION_WEIGHT_WE_LIKED_THEIR_PROPOSAL_NUM_TURNS()