CvDiplomacyAI::GetFriendDenouncementScore(PlayerTypes)
- Defined in
- CvDiplomacyAI.cpp, line 23898
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_GetFriendDenouncementScore
Hooks
static bool BeforeCvDiplomacyAI_GetFriendDenouncementScore(CvDiplomacyAI* self, PlayerTypes ePlayer, int& result);static void AfterCvDiplomacyAI_GetFriendDenouncementScore(CvDiplomacyAI* self, PlayerTypes ePlayer, int& result);static int ReplaceCvDiplomacyAI_GetFriendDenouncementScore(int (*original)(CvDiplomacyAI*, PlayerTypes), CvDiplomacyAI* self, PlayerTypes ePlayer);CivRegisterBefore<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &BeforeCvDiplomacyAI_GetFriendDenouncementScore);CivRegisterAfter<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &AfterCvDiplomacyAI_GetFriendDenouncementScore);CivRegisterReplace<CivHooks::CvDiplomacyAI_GetFriendDenouncementScore>(host, &ReplaceCvDiplomacyAI_GetFriendDenouncementScore);
Code
23898int CvDiplomacyAI::GetFriendDenouncementScore(PlayerTypes ePlayer)23899{23900 int iTraitorOpinion = 0;23901 // How many of their (trustworthy) friends have denounced them?23902 PlayerTypes eLoopPlayer;2390323904 for(int iPlayerLoop = 0; iPlayerLoop < MAX_MAJOR_CIVS; iPlayerLoop++)23905 {23906 eLoopPlayer = (PlayerTypes) iPlayerLoop;23907 if(eLoopPlayer != GetPlayer()->GetID() && GET_PLAYER(ePlayer).GetDiplomacyAI()->IsFriendDenouncedUs(eLoopPlayer))23908 {23909 // If this guy is untrustworthy, he doesn't count23910 if(!GET_PLAYER(eLoopPlayer).GetDiplomacyAI()->IsUntrustworthyFriend())23911 {23912 // Do we like this player who denounced them more than the player we're evaluating?23913 if(GetMajorCivOpinion(eLoopPlayer) > GetMajorCivOpinion(ePlayer))23914 {23915 iTraitorOpinion += /*20*/ GC.getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_EACH();23916 }2391723918 // We actually more friendly with the player we're evaluating than denouncer23919 else if(GetMajorCivOpinion(eLoopPlayer) < GetMajorCivOpinion(ePlayer))23920 {23921 iTraitorOpinion += /*-10*/ GC.getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_DONT_LIKE();23922 }23923 }23924 }23925 }2392623927 return iTraitorOpinion;23928}
Calls
- CvDiplomacyAI::GetMajorCivOpinion(PlayerTypes) const
- CvDiplomacyAI::GetPlayer()
- CvDiplomacyAI::IsFriendDenouncedUs(PlayerTypes) const
- CvDiplomacyAI::IsUntrustworthyFriend()
- CvGlobals::getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_DONT_LIKE()
- CvGlobals::getOPINION_WEIGHT_DENOUNCED_BY_FRIEND_EACH()
- CvPlayer::GetDiplomacyAI() const
- CvPlayer::GetID() const
- CvPlayerAI::getPlayer(PlayerTypes)