Esempio n. 1
0
        public Task GameRoundStarted(RoundStartedDto data)
        {
            var settings = new EumelRoundSettings(data.StartingPlayer, data.TricksToPlay);

            _gameSeriesEventCallback(new RoundStarted(data.GameId, settings));
            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public Task GameRoundEnded(RoundResultDto data)
        {
            var settings = new EumelRoundSettings(data.GameRound.StartingPlayer, data.GameRound.TricksToPlay);
            var res      = new RoundResult(data.PlayerResults.Select(
                                               player => new PlayerRoundResult(player.Guesses, player.TricksWon, player.Score)
                                               ).ToList());
            var e = new RoundEnded(data.GameId, settings, res);

            _gameSeriesEventCallback(e);
            return(Task.CompletedTask);
        }
Esempio n. 3
0
 public void MoveToNextRound()
 {
     if (!HasMoreRounds)
     {
         throw new InvalidOperationException("No more rounds");
     }
     _gameEventContext = _gameEventContext with {
         RoundIndex = _gameEventContext.RoundIndex + 1
     };
     CurrentRoundSettings = _plan.Rounds[_gameEventContext.RoundIndex];
     State = GameState.Initial(_numPlayers, CurrentRoundSettings);
     _events.Clear();
 }
Esempio n. 4
0
 public RoundStartedPayload(RoundStarted roundStarted)
 {
     Settings = roundStarted.Settings;
 }
Esempio n. 5
0
 public static GameRoundDto ConvertRoundSettingsToDto(EumelRoundSettings settings) =>
 new GameRoundDto(settings.StartingPlayerIndex, settings.TricksToPlay);