using asap.core;
using cfg;
using game;
using GameCore;
namespace EventBossFight
{
///
/// Boss 战 Act 与 切换时的转场面板:
/// 使用 的 TransitionPanel,与 一致
/// (如亚特兰蒂斯 EventBossFightAtlantisLoadingPanel),请在配置表 LoadingPanel 字段填写对应预制体 key。
///
public static class EventBossFightActTransition
{
public const string BossFightActId = nameof(EventBossFightAct);
/// 将 设为当前活动配置的 Loading 预制体,用作 Act 转场。
public static void ApplyLoadingPanelAsActTransition(EventBossFightInit init)
{
if (init == null || string.IsNullOrEmpty(init.LoadingPanel))
return;
UITypes.EventBossFightLoadingPanel.SetType(init.LoadingPanel);
}
/// 从主界面进入 Boss 战 Act(云/转场条目前会先播 LoadingPanel)。
public static void PublishSwitchToBossFightAct(EventBossFightInit init)
{
if (init == null)
{
UnityEngine.Debug.LogError("[EventBossFightActTransition] EventBossFightInit 为空,已取消切换 Boss Act。");
return;
}
ApplyLoadingPanelAsActTransition(init);
var transition = string.IsNullOrEmpty(init.LoadingPanel)
? null
: UITypes.EventBossFightLoadingPanel;
GContext.Publish(new UnloadActToNextAct(BossFightActId, transition));
}
/// 从 Boss 战 Act 回到 。
public static void PublishSwitchToFishing(EventBossFightInit init)
{
ApplyLoadingPanelAsActTransition(init);
var transition = string.IsNullOrEmpty(init?.LoadingPanel)
? null
: UITypes.EventBossFightLoadingPanel;
GContext.Publish(new UnloadActToNextAct("FishingAct", transition));
}
}
}