Example #1
0
        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);
        }
Example #2
0
        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;
                }
            }
        }
Example #3
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;
                }
            }
        }
Example #4
0
        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);
                    }
                }
            }
        }
Example #5
0
        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());
            }
        }
Example #6
0
        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();
        }