AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Acore::CallOfHelpCreatureInRangeDo Class Reference

#include "GridNotifiers.h"

Public Member Functions

 CallOfHelpCreatureInRangeDo (Unit *funit, Unit *enemy, float range)
 
void operator() (Creature *u)
 

Private Attributes

Unit *const i_funit
 
Unit *const i_enemy
 
float i_range
 

Detailed Description

Constructor & Destructor Documentation

◆ CallOfHelpCreatureInRangeDo()

Acore::CallOfHelpCreatureInRangeDo::CallOfHelpCreatureInRangeDo ( Unit funit,
Unit enemy,
float  range 
)
inline
1141 : i_funit(funit), i_enemy(enemy), i_range(range)
1142 {}
Unit *const i_enemy
Definition GridNotifiers.h:1168
float i_range
Definition GridNotifiers.h:1169
Unit *const i_funit
Definition GridNotifiers.h:1167

Member Function Documentation

◆ operator()()

void Acore::CallOfHelpCreatureInRangeDo::operator() ( Creature u)
inline
1144 {
1145 if (u == i_funit)
1146 return;
1147
1148 if (!u->CanAssistTo(i_funit, i_enemy, false))
1149 return;
1150
1151 // too far
1153 return;
1154
1155 // only if see assisted creature's enemy
1156 if (!u->IsWithinLOSInMap(i_enemy))
1157 return;
1158
1159 if (u->AI())
1160 {
1161 u->SetNoCallForHelp(true); // avoid recursive call for help causing stack overflow
1162 u->AI()->AttackStart(i_enemy);
1163 u->SetNoCallForHelp(false);
1164 }
1165 }
void SetNoCallForHelp(bool val)
Definition Creature.h:271
bool CanAssistTo(Unit const *u, Unit const *enemy, bool checkfaction=true) const
Definition Creature.cpp:2496
CreatureAI * AI() const
Definition Creature.h:141
virtual void AttackStart(Unit *)
Definition UnitAI.cpp:27
bool IsWithinLOSInMap(WorldObject const *obj, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
Definition Object.cpp:1352
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
Definition Object.cpp:1326

References Creature::AI(), UnitAI::AttackStart(), Creature::CanAssistTo(), i_enemy, i_funit, i_range, WorldObject::IsWithinDistInMap(), WorldObject::IsWithinLOSInMap(), and Creature::SetNoCallForHelp().

Member Data Documentation

◆ i_enemy

Unit* const Acore::CallOfHelpCreatureInRangeDo::i_enemy
private

Referenced by operator()().

◆ i_funit

Unit* const Acore::CallOfHelpCreatureInRangeDo::i_funit
private

Referenced by operator()().

◆ i_range

float Acore::CallOfHelpCreatureInRangeDo::i_range
private

Referenced by operator()().


The documentation for this class was generated from the following file: