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

160 lines
4.7 KiB
C#

using SGModule.NetKit;
using UnityEngine;
namespace BallKingdomCrush
{
public class HallUICtrl : BaseUICtrl
{
private HallUI ui;
private HallModel model;
private uint openUIMsg = UICtrlMsg.MainUI_Open;
private uint closeUIMsg = UICtrlMsg.MainUI_Close;
private const float _countTime = 5*60f;
#region
protected override void OnInit()
{
model = moduleManager.GetModel(ModelConst.HallModel) as HallModel;
}
protected override void OnDispose()
{
}
public override void OpenUI(object args = null)
{
if (ui == null)
{
ui = new HallUI(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, OpenUI);
uiCtrlDispatcher.AddListener(closeUIMsg, CloseUI);
GameDispatcher.Instance.AddListener(GameMsg.Update101, OnUpdate101);
GameDispatcher.Instance.AddListener(GameMsg.Update101Completed, OnUpdate101Completed);
GameDispatcher.Instance.AddListener(GameMsg.Update102, OnUpdate102);
GameDispatcher.Instance.AddListener(GameMsg.Update102Completed, OnUpdate102Completed);
GameDispatcher.Instance.AddListener(GameMsg.RefreshConfig, UpdateRefresh);
HallManager.Instance.UpdateSecondEvent += RefreshConfig;
}
protected override void RemoveListener()
{
uiCtrlDispatcher.RemoveListener(openUIMsg, OpenUI);
uiCtrlDispatcher.RemoveListener(closeUIMsg, CloseUI);
GameDispatcher.Instance.RemoveListener(GameMsg.Update101, OnUpdate101);
GameDispatcher.Instance.RemoveListener(GameMsg.Update102, OnUpdate102);
GameDispatcher.Instance.RemoveListener(GameMsg.Update101Completed, OnUpdate101Completed);
GameDispatcher.Instance.RemoveListener(GameMsg.Update102Completed, OnUpdate102Completed);
GameDispatcher.Instance.RemoveListener(GameMsg.RefreshConfig, UpdateRefresh);
HallManager.Instance.UpdateSecondEvent -= RefreshConfig;
}
protected override void AddServerListener()
{
}
protected override void RemoveServerListener()
{
}
#endregion
private void OnUpdate101(object obj)
{
if (obj != null)
{
ui?.OnUpdate101(obj);
}
}
private void OnUpdate101Completed(object obj = null)
{
if (!DataMgr.IsShowRewardFly101.Value)
{
var value = DataMgr.Coin.Value;
model.showCoin = value;
ui?.Set101();
}
}
private void OnUpdate102(object obj)
{
if (obj != null)
{
ui?.OnUpdate102(obj);
}
}
private void OnUpdate102Completed(object obj = null)
{
if (!DataMgr.IsShowRewardFly102.Value)
{
var value = DataMgr.Ticket.Value;
model.showDollar = value;
if (DataMgr.MakeupTaskHistory.Value.Count == 1)
{
}
}
}
private int _lastUpdateTime;
public void UpdateRefresh(object obj = null)
{
}
private void RefreshConfig()
{
_lastUpdateTime++;
// Debug.Log($"barry RefreshConfig======= {_lastUpdateTime}");
if (_lastUpdateTime <= _countTime) return;
_lastUpdateTime = 0;
NetKit.Instance.Post<LoginModel>("settingRefresh", null, response =>
{
var savedCfgName = PlayerPrefs.GetString("configFileName");
if (!response.IsSuccess) return;
if (savedCfgName.Equals(response.Data.Setting)) return;
// Debug.Log($"barry===== setting==== {obj.setting}" );
var loginData = GameHelper.GetLoginModel();
loginData.Setting = response.Data.Setting;
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetConfig, 2);
});
}
}
}