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<HolidayFlashRushToBuyModel>(); } }
|
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;
|
}
|
}
|
}
|
}
|