From 02a4501034fc2155002287c9ac06b24cf76fb26f Mon Sep 17 00:00:00 2001 From: Amit Date: Fri, 3 Aug 2012 01:24:22 +0300 Subject: Fix Improved concentration aura Fix Improved concentration aura 30% reduce of silence/interrupt --- src/server/game/Spells/Auras/SpellAuras.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index a1ac69826c4..15108b17f84 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1593,6 +1593,11 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b switch (GetId()) { case 19746: + // Improved concentration aura - linked aura + if (caster->HasAura(20254) || caster->HasAura(20255) || caster->HasAura(20256)) + if (apply) + target->CastSpell(target, 63510, true); + else target->RemoveAura(63510); case 31821: // Aura Mastery Triggered Spell Handler // If apply Concentration Aura -> trigger -> apply Aura Mastery Immunity @@ -1619,6 +1624,20 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b target->RemoveAurasDueToSpell(71166); } break; + } + if (GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_AURA) + { + // Improved devotion aura + if (caster->HasAura(20140) || caster->HasAura(20138) || caster->HasAura(20139)) + if (apply) + caster->CastSpell(target, 63514, true); + else target->RemoveAura(63514); + // 63531 - linked aura for both Sanctified Retribution and Swift Retribution talents + // Not allow for Retribution Aura (prevent stacking) + if ((GetSpellInfo()->SpellIconID != 555) && (caster->HasAura(53648) || caster->HasAura(53484) || caster->HasAura(53379) || caster->HasAura(31869))) + if (apply) + caster->CastSpell(target, 63531, true); + else target->RemoveAura(63531); } break; case SPELLFAMILY_DEATHKNIGHT: -- cgit v1.2.3 From 8e35762b35a07ca3ad096b6430962104d0b97dd4 Mon Sep 17 00:00:00 2001 From: Amit Date: Fri, 3 Aug 2012 01:27:39 +0300 Subject: Add missing change in SpellEffects.cpp --- src/server/game/Spells/SpellEffects.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 58c24aa895c..e43c64cd388 100755 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3572,8 +3572,8 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex) { if (m_originalCaster) { - int32 duration = m_originalCaster->ModSpellDuration(m_spellInfo, unitTarget, m_originalCaster->CalcSpellDuration(m_spellInfo), false, 1 << effIndex); - unitTarget->ProhibitSpellSchool(curSpellInfo->GetSchoolMask(), duration/*GetSpellDuration(m_spellInfo)*/); + int32 duration = m_spellInfo->GetDuration(); + unitTarget->ProhibitSpellSchool(curSpellInfo->GetSchoolMask(), unitTarget->ModSpellDuration(m_spellInfo, unitTarget, duration, false, 1 << effIndex)); } ExecuteLogEffectInterruptCast(effIndex, unitTarget, curSpellInfo->Id); unitTarget->InterruptSpell(CurrentSpellTypes(i), false); -- cgit v1.2.3