Files
BallCrushBest_GP/Assets/Scripts/ModuleUI/Joast/JoastUICtrl.cs
T
2026-04-20 12:06:34 +08:00

95 lines
2.2 KiB
C#

namespace BallKingdomCrush
{
public class JoastUICtrl : BaseUICtrl
{
private JoastUI ui;
private JoastModel model;
private uint openUIMsg = UICtrlMsg.SCTipsUI_Open;
private uint closeUIMsg = UICtrlMsg.SCTipsUI_Close;
#region
protected override void OnInit()
{
model = moduleManager.GetModel(ModelConst.JoastModel) as JoastModel;
}
protected override void OnDispose()
{
}
public override void OpenUI(object args = null)
{
if (ui == null)
{
ui = new JoastUI(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)
{
JoastData joastData = obj as JoastData;
joastData.Rest();
CloseUI();
ShowTips();
}
private void ShowTips()
{
if (ui != null) return;
JoastData joastData = model.GetTips();
if (joastData != default)
{
OpenUI(joastData);
}
}
private void AddTips(object obj)
{
JoastData joastData = obj as JoastData;
if (joastData == default) return;
model.AddTips(joastData);
ShowTips();
}
protected override void RemoveListener()
{
uiCtrlDispatcher.RemoveListener(openUIMsg, AddTips);
uiCtrlDispatcher.RemoveListener(closeUIMsg, CheckNext);
}
#endregion
}
}