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(); if (manager == null || !manager.IsWithinTime()) { gameObject.SetActive(false); return; } CheckResource(new List{ 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(); var entranceData = manager.GetEntranceData(); GContext.container.Resolve().SetImageSprite(icon, entranceData.IconUrl); entranceData.TimerContext.OnExpire += () => gameObject.SetActive(false); timer.Init(entranceData.TimerContext); } private void OnClickOpen() { var manager = GContext.container.Resolve(); GContext.Publish(new game.UnloadActToNextAct(manager.TableContext.GetActUrl())); } } public class PinballUncountableEntranceButtonData { public TimerContext TimerContext { get; set; } public string IconUrl { get; set; } }