//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, September 12, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; namespace Snxxz.UI { public class DungeonDefeatedWin : Window { [SerializeField] Transform m_ContainerPoivt; [SerializeField] Text m_ExitTimer; [SerializeField] ButtonEx m_Exit; DungeonModel model { get { return ModelCenter.Instance.GetModel(); } } float timer = 0f; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Exit.AddListener(ExitDungeon); } protected override void OnPreOpen() { timer = 0f; m_ContainerPoivt.gameObject.SetActive(false); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); var dataMapId = model.GetDungeonDataIdByMapId(PlayerDatas.Instance.baseData.MapID); var config = ConfigManager.Instance.GetTemplate(dataMapId); StartCoroutine(Co_DelayDisplay(config.DelayTime * 0.001f)); } #endregion protected override void LateUpdate() { base.LateUpdate(); timer -= Time.deltaTime; if (timer < 0f) { timer = 1f; var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap); var seconds = (endTime - DateTime.Now).TotalSeconds; m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue)); } } private void ExitDungeon() { model.ExitCurrentDungeon(); CloseClick(); } IEnumerator Co_DelayDisplay(float _delay) { yield return new WaitForSeconds(_delay); var endTime = model.GetDungeonCoolDownEndTime(DungeonCoolDownType.LeaveMap); var seconds = (endTime - DateTime.Now).TotalSeconds; timer = 0f; m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue)); m_ExitTimer.gameObject.SetActive(true); m_ContainerPoivt.gameObject.SetActive(true); } } }