using System; using UnityEngine; using UnityEngine.UI; using System.Collections; namespace vnxbqy.UI { public class BattlePrepareCoolDownWin : Window { [SerializeField] ScaleTween scaleTween; [SerializeField] ScaleTween virtualscaleTween; [SerializeField] UIAlphaTween virtualAlphaTween; [SerializeField] Image virtualDownImage; [SerializeField] Image coolDownImg; DungeonModel m_Model; DungeonModel model { get { return m_Model ?? (m_Model = ModelCenter.Instance.GetModel()); } } DateTime beginTime = DateTime.Now; int coolTime = -1; protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { coolTime = -1; virtualDownImage.SetActive(true); coolDownImg.SetActive(true); scaleTween.SetStartState(); virtualscaleTween.SetStartState(); beginTime = model.GetCoolDownEndTime(DungeonCoolDownType.WaitStart); DTC0320_tagFBEnd.UpdateFBEndEvent += UpdateFBEnd; } protected override void OnAfterOpen() { } protected override void OnPreClose() { DTC0320_tagFBEnd.UpdateFBEndEvent -= UpdateFBEnd; } protected override void OnAfterClose() { } private void UpdateFBEnd() { CloseWin(); } protected override void LateUpdate() { base.LateUpdate(); UpdateCoolTime(); } private void UpdateCoolTime() { if (beginTime > TimeUtility.ServerNow) { var surplusTime = Mathf.Clamp((int)(beginTime - TimeUtility.ServerNow).TotalSeconds, 0, int.MaxValue); if (coolTime != surplusTime) { coolTime = surplusTime; RefreshPrepareTime(surplusTime); } } else { CloseWin(); } } private void RefreshPrepareTime(int time) { switch (time) { case 2: coolDownImg.SetSprite("XMZZCoolDown3"); virtualDownImage.SetSprite("XMZZCoolDown3"); scaleTween.Play(() => { virtualAlphaTween.Play(); virtualscaleTween.Play(); }); break; case 1: coolDownImg.SetSprite("XMZZCoolDown2"); virtualDownImage.SetSprite("XMZZCoolDown2"); scaleTween.Play(() => { virtualAlphaTween.Play(); virtualscaleTween.Play(); }); break; case 0: coolDownImg.SetSprite("XMZZCoolDown1"); virtualDownImage.SetSprite("XMZZCoolDown1"); scaleTween.Play(() => { virtualAlphaTween.Play(); virtualscaleTween.Play(() => { CloseWin(); }); }); break; default: CloseWin(); break; } } private void CloseWin() { CloseImmediately(); int mapId = PlayerDatas.Instance.baseData.MapID; int dataMapId = model.GetDataMapIdByMapId(mapId); switch(dataMapId) { case CrossServerOneVsOneModel.CrossServerDataMapId: break; default: if (!WindowCenter.Instance.IsOpen()) { WindowCenter.Instance.Open(); } break; } } } }