using System;
|
using System.Collections.Generic;
|
using Cysharp.Threading.Tasks;
|
using UnityEngine;
|
using UnityEngine.UI;
|
public class MinggeEquipWin : UIBase
|
{
|
[SerializeField] MinggeEquipChangeCell oldEquipCell;
|
[SerializeField] MinggeEquipChangeCell newEquipCell;
|
[SerializeField] ScrollRect scrollRect;
|
[SerializeField] GroupButtonEx[] presetBtns;
|
List<Text> presetNameTexts = new List<Text>();
|
|
int selectPresetID = 0;
|
// int lastDropIndex = -1;
|
protected override void InitComponent()
|
{
|
presetNameTexts.Clear();
|
for (int i = 0; i < presetBtns.Length; i++)
|
{
|
int index = i + 1;
|
presetBtns[i].AddListener(() =>
|
{
|
selectPresetID = index;
|
Display();
|
});
|
presetNameTexts.Add(presetBtns[i].GetComponentInChildren<Text>());
|
}
|
}
|
|
protected override void OnPreOpen()
|
{
|
selectPresetID = MinggeManager.Instance.equipShowPresetID;
|
// lastDropIndex = MinggeManager.Instance.selectFloorEquip.gridIndex;
|
// PackManager.Instance.RefreshItemEvent += RefreshItemEvent;
|
|
Display();
|
|
}
|
|
protected override void OnPreClose()
|
{
|
// PackManager.Instance.RefreshItemEvent -= RefreshItemEvent;
|
MinggeManager.Instance.equipShowPresetID = 0;
|
MinggeManager.Instance.selectFloorEquip = null;
|
|
if (!UIManager.Instance.IsOpened<MinggeAutoSetWin>())
|
{
|
//将提示的冒泡和红点取消
|
MinggeManager.Instance.isPauseAuto = false;
|
}
|
MinggeManager.Instance.redpointAuto.state = RedPointState.None;
|
|
}
|
|
// void RefreshItemEvent(PackType packType, int index, int itemID)
|
// {
|
// if (packType == PackType.Mingge)
|
// {
|
// MinggeManager.Instance.selectFloorEquip = PackManager.Instance.GetItemByIndex(PackType.MinggeDrop, lastDropIndex);
|
// Display();
|
// }
|
// }
|
|
public void RefreshUI()
|
{
|
selectPresetID = MinggeManager.Instance.equipShowPresetID;
|
Display();
|
}
|
|
void Display()
|
{
|
var cnt = FuncPresetManager.Instance.GetUnlockCnt((int)FuncPresetType.Mingge);
|
if (cnt == 1)
|
{
|
cnt = 0;
|
}
|
if (cnt > 0)
|
{
|
scrollRect.SetActive(true);
|
for (int i = 0; i < presetBtns.Length; i++)
|
{
|
if (i < cnt)
|
{
|
presetBtns[i].SetActive(true);
|
presetNameTexts[i].text = FuncPresetManager.Instance.GetFuncPreset((int)FuncPresetType.Mingge, i + 1).PresetName;
|
}
|
else
|
{
|
presetBtns[i].SetActive(false);
|
}
|
}
|
presetBtns[selectPresetID - 1].SelectBtn();
|
//滚动到 selectPresetID 位置
|
scrollRect.horizontalNormalizedPosition = selectPresetID < 4 ? 0 : selectPresetID * 1f / cnt;
|
}
|
else
|
{
|
scrollRect.SetActive(false);
|
}
|
if (MinggeManager.Instance.selectFloorEquip == null || MinggeManager.Instance.selectFloorEquip.config == null)
|
{
|
DelayCloseWindow().Forget();
|
Debug.Log("掉落命格不存在");
|
return;
|
}
|
var packIndex = MinggeManager.Instance.GetPackIndex(selectPresetID, MinggeManager.Instance.selectFloorEquip.config.EquipPlace);
|
var oldEquip = PackManager.Instance.GetItemByIndex(PackType.Mingge, packIndex);
|
if (oldEquip == null)
|
{
|
oldEquipCell.SetActive(false);
|
newEquipCell.SetActive(true);
|
newEquipCell.Display(MinggeManager.Instance.selectFloorEquip, true, oldEquip, selectPresetID);
|
}
|
else
|
{
|
if (oldEquip.guid == MinggeManager.Instance.selectFloorEquip.guid)
|
{
|
Debug.LogError("Display: 新旧命格相同GUID 客户端主动删除背包物品索引=" + MinggeManager.Instance.selectFloorEquip.gridIndex);
|
// PackManager.Instance.GetSinglePack(PackType.MinggeDrop).RemoveItem(MinggeManager.Instance.selectFloorEquip.gridIndex);
|
CloseWindow();
|
return;
|
}
|
oldEquipCell.SetActive(true);
|
newEquipCell.SetActive(true);
|
oldEquipCell.Display(oldEquip, false, null, selectPresetID);
|
newEquipCell.Display(MinggeManager.Instance.selectFloorEquip, true, oldEquip, selectPresetID);
|
|
}
|
|
|
}
|
}
|