//-------------------------------------------------------- // [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 DungeonDefeatedWin : Window { [SerializeField] Transform m_ContainerPoivt; [SerializeField] Text m_ExitTimer; [SerializeField] ButtonEx m_Exit; [SerializeField] Button realmBtn; [SerializeField] UIEffect realmEffect; [SerializeField] Button equipFuncBtn; [SerializeField] UIEffect equipFuncEffect; [SerializeField] TextEx equipFuncText; [SerializeField] Button petMountBtn; [SerializeField] UIEffect petMountEffect; 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); realmBtn.AddListener(() => { ExitDungeon(); PopupWindowsProcessor.Instance.Add("RealmWin"); }); equipFuncBtn.AddListener(() => { int order = 0; if (RedpointCenter.Instance.GetRedpointState(10601) != RedPointState.None) order = 0; else if (RedpointCenter.Instance.GetRedpointState(1720000) != RedPointState.None) order = 1; else if (RedpointCenter.Instance.GetRedpointState(10602) != RedPointState.None) order = 3; ExitDungeon(); PopupWindowsProcessor.Instance.Add("EquipFrameWin", order); }); petMountBtn.AddListener(() => { int order = 0; if (RedpointCenter.Instance.GetRedpointState(10501) != RedPointState.None) order = 0; else if (RedpointCenter.Instance.GetRedpointState(10502) != RedPointState.None) order = 1; ExitDungeon(); PopupWindowsProcessor.Instance.Add("PetWin", order); }); } protected override void OnPreOpen() { timer = 0f; m_ContainerPoivt.SetActive(false); } protected override void OnAfterOpen() { if (PlayerDatas.Instance.baseData.MapID == IceCrystalVeinModel.ICECRYSTALVEIN_MAPID) { var iceCrystalVeinModel = ModelCenter.Instance.GetModel(); iceCrystalVeinModel.IsIceCrystalVein_Copy = true; } if (realmBtn == null) return; realmBtn.SetActive(FuncOpen.Instance.IsFuncOpen(12)); petMountBtn.SetActive(FuncOpen.Instance.IsFuncOpen(6)); equipFuncBtn.SetActive(FuncOpen.Instance.IsFuncOpen(1)); bool playEquipFuncEffect = false; if (RedpointCenter.Instance.GetRedpointState(10601) != RedPointState.None) { equipFuncText.text = Language.Get("EquipReinforceWin_btnText_1"); playEquipFuncEffect = true; } else if (RedpointCenter.Instance.GetRedpointState(1720000) != RedPointState.None) { equipFuncText.text = Language.Get("EquipReinforceWin_btnText_6"); playEquipFuncEffect = true; } else if (RedpointCenter.Instance.GetRedpointState(10602) != RedPointState.None) { equipFuncText.text = Language.Get("EquipReinforceWin_btnText_2"); playEquipFuncEffect = true; } else { equipFuncText.text = Language.Get("EquipReinforceWin_btnText_1"); } if (playEquipFuncEffect) { equipFuncEffect.Play(); } else { equipFuncEffect.Stop(); } if (RedpointCenter.Instance.GetRedpointState(10502) != RedPointState.None || RedpointCenter.Instance.GetRedpointState(10501) != RedPointState.None) { petMountEffect.Play(); } else { petMountEffect.Stop(); } if (RedpointCenter.Instance.GetRedpointState(114) != RedPointState.None) { realmEffect.Play(); } else { realmEffect.Stop(); } } protected override void OnPreClose() { } protected override void OnAfterClose() { var iceCrystalVeinModel = ModelCenter.Instance.GetModel(); if (iceCrystalVeinModel.IsIceCrystalVein_Copy) { iceCrystalVeinModel.IsIceCrystalVein_Copy = false; PopupWindowsProcessor.Instance.Add("IceCrystalVeinWin"); } } protected override void OnActived() { base.OnActived(); var dataMapId = model.GetDataMapIdByMapId(PlayerDatas.Instance.baseData.MapID); var config = DungeonOpenTimeConfig.Get(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 - TimeUtility.ServerNow).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 - TimeUtility.ServerNow).TotalSeconds; 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); } } }