public void SelectFlightButton() { FlightButton.Click(); }
public override void _Process(float delta) { switch (_gameState) { case GameState.Game: if (!_level.IsRunning()) { if (MoveCameraBack(delta)) { _gameState = GameState.UpgradeMenu; } else { if (_hud != null) { _hud.QueueFree(); _hud = null; _player.Deactivate(); UpdateFleet(); } } } break; case GameState.PrepareGame: if (LevelIntroduction(delta)) { return; } if (_levelNumber != 1) { _level.IncreaseDifficulty(); } _levelNumber++; _level.Start(); CreateHud(); _player.SetHud(_hud); _player.Activate(); _gameState = GameState.Game; break; case GameState.GameOver: if (_level != null) { _level.QueueFree(); _level = null; } ShowGameOver(); if (MoveCameraBack(delta)) { if (_menuButton == null) { if (_menuButtonScene.Instance() is MenuButton menuButton) { menuButton.RectPosition = new Vector2(-325, 600); GetTree().CurrentScene.AddChild(menuButton); _menuButton = menuButton; } } } break; case GameState.UpgradeMenu: if (_upgradeScreen == null) { if (_upgradeScene.Instance() is UpgradeScreen upgradeScreen) { GetTree().CurrentScene.AddChild(upgradeScreen); _upgradeScreen = upgradeScreen; } } if (_flightButton == null) { if (_flightButtonScene.Instance() is FlightButton flightButton) { flightButton.RectPosition = new Vector2(-250, 600); GetTree().CurrentScene.AddChild(flightButton); _flightButton = flightButton; } } break; case GameState.Start: if (_upgradeScreen != null) { _upgradeScreen.QueueFree(); _upgradeScreen = null; } if (MoveCameraForward(delta)) { _levelWaitTime = 0; _flightButton = null; _upgradeScreen = null; _gameState = GameState.PrepareGame; } break; case GameState.Intro: if (_flightButton == null) { if (_flightButtonScene.Instance() is FlightButton flightButton) { flightButton.RectPosition = new Vector2(-250, 600); GetTree().CurrentScene.AddChild(flightButton); _flightButton = flightButton; } } break; default: throw new ArgumentOutOfRangeException(); } }