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); }
private void HandleGameUpdateResponse(GameUpdateResponse obj) { _logger.LogInformation("HandleGameUpdateResponse Message={0}", obj); if (OnGameUpdateResponse != null) { OnGameUpdateResponse(obj); } }
public void Update(GameUpdateResponse response) { if (_form != null) { UpdateSpawns(response.Spawns); UpdatePositions(response.Players); UpdateLasers(response.Lasers); UpdateScore(); SetLives(response.Lives); } }
private void InvokeOnGameUpdate(GameUpdateResponse response) { if (EventManager != null) { try { EventManager.HandleGameUpdate(response); } catch (Exception ex) { _logger.LogError(ex, nameof(InvokeOnGameUpdate)); } } }
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); }
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); }
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); }