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); } } }