private bool Collide(IMovableObject movable) { var succeeded = true; if (!CheckBoundaries(movable)) { return(false); } var collisions = _collisionDetector.GetCollisions(movable, _fieldObjects); foreach (var collidable in collisions) { if (movable.Collide(collidable)) { succeeded = false; if (movable.Destroyed && collidable.Destroyed) { break; } } } return(succeeded); }