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:
Kandera
2012-05-24 17:34:51 -04:00
parent 51388c4934
commit d98f36194b
+5 -5
View File
@@ -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;