CvDiplomacyAI::DoDoFStatement(PlayerTypes, DiploStatementTypes &)
- Defined in
- CvDiplomacyAI.cpp, line 14370
- Class
- CvDiplomacyAI
- Hook name
CivHooks::CvDiplomacyAI_DoDoFStatement
Hooks
static bool BeforeCvDiplomacyAI_DoDoFStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void AfterCvDiplomacyAI_DoDoFStatement(CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);static void ReplaceCvDiplomacyAI_DoDoFStatement(void (*original)(CvDiplomacyAI*, PlayerTypes, DiploStatementTypes&), CvDiplomacyAI* self, PlayerTypes ePlayer, DiploStatementTypes& eStatement);CivRegisterBefore<CivHooks::CvDiplomacyAI_DoDoFStatement>(host, &BeforeCvDiplomacyAI_DoDoFStatement);CivRegisterAfter<CivHooks::CvDiplomacyAI_DoDoFStatement>(host, &AfterCvDiplomacyAI_DoDoFStatement);CivRegisterReplace<CivHooks::CvDiplomacyAI_DoDoFStatement>(host, &ReplaceCvDiplomacyAI_DoDoFStatement);
Code
14369/// Possible Contact Statement14370void CvDiplomacyAI::DoDoFStatement(PlayerTypes ePlayer, DiploStatementTypes& eStatement)14371{14372 CvAssertMsg(ePlayer >= 0, "DIPLOMACY_AI: Invalid Player Index. Please send Jon this with your last 5 autosaves and what changelist # you're playing.");14373 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.");1437414375 if(eStatement == NO_DIPLO_STATEMENT_TYPE)14376 {14377 // Have we already made the agreement?14378 if(!IsDoFAccepted(ePlayer))14379 {14380 if(IsDoFAcceptable(ePlayer))14381 {14382 DiploStatementTypes eTempStatement = DIPLO_STATEMENT_WORK_WITH_US;1438314384 if(GetNumTurnsSinceStatementSent(ePlayer, eTempStatement) >= 60 &&14385 GetNumTurnsSinceStatementSent(ePlayer, DIPLO_STATEMENT_WORK_WITH_US_RANDFAILED) >= 10)14386 {14387 bool bSendStatement = true;1438814389 // Chance we don't actually send the message (don't want full predictability)14390 //if (GC.getGame().getJonRandNum(100, "Diplomacy AI: rand roll to see if we ask to work with a player") < 50)14391 // bSendStatement = false;1439214393 if(bSendStatement)14394 eStatement = eTempStatement;1439514396 // Add this statement to the log so we don't evaluate it again until 10 turns has come back around14397 else14398 DoAddNewStatementToDiploLog(ePlayer, DIPLO_STATEMENT_WORK_WITH_US_RANDFAILED);14399 }14400 }14401 }14402 }14403}