aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorariel- <ariel-@users.noreply.github.com>2016-10-04 23:35:50 -0300
committerjoschiwald <joschiwald.trinity@gmail.com>2017-08-13 12:57:27 +0200
commited6cf717c8ffafe9bf14298d3582c171008c8b49 (patch)
tree90ff356b343378594a6222de68cc97b2d0014c01
parentcc82951ff07c2b48aec5d73b8ba7db82f8065ded (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.cpp4
-rw-r--r--src/server/game/Spells/SpellEffects.cpp2
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())