using UnityEngine; using UnityEngine.UI; using EnhancedUI.EnhancedScroller; using System; namespace vnxbqy.UI { public class HolidayFlashRushSaleTimeCell : ScrollerUI { [SerializeField] Text remainText; [SerializeField] Button saleTimeBtn; [SerializeField] GameObject unSelectImg; [SerializeField] GameObject selectImg; HolidayFlashRushToBuyModel rushToBuyModel { get { return ModelCenter.Instance.GetModel(); } } OperationFlashRushToBuy operation; int dayIndex = -1; int timeIndex = -1; private void Awake() { saleTimeBtn.AddListener(() => { rushToBuyModel.UpdateSelectFlashSaleTime(dayIndex, timeIndex); }); } private void OnEnable() { GlobalTimeEvent.Instance.secondEvent += UpdateBuyState; } private void OnDisable() { GlobalTimeEvent.Instance.secondEvent -= UpdateBuyState; } public override void Refresh(CellView cell) { operation = rushToBuyModel.GetOperationFlashRushToBuy(); dayIndex = -1; timeIndex = -1; if (operation == null) return; dayIndex = cell.index/100; timeIndex = cell.index % 100; if(dayIndex == rushToBuyModel.presentFlashShop.dayIndex && timeIndex == rushToBuyModel.presentFlashShop.timeIndex) { selectImg.SetActive(true); unSelectImg.SetActive(false); } else { selectImg.SetActive(false); unSelectImg.SetActive(true); } UpdateBuyState(); } public void UpdateBuyState() { if (operation == null || timeIndex == -1) return; int seconds = 0; OperationTime operationTime = operation.times[timeIndex]; int buyState = operation.GetBuyTimeState(TimeUtility.ServerNow, dayIndex, timeIndex, out seconds); var operationDate = operation.startDate.AddDays(dayIndex); switch (buyState) { case -1: string timeStr = ""; if(seconds > 7200) { timeStr = operation.ToDisplayBuyTime(operationDate.month, operationDate.day, operationTime.startHour, operationTime.startMinute); remainText.text = Language.Get("FlashRushToBuy106", timeStr); } else { timeStr = TimeUtility.SecondsToHMS(seconds); remainText.text = Language.Get("FlashRushToBuy108", timeStr); } break; case 0: remainText.text = Language.Get("FlashRushToBuy105", TimeUtility.SecondsToHMS(seconds)); break; case 1: rushToBuyModel.PresentFlashShopActivityClose(); break; } } } }