public void MakeDontBeliveMove(DontBeliveMove move, Guid?nextMoverId, Guid loserId, IReadOnlyCollection <PlayingCard> takedLoserCards)
        {
            if (!IsStarted || CurrentGame.CurrentMover.Id != move.Initiator.Id || CurrentGame.CanMakeMove(MoveType.BeliveMove))
            {
                return;
            }

            CurrentGame.MakeDontBeliveMove(move, nextMoverId, loserId, takedLoserCards);
        }
        private void OnDontBeliveMoveMade(OnDontBeliveMoveMadeParams @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 DontBeliveMove(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.MakeDontBeliveMove(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.MakeDontBeliveMove(move, @params.NextMoverId, @params.LoserId, @params.HiddenTakedLoserCards.Select(c => new PlayingCard()
                {
                    Id = c
                }).ToList());
            }

            GameTable.SetNextPossibleMoves(@params.NextPossibleMoves);
        }
Exemple #3
0
        public void MakeDontBeliveMove(DontBeliveMove move, Guid?nextMoverId, Guid loserId, IReadOnlyCollection <PlayingCard> takedLoserCards)
        {
            var loser = Players.FirstOrDefault(p => p.Player.Id == loserId);

            loser.PlayingCards.AddRange(takedLoserCards);

            CurrentRound.AddMove(move);
            CurrentRound.End(loser.Player);

            if (nextMoverId.HasValue)
            {
                NextRound();
                CurrentMover = Players.First(p => p.Player.Id == nextMoverId).Player;
            }
            else
            {
                End(loser);
            }
        }
Exemple #4
0
 public void MakeDontBeliveMove(DontBeliveMove move, Player nextMover)
 {
 }