Files
PerfectTidy_untiy_ios/Assets/Scripts/ModuleUI/GamePlay/GamePlayUI.cs
T
2026-06-12 10:11:36 +08:00

179 lines
5.1 KiB
C#

using FGUI.ZM_Common_01;
using UnityEngine;
using FairyGUI;
using Newtonsoft.Json.Serialization;
namespace LoveLegend
{
public class GamePlayUI : BaseUI
{
private GamePlayUICtrl ctrl;
private GamePlayModel model;
private FGUI.ZM_Game_04.com_GamePlay ui;
public GamePlayUI(GamePlayUICtrl ctrl) : base(ctrl)
{
uiName = UIConst.GamePlayUI;
this.ctrl = ctrl;
}
protected override void SetUIInfo(UIInfo uiInfo)
{
uiInfo.packageName = "ZM_Game_04";
uiInfo.assetName = "com_GamePlay";
uiInfo.layerType = UILayerType.Normal;
uiInfo.isNeedOpenAnim = false;
uiInfo.isNeedCloseAnim = false;
uiInfo.isNeedUIMask = false;
}
#region 生命周期
protected override void OnInit()
{
//model = ModuleManager.Instance.GetModel(ModelConst.GamePlayModel) as GamePlayModel;
}
protected override void OnClose()
{
}
protected override void OnBind()
{
ui = baseUI as FGUI.ZM_Game_04.com_GamePlay;
}
protected override void OnOpenBefore(object args)
{
InitView();
}
protected override void OnOpen(object args)
{
}
protected override void OnHide()
{
}
protected override void OnDisplay(object args)
{
}
#endregion
#region 消息
protected override void AddListener()
{
GameDispatcher.Instance.AddListener(GameMsg.GameAddTime, AddtimeSuccess);
GameDispatcher.Instance.AddListener(GameMsg.GameReset, GameReset);
GameDispatcher.Instance.AddListener(GameMsg.GamePauseEnd, GamePauseEnd);
GameDispatcher.Instance.AddListener(GameMsg.GameSuccess, GameSuccess);
}
protected override void RemoveListener()
{
GameDispatcher.Instance.RemoveListener(GameMsg.GameAddTime, AddtimeSuccess);
GameDispatcher.Instance.RemoveListener(GameMsg.GameReset, GameReset);
GameDispatcher.Instance.RemoveListener(GameMsg.GamePauseEnd, GamePauseEnd);
GameDispatcher.Instance.RemoveListener(GameMsg.GameSuccess, GameSuccess);
}
#endregion
void GameSuccess(object A = null)
{
HallManager.Instance.UpdateSecondEvent -= UpdateSecond;
uiCtrlDispatcher.Dispatch(UICtrlMsg.GameEndUI_Open, true);
}
void GamePauseEnd(object A = null)
{
HallManager.Instance.UpdateSecondEvent += UpdateSecond;
}
void GameReset(object A = null)
{
HallManager.Instance.UpdateSecondEvent += UpdateSecond;
remain_time = start_time;
SetTimeText();
}
private int remain_time;
private int start_time = 120;
private int add_time = 60;
//初始化页面逻辑
private void InitView()
{
remain_time = start_time;
HallManager.Instance.UpdateSecondEvent += UpdateSecond;
SetTimeText();
ui.btn_pause.SetClick(() =>
{
HallManager.Instance.UpdateSecondEvent -= UpdateSecond;
// Time.timeScale = 0;
uiCtrlDispatcher.Dispatch(UICtrlMsg.GamePauseUI_Open);
});
ui.btn_time.SetClick(() =>
{
GameHelper.ShowVideoAd("AddTime", (issuccess) =>
{
if (issuccess)
{
remain_time += add_time;
SetTimeText();
GameHelper.ShowTips("Add Time Success!");
}
});
});
ui.btn_tips.SetClick(() =>
{
if (is_open_tips) uiCtrlDispatcher.Dispatch(UICtrlMsg.GameTipUI_Open);
else
{
GameHelper.ShowVideoAd("ShowTips", (issuccess) =>
{
if (issuccess)
{
is_open_tips = true;
uiCtrlDispatcher.Dispatch(UICtrlMsg.GameTipUI_Open);
}
});
}
});
}
private bool is_open_tips = false;
void AddtimeSuccess(object a = null)
{
remain_time += add_time;
SetTimeText();
GameHelper.ShowTips("Add Time Success!");
HallManager.Instance.UpdateSecondEvent += UpdateSecond;
}
void UpdateSecond()
{
remain_time--;
if (remain_time < 0)
{
HallManager.Instance.UpdateSecondEvent -= UpdateSecond;
uiCtrlDispatcher.Dispatch(UICtrlMsg.GameAddTimeUI_Open);
}
else
{
SetTimeText();
}
}
void SetTimeText()
{
ui.btn_time.title = CommonHelper.TimeFormat(remain_time, CountDownType.Minute);
}
}
}