using UnityEngine;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
namespace vnxbqy.UI  
 | 
{  
 | 
      
 | 
    public class CrossServerOneVsOneWin : Window  
 | 
    {  
 | 
        [SerializeField] AvatarCell avatarCell;  
 | 
        [SerializeField] Text nameText;  
 | 
        [SerializeField] Text lvText;  
 | 
        [SerializeField] Text rankText;  
 | 
        [SerializeField] Text curScoreText;  
 | 
        [SerializeField] Text honorText;  
 | 
        [SerializeField] Image rankImg;  
 | 
        [SerializeField] Slider scoreSlider;  
 | 
        [SerializeField] Text scorePerText;  
 | 
        [SerializeField] GameObject danLvUpObj;  
 | 
        [SerializeField] Button rankAwardBtn;  
 | 
        [SerializeField] GameObject rankAward_SelectImg;  
 | 
        [SerializeField] Button arenaBtn;  
 | 
        [SerializeField] GameObject arena_SelectImg;  
 | 
        [SerializeField] Button seasonAwardBtn;  
 | 
        [SerializeField] GameObject seasonAward_SelectImg;  
 | 
        [SerializeField] Button honorStoreBtn;  
 | 
        [SerializeField] GameObject honorStore_SelectImg;  
 | 
        [SerializeField] Button lookDanLvBtn;  
 | 
        public static int funcId = 0;  
 | 
        CrossServerOneVsOnePlayerInfo playerInfo;  
 | 
        CrossServerWin crossServerWin;  
 | 
        CrossServerOneVsOneRewardModel m_CrossServerRewardModel;  
 | 
        PhantasmPavilionModel phantasmPavilionModel { get { return ModelCenter.Instance.GetModel<PhantasmPavilionModel>(); } }  
 | 
        CrossServerOneVsOneRewardModel crossServerRewardModel { get { return m_CrossServerRewardModel ?? (m_CrossServerRewardModel = ModelCenter.Instance.GetModel<CrossServerOneVsOneRewardModel>()); } }  
 | 
        #region Built-in  
 | 
        protected override void BindController()  
 | 
        {  
 | 
  
 | 
        }  
 | 
        protected override void AddListeners()  
 | 
        {  
 | 
            rankAwardBtn.AddListener(ClickRankAward);  
 | 
            arenaBtn.AddListener(ClickArena);  
 | 
            seasonAwardBtn.AddListener(ClickSeasonAward);  
 | 
            honorStoreBtn.AddListener(ClickHonorStore);  
 | 
            lookDanLvBtn.AddListener(ClickDanLv);  
 | 
        }  
 | 
  
 | 
        protected override void OnPreOpen()  
 | 
        {  
 | 
            SetDisplay();  
 | 
            PlayerDatas.Instance.playerDataRefreshEvent += UpdatePlayerData;  
 | 
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;  
 | 
        }  
 | 
        protected override void OnActived()  
 | 
        {  
 | 
  
 | 
  
 | 
        }  
 | 
        protected override void OnAfterOpen()  
 | 
        {  
 | 
  
 | 
        }  
 | 
  
 | 
        protected override void OnPreClose()  
 | 
        {  
 | 
            CloseSubWindows();  
 | 
            PlayerDatas.Instance.playerDataRefreshEvent -= UpdatePlayerData;  
 | 
            CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;  
 | 
            funcId = 0;  
 | 
        }  
 | 
        protected override void OnAfterClose()  
 | 
        {  
 | 
  
 | 
        }  
 | 
        #endregion  
 | 
  
 | 
        private void UpdatePlayerInfo()  
 | 
        {  
 | 
            UpdateScore();  
 | 
            UpdateRank();  
 | 
        }  
 | 
  
 | 
        private void UpdatePlayerData(PlayerDataType type)  
 | 
        {  
 | 
            if (type != PlayerDataType.CDBPlayerRefresh_Honor) return;  
 | 
            UpdateHonor();  
 | 
        }  
 | 
  
 | 
  
 | 
        private void SetDisplay()  
 | 
        {  
 | 
            crossServerWin = WindowCenter.Instance.Get<CrossServerWin>();  
 | 
            playerInfo = CrossServerOneVsOnePlayerInfo.Instance;  
 | 
            var playerData = PlayerDatas.Instance.baseData;  
 | 
  
 | 
            avatarCell.InitUI(AvatarHelper.GetMyAvatarModel());  
 | 
  
 | 
            nameText.text = playerData.PlayerName;  
 | 
            lvText.text = StringUtility.Contact("Lv.", playerData.LV);  
 | 
            scoreSlider.minValue = 0;  
 | 
            scoreSlider.maxValue = 1;  
 | 
            UpdateScore();  
 | 
            UpdateRank();  
 | 
            UpdateHonor();  
 | 
            switch (funcId)  
 | 
            {  
 | 
                case 0:  
 | 
                case 1:  
 | 
                    ClickArena();  
 | 
                    break;  
 | 
                case 2:  
 | 
                    ClickRankAward();  
 | 
                    break;  
 | 
                case 3:  
 | 
                    ClickSeasonAward();  
 | 
                    break;  
 | 
                case 4:  
 | 
                    ClickHonorStore();  
 | 
                    break;  
 | 
            }  
 | 
        }  
 | 
  
 | 
        private void UpdateRank()  
 | 
        {  
 | 
            var arenaConfig = CrossServerArenaConfig.Get(playerInfo.DanLV);  
 | 
            rankText.text = arenaConfig.Name;  
 | 
            rankText.color = UIHelper.GetDanLVColor(playerInfo.DanLV);  
 | 
            rankImg.SetSprite(arenaConfig.IconKey);  
 | 
        }  
 | 
  
 | 
        private void UpdateHonor()  
 | 
        {  
 | 
            honorText.text = UIHelper.GetMoneyCnt(18).ToString();  
 | 
        }  
 | 
  
 | 
        private void UpdateScore()  
 | 
        {  
 | 
            curScoreText.text = playerInfo.Score.ToString();  
 | 
            int maxScore = 0;  
 | 
            bool isMaxRank = playerInfo.TryGetMaxRank(out maxScore);  
 | 
            danLvUpObj.SetActive(!isMaxRank);  
 | 
            if (!isMaxRank)  
 | 
            {  
 | 
                var preUpScore = CrossServerArenaConfig.Get(playerInfo.DanLV - 1);  
 | 
                int curScore = playerInfo.Score;  
 | 
                if(preUpScore != null)  
 | 
                {  
 | 
                    curScore -= preUpScore.LVUpScore;   
 | 
                }  
 | 
                scorePerText.text = StringUtility.Contact(curScore, "/", maxScore);  
 | 
                scoreSlider.value = (float)curScore / maxScore;  
 | 
            }  
 | 
        }  
 | 
        private void ClickHonorStore()  
 | 
        {  
 | 
            if (honorStore_SelectImg.activeInHierarchy) return;  
 | 
            CloseSubWindows();  
 | 
            WindowCenter.Instance.Open<CrossServerOneVsOneHonorStoreWin>();  
 | 
            honorStore_SelectImg.SetActive(true);  
 | 
        }  
 | 
  
 | 
        private void ClickSeasonAward()  
 | 
        {  
 | 
            if (seasonAward_SelectImg.activeInHierarchy) return;  
 | 
  
 | 
            CloseSubWindows();  
 | 
            WindowCenter.Instance.Open<SeasonRewardWin>();  
 | 
            seasonAward_SelectImg.SetActive(true);  
 | 
  
 | 
        }  
 | 
  
 | 
        private void ClickDanLv()  
 | 
        {  
 | 
            WindowCenter.Instance.Open<CrossServerOneVsOneDanLVWin>();  
 | 
        }  
 | 
  
 | 
        private void ClickArena()  
 | 
        {  
 | 
            if (arena_SelectImg.activeInHierarchy) return;  
 | 
  
 | 
            CloseSubWindows();  
 | 
            WindowCenter.Instance.Open<CrossServerOneVsOneArenaWin>();  
 | 
            arena_SelectImg.SetActive(true);  
 | 
        }  
 | 
  
 | 
        private void ClickRankAward()  
 | 
        {  
 | 
            if (rankAward_SelectImg.activeInHierarchy) return;  
 | 
  
 | 
            CloseSubWindows();  
 | 
            WindowCenter.Instance.Open<SegmentRewardWin>();  
 | 
            rankAward_SelectImg.SetActive(true);  
 | 
        }  
 | 
  
 | 
        private void CloseSubWindows()  
 | 
        {  
 | 
            WindowCenter.Instance.Close<CrossServerOneVsOneArenaWin>();  
 | 
            WindowCenter.Instance.Close<CrossServerOneVsOneHonorStoreWin>();  
 | 
            WindowCenter.Instance.Close<SeasonRewardWin>();  
 | 
            WindowCenter.Instance.Close<SegmentRewardWin>();  
 | 
            arena_SelectImg.SetActive(false);  
 | 
            rankAward_SelectImg.SetActive(false);  
 | 
            seasonAward_SelectImg.SetActive(false);  
 | 
            honorStore_SelectImg.SetActive(false);  
 | 
        }  
 | 
    }  
 | 
}  
 |