diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 616df582295..2fa35e12282 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1424,6 +1424,24 @@ void Aura::HandleAddModifier(bool apply, bool Real) ((Player*)m_target)->AddSpellMod(m_spellmod, apply); + // not reapply spell mods with charges (use original value because processed and at remove) + if (m_spellProto->procCharges) + return; + + // not reapply some spell mods ops (mostly speedup case) + switch (m_modifier.m_miscvalue) + { + case SPELLMOD_DURATION: + case SPELLMOD_CHARGES: + case SPELLMOD_NOT_LOSE_CASTING_TIME: + case SPELLMOD_CASTING_TIME: + case SPELLMOD_COOLDOWN: + case SPELLMOD_COST: + case SPELLMOD_ACTIVATION_TIME: + case SPELLMOD_CASTING_TIME_OLD: + return; + } + // reapply talents to own passive persistent auras ReapplyAffectedPassiveAuras(m_target, true); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 2bdd8c00937..c4f65741d30 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "9277" + #define REVISION_NR "9278" #endif // __REVISION_NR_H__