using System;  
 | 
using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
      
 | 
    public class CrossServerOneVsOneRoundWin : Window  
 | 
    {  
 | 
        [SerializeField] Image roundImg;  
 | 
        [SerializeField] GameObject victoryObj;  
 | 
        [SerializeField] GameObject failureObj;  
 | 
        [SerializeField] Text infoText;  
 | 
        [SerializeField] Text coolTimeText;  
 | 
  
 | 
        CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }  
 | 
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }  
 | 
        int coolTime = 0;  
 | 
        #region Built-in  
 | 
        protected override void BindController()  
 | 
        {  
 | 
  
 | 
        }  
 | 
        protected override void AddListeners()  
 | 
        {  
 | 
             
 | 
        }  
 | 
  
 | 
        protected override void OnPreOpen()  
 | 
        {  
 | 
            SetDisplay();  
 | 
        }  
 | 
        protected override void OnAfterOpen()  
 | 
        {  
 | 
            
 | 
        }  
 | 
  
 | 
        protected override void LateUpdate()  
 | 
        {  
 | 
            base.LateUpdate();  
 | 
            UpdateCoolTime();  
 | 
            
 | 
        }  
 | 
        protected override void OnPreClose()  
 | 
        {  
 | 
             
 | 
        }  
 | 
        protected override void OnAfterClose()  
 | 
        {  
 | 
           
 | 
        }  
 | 
        #endregion  
 | 
  
 | 
        private void SetDisplay()  
 | 
        {  
 | 
            int roundNum = dungeonModel.mission.roundNum;  
 | 
            coolTime = -1;  
 | 
            bool isWin = IsWin();  
 | 
            victoryObj.SetActive(isWin);  
 | 
            failureObj.SetActive(!isWin);  
 | 
            UpdateCoolTime();  
 | 
            switch (roundNum)  
 | 
            {  
 | 
                case 1:  
 | 
                    roundImg.SetSprite("CrossServer_25");  
 | 
                    break;  
 | 
                case 2:  
 | 
                    roundImg.SetSprite("CrossServer_23");  
 | 
                    break;  
 | 
                case 3:  
 | 
                    roundImg.SetSprite("CrossServer_24");  
 | 
                    break;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        private void UpdateCoolTime()  
 | 
        {  
 | 
            if (crossServerModel.roundEndTime > DateTime.Now)  
 | 
            {  
 | 
                var surplusTime = Mathf.Clamp((int)(crossServerModel.roundEndTime - DateTime.Now).TotalSeconds, 0, int.MaxValue);  
 | 
                if (coolTime != surplusTime)  
 | 
                {  
 | 
                    coolTime = surplusTime + 1;  
 | 
                    coolTimeText.text = coolTime.ToString();  
 | 
                }  
 | 
            }  
 | 
            else  
 | 
            {  
 | 
                CloseImmediately();  
 | 
            }  
 | 
        }  
 | 
  
 | 
        private bool IsWin()  
 | 
        {  
 | 
            int roundNum = dungeonModel.mission.roundNum;  
 | 
            int[] winerIds = dungeonModel.mission.roundWinerIDList;  
 | 
            if (winerIds == null) return false;  
 | 
            int playerId = (int)PlayerDatas.Instance.baseData.PlayerID;  
 | 
            int index = roundNum - 1;  
 | 
            if(index < winerIds.Length)  
 | 
            {  
 | 
                if(playerId == winerIds[index])  
 | 
                {  
 | 
                    return true;  
 | 
                }  
 | 
            }  
 | 
            return false;  
 | 
        }  
 | 
    }  
 | 
}  
 |