Files
BingoGrassland/Assets/BingoBrain/ModuleUI/JTips/JTipsUICtrl.cs
T

97 lines
2.2 KiB
C#
Raw Normal View History

2026-04-20 13:49:36 +08:00
using BingoBrain.Core;
using BingoBrain.HotFix;
namespace BingoBrain
{
public class JTipsUICtrl : BaseUICtrl
{
private JTipsUI ui;
private JTipsModel model;
private uint openUIMsg = SkinInfo.JTipsUI_Open;
private uint closeUIMsg = SkinInfo.JTipsUI_Close;
#region
protected override void OnInit()
{
model = ModuleBoardk.GetModel(ModelConst.JTipsModel) as JTipsModel;
}
protected override void OnDispose()
{
}
public override void OpenUI(object args = null)
{
if (ui == null)
{
ui = new JTipsUI(this);
ui.Open(args);
}
}
public override void CloseUI(object args = null)
{
if (ui != null && !ui.isClose)
{
ui.Close();
}
ui = null;
}
#endregion
#region
public override uint GetOpenUIMsg(string uiName)
{
return openUIMsg;
}
public override uint GetCloseUIMsg(string uiName)
{
return closeUIMsg;
}
protected override void AddListener()
{
uiCtrlDispatcher.AddListener(openUIMsg, AddTips);
uiCtrlDispatcher.AddListener(closeUIMsg, CheckNext);
}
private void CheckNext(object obj)
{
var tipsData = obj as TipsData;
tipsData.Rest();
CloseUI();
ShowTips();
}
private void ShowTips()
{
if (ui != null) return;
var tipsData = model.GetTips();
if (tipsData != default)
{
OpenUI(tipsData);
}
}
private void AddTips(object obj)
{
if (obj is not TipsData tipsData) return;
model.AddTips(tipsData);
ShowTips();
}
protected override void RemoveListener()
{
uiCtrlDispatcher.RemoveListener(openUIMsg, AddTips);
uiCtrlDispatcher.RemoveListener(closeUIMsg, CheckNext);
}
#endregion
}
}