Exemple #1
0
        public async Task <IActionResult> Round(string id)
        {
            var game    = GetGame(id);
            var choices = await _choiceProvider.GetAll();

            var player = game.GetUnchocenPlayer();

            while (player != Player.None)
            {
                var playerId       = game.GetPlayerId(player);
                var playerInstance = await _playerProvider.GetPlayer(playerId);

                var viewablePlayerInstance = playerInstance as IViewablePlayer;
                if (viewablePlayerInstance != null)
                {
                    var view = await viewablePlayerInstance.View(game.GameState, choices, PlayerHelper.CreateRedirectUrl(this.Url, game.GameState, player), player);

                    return(view);
                }
                var choice = await playerInstance.GetChoice(player, game.GameState, choices);

                game.SetChoice(player, choice);
                _gameStateStorage.Save(game.GameState);
                player = game.GetUnchocenPlayer();
            }

            var winner = game.CalculateRoundWinner(choices);

            _gameStateStorage.Save(game.GameState);

            var round = game.GetCurrentRound();
            var model = new RoundEndViewModel()
            {
                Choices   = choices,
                GameState = game.GameState,
                Round     = round,
                RoundNo   = game.GameState.Rounds.Count,
                Winner    = winner
            };

            return(View("RoundEnd", model));
        }
Exemple #2
0
 public void SendMessage(Message msg, short recipient)
 {
     if (_pprovider != null)
     {
         Player p = null;
         lock (_pprovider.PlayerLock) {
             p = _pprovider.GetPlayer(recipient);
             p.SendMessage(msg);
             InfoLog.WriteInfo("Message type: " + msg.Type + " has been send to user " + p.Id,
                               EPrefix.ServerSendMessageInfo);
         }
     }
     else
     {
         InfoLog.WriteInfo("Message sent unsuccessful.", EPrefix.ServerSendMessageInfo);
     }
 }
Exemple #3
0
 public static bool PlayerExists(this IPlayerProvider playerProvider, string name)
 {
     return(playerProvider.GetPlayer(name) != null);
 }
Exemple #4
0
 public Player GetPlayer(int id)
 {
     return(_playerProvider.GetPlayer(id));
 }