CvCity::rangedStrikeTarget(CvPlot *)
- Defined in
- CvCity.cpp, line 16248
- Class
- CvCity
- Hook name
CivHooks::CvCity_rangedStrikeTarget
Hooks
static bool BeforeCvCity_rangedStrikeTarget(CvCity* self, CvPlot* pPlot, CvUnit*& result);static void AfterCvCity_rangedStrikeTarget(CvCity* self, CvPlot* pPlot, CvUnit*& result);static CvUnit* ReplaceCvCity_rangedStrikeTarget(CvUnit* (*original)(CvCity*, CvPlot*), CvCity* self, CvPlot* pPlot);CivRegisterBefore<CivHooks::CvCity_rangedStrikeTarget>(host, &BeforeCvCity_rangedStrikeTarget);CivRegisterAfter<CivHooks::CvCity_rangedStrikeTarget>(host, &AfterCvCity_rangedStrikeTarget);CivRegisterReplace<CivHooks::CvCity_rangedStrikeTarget>(host, &ReplaceCvCity_rangedStrikeTarget);
Code
16248CvUnit* CvCity::rangedStrikeTarget(CvPlot* pPlot)16249{16250 VALIDATE_OBJECT16251 UnitHandle pDefender = pPlot->getBestDefender(NO_PLAYER, getOwner(), NULL, true, false, false, /*bNoncombatAllowed*/ true);1625216253 if(pDefender)16254 {16255 if(!pDefender->IsDead())16256 {16257#if defined(MOD_GLOBAL_SUBS_UNDER_ICE_IMMUNITY)16258 // If the defender is a sub and the plot is ice, return NULL16259 if (pDefender.pointer()->getInvisibleType() == 0 && pPlot->getFeatureType() == FEATURE_ICE) {16260 return NULL;16261 }16262#endif1626316264 return pDefender.pointer();16265 }16266 }1626716268 return NULL;16269}
Calls
- CvCity::getOwner() const
- CvPlot::getBestDefender(PlayerTypes, PlayerTypes, const CvUnit *, bool, bool, bool, bool)
- CvPlot::getFeatureType() const
- CvUnit::getInvisibleType() const
- CvUnit::IsDead() const
FObjectHandle::operator boolFObjectHandle::operator->FObjectHandle::pointer