diff options
Diffstat (limited to 'src/server/game/Combat/ThreatManager.cpp')
| -rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index 5aaa063a0d8..0816c971c8c 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -454,19 +454,10 @@ void ThreatManager::doAddThreat(Unit* victim, float threat) Unit* redirectTarget = victim->GetRedirectThreatTarget(); // If victim is personnal spawn, redirect all aggro to summoner - if (TempSummon* tempSummonVictim = victim->ToTempSummon()) + if (victim->IsPrivateObject() && GetOwner()->IsPrivateObject() && GetOwner()->CanSeeOrDetect(victim)) { - if (tempSummonVictim->IsVisibleBySummonerOnly()) - { - // Personnal Spawns from same summoner can aggro each other - if (!GetOwner()->ToTempSummon() || - !GetOwner()->ToTempSummon()->IsVisibleBySummonerOnly() || - tempSummonVictim->GetSummonerGUID() != GetOwner()->ToTempSummon()->GetSummonerGUID()) - { - redirectThreadPct = 100; - redirectTarget = tempSummonVictim->GetSummoner(); - } - } + redirectThreadPct = 100; + redirectTarget = ObjectAccessor::GetUnit(*GetOwner(), victim->GetPrivateObjectOwner()); } // must check > 0.0f, otherwise dead loop |
