From ed6cf717c8ffafe9bf14298d3582c171008c8b49 Mon Sep 17 00:00:00 2001 From: ariel- Date: Tue, 4 Oct 2016 23:35:50 -0300 Subject: Core/Spells: add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase. Move EffectInterruptCast to LAUNCH_TARGET Phase. Closes #3718 Closes #6042 (cherry picked from commit d9e4c8e04f9d0ece910642d1e695441deb4e8610) # Conflicts: # src/server/game/Spells/Spell.cpp --- src/server/game/Spells/Spell.cpp | 4 ++++ src/server/game/Spells/SpellEffects.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 04daa7f6b98..0a36d8271b0 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7060,6 +7060,8 @@ void Spell::HandleLaunchPhase() if (effect && (m_applyMultiplierMask & (1 << effect->EffectIndex))) multiplier[effect->EffectIndex] = effect->CalcDamageMultiplier(m_originalCaster, this); + PrepareTargetProcessing(); + for (std::vector::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) { TargetInfo& target = *ihit; @@ -7070,6 +7072,8 @@ void Spell::HandleLaunchPhase() DoAllEffectOnLaunchTarget(target, multiplier); } + + FinishTargetProcessing(); } void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier) diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 5bc8e7ec831..cdc6aeb4751 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -3110,7 +3110,7 @@ void Spell::EffectHealMaxHealth(SpellEffIndex /*effIndex*/) void Spell::EffectInterruptCast(SpellEffIndex effIndex) { - if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET) return; if (!unitTarget || !unitTarget->IsAlive()) -- cgit v1.2.3