70 lines
2.5 KiB
C#
70 lines
2.5 KiB
C#
using asap.core;
|
|
using GameCore;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using TMPro;
|
|
using UniRx;
|
|
using UnityEngine;
|
|
using UnityEngine.UI;
|
|
namespace Assets.Scripts.UI.OfferSweep
|
|
{
|
|
public class OfferSweepPackEntranceButton : EventButtonResource
|
|
{
|
|
[SerializeField] private TMP_Text textTimer;
|
|
[SerializeField] private Button btn;
|
|
[SerializeField] private Image icon;
|
|
|
|
private OfferSweepManager _offerSweepManager;
|
|
|
|
private OfferSweepManager OfferSweepManager => _offerSweepManager ??= GContext.container.Resolve<OfferSweepManager>();
|
|
|
|
private IDisposable _disposable;
|
|
private void Awake()
|
|
{
|
|
gameObject.SetActive(false);
|
|
btn = this.GetComponent<Button>();
|
|
btn.onClick.AddListener(OnEnterPackPanel);
|
|
var packManager = OfferSweepManager.GetOfferSweepEventPackManager();
|
|
if (packManager == null) return;
|
|
UITypes.OfferSweepPanel.SetType(packManager.Panel);
|
|
CheckResource(new List<string>() { packManager.Panel, packManager.Icon });
|
|
}
|
|
protected override void OnDestroy()
|
|
{
|
|
base.OnDestroy();
|
|
_disposable?.Dispose();
|
|
}
|
|
private void UpdateTimer(long _ = 0L)
|
|
{
|
|
gameObject.SetActive(IsShowBtn());
|
|
|
|
var offerSweepPackData = OfferSweepManager?.SweepPackData;
|
|
if (offerSweepPackData == null) return;
|
|
|
|
textTimer.text = ConvertTools.ConvertTime2(offerSweepPackData.RemainingTime);
|
|
}
|
|
private void OnEnterPackPanel()
|
|
{
|
|
_ = UIManager.Instance.ShowUILoad(UITypes.OfferSweepPanel);
|
|
}
|
|
private bool IsShowBtn()
|
|
{
|
|
var offerSweepPackData = OfferSweepManager?.SweepPackData;
|
|
if (offerSweepPackData == null) return false;
|
|
if(offerSweepPackData.IsActive)
|
|
RedPointManager.Instance.SetRedPointState(RedPointName.Home_OfferSweep, offerSweepPackData.IsShowPoint);
|
|
|
|
return offerSweepPackData.IsActive;
|
|
}
|
|
|
|
protected override void OnLoadEventResource()
|
|
{
|
|
UpdateTimer();
|
|
_disposable = Observable.Interval(TimeSpan.FromSeconds(1f)).Subscribe(UpdateTimer).AddTo(this);
|
|
gameObject.SetActive(IsShowBtn());
|
|
var packManager = OfferSweepManager.GetOfferSweepEventPackManager();
|
|
if (packManager == null) return;
|
|
_ = GContext.container.Resolve<IUIService>().SetImageSprite(icon, packManager.Icon);
|
|
}
|
|
}
|
|
} |