//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, September 12, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { //回合战斗失败界面 public class TurnFightDefeatedWin : Window { [SerializeField] Transform m_ContainerPoivt; [SerializeField] Text m_ExitTimer; [SerializeField] ButtonEx m_Exit; [SerializeField] ButtonEx m_PetBtn; [SerializeField] ButtonEx m_CutBtn; [SerializeField] ButtonEx m_TreeBtn; CutTreeModel cutTreeModel { get { return ModelCenter.Instance.GetModel(); } } float timer = 0f; float endTime = 3.1f; float startTime = 0f; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Exit.AddListener(ExitDungeon); m_PetBtn?.AddListener(() => { ShowGuide(0); }); m_CutBtn?.AddListener(() => { ShowGuide(1); }); m_TreeBtn?.AddListener(() => { ShowGuide(2); }); } protected override void OnPreOpen() { DisplayBtns(); timer = 0f; startTime = Time.realtimeSinceStartup; m_ContainerPoivt.SetActive(false); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } protected override void OnActived() { base.OnActived(); StartCoroutine(Co_DelayDisplay(0.1f)); } #endregion protected override void LateUpdate() { base.LateUpdate(); timer -= Time.deltaTime; float seconds = 0; if (timer < 0f) { timer = 0.5f; seconds = endTime - (Time.realtimeSinceStartup - startTime); m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue)); } if (seconds < 0) { ExitDungeon(); } } private void ExitDungeon() { CloseClick(); } IEnumerator Co_DelayDisplay(float _delay) { yield return new WaitForSeconds(_delay); var seconds = endTime - (Time.realtimeSinceStartup - startTime); timer = 0f; m_ExitTimer.text = Language.Get("DungeonVictoryWin_Btn_Exit_1", Mathf.Clamp((int)seconds, 0, int.MaxValue)); m_ExitTimer.SetActive(true); m_ContainerPoivt.SetActive(true); } void DisplayBtns() { m_PetBtn?.SetActiveIL(FuncOpen.Instance.IsFuncOpen(6)); m_CutBtn?.SetActiveIL(true); m_TreeBtn?.SetActiveIL(true); } //0-灵宠;1-砍树;2-仙树等级 void ShowGuide(int type) { CloseClick(); //触发引导 if (cutTreeModel.defeadWinClickGuide.ContainsKey(type) && !NewBieCenter.Instance.inGuiding) { NewBieCenter.Instance.ResetGuide(cutTreeModel.defeadWinClickGuide[type]); NewBieCenter.Instance.StartNewBieGuideEx(cutTreeModel.defeadWinClickGuide[type]); } } } }