public void Update(JSONNode data) { id = data.GetString(ID); name = data.GetString(NAME); levelNum = data.GetInt(LEVEL_NUM); maxMoves = data.GetInt(MAX_MOVES, (int)LevelEditorInfo.Instance.DefaultValues[MAX_MOVES]); superMergingEnabled = data.GetBoolean(SUPER_MERGING_ENABLED, (bool)LevelEditorInfo.Instance.DefaultValues[SUPER_MERGING_ENABLED]); width = data.GetInt(WIDTH, LevelEditorInfo.Instance.BoardWidth); height = data.GetInt(HEIGHT, LevelEditorInfo.Instance.BoardHeight); ParseStars(data.GetCollection(STARS)); bossName = data.GetString(BOSS_NAME, (string)LevelEditorInfo.Instance.DefaultValues[BOSS_NAME]); string setName = data.GetString(SPAWNING_SET_NAME); spawningSetName = (string.IsNullOrEmpty(setName) || setName == "0") ? spawningSetName : setName; adaptiveColorSpawningOffset = data.GetInt(ADAPTIVE_COLOR_SPAWNING_OFFSET, 0); acsMin = data.GetInt(ACS_MIN, (int)LevelEditorInfo.Instance.DefaultValues[ACS_MIN]); acsMax = data.GetInt(ACS_MAX, (int)LevelEditorInfo.Instance.DefaultValues[ACS_MAX]); ParseLayers(data.GetDictionary(LAYERS)); ParseConditions(data.GetDictionary(CONDITIONS)); ParseCompanion(data.GetDictionary(COMPANION)); ParseColorSpawnPercentages(data); ParseItemSpawnPercentages(data); ParsePreventCreation(data); ParseEnsureItems(data); ParseColorSpawningOrder(data); }
void ParseItemSpawnPercentages(JSONNode data) { if (data.HasKey(ITEM_SPAWN_PERCENTAGES)) { itemSpawnPercentages.Clear(); var dict = data.GetDictionary(ITEM_SPAWN_PERCENTAGES); foreach (var type in ITEM_TYPES) { string key = type.ToString(); itemSpawnPercentages[type] = dict.ContainsKey(key) ? (int)dict[key] : 0; } } if (data.HasKey(ITEM_SPAWN_MAX)) { itemSpawnMax.Clear(); var dic = data.GetDictionary(ITEM_SPAWN_MAX); foreach (var type in ITEM_TYPES) { string key = type.ToString(); itemSpawnMax[type] = dic.ContainsKey(key) ? (int)dic[key] : 100; } } if (data.HasKey(ITEM_SPAWN_MIN)) { itemSpawnMin.Clear(); var dic = data.GetDictionary(ITEM_SPAWN_MIN); foreach (var type in ITEM_TYPES) { string key = type.ToString(); itemSpawnMin[type] = dic.ContainsKey(key) ? (int)dic[key] : 0; } } if (data.HasKey(ITEM_TOTAL_SPAWN_MIN)) { itemTotalSpawnMin.Clear(); var dic = data.GetDictionary(ITEM_TOTAL_SPAWN_MIN); foreach (var type in TOTAL_ITEM_TYPES) { string key = type.ToString(); itemTotalSpawnMin[type] = dic.ContainsKey(key) ? (int)dic[key] : 0; } } if (data.HasKey(ITEM_TOTAL_SPAWN_MAX)) { itemTotalSpawnMax.Clear(); var dic = data.GetDictionary(ITEM_TOTAL_SPAWN_MAX); foreach (var type in TOTAL_ITEM_TYPES) { string key = type.ToString(); itemTotalSpawnMax[type] = dic.ContainsKey(key) ? (int)dic[key] : 0; } } }
void ParseColorSpawnPercentages(JSONNode data) { var dict = data.GetDictionary(COLOR_SPAWN_PERCENTAGES); colorSpawnPercentages.Clear(); if (dict.Count > 0) { try { foreach (var key in dict.Keys) { int amount = (int)dict[key]; var colorId = LevelEditorUtils.ParseEnum <ColorId>(key.UppercaseFirst()); colorSpawnPercentages[colorId] = amount; } } catch (Exception ex) { colorSpawnPercentages.Clear(); Debug.Log("LEVEL : colorSpawnPercentages = " + JSON.Serialize(dict)); Debug.LogError("Failed to parse colorSpawnPercentages" + ex.Message); } } else { foreach (var color in ColorUtils.allColors) { colorSpawnPercentages[color] = COLOR_CHANCE; } } }
void ParseEnsureItems(JSONNode data) { ensureItems.Clear(); if (data.HasKey(ENSURE_ITEMS)) { var dict = data.GetDictionary(ENSURE_ITEMS); if (dict != null && dict.Count > 0) { try { foreach (var key in dict.Keys) { int amount = (int)dict[key]; string itemType = key; ensureItems[itemType] = amount; } } catch (Exception ex) { ensureItems.Clear(); Debug.Log("LEVEL : ensureItems = " + JSON.Serialize(dict)); Debug.LogError("LEVEL : FAILED TO PARSE ensureItems" + ex.Message); } } } }
public void Update(JSONNode data) { Name = data.GetString("name"); LayerId = data.GetString("layer_id"); SpriteId = data.GetString("sprite_id"); SubLayerChars = new Dictionary <string, string>(); var dic = data.GetDictionary("sublayers"); foreach (var item in dic) { SubLayerChars.Add(item.Key, item.Value.AsString()); } }
public void Update(JSONNode data) { var content = data.GetDictionary(CONTENT); foreach (var key in content.Keys) { JSONNode levelNode = content[key]; LevelData levelData = new LevelData(); levelData.Update(levelNode); //有相同levelNum的就不加了 if (_list.Find(x => x.levelNum == levelData.levelNum) != null) { continue; } _list.Add(levelData); } SortLevelList(); }