Esempio n. 1
0
        public static ExecutionResult LaunchGameForPlayer(DrawGame game, PlayerGameSave save, Player player, IGameProcessor gameProcessor)
        {
            player.ActiveGameSave = new PlayerGameSave
            {
                GameName = game.GameName,
                StateId  = game.StartState.Id,
            };

            var messages = gameProcessor.RecursivelyHandleStates(game.StartState, player.ActiveGameSave, player, game, true);

            messages.Messages.Reverse();

            player.ActiveGameSave = new PlayerGameSave
            {
                GameName = game.GameName,
                StateId  = messages.EndingState.Id,
            };

            player.PlayerFlag = PlayerFlag.IN_GAME.ToString();
            var execResult = new ExecutionResult {
                MessagesToShow = messages.Item1, OptionsToShow = gameProcessor.GetCurrentOptions(player.ActiveGameSave, game)
            };

            return(execResult);
        }