public void Tick()
 {
     foreach (Projectile projectile in Projectiles.ToList())
     {
         foreach (IDestructible destructible in Destructibles.ToList())
         {
             if (CheckCollision(projectile, destructible.Actor))
             {
                 if (destructible.IsDestructible && destructible.IsAlive)
                 {
                     switch (destructible.Actor)
                     {
                     case Enemy _ when projectile.Owner is Player:
                     case Player _ when projectile.Owner is Enemy:
                     case GameObject _:
                         destructible.OnHit();
                         projectile.Dispose();
                         break;
                     }
                 }
                 else if (destructible.StopsProjectile)
                 {
                     projectile.Dispose();
                 }
             }
         }
     }
 }