Files
2026-05-28 15:23:36 +08:00

168 lines
5.0 KiB
C#

using UnityEngine;
namespace ZooMatch
{
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 (!PreferencesMgr.Instance.IsShowRewardFly101)
{
var value = PreferencesMgr.Instance.Currency101;
model.showCoin = value;
ui?.Set101();
// var cardRedeemNewVOModel = ConfigSystem.GetConfig<CardRedeemNewModel>();
// if (PreferencesMgr.Instance.CoinMakeupTaskHistory.Count == 1)
// {
// var vo = cardRedeemNewVOModel.dataList.First();
// }
}
}
private void OnUpdate102(object obj)
{
if (obj != null)
{
ui?.OnUpdate102(obj);
}
}
private void OnUpdate102Completed(object obj = null)
{
if (!PreferencesMgr.Instance.IsShowRewardFly102)
{
var value = PreferencesMgr.Instance.Currency102;
model.showDollar = value;
ui?.Set102();
if (PreferencesMgr.Instance.MakeupTaskHistory.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;
NetworkKit.PostWithHeader<LoginModel>("settingRefresh", null, (isSuccess, obj) =>
{
var savedCfgName = PlayerPrefs.GetString("configFileName");
if (!isSuccess) return;
if (savedCfgName.Equals(obj.setting)) return;
// Debug.Log($"barry===== setting==== {obj.setting}" );
var loginData = GameHelper.GetLoginModel();
loginData.setting = obj.setting;
NetworkDispatcher.Instance.Dispatch(NetworkMsg.GetConfig, 2);
});
}
}
}