using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class LimitedTimePackageItemBehaviour : MonoBehaviour { [SerializeField] RectTransform m_ContainerOpen; [SerializeField] RectTransform m_ContainerClose; [SerializeField] Text m_MoneyClose; [SerializeField] Text m_MoneyOpen; [SerializeField] Image m_OpenRedpoint; [SerializeField] Image m_CloseRedpoint; [SerializeField] Button m_Select; Transform orgPriceImg; Transform orgPriceImg2; LimitedTimePackageItemClassModel model { get { return ModelCenter.Instance.GetModel(); } } VipModel vipModel { get { return ModelCenter.Instance.GetModel(); } } int selectIndex = -1; private void Awake() { m_Select.onClick.AddListener(Select); m_Select.AddListener(Select); var obj = m_ContainerOpen.FindComponent("Transform", "saleImage"); if (obj != null) orgPriceImg = obj as Transform; obj = m_ContainerClose.FindComponent("Transform", "saleImage"); if (obj != null) orgPriceImg2 = obj as Transform; } private void OnEnable() { model.selectUpdate += SelectUpdate; // model.accumulateRechargeUpdate += AccumulateRechargeUpdate; model.onStateUpdate += OnStateUpate; } private void OnDisable() { model.selectUpdate -= SelectUpdate; // model.accumulateRechargeUpdate -= AccumulateRechargeUpdate; model.onStateUpdate -= OnStateUpate; } private void OnStateUpate(int obj) { DisplayRedpoint(); } private void AccumulateRechargeUpdate() { DisplayRedpoint(); } public void Display(int index) { selectIndex = index; OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase)) { GiftPackageClass operation = operationBase as GiftPackageClass; GiftPackageClass.Gift_Package reward; if (operation.TryGetGift(TimeUtility.ServerNow, out reward)) { if (index < reward.gifts.Length) { var recharge = reward.gifts[index]; //¸ù¾Ý¸÷µØÇø²»Í¬£¬rmbµ¥Î»Îª·ÖÐèת»»Îª µ¥Î»ÎªÔª´øÁ½Î»Ð¡Êýµã var showNum = UIHelper.GetMoneyFormat(recharge.rmb); if (PlayerDatas.Instance.baseData.IsActive90Off) { OrderInfoConfig orderInfo = null; vipModel.TryGetOrderInfoByOrderInfo(recharge.OrderInfo, out orderInfo); showNum = UIHelper.GetMoneyFormat(orderInfo.PayRMBNum); } m_MoneyClose.text = Language.Get("PayMoneyNum", showNum); m_MoneyOpen.text = Language.Get("PayMoneyNum", showNum); DisplayRedpoint(); DisplaySelect(); if (orgPriceImg != null) { orgPriceImg.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); } if (orgPriceImg2 != null) { orgPriceImg2.SetActiveIL(PlayerDatas.Instance.baseData.IsActive90Off); } } } } } void DisplaySelect() { m_ContainerOpen.SetActive(model.selectIndex == selectIndex); m_ContainerClose.SetActive(model.selectIndex != selectIndex); } void DisplayRedpoint() { OperationBase operationBase; bool satisfyGet = false; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.GiftPackage, out operationBase)) { GiftPackageClass operation = operationBase as GiftPackageClass; GiftPackageClass.Gift_Package reward; if (operation.TryGetGift(TimeUtility.ServerNow, out reward)) { if (selectIndex < reward.gifts.Length && selectIndex >= 0) { var recharge = reward.gifts[selectIndex]; satisfyGet = model.IsExpired(selectIndex) && model.IsOpen; } } } m_OpenRedpoint.SetActive(satisfyGet); m_CloseRedpoint.SetActive(satisfyGet); } private void SelectUpdate(int index) { m_ContainerOpen.SetActive(index == selectIndex); m_ContainerClose.SetActive(index != selectIndex); } private void Select() { if (model.selectIndex != selectIndex && selectIndex != -1) { model.selectIndex = selectIndex; } } } }