public static string ToEvent(this FieldChangedEvent fieldChangedEvent)
        {
            JObject delta = new JObject();

            delta[nameof(FieldChangedEvent)] = JsonConvert.SerializeObject(fieldChangedEvent);
            return(delta.ToString());
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
 private void HandleFieldChanged(FieldChangedEvent evnt)
 {
     // Debug.Log( $"Field was changed to a value of '{evnt.Value}'" );
 }