private void OnBeliveMoveMade(OnBeliveMoveMadeParams @params)
        {
            if (@params == null)
            {
                return;
            }

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

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

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

            if (nextMover == null)
            {
                return;
            }

            var move = new BeliveMove(mover.Player)
            {
                SelectedCard = new PlayingCard()
                {
                    Id   = @params.CheckedCard.Id,
                    Rank = (PlayingCardRank)@params.CheckedCard.Rank,
                    Suit = (PlayingCardSuit)@params.CheckedCard.Suit
                }
            };

            if (@params.LoserId == _stateService.GetSavedPlayer().Id)
            {
                GameTable.MakeBeliveMove(move, @params.NextMoverId, @params.LoserId, @params.TakedLoserCards.Select(c => new PlayingCard()
                {
                    Id   = c.Id,
                    Rank = (PlayingCardRank)c.Rank,
                    Suit = (PlayingCardSuit)c.Suit
                }).ToList());
            }
            else
            {
                GameTable.MakeBeliveMove(move, @params.NextMoverId, @params.LoserId, @params.HiddenTakedLoserCards.Select(c => new PlayingCard()
                {
                    Id = c
                }).ToList());
            }

            GameTable.SetNextPossibleMoves(@params.NextPossibleMoves);
        }
 private void OnBeliveMoveMade(OnBeliveMoveMadeParams @params)
 {
 }
예제 #3
0
 /// <summary>
 /// Получает уведомление о совершении хода типа "Верю"
 /// </summary>
 /// <param name="params"></param>
 /// <returns></returns>
 private void OnBeliveMoveMade(OnBeliveMoveMadeParams @params)
 {
     BeliveMoveMade?.Invoke(@params);
 }