aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNevan <none@none>2009-08-02 04:29:40 +0200
committerNevan <none@none>2009-08-02 04:29:40 +0200
commit249b2e43819e7e87c78657cf00227a7a9fe12c49 (patch)
treeab62e2a9f56ac07721c19e5bc3b70c105597a7a1 /src
parentc68a496a19ec178ed102445afeae39ddaea3a97b (diff)
*Fix Aura Mastery "Immunity"
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 7011d0e2e62..b3b66712e94 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -944,6 +944,30 @@ void Aura::ApplyAllModifiers(bool apply, bool Real)
void Aura::HandleAuraSpecificMods(bool apply)
{
+ // Aura Mastery Triggered Spell Handler
+ // If apply Concentration Aura -> trigger -> apply Aura Mastery Immunity
+ // If remove Concentration Aura -> trigger -> remove Aura Mastery Immunity
+ // If remove Aura Mastery -> trigger -> remove Aura Mastery Immunity
+ if (m_spellProto->Id == 19746 || m_spellProto->Id == 31821)
+ {
+ if (GetCasterGUID() != m_target->GetGUID())
+ return;
+
+ if (apply)
+ {
+ if ((m_spellProto->Id == 31821 && m_target->HasAura(19746, GetCasterGUID())) || (m_spellProto->Id == 19746 && m_target->HasAura(31821)))
+ {
+ m_target->CastSpell(m_target,64364,true);
+ return;
+ }
+ }
+ else
+ {
+ m_target->RemoveAurasDueToSpell(64364, GetCasterGUID());
+ return;
+ }
+ }
+
if (GetSpellSpecific(m_spellProto->Id) == SPELL_PRESENCE)
{
AuraEffect *bloodPresenceAura=0; // healing by damage done