public BaseState Create(GameStateType gameState) { switch (gameState) { case GameStateType.Gamestart: return(_gamestartFactory.Create()); case GameStateType.Gameplay: return(_gameplayFactory.Create()); case GameStateType.Gameover: return(_gameoverFactory.Create()); default: throw Assert.CreateException("Unknown state: {}".Fmt(gameState)); } }
/// <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"); }