Example #1
0
 public GameStateMachine(
     GameConfig config,
     InitState.Factory initStateFactory,
     TitleState.Factory titleStateFactory,
     PlayState.Factory playStateFactory,
     GameOverState.Factory gameOverStateFactory,
     WinState.Factory winStateFactory
     )
 {
     _config = config;
     _states = new Dictionary <GameStates, IState> {
         { GameStates.Init, initStateFactory.Create(this) },
         { GameStates.Title, titleStateFactory.Create(this) },
         { GameStates.Play, playStateFactory.Create(this) },
         { GameStates.GameOver, gameOverStateFactory.Create(this) },
         { GameStates.Win, winStateFactory.Create(this) },
     };
 }
Example #2
0
        /// <summary>
        /// Creates the requested game state entity
        /// </summary>
        /// <param name="gameState">State we want to create</param>
        /// <returns>The requested game state entity</returns>
        internal GameStateEntity CreateState(GameState gameState)
        {
            switch (gameState)
            {
            case GameState.Menu:
                return(_menuFactory.Create());

            case GameState.Gameplay:
                return(_gameplayFactory.Create());

            case GameState.GameOver:
                return(_gameOverFactory.Create());

            case GameState.Victory:
                return(_victoryFactory.Create());
            }

            throw Assert.CreateException("Code should not be reached");
        }