using vnxbqy.UI;
|
using System.Collections.Generic;
|
using System.Linq;
|
using UnityEngine;
|
|
public class MountedPetZhanLingCell : CellView
|
{
|
[SerializeField] ImageEx imgUnlockLV;
|
[SerializeField] ImageEx imgFreeHave;
|
[SerializeField] ImageEx imgFreeGrey;
|
[SerializeField] TextEx txtUnlockLV;
|
[SerializeField] ItemCell freeItemCell;
|
[SerializeField] List<ItemCell> paidItemCellList = new List<ItemCell>();
|
[SerializeField] List<ImageEx> imgPaidHaveList = new List<ImageEx>();
|
[SerializeField] List<ImageEx> imgPaidLockList = new List<ImageEx>();
|
[SerializeField] List<ImageEx> imgPaidGreyList = new List<ImageEx>();
|
[SerializeField] List<ItemCell> paidItemCellHList = new List<ItemCell>();
|
[SerializeField] List<ImageEx> imgPaidHaveHList = new List<ImageEx>();
|
[SerializeField] List<ImageEx> imgPaidLockHList = new List<ImageEx>();
|
[SerializeField] List<ImageEx> imgPaidGreyHList = new List<ImageEx>();
|
[SerializeField] ImageEx imgBrownProgressBar;
|
[SerializeField] ImageEx imgGreenProgressBar;
|
[SerializeField] ImageEx imgBG;
|
[SerializeField] RotationTween freeItemCellTween;
|
[SerializeField] List<RotationTween> paidItemCellTweenList = new List<RotationTween>();
|
[SerializeField] List<RotationTween> paidItemCellTweenHList = new List<RotationTween>();
|
VipModel vipModel { get { return ModelCenter.Instance.GetModel<VipModel>(); } }
|
MountedPetZhanLingModel model { get { return ModelCenter.Instance.GetModel<MountedPetZhanLingModel>(); } }
|
ZhanLingHBuyModel zhanLingHBuyModel { get { return ModelCenter.Instance.GetModel<ZhanLingHBuyModel>(); } }
|
int curValue = 0;
|
int zhanlingId;
|
|
|
void OnEnable()
|
{
|
model.PlayAnimationSync += OnPlaySyncAnimation;
|
if (curValue == 0)
|
return;
|
int freeState = model.GetFreeGiftState(model.ZhanLingHType, curValue);
|
int paidState = model.GetPaidGiftState(model.ZhanLingHType, curValue);
|
int paidHState = model.GetPaidGiftHState(model.ZhanLingHType, curValue);
|
freeItemCellTween.Stop();
|
freeItemCellTween.SetStartState();
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Stop();
|
paidItemCellTweenList[i].SetStartState();
|
}
|
for (int i = 0; i < paidItemCellTweenHList.Count; i++)
|
{
|
paidItemCellTweenHList[i].Stop();
|
paidItemCellTweenHList[i].SetStartState();
|
}
|
if (freeState == 1)
|
{
|
freeItemCellTween.Play();
|
}
|
if (paidState == 1)
|
{
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Play();
|
}
|
}
|
if (paidHState == 1)
|
{
|
for (int i = 0; i < paidItemCellTweenHList.Count; i++)
|
{
|
paidItemCellTweenHList[i].Play();
|
}
|
}
|
}
|
|
public void Display(int needValue)
|
{
|
curValue = needValue;
|
int zhanlingId = ILZhanlingConfig.GetTypeToIDDict(model.ZhanLingHType)[needValue];
|
int freeState = this.model.GetFreeGiftState(model.ZhanLingHType, needValue);
|
int paidState = this.model.GetPaidGiftState(model.ZhanLingHType, needValue);
|
int paidHState = this.model.GetPaidGiftHState(model.ZhanLingHType, needValue);
|
int buyState = this.model.GetBuyState(model.ZhanLingHType);
|
DebugEx.Log($"needValue {needValue} freeState {freeState} paidState {paidState} paidHState {paidHState}");
|
|
imgFreeHave.SetActive(freeState == 2);
|
imgFreeGrey.SetActive(freeState == 2);
|
imgGreenProgressBar.SetActive(freeState != 0);
|
|
for (int i = 0; i < paidItemCellList.Count; i++)
|
{
|
bool isBuy = buyState == 1 || buyState == 3;
|
imgPaidGreyList[i].SetActiveIL(paidState == 2 || !isBuy);
|
imgPaidHaveList[i].SetActiveIL(paidState == 2);
|
imgPaidLockList[i].SetActiveIL(!isBuy);
|
}
|
for (int i = 0; i < paidItemCellHList.Count; i++)
|
{
|
bool isBuy = buyState == 2 || buyState == 3;
|
imgPaidGreyHList[i].SetActiveIL(paidHState == 2 || !isBuy);
|
imgPaidHaveHList[i].SetActiveIL(paidHState == 2);
|
imgPaidLockHList[i].SetActiveIL(!isBuy);
|
}
|
imgUnlockLV.gray = !this.model.IsNeedValueOk(needValue);
|
txtUnlockLV.text = needValue.ToString();
|
txtUnlockLV.colorType = this.model.IsNeedValueOk(needValue) ? TextColType.NavyBrown : TextColType.White;
|
//让第一个cell的进度条不凸出
|
if (ILZhanlingConfig.GetTypeToIDDict(model.ZhanLingHType).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 + 30, imgBrownProgressBar.rectTransform.sizeDelta.y);
|
imgGreenProgressBar.rectTransform.sizeDelta = new Vector2(imgBG.rectTransform.sizeDelta.x + 30, imgGreenProgressBar.rectTransform.sizeDelta.y);
|
}
|
//展示ItemCell
|
var itemId = ILZhanlingConfig.Get(zhanlingId).FreeRewardItemList[0][0];
|
var model1 = new ItemCellModel(itemId, false, (ulong)ILZhanlingConfig.Get(zhanlingId).FreeRewardItemList[0][1]);
|
freeItemCell.Init(model1);
|
freeItemCell.button.SetListener(() =>
|
{
|
if (freeState == 1)
|
{
|
this.model.HaveAllZhanLingGift(model.ZhanLingHType);
|
}
|
else
|
{
|
ItemTipUtility.Show(itemId);
|
}
|
});
|
|
for (int i = 0; i < paidItemCellList.Count; i++)
|
{
|
var itemId2 = ILZhanlingConfig.Get(zhanlingId).ZLRewardItemList[i][0];
|
var model2 = new ItemCellModel(itemId2, false, (ulong)ILZhanlingConfig.Get(zhanlingId).ZLRewardItemList[i][1]);
|
paidItemCellList[i].Init(model2);
|
paidItemCellList[i].button.SetListener(() =>
|
{
|
//0 没购买进阶和玄级 1 购买了进阶没买玄级 2 购买了玄级没买进阶 3 购买了进阶和玄级
|
if (buyState == 0 || buyState == 2)
|
{
|
zhanLingHBuyModel.ShowZhanLingHBuy(model.ZhanLingHType, 1, "ZhanLingHBuyBG2");
|
}
|
else
|
{
|
if (paidState == 1)
|
{
|
this.model.HaveAllZhanLingGift(model.ZhanLingHType);
|
}
|
else
|
{
|
ItemTipUtility.Show(itemId2);
|
}
|
}
|
|
});
|
}
|
|
for (int i = 0; i < paidItemCellHList.Count; i++)
|
{
|
var itemId3 = ILZhanlingConfig.Get(zhanlingId).ZLRewardItemListH[i][0];
|
var model3 = new ItemCellModel(itemId3, false, (ulong)ILZhanlingConfig.Get(zhanlingId).ZLRewardItemListH[i][1]);
|
paidItemCellHList[i].Init(model3);
|
paidItemCellHList[i].button.SetListener(() =>
|
{
|
//0 没购买进阶和玄级 1 购买了进阶没买玄级 2 购买了玄级没买进阶 3 购买了进阶和玄级
|
if (buyState == 0 || buyState == 1)
|
{
|
zhanLingHBuyModel.ShowZhanLingHBuy(model.ZhanLingHType, 2, "ZhanLingHBuyBG2");
|
}
|
else
|
{
|
if (paidHState == 1)
|
{
|
this.model.HaveAllZhanLingGift(model.ZhanLingHType);
|
}
|
else
|
{
|
ItemTipUtility.Show(itemId3);
|
}
|
}
|
});
|
}
|
//播放旋转动画
|
PlayAnimation();
|
}
|
void OnDisable()
|
{
|
model.PlayAnimationSync -= OnPlaySyncAnimation;
|
}
|
|
//播放旋转动画
|
void PlayAnimation()
|
{
|
int freeState = model.GetFreeGiftState(model.ZhanLingHType, curValue);
|
int paidState = model.GetPaidGiftState(model.ZhanLingHType, curValue);
|
int paidHState = model.GetPaidGiftHState(model.ZhanLingHType, curValue);
|
freeItemCellTween.Stop();
|
freeItemCellTween.SetStartState();
|
for (int i = 0; i < paidItemCellTweenList.Count; i++)
|
{
|
paidItemCellTweenList[i].Stop();
|
paidItemCellTweenList[i].SetStartState();
|
}
|
for (int i = 0; i < paidItemCellTweenHList.Count; i++)
|
{
|
paidItemCellTweenHList[i].Stop();
|
paidItemCellTweenHList[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();
|
}
|
}
|
for (int i = 0; i < paidItemCellTweenHList.Count; i++)
|
{
|
if (paidItemCellTweenHList[i].isActiveAndEnabled && paidHState == 1)
|
{
|
paidItemCellTweenHList[i].Play();
|
}
|
}
|
}
|
|
private void OnPlaySyncAnimation()
|
{
|
PlayAnimation();
|
}
|
}
|
|