//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, November 23, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DungeonStageTimeWin : Window { [SerializeField] Transform m_ContainerStageTime; [SerializeField] Text surplursTimeTxt; private float m_Time = 0; private DateTime endTime = DateTime.Now; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { endTime = model.GetCoolDownEndTime(DungeonCoolDownType.NextRound); m_ContainerStageTime.SetActive(false); model.dungeonCoolDownEvent += OnDungeonTimeChange; } private void OnDungeonTimeChange(DungeonCoolDownType type) { if (type != DungeonCoolDownType.NextRound) return; endTime = model.GetCoolDownEndTime(type); } protected override void OnAfterOpen() { } protected override void OnPreClose() { model.dungeonCoolDownEvent -= OnDungeonTimeChange; } protected override void OnAfterClose() { } protected override void LateUpdate() { base.LateUpdate(); if (endTime>TimeUtility.ServerNow) { var surplusTime = Mathf.Clamp((int)(endTime - TimeUtility.ServerNow).TotalSeconds, 0, int.MaxValue); surplursTimeTxt.text = string.Format(Language.Get("NextAttackTime_Z"), surplusTime); if (!m_ContainerStageTime.gameObject.activeInHierarchy) { m_ContainerStageTime.SetActive(true); } } else { if (m_ContainerStageTime.gameObject.activeInHierarchy) { m_ContainerStageTime.SetActive(false); } } } #endregion } }