using UnityEngine; using UnityEngine.UI; using System.Collections; using System.Collections.Generic; using GCGame.Table; using System; using Module.Log; public class BossBookSuit : UIControllerBase { #region public void OnEnable() { SetInstance(this); InitSuit(); } public void OnDisable() { SetInstance(null); } #endregion public UISubScollMenu _QualityMenu; public UIContainerBase _SuitContainer; private Dictionary> _BossSuitDict = new Dictionary>(); public Dictionary> BossSuitDict { get { return _BossSuitDict; } } private string _SelectedMenu; public void InitSuit() { var suitTables = TableManager.GetBossHandBookCombine(); foreach (var suitTab in suitTables) { if (!_BossSuitDict.ContainsKey(suitTab.Value.Quality)) { _BossSuitDict.Add(suitTab.Value.Quality, new List()); } _BossSuitDict[suitTab.Value.Quality].Add(suitTab.Value); } InitSubMenu(); } private void InitSubMenu() { foreach (var bossQuality in _BossSuitDict.Keys) { _QualityMenu.PushMenu(bossQuality); } _QualityMenu.ShowDefaultFirst(); } public void BtnMenu(object menuObj) { string selectQuality = menuObj as string; if (string.IsNullOrEmpty(selectQuality)) return; _SelectedMenu = selectQuality; Refresh(); } public void Refresh() { if (_BossSuitDict.ContainsKey(_SelectedMenu)) { List _ActedList = new List(); List _CanActList = new List(); List _CantActList = new List(); foreach (var bossInfo in _BossSuitDict[_SelectedMenu]) { var bossInfoState = GetBossInfoState(bossInfo.Id); if (bossInfoState == 2) { _ActedList.Add(bossInfo); } else if (bossInfoState == 1) { _CanActList.Add(bossInfo); } else { _CantActList.Add(bossInfo); } } List bossInfoList = new List(); bossInfoList.AddRange(_CanActList); bossInfoList.AddRange(_CantActList); bossInfoList.AddRange(_ActedList); _SuitContainer.InitContentItem(bossInfoList); } else { _SuitContainer.InitContentItem(null); } _QualityMenu.Refresh(); } public void OnBtnClose() { UIManager.CloseUI(UIInfo.BossBookSuit); } public int GetBossInfoState(int bossCombineID) { if (BossBookPanel.ActedSuidIDs.Contains(bossCombineID)) { return 2; } else { List bossTabs = new List(); Tab_BossHandBookCombine bossCombineTab = TableManager.GetBossHandBookCombineByID(bossCombineID); for (int i = 0; i < bossCombineTab.BossId.Length; ++i) { if (bossCombineTab.BossId[i] > 0) { var bossTab = BossBookPanel.GetBossBookTab(bossCombineTab.BossId[i], bossCombineTab.Level[i]); bossTabs.Add(bossTab); } } var bossCanAct = true; foreach (var bossTab in bossTabs) { if (!BossBookPanel.IsBoosLevel(bossTab.BossId, bossTab.Level)) { bossCanAct = false; break; } } if (bossCanAct) { return 1; } else { return 0; } } } }