public void MakeBeliveMove(BeliveMove move, Guid nextMoverId, Guid loserId, IReadOnlyCollection <PlayingCard> takedLoserCards) { if (!IsStarted || CurrentGame.CurrentMover.Id != move.Initiator.Id || CurrentGame.CanMakeMove(MoveType.BeliveMove)) { return; } CurrentGame.MakeBeliveMove(move, nextMoverId, loserId, takedLoserCards); }
public void MakeBeliveMove(BeliveMove 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); NextRound(); CurrentMover = Players.First(p => p.Player.Id == nextMoverId).Player; }
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); }
public void MakeBeliveMove(BeliveMove move, Player nextMover) { }