Bazaar developer reference

CvUnit::GetCaptureChance(CvUnit *)

Defined in
CvUnit.cpp, line 4747
Class
CvUnit
Hook name
CivHooks::CvUnit_GetCaptureChance

Hooks

static bool BeforeCvUnit_GetCaptureChance(CvUnit* self, CvUnit * pEnemy, int& result);static void AfterCvUnit_GetCaptureChance(CvUnit* self, CvUnit * pEnemy, int& result);static int ReplaceCvUnit_GetCaptureChance(int (*original)(CvUnit*, CvUnit *), CvUnit* self, CvUnit * pEnemy);CivRegisterBefore<CivHooks::CvUnit_GetCaptureChance>(host, &BeforeCvUnit_GetCaptureChance);CivRegisterAfter<CivHooks::CvUnit_GetCaptureChance>(host, &AfterCvUnit_GetCaptureChance);CivRegisterReplace<CivHooks::CvUnit_GetCaptureChance>(host, &ReplaceCvUnit_GetCaptureChance);

Code

4747int CvUnit::GetCaptureChance(CvUnit *pEnemy)4748{4749	int iRtnValue = 0;47504751	if (m_iCaptureDefeatedEnemyCount > 0 && AreUnitsOfSameType(*pEnemy))4752	{4753		// Look at ratio of intrinsic combat strengths4754		CvUnitEntry *pkEnemyInfo = GC.getUnitInfo(pEnemy->getUnitType());4755		if (pkEnemyInfo)4756		{4757			int iTheirCombat = pkEnemyInfo->GetCombat();47584759			if (iTheirCombat > 0)4760			{4761				int iMyCombat = m_pUnitInfo->GetCombat();4762				int iComputedChance = GC.getCOMBAT_CAPTURE_MIN_CHANCE() + (int)(((float)iMyCombat / (float)iTheirCombat) * GC.getCOMBAT_CAPTURE_RATIO_MULTIPLIER());4763				iRtnValue = min(GC.getCOMBAT_CAPTURE_MAX_CHANCE(), iComputedChance);4764			}4765		}4766	}47674768	return iRtnValue;4769}

Calls

Called by