mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-26 03:42:37 +01:00
Core/Spells: Fixed spell effect on caster not being processed instantly for spells that have travel time and hit both caster and another unit
This commit is contained in:
@@ -6824,8 +6824,8 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time)
|
||||
return true; // spell is deletable, finish event
|
||||
}
|
||||
// event will be re-added automatically at the end of routine)
|
||||
} break;
|
||||
|
||||
break;
|
||||
}
|
||||
case SPELL_STATE_DELAYED:
|
||||
{
|
||||
// first, check, if we have just started
|
||||
@@ -6875,17 +6875,21 @@ bool SpellEvent::Execute(uint64 e_time, uint32 p_time)
|
||||
{
|
||||
// delaying had just started, record the moment
|
||||
m_Spell->SetDelayStart(e_time);
|
||||
// handle effects on caster if the spell has travel time but also affects the caster in some way
|
||||
uint64 n_offset = m_Spell->handle_delayed(0);
|
||||
ASSERT(n_offset == m_Spell->GetDelayMoment());
|
||||
// re-plan the event for the delay moment
|
||||
m_Spell->GetCaster()->m_Events.AddEvent(this, e_time + m_Spell->GetDelayMoment(), false);
|
||||
return false; // event not complete
|
||||
}
|
||||
} break;
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// all other states
|
||||
// event will be re-added automatically at the end of routine)
|
||||
} break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// spell processing not complete, plan event on the next update interval
|
||||
|
||||
Reference in New Issue
Block a user