CvMilitaryAI::UpdateDefenseState()
- Defined in
- CvMilitaryAI.cpp, line 2269
- Class
- CvMilitaryAI
- Hook name
CivHooks::CvMilitaryAI_UpdateDefenseState
Hooks
static bool BeforeCvMilitaryAI_UpdateDefenseState(CvMilitaryAI* self);static void AfterCvMilitaryAI_UpdateDefenseState(CvMilitaryAI* self);static void ReplaceCvMilitaryAI_UpdateDefenseState(void (*original)(CvMilitaryAI*), CvMilitaryAI* self);CivRegisterBefore<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &BeforeCvMilitaryAI_UpdateDefenseState);CivRegisterAfter<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &AfterCvMilitaryAI_UpdateDefenseState);CivRegisterReplace<CivHooks::CvMilitaryAI_UpdateDefenseState>(host, &ReplaceCvMilitaryAI_UpdateDefenseState);
Code
2268/// Update how we're doing on defensive units2269void CvMilitaryAI::UpdateDefenseState()2270{2271 AI_PERF_FORMAT("Military-AI-perf.csv", ("UpdateDefenseState, Turn %03d, %s", GC.getGame().getElapsedGameTurns(), m_pPlayer->getCivilizationShortDescription()) );22722273 int iLandUnitsNotInArmies;2274 int iNavalUnitsNotInArmies;22752276 // Derive data we'll need2277 iLandUnitsNotInArmies = m_iNumLandUnits;2278 iNavalUnitsNotInArmies = m_iNumNavalUnits;22792280 if(iLandUnitsNotInArmies < m_iMandatoryReserveSize)2281 {2282 m_eLandDefenseState = DEFENSE_STATE_CRITICAL;2283 }2284 else if(iLandUnitsNotInArmies < m_iRecommendedMilitarySize)2285 {2286 m_eLandDefenseState = DEFENSE_STATE_NEEDED;2287 }2288 else if(iLandUnitsNotInArmies < m_iRecommendedMilitarySize * 5 / 4)2289 {2290 m_eLandDefenseState = DEFENSE_STATE_NEUTRAL;2291 }2292 else2293 {2294 m_eLandDefenseState = DEFENSE_STATE_ENOUGH;2295 }22962297 int iNavySize = MilitaryAIHelpers::ComputeRecommendedNavySize(m_pPlayer);22982299 if(iNavalUnitsNotInArmies <= (iNavySize / 2))2300 {2301 m_eNavalDefenseState = DEFENSE_STATE_CRITICAL;2302 }2303 else if(iNavalUnitsNotInArmies <= iNavySize)2304 {2305 m_eNavalDefenseState = DEFENSE_STATE_NEEDED;2306 }2307 else if(iNavalUnitsNotInArmies <= iNavySize * 5 / 4)2308 {2309 m_eNavalDefenseState = DEFENSE_STATE_NEUTRAL;2310 }2311 else2312 {2313 m_eNavalDefenseState = DEFENSE_STATE_ENOUGH;2314 }2315}