Bazaar developer reference

CvTacticalAI::ExecutePriorityAttacksOnUnitTarget(CvTacticalTarget &)

Defined in
CvTacticalAI.cpp, line 8702
Class
CvTacticalAI
Hook name
CivHooks::CvTacticalAI_ExecutePriorityAttacksOnUnitTarget

Hooks

static bool BeforeCvTacticalAI_ExecutePriorityAttacksOnUnitTarget(CvTacticalAI* self, CvTacticalTarget& kTarget);static void AfterCvTacticalAI_ExecutePriorityAttacksOnUnitTarget(CvTacticalAI* self, CvTacticalTarget& kTarget);static void ReplaceCvTacticalAI_ExecutePriorityAttacksOnUnitTarget(void (*original)(CvTacticalAI*, CvTacticalTarget&), CvTacticalAI* self, CvTacticalTarget& kTarget);CivRegisterBefore<CivHooks::CvTacticalAI_ExecutePriorityAttacksOnUnitTarget>(host, &BeforeCvTacticalAI_ExecutePriorityAttacksOnUnitTarget);CivRegisterAfter<CivHooks::CvTacticalAI_ExecutePriorityAttacksOnUnitTarget>(host, &AfterCvTacticalAI_ExecutePriorityAttacksOnUnitTarget);CivRegisterReplace<CivHooks::CvTacticalAI_ExecutePriorityAttacksOnUnitTarget>(host, &ReplaceCvTacticalAI_ExecutePriorityAttacksOnUnitTarget);

Code

8701/// Bombard and flank attacks (whatever is applicable) against a unit target8702void CvTacticalAI::ExecutePriorityAttacksOnUnitTarget(CvTacticalTarget& kTarget)8703{8704	bool bAttackUnderway = false;8705	bool bAttackMade = false;8706	CvPlot* pTarget;87078708	pTarget = GC.getMap().plot(kTarget.GetTargetX(), kTarget.GetTargetY());87098710	// Try to find a bombard first8711	m_pMap->ClearDynamicFlags();8712	m_pMap->SetTargetBombardCells(pTarget, m_pMap->GetBestFriendlyRange(), m_pMap->CanIgnoreLOS());87138714	if(kTarget.IsTargetStillAlive(m_pPlayer->GetID()))8715	{8716		bAttackUnderway = ExecuteSafeBombards(kTarget);8717	}87188719	if(kTarget.IsTargetStillAlive(m_pPlayer->GetID()))8720	{8721		ExecuteProtectedBombards(kTarget, bAttackUnderway);8722	}87238724	// Then try for a flank attack8725	if(kTarget.IsTargetStillAlive(m_pPlayer->GetID()))8726	{8727		m_pMap->ClearDynamicFlags();8728		m_pMap->SetTargetFlankBonusCells(pTarget);87298730		bAttackMade = ExecuteFlankAttack(kTarget);8731		if(bAttackMade)8732		{8733			bAttackUnderway = true;8734		}8735	}8736}

Calls

Called by