53 lines
1.7 KiB
C#
53 lines
1.7 KiB
C#
using asap.core;
|
|
using UnityEngine;
|
|
using PinballUncountable;
|
|
using UnityEngine.UI;
|
|
using System.Collections.Generic;
|
|
|
|
public class PinballUncountableEntranceButton : EventButtonResource
|
|
{
|
|
[SerializeField] private Image icon;
|
|
[SerializeField] private BingoTimer timer;
|
|
[SerializeField] private Button button;
|
|
|
|
private void Awake()
|
|
{
|
|
var manager = GContext.container.Resolve<Manager>();
|
|
if (manager == null || !manager.IsWithinTime())
|
|
{
|
|
gameObject.SetActive(false);
|
|
return;
|
|
}
|
|
|
|
CheckResource(new List<string>{
|
|
manager.TableContext.GetPanelUrl(),
|
|
manager.TableContext.GetInfoPanelUrl(),
|
|
manager.TableContext.GetIconUrl(),
|
|
manager.TableContext.GetActUrl()});
|
|
button.onClick.AddListener(OnClickOpen);
|
|
var redPointCount = manager.GetTicketCount();
|
|
RedPointManager.Instance.SetRedPointState(manager.RedPointKey, redPointCount > 0, redPointCount);
|
|
}
|
|
|
|
protected override void OnLoadEventResource()
|
|
{
|
|
gameObject.SetActive(true);
|
|
var manager = GContext.container.Resolve<Manager>();
|
|
var entranceData = manager.GetEntranceData();
|
|
GContext.container.Resolve<IUIService>().SetImageSprite(icon, entranceData.IconUrl);
|
|
entranceData.TimerContext.OnExpire += () => gameObject.SetActive(false);
|
|
timer.Init(entranceData.TimerContext);
|
|
}
|
|
|
|
private void OnClickOpen()
|
|
{
|
|
var manager = GContext.container.Resolve<Manager>();
|
|
GContext.Publish(new game.UnloadActToNextAct(manager.TableContext.GetActUrl()));
|
|
}
|
|
}
|
|
|
|
public class PinballUncountableEntranceButtonData
|
|
{
|
|
public TimerContext TimerContext { get; set; }
|
|
public string IconUrl { get; set; }
|
|
} |