diff options
author | kandera <kanderadev@gmail.com> | 2012-08-02 15:32:28 -0700 |
---|---|---|
committer | kandera <kanderadev@gmail.com> | 2012-08-02 15:32:28 -0700 |
commit | 71a872c63d2a9050c24e88b034d13758d545abf3 (patch) | |
tree | cb2cbf1a46172efdac14fbd710f0385d8faf05c7 | |
parent | e72f01650c1974603ff1fe7941698e9bed44418a (diff) | |
parent | 8e35762b35a07ca3ad096b6430962104d0b97dd4 (diff) |
Merge pull request #7260 from Amit86/patch-4
[Paladin/Spells] Fix Improved concentration aura
-rwxr-xr-x | src/server/game/Spells/Auras/SpellAuras.cpp | 19 | ||||
-rwxr-xr-x | src/server/game/Spells/SpellEffects.cpp | 4 |
2 files changed, 21 insertions, 2 deletions
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 @@ -1620,6 +1625,20 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b } 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: if (GetSpellInfo()->GetSpellSpecific() == SPELL_SPECIFIC_PRESENCE) 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); |