public StoryTellingMenu( Game game, int story, StoryLevel nextLevel, Menu nextMenu )
            : base(game)
        {
            _nextLevel = nextLevel;
            _nextMenu = nextMenu;

            _targetStory = story;
        }
Exemple #2
0
        protected override void Update( GameTime gameTime )
        {
            base.Update( gameTime );

            if ( _currentLevel != null ) {
                _currentLevel.Update( gameTime );

                if ( _currentLevel.LevelEnded ) {
                    if ( _currentLevel.Won ) {
                        MapMenu.WON_STATUSES[_currentLevel.LevelIndex] = true;
                    }

                    bool finished = true;
                    foreach ( var won in MapMenu.WON_STATUSES ) {
                        if ( !won ) {
                            finished = false;
                        }
                    }

                    if ( !finished )
                        _currentMenu = new MapMenu( this );
                    else
                        _currentMenu = new StoryTellingMenu( this, 1, null, new MainMenu( this ) );
                    _currentLevel = null;
                }
            }
            else if ( _currentMenu != null ) {
                _currentMenu.Update( gameTime );

                if ( _currentMenu.SelectedLevel != null ) {
                    _currentLevel = _currentMenu.SelectedLevel;
                    _currentMenu.SelectedLevel = null;
                    _currentMenu = null;
                }
                else if ( _currentMenu.SelectedMenu != null ) {
                    _currentMenu = _currentMenu.SelectedMenu;
                    _currentMenu.SelectedMenu = null;
                }
            }

            Keyboard.GetState( ).UpdateState( );
        }