aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-02-10 21:11:07 +0100
committerShauren <shauren.trinity@gmail.com>2022-02-10 21:11:07 +0100
commit02979daf761a5122efa7b8fa3e70509ecd69789e (patch)
tree19df8dfa3ad4ad9aa69ab08a3b58e42e12fc6994 /src/server/game/Spells/SpellEffects.cpp
parent7295bfb6a09b25d824889cfb3698a0774fc01b34 (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.cpp16
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);
}