using System;
|
using System.Linq;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
|
public class WeekBattlePassCell : 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] Image valueBGImg;
|
[SerializeField] ItemCell[] betterAwards;
|
[SerializeField] Transform[] betterGotRects;
|
[SerializeField] Transform[] betterCanGetAwardRects;
|
[SerializeField] Transform[] betterLockRects;
|
|
[SerializeField] Transform mask;
|
|
|
public void Display(int id, BattlePassData battlePassData)
|
{
|
var config = ZhanlingConfig.Get(id);
|
int freeItemID = config.FreeRewardItemList[0][0];
|
baseAward.Init(new ItemCellModel(freeItemID, false, config.FreeRewardItemList[0][1]));
|
var baseAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, 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(BattlePassManager.WeekBattlePassType).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((int)battlePassData.value1 >= nextConfig.NeedValue);
|
}
|
else
|
{
|
downProcessRect.SetActive(false);
|
}
|
|
valueText.text = config.NeedValue.ToString();
|
valueBGImg.SetOrgSprite(baseAwardState == 0 ? "DayMission_img_99" : "DayMission_img_100", "DayMission");
|
|
var betterAwardState = BattlePassManager.Instance.GetBPCellAwardState(battlePassData, (int)battlePassData.value1, config.NeedValue, 1);
|
for (int i = 0; i < betterAwards.Length; i++)
|
{
|
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);
|
}
|
}
|
|
void GetAward(BattlePassData battlePassData, int awardState, int itemID)
|
{
|
if (awardState != 1)
|
{
|
ItemTipUtility.Show(itemID);
|
return;
|
}
|
|
BattlePassManager.Instance.GetAllAward(battlePassData, BattlePassManager.WeekBattlePassType, (int)battlePassData.value1);
|
}
|
}
|