private void OnFirstMoveMade(OnFirstMoveMadeParams @params)
        {
            if (@params == null)
            {
                return;
            }

            var mover = GameTable.Players.FirstOrDefault(gp => gp.Player.Id == @params.MoverId);

            if (mover == null || mover.Player.Id == _stateService.GetSavedPlayer().Id)
            {
                return;
            }

            var nextMover = GameTable.Players.FirstOrDefault(gp => gp.Player.Id == @params.NextMoverId);

            if (nextMover == null)
            {
                return;
            }

            var move = new FirstMove(mover.Player, @params.CardIds.Select(c => new PlayingCard()
            {
                Id = c
            }).ToList())
            {
                Rank = (PlayingCardRank)@params.Rank
            };

            GameTable.MakeFirstMove(move, nextMover.Player.Id);
            GameTable.SetNextPossibleMoves(@params.NextPossibleMoves);
        }
예제 #2
0
 /// <summary>
 /// Получает уведомление о совершении первого хода
 /// </summary>
 /// <param name="params"></param>
 /// <returns></returns>
 private void OnFirstMoveMade(OnFirstMoveMadeParams @params)
 {
     FirstMoveMade?.Invoke(@params);
 }