using System.Collections.Generic;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
public abstract class OSRankAwardBaseWin : UIBase
|
{
|
[SerializeField] protected ScrollerController scrollerController;
|
[SerializeField] protected Text myRankText;
|
[SerializeField] protected Text myRankValueText;
|
|
protected override void OnPreOpen()
|
{
|
scrollerController.OnRefreshCell += OnRefreshCell;
|
CreateScroller();
|
DisplayMyRank(GetRankType());
|
}
|
|
protected override void OnPreClose()
|
{
|
scrollerController.OnRefreshCell -= OnRefreshCell;
|
}
|
|
// 由子类实现:当前界面的排名类型 (例如 4 是招募榜, 8 是红颜榜)
|
protected abstract int GetRankType();
|
// 由子类实现:当前界面的奖励 Keys 集合
|
protected abstract ICollection<int> GetAwardKeys();
|
// 由子类实现:绑定对应的 Cell
|
protected abstract void OnRefreshCell(ScrollerDataType type, CellView cell);
|
|
protected void CreateScroller()
|
{
|
var keys = GetAwardKeys();
|
scrollerController.Refresh();
|
int count = keys == null ? 0 : keys.Count;
|
for (int i = 0; i < count; i++)
|
{
|
scrollerController.AddCell(ScrollerDataType.Header, i);
|
}
|
scrollerController.Restart();
|
}
|
|
public void DisplayMyRank(int rankType)
|
{
|
RankData rankData = RankModel.Instance.GetMyRank(rankType);
|
if (rankData == null)
|
{
|
myRankText.text = Language.Get("L1045");
|
myRankValueText.text = "";
|
return;
|
}
|
|
int rank = rankData.rank;
|
myRankValueText.text = RankModel.Instance.GetCmpValueStr(rankType, rankData.cmpValue);
|
myRankText.text = Language.Get("L1126") + Language.Get("L1096") + rank.ToString();
|
}
|
}
|