private static void CheckSpellCollision()
{
if (!ConfigValue.CheckSpellCollision.GetBool())
{
return;
}
foreach (KeyValuePair<int, Spell> entry in DetectedSpells)
{
Spell spell = entry.Value;
var collisionObject = spell.CheckSpellCollision();
if (collisionObject != null)
{
spell.PredictedEndPos = spell.GetSpellProjection(collisionObject.ServerPosition.To2D());
if (spell.CurrentSpellPosition.Distance(collisionObject.ServerPosition)
< collisionObject.BoundingRadius + spell.Radius)
{
Core.DelayAction(() => DeleteSpell(entry.Key), 1);
}
}
}
}