diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-05-22 18:55:17 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-05-22 18:55:17 +0200 |
commit | 206369934aecfcac9a49583f3f7e98f0d69ad55b (patch) | |
tree | 0da3b37b7d518d92da95de1538b851bcf9cfe805 | |
parent | c2884612cedb33c12e3a0c30883903efd6d700e0 (diff) |
Core/Spells: Implemented new proc hit type PROC_HIT_DISPEL
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 9 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.h | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 9f878275a6e..d90f7cd7342 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -2131,6 +2131,8 @@ void Spell::EffectDispel() m_caster->SendMessageToSet(spellDispellLog.Write(), true); CallScriptSuccessfulDispel(SpellEffIndex(effectInfo->EffectIndex)); + + m_hitMask |= PROC_HIT_DISPEL; } void Spell::EffectDualWield() @@ -4105,8 +4107,13 @@ void Spell::EffectDispelMechanic() dispel_list.emplace_back(aura->GetId(), aura->GetCasterGUID()); } + if (dispel_list.empty()) + return; + for (auto itr = dispel_list.begin(); itr != dispel_list.end(); ++itr) unitTarget->RemoveAura(itr->first, itr->second, 0, AURA_REMOVE_BY_ENEMY_SPELL); + + m_hitMask |= PROC_HIT_DISPEL; } void Spell::EffectResurrectPet() @@ -4645,6 +4652,8 @@ void Spell::EffectStealBeneficialBuff() } m_caster->SendMessageToSet(spellDispellLog.Write(), true); + + m_hitMask |= PROC_HIT_DISPEL; } void Spell::EffectKillCreditPersonal() diff --git a/src/server/game/Spells/SpellMgr.h b/src/server/game/Spells/SpellMgr.h index 21d3e8ee88e..b547c154c79 100644 --- a/src/server/game/Spells/SpellMgr.h +++ b/src/server/game/Spells/SpellMgr.h @@ -283,7 +283,8 @@ enum ProcFlagsHit : uint32 PROC_HIT_REFLECT = 0x0000800, PROC_HIT_INTERRUPT = 0x0001000, PROC_HIT_FULL_BLOCK = 0x0002000, - PROC_HIT_MASK_ALL = 0x0003FFF + PROC_HIT_DISPEL = 0x0004000, + PROC_HIT_MASK_ALL = 0x0007FFF }; DEFINE_ENUM_FLAG(ProcFlagsHit); |