예제 #1
0
        public ContentResult GetResults(Guid gameId, string username)
        {
            var game  = GameManager.GetGame(gameId);
            var model = new MoveModel {
                Game = GetNewGame(game), Username = username
            };

            model.ArrangeUsers(username);
            return(Content(model.ToJson(), "application/json"));
        }
예제 #2
0
        public ContentResult Move([FromBody] JObject jObject)
        {
            var json     = jObject.ToString(Formatting.None);
            var settings = new JsonSerializerSettings {
                TypeNameHandling = TypeNameHandling.Objects
            };
            var model = JsonConvert.DeserializeObject <EndOfMoveModel>(json, settings);
            var user  = model.Username == model.Username ? model.UserPair.User1 : model.UserPair.User2;

            var playedCard = user.Username == "grim" ? new GrimReaper() : Dealer.DeckCards(user.CurrentDeck).First(x => x.Name == model.Selection);

            user.AddPlayedCard(playedCard);
            user.ResetHandCards();

            if (model.IsBotGame)
            {
                var enemy = model.Username == model.UserPair.User1.Username ? model.UserPair.User2 : model.UserPair.User1;
                enemy.AddPlayedCard(Dealer.GetRandomCard(enemy));
                enemy.ResetHandCards();
                var gameEngine = new GameEngine();
                var results    = gameEngine.ExecuteMove(user, enemy);
                var game       = new Game {
                    UserPair = results.UserPair, Actions = results.Actions
                };
                var resultModel = new MoveModel {
                    Game = game, Selection = model.Selection, Username = model.Username
                };
                return(Content(resultModel.ToJson(), "application/json"));
            }
            else
            {
                var turnIsComplete = GameManager.AddMove(model.GameId.Value, user);
                if (turnIsComplete)
                {
                    _hub.EndTurn(model.GameId.Value);
                }
                return(Content(new { PlayerGame = true, User = user }.ToJson(), "application/json"));
            }
        }