From c8fdda7f86f5dbe90525636a7291186fe603f61d Mon Sep 17 00:00:00 2001 From: Shauren Date: Sat, 9 Sep 2017 23:31:33 +0200 Subject: Core/Creatures: Changed NearestAttackableUnitInObjectRangeCheck to only consider neutral units as targets if they are already in combat with target searching unit Closes #13630 Closes #20205 --- src/server/game/AI/CoreAI/TotemAI.cpp | 2 +- src/server/game/Grids/Notifiers/GridNotifiers.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/AI/CoreAI/TotemAI.cpp b/src/server/game/AI/CoreAI/TotemAI.cpp index da484e20983..365f0ca5ce8 100644 --- a/src/server/game/AI/CoreAI/TotemAI.cpp +++ b/src/server/game/AI/CoreAI/TotemAI.cpp @@ -72,7 +72,7 @@ void TotemAI::UpdateAI(uint32 /*diff*/) me->IsFriendlyTo(victim) || !me->CanSeeOrDetect(victim)) { victim = nullptr; - Trinity::NearestAttackableUnitInObjectRangeCheck u_check(me, me, max_range); + Trinity::NearestAttackableUnitInObjectRangeCheck u_check(me, me->GetCharmerOrOwnerOrSelf(), max_range); Trinity::UnitLastSearcher checker(me, victim, u_check); Cell::VisitAllObjects(me, checker, max_range); } diff --git a/src/server/game/Grids/Notifiers/GridNotifiers.h b/src/server/game/Grids/Notifiers/GridNotifiers.h index 218e856742e..16583516243 100644 --- a/src/server/game/Grids/Notifiers/GridNotifiers.h +++ b/src/server/game/Grids/Notifiers/GridNotifiers.h @@ -1027,7 +1027,7 @@ namespace Trinity bool operator()(Unit* u) { if (u->isTargetableForAttack() && i_obj->IsWithinDistInMap(u, i_range) && - !i_funit->IsFriendlyTo(u) && i_funit->CanSeeOrDetect(u)) + (i_funit->IsInCombatWith(u) || i_funit->IsHostileTo(u)) && i_obj->CanSeeOrDetect(u)) { i_range = i_obj->GetDistance(u); // use found unit range as new range limit for next check return true; -- cgit v1.2.3