168 lines
4.2 KiB
C#
168 lines
4.2 KiB
C#
|
using UnityEngine;
|
|||
|
using UnityEngine.UI;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using GCGame.Table;
|
|||
|
using System;
|
|||
|
using Module.Log;
|
|||
|
|
|||
|
public class BossBookSuit : UIControllerBase<BossBookSuit>
|
|||
|
{
|
|||
|
#region
|
|||
|
|
|||
|
public void OnEnable()
|
|||
|
{
|
|||
|
SetInstance(this);
|
|||
|
InitSuit();
|
|||
|
}
|
|||
|
|
|||
|
public void OnDisable()
|
|||
|
{
|
|||
|
SetInstance(null);
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
public UISubScollMenu _QualityMenu;
|
|||
|
public UIContainerBase _SuitContainer;
|
|||
|
|
|||
|
private Dictionary<string, List<Tab_BossHandBookCombine>> _BossSuitDict = new Dictionary<string, List<Tab_BossHandBookCombine>>();
|
|||
|
public Dictionary<string, List<Tab_BossHandBookCombine>> 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<Tab_BossHandBookCombine>());
|
|||
|
}
|
|||
|
_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<Tab_BossHandBookCombine> _ActedList = new List<Tab_BossHandBookCombine>();
|
|||
|
List<Tab_BossHandBookCombine> _CanActList = new List<Tab_BossHandBookCombine>();
|
|||
|
List<Tab_BossHandBookCombine> _CantActList = new List<Tab_BossHandBookCombine>();
|
|||
|
|
|||
|
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<Tab_BossHandBookCombine> bossInfoList = new List<Tab_BossHandBookCombine>();
|
|||
|
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<Tab_BossHandBook> bossTabs = new List<Tab_BossHandBook>();
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|