using System;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
public class BattlePassCommonCell : CellView
|
{
|
[SerializeField] ItemCell baseAward;
|
[SerializeField] Transform baseGotRect;
|
[SerializeField] Transform baseCanGetAwardRect;
|
[SerializeField] Transform upProcssBGRect;
|
[SerializeField] Transform upProcessRect;
|
[SerializeField] Transform downProcssBGRect;
|
[SerializeField] Transform downProcessRect;
|
[SerializeField] Text valueText;
|
[SerializeField] ItemCell[] betterAwards;
|
[SerializeField] Transform[] betterGotRects;
|
[SerializeField] Transform[] betterCanGetAwardRects;
|
[SerializeField] Transform[] betterLockRects;
|
|
[SerializeField] Transform mask;
|
|
int bpID;
|
public void Display(int id, BattlePassData battlePassData)
|
{
|
bpID = id;
|
var config = ZhanlingConfig.Get(id);
|
int freeItemID = config.FreeRewardItemList[0][0];
|
baseAward.Init(new ItemCellModel(freeItemID, false, config.FreeRewardItemList[0][1]));
|
var totalValue = BattlePassManager.Instance.GetTotalValue(config.ZhanlingType);
|
var baseAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, 0);
|
baseAward.button.AddListener(() =>
|
{
|
GetAward(battlePassData, baseAwardState, freeItemID);
|
});
|
|
|
baseGotRect.SetActive(baseAwardState == 2);
|
baseCanGetAwardRect.SetActive(baseAwardState == 1);
|
mask.SetActive(baseAwardState == 0);
|
|
var ids = ZhanlingConfig.GetTypeToIDDict(config.ZhanlingType).Values.ToList();
|
ids.Sort();
|
upProcssBGRect.SetActive(ids[0] != id);
|
upProcessRect.SetActive(baseAwardState != 0);
|
|
downProcssBGRect.SetActive(ids[ids.Count - 1] != id);
|
var nextConfig = ZhanlingConfig.Get(id + 1);
|
if (nextConfig != null)
|
{
|
downProcessRect.SetActive(totalValue >= nextConfig.NeedValue);
|
}
|
else
|
{
|
downProcessRect.SetActive(false);
|
}
|
|
if (config.ZhanlingType == (int)BattlePassType.MainLine)
|
{
|
|
valueText.text = config.NeedValue/100 + "-" + config.NeedValue%100;
|
}
|
else
|
{
|
valueText.text = config.NeedValue.ToString();
|
}
|
|
var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, totalValue, config.NeedValue, 1);
|
for (int i = 0; i < betterAwards.Length; i++)
|
{
|
if (i < config.ZLRewardItemList.Length)
|
{
|
betterAwards[i].SetActive(true);
|
int itemID = config.ZLRewardItemList[i][0];
|
betterAwards[i].Init(new ItemCellModel(itemID, false, config.ZLRewardItemList[i][1]));
|
betterAwards[i].button.AddListener(() =>
|
{
|
GetAward(battlePassData, betterAwardState, itemID);
|
});
|
betterGotRects[i].SetActive(betterAwardState == 2);
|
betterCanGetAwardRects[i].SetActive(betterAwardState == 1);
|
betterLockRects[i].SetActive(battlePassData.isActivite == 0);
|
}
|
else
|
{
|
betterAwards[i].SetActive(false);
|
}
|
}
|
}
|
|
void GetAward(BattlePassData battlePassData, int awardState, int itemID)
|
{
|
if (awardState != 1)
|
{
|
ItemTipUtility.Show(itemID);
|
return;
|
}
|
var config = ZhanlingConfig.Get(bpID);
|
var totalValue = BattlePassManager.Instance.GetTotalValue(config.ZhanlingType);
|
BattlePassManager.Instance.GetAllAward(battlePassData, config.ZhanlingType, totalValue);
|
}
|
}
|