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}