using UnityEngine; using System.Collections; using System.Collections.Generic; using GCGame.Table; using System; public class LevelCombatLevelPanel : UIControllerBase { private void OnEnable() { InitLevelInfo(); ShowLevel(); } #region public UIContainerSelect _LevelContainer; public UIContainerBase _TipsContainer; private List _LevelTipTabs; private void InitLevelInfo() { if (_LevelTipTabs != null) return; _LevelTipTabs = new List(); var tabList = TableManager.GetLevelTip().Values; foreach (var levelTab in tabList) { _LevelTipTabs.Add(levelTab); } _LevelTipTabs.Sort((tabA, tabB) => { if (tabA.Id > tabB.Id) return 1; else if (tabA.Id < tabB.Id) return -1; else return 0; }); _LevelContainer.InitSelectContent(_LevelTipTabs, null, OnLevelSelect); } private void ShowLevel() { int level = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level; Tab_LevelTip selectedTab = null; for (int i = 0; i < _LevelTipTabs.Count; ++i) { if (level >= _LevelTipTabs[i].LevelMin && level <= _LevelTipTabs[i].LevelMax) { selectedTab = _LevelTipTabs[i]; break; } } if (selectedTab == null) { if (level < _LevelTipTabs[0].LevelMin) { selectedTab = _LevelTipTabs[0]; } else if (level > _LevelTipTabs[_LevelTipTabs.Count - 1].LevelMax) { selectedTab = _LevelTipTabs[_LevelTipTabs.Count - 1]; } } _LevelContainer.InitSelectContent(_LevelTipTabs, new List { selectedTab }, OnLevelSelect); } public void OnLevelSelect(object levelGO) { Tab_LevelTip levelTab = levelGO as Tab_LevelTip; ShowLevelTip(levelTab); } private void ShowLevelTip(Tab_LevelTip levelTab) { List tipItemTabList = new List(); for (int i = 0; i < levelTab.getTipIDCount(); ++i) { int tabID = levelTab.GetTipIDbyIndex(i); var tipTab = TableManager.GetLevelCombatTipItemByID(tabID, 0); if (tipTab != null) { tipItemTabList.Add(tipTab); } } _TipsContainer.InitContentItem(tipItemTabList); } #endregion }