Files
JJBB/Assets/Project/Script/GUI/MeridiaSoul/BossBookSuit.cs
2024-08-23 15:49:34 +08:00

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