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(BattlePassManager.WeekBattlePassType));
|
});
|
}
|
protected override void OnPreOpen()
|
{
|
battlePassData = BattlePassManager.Instance.GetBattlePassData(BattlePassManager.WeekBattlePassType);
|
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 == BattlePassManager.WeekBattlePassType)
|
{
|
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(BattlePassManager.WeekBattlePassType);
|
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(BattlePassManager.WeekBattlePassType).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, BattlePassManager.WeekBattlePassType, (int)battlePassData.value1));
|
}
|
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as WeekBattlePassCell;
|
_cell.Display(cell.index, battlePassData);
|
}
|
}
|
|
|
|
|
|