CvUnit::IsCanAttackRanged() const
- Defined in
- CvUnit.cpp, line 23674
- Class
- CvUnit
- Hook name
CivHooks::CvUnit_IsCanAttackRanged
Hooks
static bool BeforeCvUnit_IsCanAttackRanged(const CvUnit* self, bool& result);static void AfterCvUnit_IsCanAttackRanged(const CvUnit* self, bool& result);static bool ReplaceCvUnit_IsCanAttackRanged(bool (*original)(const CvUnit*), const CvUnit* self);CivRegisterBefore<CivHooks::CvUnit_IsCanAttackRanged>(host, &BeforeCvUnit_IsCanAttackRanged);CivRegisterAfter<CivHooks::CvUnit_IsCanAttackRanged>(host, &AfterCvUnit_IsCanAttackRanged);CivRegisterReplace<CivHooks::CvUnit_IsCanAttackRanged>(host, &ReplaceCvUnit_IsCanAttackRanged);
Code
23673/// Does this unit have a ranged attack?23674bool CvUnit::IsCanAttackRanged() const23675{23676 VALIDATE_OBJECT23677 return (GetRange() > 0 && GetBaseRangedCombatStrength() > 0);23678}
Calls
Called by
- CvMilitaryAI::UpdateBaseData()
- CvTacticalAI::ComputeTotalExpectedDamage(CvTacticalTarget *, CvPlot *)
- CvTacticalAI::ExecuteAttack(CvTacticalTarget *, CvPlot *, bool, bool)
- CvTacticalAI::ExecuteCloseOnTarget(CvTacticalTarget &, CvTacticalDominanceZone *)
- CvTacticalAI::ExecuteFormationMoves(CvArmyAI *, CvPlot *)
- CvTacticalAI::ExecuteHedgehogDefense(CvTacticalTarget &, CvTacticalDominanceZone *)
- CvTacticalAI::ExecuteSafeBombards(CvTacticalTarget &)
- CvTacticalAI::FindClosestOperationUnit(CvPlot *, bool, bool)
- CvTacticalAI::FindClosestUnit(CvPlot *, int, bool, bool, int, bool, bool, bool, CvPlot *)
- CvTacticalAI::FindUnitsWithinStrikingDistance(CvPlot *, int, int, bool, bool, bool, bool, bool, bool)
- CvTacticalAI::IdentifyPriorityBarbarianTargets()
- CvTacticalAI::IdentifyPriorityTargets()
- CvTacticalAI::IdentifyPriorityTargetsByType()
- CvTacticalAI::MoveToEmptySpaceNearTarget(UnitHandle, CvPlot *, bool)
- CvUnit::IsCanAttack() const
- CvUnit::IsUnderEnemyRangedAttack() const
- CvUnitCombat::ApplyNuclearExplosionDamage(const CvCombatMemberEntry *, int, CvUnit *, CvPlot *, int)
- CvLuaUnit::lIsCanAttackRanged(lua_State *)