//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, September 13, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class CrossServerOneVsOnePlayerLeaveCoolDownWin : Window { [SerializeField] Transform m_CoolDownContainer; [SerializeField] Text m_CoolDown; DateTime beginTime = DateTime.Now; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } int coolTime = -1; #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { coolTime = -1; beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.PlayerLeave); model.dungeonCoolDownEvent += OnBeginTimeEvent; model.updateMissionEvent += UpdateFBHelp; } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.dungeonCoolDownEvent -= OnBeginTimeEvent; model.updateMissionEvent -= UpdateFBHelp; } protected override void OnAfterClose() { } #endregion private void UpdateFBHelp() { int playerId = (int)PlayerDatas.Instance.baseData.PlayerID; int enterPlayerId = model.mission.PlayerEnterMap; if (enterPlayerId != 0 && enterPlayerId != playerId) { if (m_CoolDownContainer.gameObject.activeInHierarchy) { m_CoolDownContainer.SetActive(false); } } } private void OnBeginTimeEvent(DungeonCoolDownType _type) { if (_type != DungeonCoolDownType.PlayerLeave) { return; } beginTime = model.GetCoolDownEndTime(_type); } protected override void LateUpdate() { base.LateUpdate(); if (beginTime > TimeUtility.ServerNow) { var surplusTime =Mathf.Clamp((int)(beginTime - TimeUtility.ServerNow).TotalSeconds,0,int.MaxValue); if (coolTime != surplusTime) { coolTime = surplusTime; m_CoolDown.text = Language.Get("CrossServer118",surplusTime); } if (!m_CoolDownContainer.gameObject.activeInHierarchy) { m_CoolDownContainer.SetActive(true); } } else { if (m_CoolDownContainer.gameObject.activeInHierarchy) { m_CoolDownContainer.SetActive(false); } } } } }