Files
CaptainDiceDubloons_IOS_unity/Assets/Scripts/ModuleUI/OpenGame/OpenGameUI.cs
T
2026-05-20 12:01:19 +08:00

131 lines
3.7 KiB
C#

using System;
using DG.Tweening;
using FGUI.Game_04;
using Spine.Unity;
namespace ChillConnect
{
public class OpenGameUI : BaseUI
{
private OpenGameUICtrl ctrl;
private OpenGameModel model;
private com_open ui;
private Action closeCallback;
private bool need_show = true;
public OpenGameUI(OpenGameUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.OpenGameUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "Game_04";
uiInfo.assetName = "com_open";
uiInfo.layerType = UILayerType.Popup;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = false;
}
#region 生命周期
protected override void OnInit()
{
// model = ModuleManager.Instance.GetModel(ModelConst.OpenGameModel) as OpenGameModel;
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as com_open;
}
protected override void OnOpenBefore(object args)
{
if (args != null) need_show = (bool)args;
string stage = GameHelper.gameType == 0 ? "Level " + GameHelper.GetLevel() : "";
ui.text_level.text = stage;
InitView();
DOVirtual.DelayedCall(0.7f, () => { GameDispatcher.Instance.Dispatch(GameMsg.reset_game, args); });
if (AudioManager.Instance.IsOpenEffect)
{
AudioManager.Instance.PlayDynamicEffect(AudioConst.game_open);
}
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region 消息
protected override void AddListener()
{
}
protected override void RemoveListener()
{
}
#endregion
//初始化页面逻辑
private void InitView()
{
var sk = FXManager.Instance.SetFx<SkeletonAnimation>(ui.anim, Fx_Type.fx_open, ref closeCallback);
sk.state.SetAnimation(0, "animation", false);
DOVirtual.DelayedCall(2.8f, () =>
{
ui.bg.visible = false;
});
DOVirtual.DelayedCall(3.5f, () =>
{
ui.anim.visible = false;
if (need_show) {
if (GameHelper.IsShowLevelTips())
{
ui.tips_node.visible = false;
DOVirtual.DelayedCall(0.2f, ()=>{
ui.tips_node.visible = true;
var meteor1 = FXManager.Instance.SetFx<SkeletonAnimation>(ui.tips_node, Fx_Type.fx_tips, ref closeCallback);
meteor1.state.SetAnimation(0, "animation", false);
meteor1.state.Complete += a =>
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Close);
};
});
}
else
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Close);
}
} else {
DOVirtual.DelayedCall(0.4f, () =>
{
UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.OpenGameUI_Close);
});
}
});
}
}
}