aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Combat/ThreatManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Combat/ThreatManager.cpp')
-rw-r--r--src/server/game/Combat/ThreatManager.cpp15
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