private void HandleGameUpdateResponse(GameUpdateResponse obj)
        {
            var prev      = this.GameUpdateResponse;
            var isUpdated = this.GameUpdateResponse != null;

            this.GameUpdateResponse = obj;

            if (isUpdated)
            {
                var alerts = new List <string>();
                foreach (var item in obj.PlayerPublicStates)
                {
                    var isConnected  = item.IsConnected;
                    var wasConnected = prev.PlayerPublicStates
                                       .FirstOrDefault(x => x.PlayerPublicId == item.PlayerPublicId)?.IsConnected ?? false;
                    if (wasConnected != isConnected)
                    {
                        alerts.Add($"Player {item.DisplayName} {(isConnected ? "Connected" : "Disconnected")}");
                    }
                }

                if (alerts.Count > 0)
                {
                    InvokeStateChanged(new GameAlertEventArgs()
                    {
                        Message = String.Join(Environment.NewLine, alerts),
                        Title   = "Players Alert"
                    });
                }
            }

            SetInitializedIfReady();
            InvokeStateChanged(EventArgs.Empty);
        }
Ejemplo n.º 2
0
 private void HandleGameUpdateResponse(GameUpdateResponse obj)
 {
     _logger.LogInformation("HandleGameUpdateResponse Message={0}", obj);
     if (OnGameUpdateResponse != null)
     {
         OnGameUpdateResponse(obj);
     }
 }
Ejemplo n.º 3
0
 public void Update(GameUpdateResponse response)
 {
     if (_form != null)
     {
         UpdateSpawns(response.Spawns);
         UpdatePositions(response.Players);
         UpdateLasers(response.Lasers);
         UpdateScore();
         SetLives(response.Lives);
     }
 }
Ejemplo n.º 4
0
 private void InvokeOnGameUpdate(GameUpdateResponse response)
 {
     if (EventManager != null)
     {
         try
         {
             EventManager.HandleGameUpdate(response);
         }
         catch (Exception ex)
         {
             _logger.LogError(ex, nameof(InvokeOnGameUpdate));
         }
     }
 }
Ejemplo n.º 5
0
        public Task Update(GameUpdateResponse response)
        {
            if (!initializing)
            {
                if (_gamePlayers == null)
                {
                    initializing = true;
                    _gameUpdater.InitializePlayers(response.Players);
                    _gamePlayers = response.Players;
                    initializing = false;
                }
                else
                {
                    _gameUpdater.Update(response);
                }
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 6
0
        private GameUpdateResponse MakeGameUpdateResponse(Models.GameState gameState)
        {
            var ret = new GameUpdateResponse()
            {
                GameId = gameState.GameId
            };

            ret.BestCurrentAsk = gameState.BestCurrentAsk;
            ret.BestCurrentBid = gameState.BestCurrentBid;
            if (gameState.RoundStates != null)
            {
                ret.CommunityCardIds = gameState.RoundStates.Select(x => x.CommunityCardCardId).ToList();
            }
            if (gameState.PlayerStates != null)
            {
                ret.PlayerPublicStates = gameState.PlayerStates.Select(x => MakePlayerPublicState(x)).ToList();
            }
            ret.IsFinished        = gameState.IsFinished;
            ret.IsTradingLocked   = gameState.IsTradingLocked;
            ret.IsSuccess         = true;
            ret.SettlementPrice   = gameState.SettlementPrice;
            ret.AllRoundsFinished = gameState.RoundStates.Count >= gameState.Game.NumberOfRounds;
            return(ret);
        }
Ejemplo n.º 7
0
        private Task Update(SocketBase socket)
        {
            GameUpdateResponse response = socket as GameUpdateResponse ?? throw new ArgumentNullException(nameof(socket));

            return(_gameManager.Update(response));
        }
 public void HandleGameUpdate(GameUpdateResponse resp)
 {
     _ = _hubContext.Clients.Group(resp.GameId).SendAsync("OnGameUpdateResponse", resp);
 }