using vnxbqy.UI; using System.Collections.Generic; using System.Linq; using UnityEngine; public class GuBaoTotalStarsCell : ILBehaviour { ImageEx imgUnlockLV; ImageEx imgFreeHave; ImageEx imgFreeGrey; TextEx txtUnlockLV; ItemCell freeItemCell; List paidItemCellList = new List(); List imgPaidHaveList = new List(); List imgPaidLockList = new List(); List imgPaidGreyList = new List(); ImageEx imgBrownProgressBar; ImageEx imgGreenProgressBar; ImageEx imgBG; RotationTween freeItemCellTween; List paidItemCellTweenList = new List(); protected override void Awake() { imgUnlockLV = proxy.GetWidgtEx("imgUnlockLV"); imgFreeHave = proxy.GetWidgtEx("imgFreeHave0"); imgFreeGrey = proxy.GetWidgtEx("imgFreeGrey0"); txtUnlockLV = proxy.GetWidgtEx("txtUnlockLV"); freeItemCell = proxy.GetWidgtEx("freeItemCell0"); imgBrownProgressBar = proxy.GetWidgtEx("imgBrownProgressBar"); imgGreenProgressBar = proxy.GetWidgtEx("imgGreenProgressBar"); imgBG = proxy.GetWidgtEx("imgBK"); for (int i = 0; i < 2; i++) { imgPaidHaveList.Add(proxy.GetWidgtEx("imgPaidHave" + i)); imgPaidLockList.Add(proxy.GetWidgtEx("imgPaidLock" + i)); imgPaidGreyList.Add(proxy.GetWidgtEx("imgPaidGrey" + i)); paidItemCellList.Add(proxy.GetWidgtEx("paidItemCell" + i)); paidItemCellTweenList.Add(proxy.GetWidgtEx("paidItemCell" + i)); } freeItemCellTween = proxy.GetWidgtEx("freeItemCell0"); } int curValue = 0; protected override void OnEnable() { GuBaoTotalStarsModel.Instance.PlayAnimationSync += OnPlaySyncAnimation; if (curValue == 0) return; base.OnEnable(); int freeState = GuBaoTotalStarsModel.Instance.GetGiftState(4, curValue, true); int paidState = GuBaoTotalStarsModel.Instance.GetGiftState(4, 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 = GuBaoTotalStarsModel.Instance.GetGiftState(4, needValue, true); int paidState = GuBaoTotalStarsModel.Instance.GetGiftState(4, needValue, false); imgFreeHave.SetActiveIL(freeState == 2); imgFreeGrey.SetActiveIL(freeState == 2); imgGreenProgressBar.SetActiveIL(freeState != 0); for (int i = 0; i < paidItemCellList.Count; i++) { bool isBuy = GuBaoTotalStarsModel.Instance.zhanLingInfoDict[4].isActivite > 0; imgPaidGreyList[i].SetActiveIL(paidState == 2 || !isBuy); imgPaidHaveList[i].SetActiveIL(paidState == 2); imgPaidLockList[i].SetActiveIL(!isBuy); } if (GuBaoTotalStarsModel.Instance.GetAllGuBaoStarCount() < needValue) { imgUnlockLV.gray = true; } else { imgUnlockLV.gray = false; } txtUnlockLV.text = needValue.ToString(); //让第一个cell的进度条不凸出 if (ILZhanlingConfig.GetTypeToIDDict(4).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 = GuBaoTotalStarsModel.Instance.GetItemCellID(4, needValue, true); var model = new ItemCellModel(itemId, false, (ulong)GuBaoTotalStarsModel.Instance.GetItemCellCount(4, needValue, true)); freeItemCell.Init(model); freeItemCell.button.SetListener(() => { if (freeState == 1) { GuBaoTotalStarsModel.Instance.HaveAllZhanLingGift(4); } else { ItemTipUtility.Show(itemId); } }); for (int i = 0; i < paidItemCellList.Count; i++) { var itemId2 = GuBaoTotalStarsModel.Instance.GetItemCellID(4, needValue, false, i); var model2 = new ItemCellModel(itemId2, false, (ulong)GuBaoTotalStarsModel.Instance.GetItemCellCount(4, needValue, false, i)); paidItemCellList[i].Init(model2); paidItemCellList[i].button.SetListener(() => { if (paidState == 1) { GuBaoTotalStarsModel.Instance.HaveAllZhanLingGift(4); } 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() { GuBaoTotalStarsModel.Instance.PlayAnimationSync -= OnPlaySyncAnimation; } private void OnPlaySyncAnimation() { int freeState = GuBaoTotalStarsModel.Instance.GetGiftState(4, curValue, true); int paidState = GuBaoTotalStarsModel.Instance.GetGiftState(4, 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(); } } } }