Beispiel #1
0
 public void SelectFlightButton()
 {
     FlightButton.Click();
 }
Beispiel #2
0
    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();
        }
    }