public void Update() { if (_paused) { return; } //update the balls _ball.Update(); //update the teams _redTeam.Update(); _blueTeam.Update(); //if a goal has been detected reset the pitch ready for kickoff if (_blueGoal.CheckIfGoalScored(_ball) || _redGoal.CheckIfGoalScored(_ball)) { _gameInPlay = false; //reset the ball _ball.PlaceAtPosition(new Vector2D((double)_clientWidth / 2.0, (double)_clientHeight / 2.0)); //get the teams ready for kickoff _redTeam.FSM.ChangeState(PrepareForKickoffState.Instance); _blueTeam.FSM.ChangeState(PrepareForKickoffState.Instance); } }