コード例 #1
0
 private void UpdateTurn(JSONChangeInfo info)
 {
     if (info.Type == JSONChangeInfo.ChangeType.CHANGED)
     {
         TurnNumber = (int)info.NewValue.n;
     }
 }
コード例 #2
0
 private void ActionPointsChanged(JSONChangeInfo info)
 {
     if (info.Type != JSONChangeInfo.ChangeType.CHANGED)
     {
         Debug.LogWarning("Non change event recieved?");
         return;
     }
     Debug.Log(UUID + "'s Action Points were changed from " + info.OldValue.n + " to " + info.NewValue.n);
     CurrentActionPoints = (int)info.NewValue.n;
 }
コード例 #3
0
 private void FireJSONChangeEvent(JSONChangeInfo change)
 {
     Debug.Log("Firing JSON change event for element " + change.Path);
     if (JSONChangeActions.ContainsKey(change.Path))
     {
         var list = JSONChangeActions[change.Path];
         foreach (var action in list)
         {
             action(change);
         }
     }
 }
コード例 #4
0
 private void UpdateGameState(JSONChangeInfo info)
 {
     if (info.Type == JSONChangeInfo.ChangeType.CHANGED)
     {
         string gState = info.NewValue.str;
         if ("hero_turn".Equals(gState))
         {
             gameState = GameState.HeroTurn;
         }
         else if ("architect_turn".Equals(gState))
         {
             gameState = GameState.ArchitectTurn;
         }
     }
 }
コード例 #5
0
 private void HealthChanged(JSONChangeInfo info)
 {
     if (info.Type != JSONChangeInfo.ChangeType.CHANGED)
     {
         Debug.LogWarning("Non change event recieved?");
         return;
     }
     currentHealth = (int)info.NewValue.n;
     if (currentHealth == 0)
     {
         //this unit is straight dead
         IsDead = true;
         Map.Current.RemoveMapObject(this);
         if (MatchManager.instance)
         {
             MatchManager.instance.RemoveJSONChangeAction("/board_objects/" + UUID + "/action_points", ActionPointsChanged);
             MatchManager.instance.RemoveJSONChangeAction("/board_objects/" + UUID + "/health", HealthChanged);
         }
         gameObject.SetActive(false);
     }
 }
コード例 #6
0
 private void ApplyRemovals(JSONObject diff, JSONObject master, string path)
 {
     if (diff.IsNull)
     {
         return;
     }
     if (diff.IsObject)
     {
         foreach (string key in diff.keys)
         {
             JSONObject cur = diff[key];
             if (cur.isContainer)
             {
                 ApplyRemovals(cur, master[key], path + "/" + key);
             }
             else if (cur.IsString && cur.str == "DELETED")
             {
                 JSONObject oldVal = master[key];
                 var        change = new JSONChangeInfo(JSONChangeInfo.ChangeType.DELETED, path + "/" + key, oldVal, null);
                 master.RemoveField(key);
                 FireJSONChangeEvent(change);
             }
             else
             {
                 Debug.LogError("Bad data encountered in JSON diff while applying removals");
             }
         }
     }
     else if (diff.IsArray)
     {
         Debug.LogError("Bad data encountered in JSON diff while applying removals; arrays are not allowed in diffs");
     }
     else
     {
         Debug.LogError("Bad data encountered in JSON diff while applying removals");
     }
 }