using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class FlashSaleCoolDown : MonoBehaviour { [SerializeField] TimerBehaviour m_Time; private void OnEnable() { DisplayTime(); GlobalTimeEvent.Instance.secondEvent -= SecondEvent; GlobalTimeEvent.Instance.secondEvent += SecondEvent; OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent; OperationTimeHepler.Instance.dayResetEvent += DayResetEvent; } private void DayResetEvent(int resetType) { DisplayTime(); } private void SecondEvent() { OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashSale, out operationBase)) { var operation = (operationBase as OperationFlashSale); var seconds = operation.GetSurplusTime(); m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red); } } private void OnDisable() { GlobalTimeEvent.Instance.secondEvent -= SecondEvent; OperationTimeHepler.Instance.dayResetEvent -= DayResetEvent; } void DisplayTime() { OperationBase operationBase; if (OperationTimeHepler.Instance.TryGetOperationTime(Operation.FlashSale, out operationBase)) { var seconds = (operationBase as OperationFlashSale).GetSurplusTime(); m_Time.timeShow.color = seconds > 3600 ? UIHelper.GetUIColor(TextColType.Green) : UIHelper.GetUIColor(TextColType.Red); m_Time.Begin(DateTime.Now.AddTicks(seconds * TimeSpan.TicksPerSecond)); } } } }