//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 01, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class TreasurePavilionRankAwardActWin : Window { //[SerializeField] Toggle personalRank; [SerializeField] Toggle crossPersonalRank; [SerializeField] ScrollerController personalRankScroller; // 个人排行榜含跨服 [SerializeField] Text myRankTxt; [SerializeField] Text awardExState; //额外奖励解锁的状态 RankModel rankModel { get { return ModelCenter.Instance.GetModel(); } } TreasurePavilionRankActModel model { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { //personalRank.SetListener(SelectPersonalRank); //crossPersonalRank.SetListener(SelectCrossPersonalRank); } protected override void OnPreOpen() { model.SelectAwardRank = 1; //personalRank.isOn = true; crossPersonalRank.isOn = true; 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 == TreasurePavilionRankActModel.rankType || type == TreasurePavilionRankActModel.crossRankType) { ShowMyRank(); } } void ShowMyRank(bool isQuery = false) { var myRank = rankModel.GetMyRank(TreasurePavilionRankActModel.rankList[model.SelectAwardRank]); if (myRank == null) { if (isQuery) { //if (model.SelectAwardRank == 0) //{ // rankModel.QueryRankByPage(TreasurePavilionRankActModel.rankType, watchID: (int)PlayerDatas.Instance.baseData.PlayerID, forceQuery: true); //} //else { rankModel.QueryCrossRank(TreasurePavilionRankActModel.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 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); } } } void OnCreateRankScroller() { personalRankScroller.Refresh(); Dictionary rankAwardsInfo = new Dictionary(); //if (model.SelectAwardRank == 0) //{ // rankAwardsInfo = model.operationAct.rankInfo; //} //else if (model.SelectAwardRank == 1) { 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(); _cell?.Display(cell.index); } //void SelectPersonalRank(bool value) //{ // if (value) // { // model.SelectAwardRank = 0; // OnCreateRankScroller(); // } //} //void SelectCrossPersonalRank(bool value) //{ // if (value) // { // model.SelectAwardRank = 1; // OnCreateRankScroller(); // } //} } }