Files
back_cantanBuilding/Assets/Scripts/Aquarium/UI/AquariumBtnGift.cs
2026-05-26 16:15:54 +08:00

79 lines
2.2 KiB
C#

using asap.core;
using GameCore;
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class AquariumBtnGift : MonoBehaviour
{
Button btn_enter;
TMP_Text text_time;
TriggerPackData triggerPackData;
TriggerPackBuyData triggerPack;
private void Awake()
{
triggerPackData = GContext.container.Resolve<TriggerPackData>();
btn_enter = GetComponent<Button>();
text_time = transform.Find("text_time").GetComponent<TMP_Text>();
var triggerPackDic = triggerPackData.GetTriggerPackList(6);
if (triggerPackDic.Count <= 0)
{
gameObject.SetActive(false);
return;
}
triggerPack = triggerPackDic[0];
TimeSpan now = triggerPackData.GetCurTriggerPackEndTime(triggerPack);
if (now.TotalSeconds < 0)
{
gameObject.SetActive(false);
return;
}
}
void OnEnable()
{
if (triggerPack != null)
{
SetEndTime();
}
}
private void Start()
{
btn_enter.onClick.AddListener(OnClick);
}
async void OnClick()
{
btn_enter.enabled = false;
await UIManager.Instance.ShowUILoad(UITypes.AquariumGiftPopupPanel);
btn_enter.enabled = true;
}
void SetEndTime()
{
DateTime curTime = ZZTimeHelper.UtcNow().UtcNowOffset();
DateTime endTime = GlobalUtils.TryParseDateTime(triggerPack.time, curTime);
TimeSpan now = endTime - curTime;
double seconds = now.TotalSeconds;
if (seconds < 1)
{
gameObject.SetActive(false);
}
else
{
this.AttachTimer((float)seconds,
() => { gameObject.SetActive(false); },
(elapsed) =>
{
if (triggerPack.index > 0)
{
gameObject.SetActive(false);
return;
}
now = endTime - ZZTimeHelper.UtcNow().UtcNowOffset();
text_time.text = ConvertTools.ConvertTime2(now.Days, now.Hours, now.Minutes, now.Seconds);
}, useRealTime: true);
}
}
}