diff options
| author | Shauren <shauren.trinity@gmail.com> | 2016-10-30 11:12:57 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2016-10-30 11:12:57 +0100 |
| commit | f0ab95f19cd5e269efdee33cf02b91eb77a98277 (patch) | |
| tree | 2ced93bb37bd605bf512eb010823e552a4a9a7f4 /src/server/game/Grids | |
| parent | fb634478c4005c86892c6f0b81de81d12c69cb15 (diff) | |
Core/GameObjects: Fixed Frozen Trap target selection
Closes #14238
Closes #17517
Diffstat (limited to 'src/server/game/Grids')
| -rw-r--r-- | src/server/game/Grids/Notifiers/GridNotifiers.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index df4788a0a1e..d029f0fb8d0 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -830,10 +830,10 @@ namespace Trinity float i_range; }; - class AnyUnfriendlyNoTotemUnitInObjectRangeCheck + class NearestUnfriendlyNoTotemUnitInObjectRangeCheck { public: - AnyUnfriendlyNoTotemUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) : i_obj(obj), i_funit(funit), i_range(range) { } + NearestUnfriendlyNoTotemUnitInObjectRangeCheck(WorldObject const* obj, Unit const* funit, float range) : i_obj(obj), i_funit(funit), i_range(range) { } bool operator()(Unit* u) { if (!u->IsAlive()) @@ -848,7 +848,11 @@ namespace Trinity if (!u->isTargetableForAttack(false)) return false; - return i_obj->IsWithinDistInMap(u, i_range) && !i_funit->IsFriendlyTo(u); + if (!i_obj->IsWithinDistInMap(u, i_range) || i_funit->IsFriendlyTo(u)) + return false; + + i_range = i_obj->GetDistance(*u); + return true; } private: WorldObject const* i_obj; |
