100 lines
2.6 KiB
C#
100 lines
2.6 KiB
C#
|
using UnityEngine;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using GCGame.Table;
|
|||
|
using System;
|
|||
|
|
|||
|
public class LevelCombatLevelPanel : UIControllerBase<LevelCombatLevelPanel>
|
|||
|
{
|
|||
|
|
|||
|
private void OnEnable()
|
|||
|
{
|
|||
|
InitLevelInfo();
|
|||
|
ShowLevel();
|
|||
|
}
|
|||
|
|
|||
|
#region
|
|||
|
|
|||
|
public UIContainerSelect _LevelContainer;
|
|||
|
public UIContainerBase _TipsContainer;
|
|||
|
|
|||
|
private List<Tab_LevelTip> _LevelTipTabs;
|
|||
|
|
|||
|
private void InitLevelInfo()
|
|||
|
{
|
|||
|
if (_LevelTipTabs != null)
|
|||
|
return;
|
|||
|
|
|||
|
_LevelTipTabs = new List<Tab_LevelTip>();
|
|||
|
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<Tab_LevelTip> { selectedTab }, OnLevelSelect);
|
|||
|
}
|
|||
|
|
|||
|
public void OnLevelSelect(object levelGO)
|
|||
|
{
|
|||
|
Tab_LevelTip levelTab = levelGO as Tab_LevelTip;
|
|||
|
ShowLevelTip(levelTab);
|
|||
|
}
|
|||
|
|
|||
|
private void ShowLevelTip(Tab_LevelTip levelTab)
|
|||
|
{
|
|||
|
List<Tab_LevelCombatTipItem> tipItemTabList = new List<Tab_LevelCombatTipItem>();
|
|||
|
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
|
|||
|
|
|||
|
}
|