diff options
author | QAston <none@none> | 2009-02-07 22:03:29 +0100 |
---|---|---|
committer | QAston <none@none> | 2009-02-07 22:03:29 +0100 |
commit | 401ebf5455f665f53f770bd5037bd67bfe597d40 (patch) | |
tree | cb331beb404c63765eaaab9596dcb355af0aee59 /src/game/SpellEffects.cpp | |
parent | 8a1b07e9c7259c1c426a3e1015df4cdf0c718c9b (diff) |
*Handle SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL and SPELL_AURA_MOD_AURA_DURATION_BY_DISPEL_NOT_STACK.
*Fix SPELL_AURA_MECHANIC_DURATION_MOD and SPELL_AURA_MECHANIC_DURATION_MOD_NOT_STACK for PVP.
--HG--
branch : trunk
Diffstat (limited to 'src/game/SpellEffects.cpp')
-rw-r--r-- | src/game/SpellEffects.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index a700595a8ac..ce09f2f598e 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -2244,6 +2244,9 @@ void Spell::EffectApplyAura(uint32 i) unitTarget->ApplyDiminishingToDuration(m_diminishGroup,duration,caster,m_diminishLevel); Aur->setDiminishGroup(m_diminishGroup); + //apply mods only here, area auras don't have duration + duration = caster->ModSpellDuration(m_spellInfo, i, unitTarget, duration); + // if Aura removed and deleted, do not continue. if(duration== 0 && !(Aur->IsPermanent())) { @@ -4693,7 +4696,7 @@ void Spell::EffectInterruptCast(uint32 i) { if(m_originalCaster) { - int32 duration = m_originalCaster->CalculateSpellDuration(m_spellInfo, i, unitTarget); + int32 duration = m_originalCaster->ModSpellDuration(m_spellInfo, i, unitTarget, m_originalCaster->CalcSpellDuration(m_spellInfo)); unitTarget->ProhibitSpellScholl(GetSpellSchoolMask(unitTarget->m_currentSpells[i]->m_spellInfo), duration/*GetSpellDuration(m_spellInfo)*/); } unitTarget->InterruptSpell(i,false); |