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
- CvGlobals::getMap()
- CvMap::plot(int, int) const
- CvPlayer::GetID() const
- CvTacticalAI::ExecuteFlankAttack(CvTacticalTarget &)
- CvTacticalAI::ExecuteProtectedBombards(CvTacticalTarget &, bool)
- CvTacticalAI::ExecuteSafeBombards(CvTacticalTarget &)
- CvTacticalAnalysisMap::CanIgnoreLOS() const
- CvTacticalAnalysisMap::ClearDynamicFlags()
- CvTacticalAnalysisMap::GetBestFriendlyRange() const
- CvTacticalAnalysisMap::SetTargetBombardCells(CvPlot *, int, bool)
- CvTacticalAnalysisMap::SetTargetFlankBonusCells(CvPlot *)
- CvTacticalTarget::GetTargetX()
- CvTacticalTarget::GetTargetY()
- CvTacticalTarget::IsTargetStillAlive(PlayerTypes)