/// <summary> /// Function to keep track of all the logic in game /// </summary> /// <returns></returns> public GameState Logic() { player.ProcessInput(); player.UpdatePosition(); player.ControlShots(); foreach (Shot tiro in player.shots) { tiro.UpdatePosition(); } foreach (Asteroid asteroide in AsteroidsList) { asteroide.UpdatePosition(); } if (VerifyCollisions()) { return(GameState.Lost); } if (AsteroidsList.Count == 0) { return(GameState.Won); } return(GameState.Running); }