Bazaar developer reference

CvEspionageAI::AttemptCoups()

Defined in
CvEspionageClasses.cpp, line 5116
Class
CvEspionageAI
Hook name
CivHooks::CvEspionageAI_AttemptCoups

Hooks

static bool BeforeCvEspionageAI_AttemptCoups(CvEspionageAI* self);static void AfterCvEspionageAI_AttemptCoups(CvEspionageAI* self);static void ReplaceCvEspionageAI_AttemptCoups(void (*original)(CvEspionageAI*), CvEspionageAI* self);CivRegisterBefore<CivHooks::CvEspionageAI_AttemptCoups>(host, &BeforeCvEspionageAI_AttemptCoups);CivRegisterAfter<CivHooks::CvEspionageAI_AttemptCoups>(host, &AfterCvEspionageAI_AttemptCoups);CivRegisterReplace<CivHooks::CvEspionageAI_AttemptCoups>(host, &ReplaceCvEspionageAI_AttemptCoups);

Code

5116void CvEspionageAI::AttemptCoups()5117{5118	CvPlayerEspionage* pEspionage = m_pPlayer->GetEspionage();5119	for(uint uiSpy = 0; uiSpy < pEspionage->m_aSpyList.size(); uiSpy++)5120	{5121		if (!pEspionage->CanStageCoup(uiSpy))5122		{5123			continue;5124		}5125	5126		// special Lena fix: no couping on CS that are allies with your friend5127		CvCity* pCity = pEspionage->GetCityWithSpy(uiSpy);5128		if (pCity && GET_PLAYER(pCity->getOwner()).isMinorCiv())5129		{5130			CvMinorCivAI* pMinorCivAI = GET_PLAYER(pCity->getOwner()).GetMinorCivAI();5131			if (pMinorCivAI)5132			{5133				PlayerTypes eCurrentAlly = pMinorCivAI->GetAlly();5134				if (eCurrentAlly != NO_PLAYER && eCurrentAlly != m_pPlayer->GetID() && m_pPlayer->GetDiplomacyAI()->IsDoFAccepted(eCurrentAlly))5135				{5136					continue;5137				}5138			}5139		}51405141		int iChanceOfSuccess = pEspionage->GetCoupChanceOfSuccess(uiSpy);5142		int iRoll = GC.getGame().getJonRandNum(100, "Random roll to see if we should attempt a coup");5143		if (iRoll < iChanceOfSuccess)5144		{5145			pEspionage->AttemptCoup(uiSpy);5146		}5147	}5148}

Calls

Called by