using System.Collections.Generic;
|
using System.Linq;
|
using Cysharp.Threading.Tasks;
|
using LitJson;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public class QYAchievementWin : UIBase
|
{
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Button closeBtn;
|
|
protected override void InitComponent()
|
{
|
|
closeBtn.AddListener(() =>
|
{
|
CloseWindow();
|
});
|
|
|
}
|
|
protected override void OnPreOpen()
|
{
|
scroller.OnRefreshCell += OnRefreshCell;
|
QunyingManager.Instance.OnUpdateQunyingInfoEvent += OnUpdateQunyingInfo;
|
|
scroller.Refresh();
|
var keys = QunyingManager.Instance.achievementAwards.Keys.ToList();
|
keys.Sort();
|
int jumpIndex = 0;
|
for (int i = 0; i < keys.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, keys[i]);
|
if (QunyingManager.Instance.GetAchievementState(keys[i]) == 1)
|
{
|
jumpIndex = i;
|
}
|
}
|
scroller.Restart();
|
scroller.JumpIndex(jumpIndex - 5);
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
QunyingManager.Instance.OnUpdateQunyingInfoEvent -= OnUpdateQunyingInfo;
|
}
|
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cellView)
|
{
|
var cell = cellView as QYAchievementCell;
|
cell.Display(cell.index);
|
}
|
|
void OnUpdateQunyingInfo()
|
{
|
scroller.m_Scorller.RefreshActiveCellViews();
|
}
|
}
|