CvTacticalAI::PlotBlockadeImprovementMoves()
- Defined in
- CvTacticalAI.cpp, line 2924
- Class
- CvTacticalAI
- Hook name
CivHooks::CvTacticalAI_PlotBlockadeImprovementMoves
Hooks
static bool BeforeCvTacticalAI_PlotBlockadeImprovementMoves(CvTacticalAI* self);static void AfterCvTacticalAI_PlotBlockadeImprovementMoves(CvTacticalAI* self);static void ReplaceCvTacticalAI_PlotBlockadeImprovementMoves(void (*original)(CvTacticalAI*), CvTacticalAI* self);CivRegisterBefore<CivHooks::CvTacticalAI_PlotBlockadeImprovementMoves>(host, &BeforeCvTacticalAI_PlotBlockadeImprovementMoves);CivRegisterAfter<CivHooks::CvTacticalAI_PlotBlockadeImprovementMoves>(host, &AfterCvTacticalAI_PlotBlockadeImprovementMoves);CivRegisterReplace<CivHooks::CvTacticalAI_PlotBlockadeImprovementMoves>(host, &ReplaceCvTacticalAI_PlotBlockadeImprovementMoves);
Code
2923/// Move barbarian ships to disrupt usage of water improvements2924void CvTacticalAI::PlotBlockadeImprovementMoves()2925{2926 CvTacticalTarget* pTarget;2927 pTarget = GetFirstZoneTarget(AI_TACTICAL_TARGET_BLOCKADE_RESOURCE_POINT);2928 while(pTarget != NULL)2929 {2930 // See what units we have who can reach target this turn2931 CvPlot* pPlot = GC.getMap().plot(pTarget->GetTargetX(), pTarget->GetTargetY());2932 if(FindUnitsWithinStrikingDistance(pPlot, 2, 0, false /* bNoRangedUnits */, true /* bNavalOnly */, false /*bMustMoveThrough*/))2933 {2934 // Queue best one up to capture it2935 ExecuteNavalBlockadeMove(pPlot);29362937 if(GC.getLogging() && GC.getAILogging())2938 {2939 CvString strLogString;2940 strLogString.Format("Blockading naval resource(s) with move to, X: %d, Y: %d", pTarget->GetTargetX(), pTarget->GetTargetY());2941 LogTacticalMessage(strLogString);2942 }2943 }2944 pTarget = GetNextZoneTarget();2945 }2946}
Calls
- CvGlobals::getAILogging()
- CvGlobals::getLogging()
- CvGlobals::getMap()
- CvMap::plot(int, int) const
CvString::CvStringCvString::Format- CvTacticalAI::ExecuteNavalBlockadeMove(CvPlot *)
- CvTacticalAI::FindUnitsWithinStrikingDistance(CvPlot *, int, int, bool, bool, bool, bool, bool, bool)
- CvTacticalAI::GetFirstZoneTarget(AITacticalTargetType)
- CvTacticalAI::GetNextZoneTarget()
- CvTacticalAI::LogTacticalMessage(CvString &, bool)
- CvTacticalTarget::GetTargetX()
- CvTacticalTarget::GetTargetY()