using System.Threading.Tasks; using asap.core; using GameCore; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class EventBreakAct : AGameAct { public static EventBreakTableContext Ctx { get; set; } public static DrillSystem DrillSystem { get; private set; } public static string ActAddressable = "EventBreakAct"; public static IEventAggregator EventAggregator = new EventAggregator(); private IDeferredRewardStashService _rewardStashService; private CanvasScaler _canvasScaler; private readonly float normalScale = 0.75f, actScale = 1.0f, duration = 0.75f; private readonly Vector2 targetResolution = new Vector2(1080, 2340); private Vector2 originalResolution; private void Awake() { _canvasScaler = UIManager.Instance.GetComponent(); originalResolution = _canvasScaler.referenceResolution; // DOTween.To(() => _canvasScaler.referenceResolution, v => _canvasScaler.referenceResolution = v, targetResolution, duration).SetEase(Ease.OutQuad); _canvasScaler.referenceResolution = targetResolution; } public override async Task StartAsync() { _rewardStashService = GContext.container.Resolve(); _rewardStashService.Reset(); DrillSystem = new DrillSystem(Ctx); await UIManager.Instance.ShowUILoad(UITypes.EventBreakPanel); return await base.StartAsync(); } protected override void OnDestroy() { // DOTween.To(() => _canvasScaler.referenceResolution, v => _canvasScaler.referenceResolution = v, originalResolution, duration).SetEase(Ease.OutQuad); _canvasScaler.referenceResolution = originalResolution; UIManager.Instance.DestroyUI(UITypes.EventBreakPanel); Debug.Log("[Break] EventBreakAct destroyed."); } }