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

42 lines
2.0 KiB
C#

using asap.core;
using GameCore;
using System.Threading.Tasks;
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine;
public class EventBingoAct : AGameAct
{
public static IEventAggregator EventAggregator = new EventAggregator();
public readonly static string ActAddressable = "EventBingoAct";
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;
public override async Task<bool> StartAsync()
{
GContext.container.Resolve<IDeferredRewardStashService>().Reset();
_canvasScaler = UIManager.Instance.GetComponent<CanvasScaler>();
// DOTween.To(() => _canvasScaler.matchWidthOrHeight, v => _canvasScaler.matchWidthOrHeight = v, actScale, duration).SetEase(Ease.OutQuad);
originalResolution = _canvasScaler.referenceResolution;
DOTween.To(() => _canvasScaler.referenceResolution, v => _canvasScaler.referenceResolution = v, targetResolution, duration).SetEase(Ease.OutQuad);
var panelGo = await UIManager.Instance.ShowUILoad(UITypes.EventBingoPanel);
var panel = panelGo.GetComponent<EventBingoPanel>();
panel.Init();
var bingoModel = GContext.container.Resolve<EventBingoModel>();
if (bingoModel is { IsFirstTime: true })
{
await UIManager.Instance.ShowUINotLoading(UITypes.EventBingoInfoPanel);
bingoModel.SetFirstTimeFlag();
}
return await base.StartAsync();
}
protected override void OnDestroy()
{
// DOTween.To(() => _canvasScaler.matchWidthOrHeight, v => _canvasScaler.matchWidthOrHeight = v, normalScale, duration).SetEase(Ease.OutQuad);
DOTween.To(() => _canvasScaler.referenceResolution, v => _canvasScaler.referenceResolution = v, originalResolution, duration).SetEase(Ease.OutQuad);
UIManager.Instance.DestroyUI(UITypes.EventBingoPanel);
}
}