using vnxbqy.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
|
|
public class RealmLVZhanlingCell : ILBehaviour
|
{
|
ImageEx imgUnlockLV;
|
ImageEx imgFreeHave;
|
ImageEx imgFreeGrey;
|
TextEx txtUnlockLV;
|
ItemCell freeItemCell;
|
List<ItemCell> paidItemCellList = new List<ItemCell>();
|
List<ImageEx> imgPaidHaveList = new List<ImageEx>();
|
List<ImageEx> imgPaidLockList = new List<ImageEx>();
|
List<ImageEx> imgPaidGreyList = new List<ImageEx>();
|
ImageEx imgBrownProgressBar;
|
ImageEx imgGreenProgressBar;
|
ImageEx imgBG;
|
RotationTween freeItemCellTween;
|
List<RotationTween> paidItemCellTweenList = new List<RotationTween>();
|
|
protected override void Awake()
|
{
|
imgUnlockLV = proxy.GetWidgtEx<ImageEx>("imgUnlockLV");
|
imgFreeHave = proxy.GetWidgtEx<ImageEx>("imgFreeHave0");
|
imgFreeGrey = proxy.GetWidgtEx<ImageEx>("imgFreeGrey0");
|
txtUnlockLV = proxy.GetWidgtEx<TextEx>("txtUnlockLV");
|
freeItemCell = proxy.GetWidgtEx<ItemCell>("freeItemCell0");
|
imgBrownProgressBar = proxy.GetWidgtEx<ImageEx>("imgBrownProgressBar");
|
imgGreenProgressBar = proxy.GetWidgtEx<ImageEx>("imgGreenProgressBar");
|
imgBG = proxy.GetWidgtEx<ImageEx>("imgBK");
|
for (int i = 0; i < 2; i++)
|
{
|
imgPaidHaveList.Add(proxy.GetWidgtEx<ImageEx>("imgPaidHave" + i));
|
imgPaidLockList.Add(proxy.GetWidgtEx<ImageEx>("imgPaidLock" + i));
|
imgPaidGreyList.Add(proxy.GetWidgtEx<ImageEx>("imgPaidGrey" + i));
|
paidItemCellList.Add(proxy.GetWidgtEx<ItemCell>("paidItemCell" + i));
|
paidItemCellTweenList.Add(proxy.GetWidgtEx<RotationTween>("paidItemCell" + i));
|
}
|
freeItemCellTween = proxy.GetWidgtEx<RotationTween>("freeItemCell0");
|
}
|
|
int curValue = 0;
|
protected override void OnEnable()
|
{
|
RealmLVZhanlingModel.Instance.PlayAnimationSync += OnPlaySyncAnimation;
|
if (curValue == 0)
|
return;
|
base.OnEnable();
|
int freeState = RealmLVZhanlingModel.Instance.GetGiftState(2, curValue, true);
|
int paidState = RealmLVZhanlingModel.Instance.GetGiftState(2, curValue, false);
|
freeItemCellTween.Stop();
|
freeItemCellTween.SetStartState();
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Stop();
|
paidItemCellTweenList[i].SetStartState();
|
}
|
if (freeState == 1)
|
{
|
freeItemCellTween.Play();
|
}
|
if (paidState == 1)
|
{
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Play();
|
}
|
}
|
|
}
|
|
public void Display(int needValue)
|
{
|
curValue = needValue;
|
int freeState = RealmLVZhanlingModel.Instance.GetGiftState(2, needValue, true);
|
int paidState = RealmLVZhanlingModel.Instance.GetGiftState(2, needValue, false);
|
imgFreeHave.SetActiveIL(freeState == 2);
|
imgFreeGrey.SetActiveIL(freeState == 2);
|
imgGreenProgressBar.SetActiveIL(freeState != 0);
|
for (int i = 0; i < paidItemCellList.Count; i++)
|
{
|
bool isBuy = RealmLVZhanlingModel.Instance.zhanLingInfoDict[2].isActivite > 0;
|
imgPaidGreyList[i].SetActiveIL(paidState == 2 || !isBuy);
|
imgPaidHaveList[i].SetActiveIL(paidState == 2);
|
imgPaidLockList[i].SetActiveIL(!isBuy);
|
}
|
if (PlayerDatas.Instance.baseData.realmLevel < needValue)
|
{
|
imgUnlockLV.gray = true;
|
}
|
else
|
{
|
imgUnlockLV.gray = false;
|
}
|
txtUnlockLV.text = RealmConfig.Get(needValue).Name;
|
//让第一个cell的进度条不凸出
|
if (ILZhanlingConfig.GetTypeToIDDict(2).Keys.ToList()[0] == needValue)
|
{
|
imgBrownProgressBar.rectTransform.sizeDelta = new Vector2(imgBG.rectTransform.sizeDelta.x, imgBrownProgressBar.rectTransform.sizeDelta.y);
|
imgGreenProgressBar.rectTransform.sizeDelta = new Vector2(imgBG.rectTransform.sizeDelta.x, imgGreenProgressBar.rectTransform.sizeDelta.y);
|
}
|
else
|
{
|
imgBrownProgressBar.rectTransform.sizeDelta = new Vector2(imgBG.rectTransform.sizeDelta.x + 10, imgBrownProgressBar.rectTransform.sizeDelta.y);
|
imgGreenProgressBar.rectTransform.sizeDelta = new Vector2(imgBG.rectTransform.sizeDelta.x + 10, imgGreenProgressBar.rectTransform.sizeDelta.y);
|
}
|
//展示ItemCell
|
|
var itemId = RealmLVZhanlingModel.Instance.GetItemCellID(2, needValue, true);
|
var model = new ItemCellModel(itemId, false, (ulong)RealmLVZhanlingModel.Instance.GetItemCellCount(2, needValue, true));
|
freeItemCell.Init(model);
|
freeItemCell.button.SetListener(() =>
|
{
|
if (freeState == 1)
|
{
|
RealmLVZhanlingModel.Instance.HaveAllZhanLingGift(2);
|
}
|
else
|
{
|
ItemTipUtility.Show(itemId);
|
}
|
});
|
|
for (int i = 0; i < paidItemCellList.Count; i++)
|
{
|
var itemId2 = RealmLVZhanlingModel.Instance.GetItemCellID(2, needValue, false, i);
|
var model2 = new ItemCellModel(itemId2, false, (ulong)RealmLVZhanlingModel.Instance.GetItemCellCount(2, needValue, false, i));
|
paidItemCellList[i].Init(model2);
|
paidItemCellList[i].button.SetListener(() =>
|
{
|
if (paidState == 1)
|
{
|
RealmLVZhanlingModel.Instance.HaveAllZhanLingGift(2);
|
}
|
else
|
{
|
ItemTipUtility.Show(itemId2);
|
}
|
});
|
}
|
//播放旋转动画
|
freeItemCellTween.Stop();
|
freeItemCellTween.SetStartState();
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Stop();
|
paidItemCellTweenList[i].SetStartState();
|
}
|
|
if (freeItemCellTween.isActiveAndEnabled && freeState == 1)
|
{
|
freeItemCellTween.Play();
|
}
|
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
if (paidItemCellTweenList[i].isActiveAndEnabled && paidState == 1)
|
{
|
paidItemCellTweenList[i].Play();
|
}
|
}
|
}
|
protected override void OnDisable()
|
{
|
RealmLVZhanlingModel.Instance.PlayAnimationSync -= OnPlaySyncAnimation;
|
}
|
|
private void OnPlaySyncAnimation()
|
{
|
int freeState = RealmLVZhanlingModel.Instance.GetGiftState(2, curValue, true);
|
int paidState = RealmLVZhanlingModel.Instance.GetGiftState(2, curValue, false);
|
freeItemCellTween.Stop();
|
freeItemCellTween.SetStartState();
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Stop();
|
paidItemCellTweenList[i].SetStartState();
|
}
|
|
if (freeItemCellTween.isActiveAndEnabled && freeState == 1)
|
{
|
freeItemCellTween.Play();
|
}
|
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
if (paidItemCellTweenList[i].isActiveAndEnabled && paidState == 1)
|
{
|
paidItemCellTweenList[i].Play();
|
}
|
}
|
}
|
}
|
|