Beispiel #1
0
        public Task GameSeriesStarted(GameSeriesDto data)
        {
            _deck = new GameCardDeck((Rank)data.MinCardRank);
            var plannedRounds = data.PlannedRounds
                                .Select(setting => new EumelRoundSettings(setting.StartingPlayer, setting.TricksToPlay));
            var plan    = new EumelGamePlan(plannedRounds, _deck);
            var players = data.PlayerInfos.Select(p => new PlayerInfo(p.Name, p.Type)).ToList();
            var e       = new GameSeriesStarted(data.GameId, players, plan);

            _gameSeriesEventCallback(e);
            return(Task.CompletedTask);
        }
Beispiel #2
0
        public void OnNext(GameSeriesStarted started)
        {
            var deck = started.Plan.Deck;

            _cardIndices = deck.AllCards
                           .Select((Card, Index) => (Card, Index))
                           .ToDictionary(pair => pair.Card, pair => pair.Index);
            var minCardRank   = (int)deck[0].Rank;
            var plannedRounds = started.Plan.Rounds.Select(ConvertRoundSettingsToDto);
            var playerInfos   = started.Players.Select(p => new PlayerDto(p.Name, p.Type));
            var data          = new GameSeriesDto(started.GameUuid, minCardRank, playerInfos, plannedRounds);

            _client.GameSeriesStarted(data);
        }