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); }
/// <summary> /// Получает уведомление о совершении первого хода /// </summary> /// <param name="params"></param> /// <returns></returns> private void OnFirstMoveMade(OnFirstMoveMadeParams @params) { FirstMoveMade?.Invoke(@params); }