aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Grids
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2016-10-30 11:12:57 +0100
committerShauren <shauren.trinity@gmail.com>2016-10-30 11:12:57 +0100
commitf0ab95f19cd5e269efdee33cf02b91eb77a98277 (patch)
tree2ced93bb37bd605bf512eb010823e552a4a9a7f4 /src/server/game/Grids
parentfb634478c4005c86892c6f0b81de81d12c69cb15 (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.h10
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;