/// <summary> /// Make the world go round. /// </summary> public void Move() { foreach (Worm worm in worms) { if (worm.Active) { worm.Move(); } } currentStep = 0; if (wormsAlive < wormCap) { Vector2 random = Random.ValidPosition(collision, width, height, collision.empty); if (random.X != -1) { SpawnWorm(collision.X(random.X), collision.Y(random.Y), minWormLength); } else { random = Random.ValidPosition(collision, width, height, collision.fruit); if (random.X != -1 && collision.GetType(random) == collision.fruit) { fruits.Disable(collision.X(random.X), collision.Y(random.Y)); SpawnWorm(collision.X(random.X), collision.Y(random.Y), minWormLength); } else { if (wormsAlive > 0) { wormsAlive--; } } } } #if DEBUG if (visualizeCollision) { collision.Visualize(); } #endif }