少年修仙传客户端代码仓库
Client_PangDeRong
2018-09-21 d1a2ab5b56bae336a1b5cbc4f307cb67e76c22e6
System/Dungeon/DungeonDefeatedWin.cs
@@ -1,104 +1,104 @@
//--------------------------------------------------------
//    [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<DungeonModel>(); } }
        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<DungeonOpenTimeConfig>(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);
        }
    }
}
//--------------------------------------------------------
//    [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<DungeonModel>(); } }
        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.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID);
            var config = Config.Instance.Get<DungeonOpenTimeConfig>(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.GetCoolDownEndTime(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.GetCoolDownEndTime(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);
        }
    }
}