fix(Core/Spells): Add Target Processing (SMSG_SPELLLOGEXECUTE) to LAUNCH_TARGET phase. (#9765)

* Move EffectInterruptCast to LAUNCH_TARGET Phase.

* Source: TrinityCore.

* Fixes #8484
This commit is contained in:
UltraNix
2022-01-04 13:49:15 +01:00
committed by GitHub
parent 8fd757a152
commit f593f624b0
2 changed files with 5 additions and 10 deletions

View File

@@ -7746,6 +7746,8 @@ void Spell::HandleLaunchPhase()
usesAmmo = false;
}
PrepareTargetProcessing();
bool firstTarget = true;
for (std::list<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit)
{
@@ -7783,6 +7785,8 @@ void Spell::HandleLaunchPhase()
DoAllEffectOnLaunchTarget(target, multiplier, firstTarget);
firstTarget = false;
}
FinishTargetProcessing();
}
void Spell::DoAllEffectOnLaunchTarget(TargetInfo& targetInfo, float* multiplier, bool firstTarget)

View File

@@ -895,11 +895,6 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
}
return;
}
// Spell Lock, handled in interrupt effect
// launch is handled before hit triggers, thus silence removes current casted spell
// and interrupt is unable to detect any cast and doesnt work
case 24259:
return;
}
}
@@ -3716,7 +3711,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())
@@ -3747,10 +3742,6 @@ void Spell::EffectInterruptCast(SpellEffIndex effIndex)
}
}
}
// Spell Lock
if (m_spellInfo->Id == 19647)
m_caster->CastSpell(unitTarget, m_spellInfo->Effects[EFFECT_1].TriggerSpell, true);
}
void Spell::EffectSummonObjectWild(SpellEffIndex effIndex)