diff options
author | blub <Vincent_Michael@gmx.de> | 2013-01-23 11:19:39 -0800 |
---|---|---|
committer | blub <Vincent_Michael@gmx.de> | 2013-01-23 11:19:39 -0800 |
commit | a6f587a3b104426bcba195523f40a3b82591c390 (patch) | |
tree | ff93feb30aba9cdc21d4fce7b932b3bb60a3363b /src/server/game/Combat/ThreatManager.cpp | |
parent | d291c78ca0889d569c114d1a638fac466a1fe7a6 (diff) | |
parent | af50ce6223ded9aa91a087556f2332b9c1f13df8 (diff) |
Merge pull request #9016 from joschiwald/spellscripts4
Core/Spell: convert more spells to SpellScripts
Diffstat (limited to 'src/server/game/Combat/ThreatManager.cpp')
-rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index 6d291ca301f..249c1696348 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -416,20 +416,17 @@ void ThreatManager::addThreat(Unit* victim, float threat, SpellSchoolMask school void ThreatManager::doAddThreat(Unit* victim, float threat) { - uint32 reducedThreadPercent = victim->GetReducedThreatPercent(); + uint32 redirectThreadPct = victim->GetRedirectThreatPercent(); // must check > 0.0f, otherwise dead loop - if (threat > 0.0f && reducedThreadPercent) + if (threat > 0.0f && redirectThreadPct) { - Unit* redirectTarget = victim->GetMisdirectionTarget(); - if (redirectTarget) - if (Aura* glyphAura = redirectTarget->GetAura(63326)) // Glyph of Vigilance - reducedThreadPercent += glyphAura->GetSpellInfo()->Effects[0].CalcValue(); - - float reducedThreat = threat * reducedThreadPercent / 100.0f; - threat -= reducedThreat; - if (redirectTarget) - _addThreat(redirectTarget, reducedThreat); + if (Unit* redirectTarget = victim->GetRedirectThreatTarget()) + { + float redirectThreat = CalculatePct(threat, redirectThreadPct); + threat -= redirectThreat; + _addThreat(redirectTarget, redirectThreat); + } } _addThreat(victim, threat); |