Files
back_cantanBuilding/Assets/Scripts/EventBreak/EventBreakAct.cs
2026-05-26 16:15:54 +08:00

47 lines
1.8 KiB
C#

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<CanvasScaler>();
originalResolution = _canvasScaler.referenceResolution;
// DOTween.To(() => _canvasScaler.referenceResolution, v => _canvasScaler.referenceResolution = v, targetResolution, duration).SetEase(Ease.OutQuad);
_canvasScaler.referenceResolution = targetResolution;
}
public override async Task<bool> StartAsync()
{
_rewardStashService = GContext.container.Resolve<IDeferredRewardStashService>();
_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.");
}
}