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