public static string ToEvent(this FieldChangedEvent fieldChangedEvent) { JObject delta = new JObject(); delta[nameof(FieldChangedEvent)] = JsonConvert.SerializeObject(fieldChangedEvent); return(delta.ToString()); }
private void OnStateChanged(JObject delta) { if (delta.TryGetValue(nameof(FieldChangedEvent), out JToken token)) { Debug.Log($"{nameof(ClientFieldState)}: got filed changes {token}."); FieldChangedEvent changed = JsonConvert.DeserializeObject <FieldChangedEvent>(token.ToString()); m_field[new Vector2Int(changed.X, changed.Y)] = new CellModel(changed.Symbol); } if (delta.TryGetValue(nameof(GameOverEvent), out token)) { Debug.Log($"{nameof(ClientFieldState)}: got game over event {token}."); GameOverEvent gameOver = JsonConvert.DeserializeObject <GameOverEvent>(token.ToString()); if (gameOver.Symbol != null) { List <Vector2Int> positions = new List <Vector2Int>(gameOver.WinCellPositions.Count()); foreach ((int, int)position in gameOver.WinCellPositions) { positions.Add(new Vector2Int(position.Item1, position.Item2)); } m_winCellsPosition.OnNext(positions); } } }
private void HandleFieldChanged(FieldChangedEvent evnt) { // Debug.Log( $"Field was changed to a value of '{evnt.Value}'" ); }