using System.Collections.Generic;
|
using Cysharp.Threading.Tasks;
|
using UnityEngine;
|
|
public class BoneBattleVictoryWin : UIBase
|
{
|
[SerializeField] TextEx txtFuncName;
|
[SerializeField] ScrollerController scroller;
|
|
string battleName = "BoneBattleField";
|
protected override void OnPreOpen()
|
{
|
scroller.OnRefreshCell += OnRefreshCell;
|
CreateScroller();
|
int funcId = BoneFieldManager.Instance.funcId;
|
txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
|
}
|
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
BattleSettlementManager.Instance.WinShowOver(battleName);
|
}
|
|
List<Item> showItems = new List<Item>();
|
void CreateScroller()
|
{
|
var jsonData = BattleSettlementManager.Instance.GetBattleSettlement(battleName);
|
if (jsonData == null)
|
{
|
DelayCloseWindow().Forget();
|
return;
|
}
|
showItems.Clear();
|
scroller.Refresh();
|
|
if (!jsonData.ContainsKey("itemInfo"))
|
{
|
return;
|
}
|
|
var resultStr = jsonData["itemInfo"];
|
for (int i = 0; i < resultStr.Count; i++)
|
{
|
showItems.Add(new Item((int)resultStr[i]["ItemID"], (long)resultStr[i]["Count"]));
|
}
|
|
showItems.Sort(SortItem);
|
for (int i = 0; i < showItems.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, i);
|
}
|
scroller.Restart();
|
}
|
|
|
|
int SortItem(Item itemA, Item itemB)
|
{
|
var itemConfigA = ItemConfig.Get(itemA.id);
|
var itemConfigB = ItemConfig.Get(itemB.id);
|
return itemConfigB.ItemColor - itemConfigA.ItemColor;
|
}
|
|
|
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as SettlementAwardCell;
|
var item = showItems[cell.index];
|
_cell?.Display(item.id, item.countEx);
|
}
|
|
}
|