diff options
author | ariel- <ariel-@users.noreply.github.com> | 2016-10-04 23:35:50 -0300 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-08-13 12:57:27 +0200 |
commit | ed6cf717c8ffafe9bf14298d3582c171008c8b49 (patch) | |
tree | 90ff356b343378594a6222de68cc97b2d0014c01 | |
parent | cc82951ff07c2b48aec5d73b8ba7db82f8065ded (diff) |
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
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 2 |
2 files changed, 5 insertions, 1 deletions
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<TargetInfo>::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()) |