95 lines
2.2 KiB
C#
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(); });
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|