using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class CeremonyOutOfPrintWin : Window { [SerializeField] Text firstNameText; [SerializeField] Text secondNameText; [SerializeField] Text thirdNameText; [SerializeField] Text remainTimeText; [SerializeField] List rankEffectlist = new List(); [SerializeField] List firstItemlist = new List(); [SerializeField] List secondItemlist = new List(); [SerializeField] List thirdItemlist = new List(); ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel(); } } protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; } protected override void OnAfterClose() { } private void Init() { ceremonyModel.SendGetRankInfo(PlayerRankData.RankType.Def_BT_FCCostGold); SetRankAward(firstItemlist,ceremonyModel.GetRankAwardByLv(1)); SetRankAward(secondItemlist, ceremonyModel.GetRankAwardByLv(2)); SetRankAward(thirdItemlist, ceremonyModel.GetRankAwardByLv(3)); RefreshRankInfo(); RefreshSecond(); } private void OnRefreshRankList(int type) { if (type != (int)PlayerRankData.RankType.Def_BT_FCCostGold) return; RefreshRankInfo(); } private void RefreshRankInfo() { List list = PlayerDatas.Instance.rank.GetRankList((int)PlayerRankData.RankType.Def_BT_FCCostGold); firstNameText.text = Language.Get("CeremoneyOutOfPrint"); secondNameText.text = Language.Get("CeremoneyOutOfPrint"); thirdNameText.text = Language.Get("CeremoneyOutOfPrint"); if (list != null) { if (list.Count > 0) { firstNameText.text = list[0].Name1; SetRankEffect(0,(int)list[0].ID); } if (list.Count > 1) { secondNameText.text = list[1].Name1; SetRankEffect(1, (int)list[1].ID); } if (list.Count > 2) { thirdNameText.text = list[2].Name1; SetRankEffect(2, (int)list[2].ID); } } } private void SetRankEffect(int rank,int playerId) { for(int i = 0; i < rankEffectlist.Count; i++) { if(rank == i && playerId == PlayerDatas.Instance.baseData.PlayerID) { if(!rankEffectlist[i].IsPlaying) { rankEffectlist[i].Play(); } } else { if (rankEffectlist[i].IsPlaying) { rankEffectlist[i].Stop(); } } } } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if(seconds > 0) { remainTimeText.text = StringUtility.Contact("", TimeUtility.SecondsToHMS(seconds), ""); } else { remainTimeText.text = UIHelper.GetTextColorByItemColor(TextColType.Red,Language.Get("XMZZ110")); } } private void SetRankAward(List baiscs,List list) { if (list == null) return; for (int i = 0; i < baiscs.Count; i++) { if (i < list.Count) { baiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = list[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true,(ulong)itemData.itemCount,itemData.isBind); baiscs[i].Init(cellModel); baiscs[i].cellBtn.RemoveAllListeners(); baiscs[i].cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount,-1,itemData.isBind); tipsModel.SetItemTipsModel(attrData); }); } else { baiscs[i].gameObject.SetActive(false); } } } } }