Core/Spells: attempt to correct issue with triggered spells happening before the spell actually hits the target. reply with any bugs that this causes please!
This commit is contained in:
@@ -849,15 +849,15 @@ void Spell::EffectDummy(SpellEffIndex effIndex)
|
|||||||
|
|
||||||
void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
|
void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
|
||||||
{
|
{
|
||||||
if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET
|
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET
|
||||||
&& effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH)
|
&& effectHandleMode != SPELL_EFFECT_HANDLE_HIT)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
uint32 triggered_spell_id = m_spellInfo->Effects[effIndex].TriggerSpell;
|
uint32 triggered_spell_id = m_spellInfo->Effects[effIndex].TriggerSpell;
|
||||||
|
|
||||||
// todo: move those to spell scripts
|
// todo: move those to spell scripts
|
||||||
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRIGGER_SPELL
|
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRIGGER_SPELL
|
||||||
&& effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
|
&& effectHandleMode == SPELL_EFFECT_HANDLE_HIT_TARGET)
|
||||||
{
|
{
|
||||||
// special cases
|
// special cases
|
||||||
switch (triggered_spell_id)
|
switch (triggered_spell_id)
|
||||||
@@ -970,13 +970,13 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
SpellCastTargets targets;
|
SpellCastTargets targets;
|
||||||
if (effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH_TARGET)
|
if (effectHandleMode == SPELL_EFFECT_HANDLE_HIT_TARGET)
|
||||||
{
|
{
|
||||||
if (!spellInfo->NeedsToBeTriggeredByCaster())
|
if (!spellInfo->NeedsToBeTriggeredByCaster())
|
||||||
return;
|
return;
|
||||||
targets.SetUnitTarget(unitTarget);
|
targets.SetUnitTarget(unitTarget);
|
||||||
}
|
}
|
||||||
else //if (effectHandleMode == SPELL_EFFECT_HANDLE_LAUNCH)
|
else //if (effectHandleMode == SPELL_EFFECT_HANDLE_HIT)
|
||||||
{
|
{
|
||||||
if (spellInfo->NeedsToBeTriggeredByCaster() && (m_spellInfo->Effects[effIndex].GetProvidedTargetMask() & TARGET_FLAG_UNIT_MASK))
|
if (spellInfo->NeedsToBeTriggeredByCaster() && (m_spellInfo->Effects[effIndex].GetProvidedTargetMask() & TARGET_FLAG_UNIT_MASK))
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user