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

#include "GridNotifiers.h"

Public Member Functions

 AnyAoETargetUnitInObjectRangeCheck (WorldObject const *obj, Unit const *funit, float range)
 
bool operator() (Unit *u)
 

Private Attributes

bool i_targetForPlayer
 
WorldObject const * i_obj
 
Unit const * i_funit
 
SpellInfo const * _spellInfo
 
float i_range
 

Detailed Description

Constructor & Destructor Documentation

◆ AnyAoETargetUnitInObjectRangeCheck()

Acore::AnyAoETargetUnitInObjectRangeCheck::AnyAoETargetUnitInObjectRangeCheck ( WorldObject const *  obj,
Unit const *  funit,
float  range 
)
inline
1071 : i_obj(obj), i_funit(funit), _spellInfo(nullptr), i_range(range)
1072 {
1073 Unit const* check = i_funit;
1074 Unit const* owner = i_funit->GetOwner();
1075 if (owner)
1076 check = owner;
1077 i_targetForPlayer = (check->IsPlayer());
1078 if (i_obj->IsDynamicObject())
1079 _spellInfo = sSpellMgr->GetSpellInfo(((DynamicObject*)i_obj)->GetSpellId());
1080 }
#define sSpellMgr
Definition SpellMgr.h:825
SpellInfo const * _spellInfo
Definition GridNotifiers.h:1108
Unit const * i_funit
Definition GridNotifiers.h:1107
WorldObject const * i_obj
Definition GridNotifiers.h:1106
float i_range
Definition GridNotifiers.h:1109
bool i_targetForPlayer
Definition GridNotifiers.h:1105
Definition DynamicObject.h:35
bool IsPlayer() const
Definition Object.h:201
bool IsDynamicObject() const
Definition Object.h:221
Definition Unit.h:620
Unit * GetOwner() const
Definition Unit.cpp:10696

References _spellInfo, Unit::GetOwner(), i_funit, i_obj, i_targetForPlayer, Object::IsDynamicObject(), Object::IsPlayer(), and sSpellMgr.

Member Function Documentation

◆ operator()()

bool Acore::AnyAoETargetUnitInObjectRangeCheck::operator() ( Unit u)
inline
1082 {
1083 // Check contains checks for: live, non-selectable, non-attackable flags, flight check and GM check, ignore totems
1084 if (Creature* creature = u->ToCreature())
1085 {
1086 if (creature->IsTotem())
1087 {
1088 return false;
1089 }
1090
1091 if (creature->IsAvoidingAOE())
1092 {
1093 return false;
1094 }
1095
1096 }
1097
1098 if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->IsDynamicObject() ? i_obj : nullptr) && i_obj->IsWithinDistInMap(u, i_range,true,false))
1099
1100 return true;
1101
1102 return false;
1103 }
Definition Creature.h:43
Creature * ToCreature()
Definition Object.h:206
bool _IsValidAttackTarget(Unit const *target, SpellInfo const *bySpell, WorldObject const *obj=nullptr) const
Definition Unit.cpp:13979

References Unit::_IsValidAttackTarget(), _spellInfo, i_funit, i_obj, i_range, Object::IsDynamicObject(), WorldObject::IsWithinDistInMap(), and Object::ToCreature().

Member Data Documentation

◆ _spellInfo

SpellInfo const* Acore::AnyAoETargetUnitInObjectRangeCheck::_spellInfo
private

◆ i_funit

Unit const* Acore::AnyAoETargetUnitInObjectRangeCheck::i_funit
private

◆ i_obj

WorldObject const* Acore::AnyAoETargetUnitInObjectRangeCheck::i_obj
private

◆ i_range

float Acore::AnyAoETargetUnitInObjectRangeCheck::i_range
private

Referenced by operator()().

◆ i_targetForPlayer

bool Acore::AnyAoETargetUnitInObjectRangeCheck::i_targetForPlayer
private

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