CvUnit::GetBaseCombatStrengthConsideringDamage() const
- Defined in
- CvUnit.cpp, line 12128
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_GetBaseCombatStrengthConsideringDamage
Hooks
static bool BeforeCvUnit_GetBaseCombatStrengthConsideringDamage(const CvUnit* self, int& result);static void AfterCvUnit_GetBaseCombatStrengthConsideringDamage(const CvUnit* self, int& result);static int ReplaceCvUnit_GetBaseCombatStrengthConsideringDamage(int (*original)(const CvUnit*), const CvUnit* self);CivRegisterBefore<CivHooks::CvUnit_GetBaseCombatStrengthConsideringDamage>(host, &BeforeCvUnit_GetBaseCombatStrengthConsideringDamage);CivRegisterAfter<CivHooks::CvUnit_GetBaseCombatStrengthConsideringDamage>(host, &AfterCvUnit_GetBaseCombatStrengthConsideringDamage);CivRegisterReplace<CivHooks::CvUnit_GetBaseCombatStrengthConsideringDamage>(host, &ReplaceCvUnit_GetBaseCombatStrengthConsideringDamage);
Code
12128int CvUnit::GetBaseCombatStrengthConsideringDamage() const12129{12130 int iWoundedDamageMultiplier = /*50*/ GC.getWOUNDED_DAMAGE_MULTIPLIER();1213112132 // Mod (Policies, etc.) - lower means Units are less bothered by damage12133 iWoundedDamageMultiplier += GET_PLAYER(getOwner()).GetWoundedUnitDamageMod();1213412135 int iStrength = GetMaxAttackStrength(NULL,NULL,NULL) / 100;1213612137 // How much does damage weaken the effectiveness of the Unit?12138 int iDamageMod = m_iDamage * iWoundedDamageMultiplier / 100;1213912140 // Reduce strength points based on damage mod calculated above. Example: 4 damage will normally reduce a 20 strength Unit by 2/10ths, or 1/5, or 4, making it effectively a 1612141#if defined(MOD_UNITS_MAX_HP)12142 iStrength -= (iStrength * iDamageMod / GetMaxHitPoints());12143#else12144 iStrength -= (iStrength * iDamageMod / GC.getMAX_HIT_POINTS());12145#endif1214612147 return iStrength;12148}
Calls
Called by
- CvDangerPlots::AssignUnitDangerValue(CvUnit *, CvPlot *)
- CvHomelandAI::PlotMovesToSafety()
- CvTacticalAI::PlotMovesToSafety(bool)
- CvTacticalAI::ScoreGreatGeneralPlot(UnitHandle, CvPlot *, CvArmyAI *)
- CvTacticalAnalysisMap::AddToDominanceZones(int, CvTacticalAnalysisCell *)
- CvTacticalAnalysisMap::CalculateMilitaryStrengths()