Files
BingoGrassland/Assets/BingoBrain/System/Game/DialogSystem.cs
T
2026-04-20 13:49:36 +08:00

95 lines
2.2 KiB
C#

using BingoBrain.Core;
using BingoBrain.HotFix;
namespace BingoBrain
{
public class DialogSystem : BaseSystem
{
public DialogSystem(bool isAutoInit = true)
{
if (isAutoInit)
{
Init();
}
}
Gsss startGameSequence = new Gsss();
Gsss backMainSequence = new Gsss();
public sealed override void Init()
{
base.Init();
AddListener();
}
private void AddListener()
{
CtrlDispatcher.Instance.AddOnceListener(CtrlMsg.Game_Start, StartGame);
GameDispatcher.Instance.AddFinallyListener(BingoInfo.EndBingoGame, OnEndBingoGame);
}
private void StartGame(object obj)
{
startGameSequence.Clear();
if (GameHelper.IsOpenGuide())
{
AddOpenReward(startGameSequence);
}
if (startGameSequence.Count == 0)
{
// End();
}
else
{
startGameSequence.Run();
}
}
private void OnEndBingoGame(object obj)
{
var isBackMain = (bool)obj;
if (isBackMain)
{
BackMain();
}
}
private void BackMain()
{
backMainSequence.Clear();
AddOpenReward(backMainSequence);
if (backMainSequence.Count == 0)
{
}
else
{
backMainSequence.Run();
}
}
private bool isFinishNaive;
private void AddOpenReward(Gsss gsss)
{
if (!GameHelper.IsGiftSwitch())
{
return;
}
if (PreferencesMgr.Instance.IsShowOpenReward)
{
gsss.Add(true, (procedure) =>
{
UICtrlDispatcher.Instance.Dispatch(SkinInfo.OpenRewardUI_Open);
UICtrlDispatcher.Instance.AddOnceListener(SkinInfo.OpenRewardUI_Close,
e => { procedure.InvokeComplete(); });
});
}
}
}
}