using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
public class LianQiRankAwardActWin : Window
|
{
|
[SerializeField] ScrollerController personalRankScroller; // 个人排行榜含跨服
|
[SerializeField] Text myRankTxt;
|
[SerializeField] TextEx myRankScore;
|
[SerializeField] Text awardExState; //额外奖励解锁的状态
|
RankModel rankModel { get { return ModelCenter.Instance.GetModel<RankModel>(); } }
|
LianQiActModel model { get { return ModelCenter.Instance.GetModel<LianQiActModel>(); } }
|
|
protected override void BindController()
|
{
|
}
|
|
protected override void AddListeners()
|
{
|
}
|
|
protected override void OnPreOpen()
|
{
|
model.SelectAwardRank = 1;
|
personalRankScroller.OnRefreshCell += OnRefreshCell;
|
rankModel.onMyRankRefresh += RankModel_onMyRankRefresh;
|
}
|
|
protected override void OnAfterOpen()
|
{
|
OnCreateRankScroller();
|
}
|
|
protected override void OnPreClose()
|
{
|
personalRankScroller.OnRefreshCell -= OnRefreshCell;
|
rankModel.onMyRankRefresh -= RankModel_onMyRankRefresh;
|
}
|
|
protected override void OnAfterClose()
|
{
|
}
|
|
private void RankModel_onMyRankRefresh(int type)
|
{
|
if (type == LianQiActModel.crossRankType)
|
{
|
ShowMyRank();
|
}
|
}
|
|
private void ShowMyRank(bool isQuery = false)
|
{
|
myRankScore.text = Language.Get("LianQi03", model.actScore);
|
|
var myRank = rankModel.GetMyRank(LianQiActModel.crossRankType);
|
if (myRank == null)
|
{
|
if (isQuery)
|
{
|
if (model.SelectAwardRank == 0)
|
{
|
rankModel.QueryRankByPage(LianQiActModel.crossRankType, watchID: (int)PlayerDatas.Instance.baseData.PlayerID, forceQuery: true);
|
}
|
else
|
{
|
rankModel.QueryCrossRank(LianQiActModel.crossRankType, model.operationCrossAct.m_GroupValue1, watchID: (int)PlayerDatas.Instance.baseData.PlayerID, forceQuery: true);
|
}
|
}
|
myRankTxt.text = Language.Get("L2013", Language.Get("CrossBattleField45"), Language.Get("CrossServer123"));
|
awardExState.text = string.Empty;
|
}
|
else
|
{
|
myRankTxt.text = Language.Get("L2013", Language.Get("CrossBattleField45"), (myRank.index + 1).ToString());
|
|
//显示额外奖励解锁状态
|
int needScoreEx = 0;
|
Dictionary<int, ActBillboardAwards> rankInfo = model.operationCrossAct.rankInfo;
|
var dataIndex = model.GetRankDataIndex(myRank.index, rankInfo);
|
if (rankInfo.ContainsKey(dataIndex))
|
needScoreEx = rankInfo[dataIndex].needScoreEx;
|
|
if (needScoreEx == 0)
|
{
|
awardExState.text = string.Empty;
|
}
|
else if (model.actScore >= needScoreEx)
|
{
|
awardExState.text = Language.Get("RankInfo1", dataIndex);
|
}
|
else
|
{
|
awardExState.text = Language.Get("RankInfo3", needScoreEx - model.actScore, dataIndex);
|
}
|
}
|
}
|
|
private void OnCreateRankScroller()
|
{
|
personalRankScroller.Refresh();
|
|
Dictionary<int, ActBillboardAwards> rankAwardsInfo = new Dictionary<int, ActBillboardAwards>();
|
|
rankAwardsInfo = model.operationCrossAct.rankInfo;
|
|
var keys = rankAwardsInfo.Keys.ToList();
|
for (int i = 0; i < keys.Count; i++)
|
{
|
personalRankScroller.AddCell(ScrollerDataType.Header, i);
|
}
|
personalRankScroller.Restart();
|
|
ShowMyRank(true);
|
}
|
|
private void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell.GetComponent<LianQiRankAwardActCell>();
|
_cell?.Display(cell.index);
|
}
|
}
|
}
|