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
1070 : i_obj(obj), i_funit(funit), _spellInfo(nullptr), i_range(range)
1071 {
1072 Unit const* check = i_funit;
1073 Unit const* owner = i_funit->GetOwner();
1074 if (owner)
1075 check = owner;
1076 i_targetForPlayer = (check->IsPlayer());
1077 if (i_obj->IsDynamicObject())
1078 _spellInfo = sSpellMgr->GetSpellInfo(((DynamicObject*)i_obj)->GetSpellId());
1079 }
#define sSpellMgr
Definition SpellMgr.h:825
SpellInfo const * _spellInfo
Definition GridNotifiers.h:1107
Unit const * i_funit
Definition GridNotifiers.h:1106
WorldObject const * i_obj
Definition GridNotifiers.h:1105
float i_range
Definition GridNotifiers.h:1108
bool i_targetForPlayer
Definition GridNotifiers.h:1104
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:10686

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
1081 {
1082 // Check contains checks for: live, non-selectable, non-attackable flags, flight check and GM check, ignore totems
1083 if (Creature* creature = u->ToCreature())
1084 {
1085 if (creature->IsTotem())
1086 {
1087 return false;
1088 }
1089
1090 if (creature->IsAvoidingAOE())
1091 {
1092 return false;
1093 }
1094
1095 }
1096
1097 if (i_funit->_IsValidAttackTarget(u, _spellInfo, i_obj->IsDynamicObject() ? i_obj : nullptr) && i_obj->IsWithinDistInMap(u, i_range,true,false))
1098
1099 return true;
1100
1101 return false;
1102 }
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:13969

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: