//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, September 12, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class DungeonEnterInfo : MonoBehaviour { [SerializeField] Text surplusTimeText; [SerializeField] Button clearBtn; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } DungeonEnterCD dungeonEnter; public event Action OnCdComplete; private void Awake() { if (clearBtn != null) { clearBtn.onClick.AddListener(OnClearBtn); } } private void OnClearBtn() { ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), UIHelper.ReplaceNewLine(Language.Get("FairyLand_Func11", dungeonEnter.clearCdCost)), (bool isOk) => { if (isOk) { if (PlayerDatas.Instance.baseData.GoldPaper + PlayerDatas.Instance.baseData.Gold >= dungeonEnter.clearCdCost) { model.SendClearDungeonEnterCD(dungeonEnter.mapId); } else { if (VersionConfig.Get().isBanShu) { SysNotifyMgr.Instance.ShowTip("GoldErr"); return; } WindowCenter.Instance.Open(); } } }); } private void OnEnable() { var dungeonId = model.DungeonMap(model.currentDungeon); var dungeonConfig = ConfigManager.Instance.GetTemplate(dungeonId); dungeonEnter = model.DungeonEnterData(dungeonConfig.DataMapID); model.updateDungeonEnterCD += UpdateDungeonEnterCD; } private void UpdateDungeonEnterCD() { if (dungeonEnter.dungeonSurplusTime == 0) { gameObject.SetActive(false); } } private void OnDisable() { model.updateDungeonEnterCD -= UpdateDungeonEnterCD; } private void LateUpdate() { TimeSpan t = dungeonEnter.overdueTime - DateTime.Now; surplusTimeText.text = StringUtility.Contact(Language.Get("FairyLand_Func12"), t.Minutes.ToString("D2"), ":", Mathf.Max(0, t.Seconds).ToString("D2")); if (t.Minutes <= 0 && t.Seconds <= 0) { gameObject.SetActive(false); if (OnCdComplete != null) { OnCdComplete(); } } } } }