using System.Collections.Generic; using System.Linq; using UnityEngine; using UnityEngine.UI; //周战令 public class WeekBattlePassWin : UIBase { [SerializeField] Text totalActivityText; [SerializeField] Text timeText; [SerializeField] ScrollerController scroller; [SerializeField] Transform lockRect; [SerializeField] Button buyBtn; [SerializeField] Text buyText; BattlePassData battlePassData; protected override void InitComponent() { buyBtn.AddListener(() => { RechargeManager.Instance.CTG(BattlePassManager.Instance.GetCTGIDByType((int)BattlePassType.Week)); }); } protected override void OnPreOpen() { battlePassData = BattlePassManager.Instance.GetBattlePassData((int)BattlePassType.Week); if (battlePassData == null) return; scroller.OnRefreshCell += OnRefreshCell; GlobalTimeEvent.Instance.secondEvent += OnSecondEvent; BattlePassManager.Instance.BattlePassDataUpdateEvent += BattlePassDataUpdateEvent; CreateScroller(); Display(); } protected override void OnPreClose() { scroller.OnRefreshCell -= OnRefreshCell; GlobalTimeEvent.Instance.secondEvent -= OnSecondEvent; BattlePassManager.Instance.BattlePassDataUpdateEvent -= BattlePassDataUpdateEvent; } void OnSecondEvent() { //按开服天 7天一个循环 var day = 7 - (TimeUtility.OpenDay % 7) - 1; if (day == 0) { timeText.text = Language.Get("GoldRush29") + TimeUtility.SecondsToShortDHMS((int)(TimeUtility.GetTodayEndTime() - TimeUtility.ServerNow).TotalSeconds); } else { timeText.text = Language.Get("GoldRush29") + day + Language.Get("L1074"); } } void BattlePassDataUpdateEvent(int type) { if (type == (int)BattlePassType.Week) { Display(); } } void Display() { totalActivityText.text = battlePassData.value1.ToString(); lockRect.SetActive(battlePassData.isActivite == 0); scroller.m_Scorller.RefreshActiveCellViews(); if (battlePassData.isActivite == 0) { var ctgID = BattlePassManager.Instance.GetCTGIDByType((int)BattlePassType.Week); RechargeManager.Instance.TryGetOrderInfo(ctgID, out var orderInfoConfig); buyText.text = Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNumOnSale); buyBtn.SetInteractable(true); } else { buyText.text = Language.Get("L1133"); buyBtn.SetInteractable(false); } } void CreateScroller() { scroller.Refresh(); var values = ZhanlingConfig.GetTypeToIDDict((int)BattlePassType.Week).Values.ToList(); values.Sort(); for (int i = 0; i < values.Count; i++) { scroller.AddCell(ScrollerDataType.Header, values[i]); } scroller.Restart(); scroller.JumpIndex(BattlePassManager.Instance.JumpIndex(battlePassData, (int)BattlePassType.Week, (int)battlePassData.value1)); } void OnRefreshCell(ScrollerDataType type, CellView cell) { var _cell = cell as WeekBattlePassCell; _cell.Display(cell.index, battlePassData); } }