using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
//通用战令
|
public class BattlePassCommonWin : UIBase
|
{
|
[SerializeField] Text titleText;
|
[SerializeField] Text welfarePerText; //福利百分比
|
[SerializeField] Text itemNameText; //额外奖励
|
[SerializeField] Text totalActivityText;
|
[SerializeField] Text tabNameText;
|
[SerializeField] Transform lockRect;
|
[SerializeField] ScrollerController scroller;
|
[SerializeField] Transform rechargeRect;
|
[SerializeField] ItemCell itemCell;
|
[SerializeField] Button buyBtn;
|
[SerializeField] Text buyText;
|
|
BattlePassData battlePassData;
|
|
int battlePasstype;
|
|
protected override void InitComponent()
|
{
|
buyBtn.AddListener(() =>
|
{
|
RechargeManager.Instance.CTG(BattlePassManager.Instance.GetCTGIDByType(battlePasstype));
|
});
|
}
|
protected override void OnPreOpen()
|
{
|
battlePasstype = functionOrder;
|
battlePassData = BattlePassManager.Instance.GetBattlePassData(battlePasstype);
|
if (battlePassData == null) return;
|
scroller.OnRefreshCell += OnRefreshCell;
|
BattlePassManager.Instance.BattlePassDataUpdateEvent += BattlePassDataUpdateEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent += OnPlayerDataRefresh;
|
BlessLVManager.Instance.OnBlessLVUpdateEvent += OnBlessLVUpdateEvent;
|
CreateScroller();
|
ShowStaticUI();
|
Display();
|
|
|
}
|
|
protected override void OnPreClose()
|
{
|
scroller.OnRefreshCell -= OnRefreshCell;
|
BattlePassManager.Instance.BattlePassDataUpdateEvent -= BattlePassDataUpdateEvent;
|
PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayerDataRefresh;
|
BlessLVManager.Instance.OnBlessLVUpdateEvent -= OnBlessLVUpdateEvent;
|
|
}
|
|
void OnPlayerDataRefresh(PlayerDataType type)
|
{
|
if (type == PlayerDataType.LV || type == PlayerDataType.ExAttr1)
|
{
|
Display();
|
}
|
}
|
|
void OnBlessLVUpdateEvent()
|
{
|
Display();
|
}
|
|
|
void BattlePassDataUpdateEvent(int type)
|
{
|
if (type == battlePasstype)
|
{
|
Display();
|
}
|
}
|
|
void ShowStaticUI()
|
{
|
var ctgID = BattlePassManager.Instance.GetCTGIDByType(battlePasstype);
|
var config = CTGConfig.Get(ctgID);
|
welfarePerText.text = config.Percentage + "%";
|
itemNameText.text = Language.Get("BattlePassAD" + battlePasstype);
|
tabNameText.text = Language.Get("BattlePassTab" + battlePasstype);
|
titleText.text = Language.Get("BattlePassTitle" + battlePasstype);
|
}
|
|
|
void Display()
|
{
|
ShowTotalValueStr();
|
|
lockRect.SetActive(battlePassData.isActivite == 0);
|
scroller.m_Scorller.RefreshActiveCellViews();
|
|
var _rect = scroller.GetComponent<RectTransform>();
|
if (battlePassData.isActivite == 0)
|
{
|
rechargeRect.SetActive(true);
|
var ctgID = BattlePassManager.Instance.GetCTGIDByType(battlePasstype);
|
RechargeManager.Instance.TryGetOrderInfo(ctgID, out var orderInfoConfig);
|
buyText.text = Language.Get("PayMoneyNum", orderInfoConfig.PayRMBNumOnSale);
|
|
var config = CTGConfig.Get(ctgID);
|
//约定第一个武将物品
|
int itemID = config.GainItemList[0][0];
|
itemCell.Init(new ItemCellModel(itemID, false, config.GainItemList[0][1]));
|
itemCell.button.AddListener(() =>
|
{
|
ItemTipUtility.Show(itemID);
|
});
|
_rect.sizeDelta = new Vector2(_rect.rect.width, 630);
|
}
|
else
|
{
|
rechargeRect.SetActive(false);
|
_rect.sizeDelta = new Vector2(_rect.rect.width, 757);
|
}
|
|
|
}
|
|
void ShowTotalValueStr()
|
{
|
var totalValue = BattlePassManager.Instance.GetTotalValue(battlePasstype);
|
switch ((BattlePassType)battlePasstype)
|
{
|
case BattlePassType.LV:
|
case BattlePassType.BlessLV:
|
case BattlePassType.GuBao:
|
case BattlePassType.Arena:
|
{
|
totalActivityText.text = Language.Get("BattlePassValue" + battlePasstype, totalValue);
|
break;
|
}
|
case BattlePassType.MainLine:
|
{
|
totalActivityText.text = Language.Get("BattlePassValue3", totalValue / 100, totalValue % 100);
|
break;
|
}
|
}
|
|
}
|
|
|
void CreateScroller()
|
{
|
scroller.Refresh();
|
var values = ZhanlingConfig.GetTypeToIDDict(battlePasstype).Values.ToList();
|
values.Sort();
|
for (int i = 0; i < values.Count; i++)
|
{
|
scroller.AddCell(ScrollerDataType.Header, values[i]);
|
}
|
scroller.Restart();
|
|
var totalValue = BattlePassManager.Instance.GetTotalValue(battlePasstype);
|
scroller.JumpIndex(BattlePassManager.Instance.JumpIndex(battlePassData, battlePasstype, totalValue));
|
}
|
|
|
void OnRefreshCell(ScrollerDataType type, CellView cell)
|
{
|
var _cell = cell as BattlePassCommonCell;
|
_cell.Display(cell.index, battlePassData);
|
}
|
}
|
|
|
|
|
|