Exemplo n.º 1
0
    public static StoryEditorPanel_LevelButton BaseInitialize(Level level, Transform parent, UnityAction <Level> onSetButtonClick, UnityAction onEditButtonClick, UnityAction onDeleteButtonClick)
    {
        StoryEditorPanel_LevelButton btn = null;

        switch (level.LevelType)
        {
        case LevelTypes.Enemy:
        {
            btn = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.StoryEditorPanel_EnemyButton].AllocateGameObject <StoryEditorPanel_EnemyButton>(parent);
            break;
        }

        case LevelTypes.Shop:
        {
            btn = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.StoryEditorPanel_ShopButton].AllocateGameObject <StoryEditorPanel_ShopButton>(parent);
            break;
        }
        }

        btn.Cur_Level = level;
        btn.RefreshLevelName();
        btn.OnSetButtonClickAction = delegate { onSetButtonClick(btn.Cur_Level); };
        btn.EditButton.onClick.AddListener(onEditButtonClick);
        btn.DeleteButton.onClick.RemoveAllListeners();
        btn.DeleteButton.onClick.AddListener(onDeleteButtonClick);

        ClientUtils.ChangeImagePicture(btn.PicImage, btn.Cur_Level.LevelPicID);

        foreach (StoryEditorPanel_LevelButtonSliderBar slider in btn.Sliders)
        {
            slider.PoolRecycle();
        }

        btn.Sliders.Clear();

        btn.ChildrenInitialize();
        return(btn);
    }
Exemplo n.º 2
0
    public void InitializeLevelList()
    {
        SelectTab(LevelTypes.Enemy);
        foreach (KeyValuePair <LevelTypes, List <StoryEditorPanel_LevelButton> > kv in MyLevelButtons)
        {
            foreach (StoryEditorPanel_LevelButton btn in kv.Value)
            {
                btn.PoolRecycle();
            }

            kv.Value.Clear();
        }

        foreach (KeyValuePair <LevelTypes, SortedDictionary <string, Level> > kv in AllLevels.LevelDict)
        {
            SortedDictionary <int, List <Level> > sortedListByLevelDifficulty = new SortedDictionary <int, List <Level> >();

            if (kv.Key == LevelTypes.Enemy)
            {
                foreach (KeyValuePair <string, Level> _kv in kv.Value)
                {
                    if (!sortedListByLevelDifficulty.ContainsKey(_kv.Value.DifficultyLevel))
                    {
                        sortedListByLevelDifficulty.Add(_kv.Value.DifficultyLevel, new List <Level>());
                    }

                    sortedListByLevelDifficulty[_kv.Value.DifficultyLevel].Add(_kv.Value);
                }

                foreach (KeyValuePair <int, List <Level> > KV in sortedListByLevelDifficulty)
                {
                    foreach (Level lv in KV.Value)
                    {
                        if (lv.LevelNames["en"].Equals("New" + kv.Key))
                        {
                            continue;
                        }
                        StoryEditorPanel_LevelButton btn = StoryEditorPanel_LevelButton.BaseInitialize(
                            level : lv.Clone(),
                            parent : LevelContainerDict[kv.Key],
                            onSetButtonClick : delegate(Level level) { ChapterMap.SetCurrentNodeLevel(level); },
                            onEditButtonClick: delegate
                        {
                            UIManager.Instance.CloseUIForm <StoryEditorPanel>();
                            UIManager.Instance.ShowUIForms <LevelEditorPanel>().SetLevel(lv.Clone());
                        },
                            onDeleteButtonClick: delegate
                        {
                            ConfirmPanel cp = UIManager.Instance.ShowUIForms <ConfirmPanel>();
                            cp.Initialize(LanguageManager.Instance.GetText("StoryEditorPanel_DeleteLevelFormLibrary0"),
                                          LanguageManager.Instance.GetText("Common_Yes"),
                                          LanguageManager.Instance.GetText("Common_No"),
                                          delegate
                            {
                                cp.CloseUIForm();
                                AllLevels.DeleteLevel(kv.Key, lv.LevelNames["en"]);
                                InitializeLevelList();
                                SelectTab(kv.Key);
                                SetStory(AllStories.GetStory("DefaultStory", CloneVariantUtils.OperationType.Clone));
                            },
                                          delegate { cp.CloseUIForm(); });
                        }
                            );
                        MyLevelButtons[kv.Key].Add(btn);
                    }
                }
            }
            else
            {
                foreach (KeyValuePair <string, Level> _kv in kv.Value)
                {
                    if (_kv.Key.Equals("New" + kv.Key))
                    {
                        continue;
                    }
                    StoryEditorPanel_LevelButton btn = StoryEditorPanel_LevelButton.BaseInitialize(
                        level : _kv.Value.Clone(),
                        parent : LevelContainerDict[kv.Key],
                        onSetButtonClick : delegate(Level level) { ChapterMap.SetCurrentNodeLevel(level); },
                        onEditButtonClick: delegate
                    {
                        UIManager.Instance.CloseUIForm <StoryEditorPanel>();
                        UIManager.Instance.ShowUIForms <LevelEditorPanel>().SetLevel(_kv.Value.Clone());
                    },
                        onDeleteButtonClick: delegate
                    {
                        ConfirmPanel cp = UIManager.Instance.ShowUIForms <ConfirmPanel>();
                        cp.Initialize(LanguageManager.Instance.GetText("StoryEditorPanel_DeleteLevelFormLibrary0"),
                                      LanguageManager.Instance.GetText("Common_Yes"),
                                      LanguageManager.Instance.GetText("Common_No"),
                                      delegate
                        {
                            cp.CloseUIForm();
                            AllLevels.DeleteLevel(kv.Key, _kv.Value.LevelNames["en"]);
                            InitializeLevelList();
                            SelectTab(kv.Key);
                            SetStory(AllStories.GetStory("DefaultStory", CloneVariantUtils.OperationType.Clone));
                        },
                                      delegate { cp.CloseUIForm(); });
                    }
                        );
                    MyLevelButtons[kv.Key].Add(btn);
                }
            }
        }
    }