using System.Linq;
|
using Cysharp.Threading.Tasks;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class FuncPresetWin : UIBase
|
{
|
[SerializeField] Text tileText;
|
[SerializeField] Button globalPresetBtn;
|
[SerializeField] Text globalPresetNameText;
|
[SerializeField] Transform globalPresetObj;
|
[SerializeField] FuncPresetChooseMoreCell[] morecells; //全局
|
[SerializeField] Transform heroCases;
|
FuncPresetChooseCells heroPresetCells;
|
[SerializeField] HeroSmallHeadCell[] heroHeads;
|
|
//命格
|
[SerializeField] Transform minggeObj;
|
[SerializeField] Transform minggeCases;
|
FuncPresetChooseCells minggePresetCells;
|
[SerializeField] MinggeItemCell[] minggeItems;
|
[SerializeField] Text[] suiteDescs;
|
|
|
|
int battleType;
|
protected override void InitComponent()
|
{
|
globalPresetBtn.AddListener(() =>
|
{
|
if (FuncPresetManager.Instance.GetShowFuncPresetCount((int)FuncPresetType.Global) == 0)
|
{
|
return;
|
}
|
globalPresetObj.SetActive(true);
|
});
|
var presetObj = UIUtility.CreateWidget("FuncPresetChooseCells", "FuncPresetChooseCells");
|
presetObj.transform.SetParentEx(heroCases, Vector3.zero, Quaternion.identity, Vector3.one);
|
heroPresetCells = presetObj.GetComponent<FuncPresetChooseCells>();
|
|
var presetObj1 = UIUtility.CreateWidget("FuncPresetChooseCells", "FuncPresetChooseCells");
|
presetObj1.transform.SetParentEx(minggeCases, Vector3.zero, Quaternion.identity, Vector3.one);
|
minggePresetCells = presetObj1.GetComponent<FuncPresetChooseCells>();
|
}
|
|
protected override void OnPreOpen()
|
{
|
FuncPresetManager.Instance.OnFuncPresetUseDataEvent += OnFuncPresetUseDataEvent;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
FuncPresetManager.Instance.OnFuncPresetUseDataEvent -= OnFuncPresetUseDataEvent;
|
}
|
|
void OnFuncPresetUseDataEvent(int type)
|
{
|
Display();
|
UIUtility.ForceRefreshLayout(layout).Forget();
|
}
|
|
void Display()
|
{
|
battleType = functionOrder;
|
|
tileText.text = battleType == (int)BattlePreSetType.Story ? Language.Get("FuncPreset7") : Language.Get("FuncPreset13");
|
var globalePresetID = FuncPresetManager.Instance.GetGlobalPresetID(battleType);
|
var globalePreset = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Global, globalePresetID);
|
globalPresetNameText.text = globalePreset.PresetName;
|
|
var showCnt = FuncPresetManager.Instance.GetShowFuncPresetCount((int)FuncPresetType.Global);
|
|
for (int i = 0; i < morecells.Length; i++)
|
{
|
if (i < showCnt)
|
{
|
morecells[i].SetActive(true);
|
morecells[i].Display(battleType, (int)FuncPresetType.Global, i + 1);
|
}
|
else
|
{
|
morecells[i].SetActive(false);
|
}
|
}
|
|
heroPresetCells.unFoldID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, (int)FuncPresetType.Team);
|
heroPresetCells.Display(battleType, (int)FuncPresetType.Team, true);
|
var teamID = TeamManager.Instance.GetTeamID((BattlePreSetType)battleType);
|
var team = TeamManager.Instance.GetTeam(teamID);
|
int heroIndex = 0;
|
foreach (var teamHero in team.serverHeroes)
|
{
|
if (teamHero == null)
|
{
|
continue;
|
}
|
HeroInfo heroInfo = HeroManager.Instance.GetHero(teamHero.guid);
|
if (heroInfo == null)
|
{
|
continue;
|
}
|
heroHeads[heroIndex].SetActive(true);
|
heroHeads[heroIndex].Display(heroInfo);
|
heroIndex++;
|
}
|
for (int i = heroIndex; i < heroHeads.Length; i++)
|
{
|
heroHeads[i].SetActive(false);
|
}
|
|
if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Mingge))
|
{
|
minggeObj.SetActive(true);
|
minggePresetCells.unFoldID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, (int)FuncPresetType.Mingge);
|
minggePresetCells.Display(battleType, (int)FuncPresetType.Mingge, true);
|
|
|
var presetID = FuncPresetManager.Instance.GetFuncPresetIDByBattleType(battleType, (int)FuncPresetType.Mingge);
|
for (int i = 0; i < minggeItems.Length; i++)
|
{
|
var packIndex = MinggeManager.Instance.GetPackIndex(presetID, i + 1);//对应卦玉背包索引
|
var item = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
|
if (item == null)
|
{
|
minggeItems[i].SetActive(false);
|
continue;
|
}
|
minggeItems[i].SetActive(true);
|
minggeItems[i].Display(item.guid);
|
}
|
|
var dict = MinggeManager.Instance.GetMinggeSkillCountDictByPresetID(presetID);
|
var keys = dict.Keys.ToList();
|
keys.Sort();
|
for (int i = 0; i < suiteDescs.Length; i++)
|
{
|
if (i < keys.Count)
|
{
|
var skillID = keys[i];
|
suiteDescs[i].SetActive(true);
|
suiteDescs[i].text = Language.Get("L1039", Language.Get($"MinggeSkillType_{skillID}")) +
|
SkillConfig.Get(skillID + dict[skillID] - 1).Description + " " + Language.Get("HeroFates11", dict[skillID], MinggeManager.Instance.maxSuiteSkillCount);
|
|
}
|
else
|
{
|
suiteDescs[i].SetActive(false);
|
}
|
}
|
}
|
else
|
{
|
minggeObj.SetActive(false);
|
}
|
}
|
|
|
}
|