diff options
| author | Shauren <shauren.trinity@gmail.com> | 2022-02-10 21:11:07 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2022-02-10 21:11:07 +0100 |
| commit | 02979daf761a5122efa7b8fa3e70509ecd69789e (patch) | |
| tree | 19df8dfa3ad4ad9aa69ab08a3b58e42e12fc6994 /src/server/game/Spells/SpellEffects.cpp | |
| parent | 7295bfb6a09b25d824889cfb3698a0774fc01b34 (diff) | |
Core/Auras: Proc flag updates
* Rename to official names
* Corrected logic selecting flags for each spell cast - determine them by attributes instead of DmgClass
* Implemented new proc flags (PROC_FLAG_CAST_ENDED, PROC_FLAG_LOOTED)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
| -rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 67c667b268e..99c54857502 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2928,18 +2928,10 @@ void Spell::EffectInterruptCast() || (spell->getState() == SPELL_STATE_PREPARING && spell->GetCastTime() > 0.0f)) && curSpellInfo->CanBeInterrupted(m_caster, unitTarget)) { - if (Unit* unitCaster = GetUnitCasterForEffectHandlers()) - { - int32 duration = m_spellInfo->GetDuration(); - duration = unitTarget->ModSpellDuration(m_spellInfo, unitTarget, duration, false, 1 << effectInfo->EffectIndex); - unitTarget->GetSpellHistory()->LockSpellSchool(curSpellInfo->GetSchoolMask(), Milliseconds(duration)); - if (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MAGIC) - Unit::ProcSkillsAndAuras(unitCaster, unitTarget, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG, - PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_HIT, PROC_HIT_INTERRUPT, nullptr, nullptr, nullptr); - else if (m_spellInfo->DmgClass == SPELL_DAMAGE_CLASS_MELEE) - Unit::ProcSkillsAndAuras(unitCaster, unitTarget, PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS, PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS, - PROC_SPELL_TYPE_MASK_ALL, PROC_SPELL_PHASE_HIT, PROC_HIT_INTERRUPT, nullptr, nullptr, nullptr); - } + int32 duration = m_spellInfo->GetDuration(); + duration = unitTarget->ModSpellDuration(m_spellInfo, unitTarget, duration, false, 1 << effectInfo->EffectIndex); + unitTarget->GetSpellHistory()->LockSpellSchool(curSpellInfo->GetSchoolMask(), Milliseconds(duration)); + m_hitMask |= PROC_HIT_INTERRUPT; SendSpellInterruptLog(unitTarget, curSpellInfo->Id); unitTarget->InterruptSpell(CurrentSpellTypes(i), false); } |
