aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkandera <kanderadev@gmail.com>2012-08-02 15:32:28 -0700
committerkandera <kanderadev@gmail.com>2012-08-02 15:32:28 -0700
commit71a872c63d2a9050c24e88b034d13758d545abf3 (patch)
treecb2cbf1a46172efdac14fbd710f0385d8faf05c7
parente72f01650c1974603ff1fe7941698e9bed44418a (diff)
parent8e35762b35a07ca3ad096b6430962104d0b97dd4 (diff)
Merge pull request #7260 from Amit86/patch-4
[Paladin/Spells] Fix Improved concentration aura
-rwxr-xr-xsrc/server/game/Spells/Auras/SpellAuras.cpp19
-rwxr-xr-xsrc/server/game/Spells/SpellEffects.cpp4
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);