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); }
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); } } } }