Bazaar developer reference

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