From ad3f66509d2e61d8dc6630558153b71b774df20c Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期五, 21 二月 2025 01:40:56 +0800
Subject: [PATCH] 0312 10349 【越南】【英文】【BT】【砍树】跨服竞技场优化 - 第一版

---
 System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs |  224 +++++++++++++++++--------------------------------------
 1 files changed, 69 insertions(+), 155 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
index acfd648..861200a 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneArenaWin.cs
@@ -8,26 +8,25 @@
     public class CrossServerOneVsOneArenaWin : Window
     {
         [SerializeField] Button scoreRankBtn;
-        [SerializeField] Button matchBtn;
-        [SerializeField] Image matchBtn_Img;
-        [SerializeField] Text matchBtn_Text;
         [SerializeField] Button dayAwardBtn;
         [SerializeField] Text winRateText;
         [SerializeField] Text sumNumText;
-        [SerializeField] Text reaminNumText;
         [SerializeField] Text seasonTimeText;
-        [SerializeField] Text openTimeText;
         [SerializeField] Text winStreakText;
+        [SerializeField] Text reaminNumText;
         [SerializeField] Button buyTimesBtn;
         [SerializeField] Button matchRecordBtn;
-        [SerializeField] RedpointBehaviour matchRedPointBeh;
         [SerializeField] GameObject inSeasonTimeObj;
         [SerializeField] GameObject outSeasonTimeObj;
-        [SerializeField] GameObject lookPlayerObj;
-        [SerializeField] Text lookTimeText;
         [SerializeField] Text curSeasonNumText;
+        [SerializeField] Transform playerObjs;
+        [SerializeField] CrossServerOneVsOnePKPlayerCell[] matchPlayerObjs;
+        [SerializeField] Image refreshMoneyIcon;
+        [SerializeField] Text refreshMoneyText;
+        [SerializeField] Text freeRefreshText;
+        [SerializeField] Button refreshBtn;
+
         CrossServerOneVsOneModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerOneVsOneModel>(); } }
-        float coolTime = 0;
         #region Built-in
         protected override void BindController()
         {
@@ -39,17 +38,16 @@
             buyTimesBtn.AddListener(ClickBuyTimes);
             matchRecordBtn.AddListener(ClickMatchRecord);
             scoreRankBtn.AddListener(ClickScoreRank);
+            refreshBtn.AddListener(ClickBuyRefreshMatch);
         }
 
         protected override void OnPreOpen()
         {
-            coolTime = 0;
-            crossServerModel.isClickCoolTime = false;
+            crossServerModel.SendCrossMatch(0);
             SetDisplay();
             CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfo;
             TimeMgr.Instance.OnMinuteEvent += UpdateMinute;
-            GlobalTimeEvent.Instance.secondEvent += UpdateSecond;
-            DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent += OnStartMatch;
+            crossServerModel.UpdateMatchPlayersEvent += UpdateMatchPlayers;
         }
 
         protected override void OnAfterOpen()
@@ -57,26 +55,12 @@
             
         }
 
-        protected override void LateUpdate()
-        {
-            base.LateUpdate();
-            if(crossServerModel.isClickCoolTime)
-            {
-                coolTime += Time.deltaTime;
-                if(coolTime >= 1)
-                {
-                    coolTime = 0;
-                    crossServerModel.isClickCoolTime = false;
-                }
-            }
-        }
 
         protected override void OnPreClose()
         {
             CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdatePlayerInfo;
             TimeMgr.Instance.OnMinuteEvent -= UpdateMinute;
-            GlobalTimeEvent.Instance.secondEvent -= UpdateSecond;
-            DTCC002_tagGCCrossRealmPKStartMatch.CrossServerStartMatchEvent -= OnStartMatch;
+            crossServerModel.UpdateMatchPlayersEvent -= UpdateMatchPlayers;
         }
         protected override void OnAfterClose()
         {
@@ -90,53 +74,55 @@
             UpdatePKInfo();
         }
 
+        private void UpdateMatchPlayers()
+        {
+            playerObjs.SetActive(true);
+            for (int i = 0; i < matchPlayerObjs.Length; i++)
+            {
+                matchPlayerObjs[i].Display(i);
+            }
+        }
+
         private void SetDisplay()
         {
             UpdateMatchInfo();
             UpdatePKInfo();
             UpdateActivityState();
-            UpdateLookPlayerTime();
+            UpdateMatchPlayers();
             var pkSeason = CrossServerOneVsOnePKSeason.Instance;
             seasonTimeText.text = pkSeason.ToDisplaySeasonTime();
             curSeasonNumText.text = pkSeason.SeasonID.ToString();
-            var openTimes = pkSeason.GetActivityTimes();
-            openTimeText.SetActive(openTimes != null && openTimes.Count > 0);
-            if(openTimes != null)
-            {
-                string openTimeDes = string.Empty;
-                for(int i = 0; i < openTimes.Count; i++)
-                {
-                    var openTime = openTimes[i];
-                    string timeDes = StringUtility.Contact(openTime.hourBegin.ToString("D2"), ":", openTime.minuteBegin.ToString("D2")
-                        ,"-",openTime.hourEnd.ToString("D2"),":",openTime.minuteEnd.ToString("D2"));
-                    if(i == 0)
-                    {
-                        openTimeDes = timeDes;
-                    }
-                    else
-                    {
-                        openTimeDes = StringUtility.Contact(openTimeDes,",",timeDes);
-                    }
-                }
-                openTimeText.text = Language.Get("CrossServer119", openTimeDes);
-            }
-
-            lookPlayerObj.SetActive(crossServerModel.IsMatching);
-            matchRedPointBeh.SetActive(!crossServerModel.IsMatching);
         }
 
         private void UpdateMatchInfo()
         {
             int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
-            if (remainNum > 0)
+            //if (remainNum > 0)
+            //{
+            //    reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+            //}
+            //else
+            //{
+            //    reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+            //}
+            reaminNumText.text = StringUtility.Contact(remainNum, "/", crossServerModel.freeMaxMatchNum);
+
+            int remainFreeNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshNum();
+            if (remainFreeNum > 0)
             {
-                reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Green,remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+                freeRefreshText.SetActive(true);
+                refreshMoneyIcon.SetActive(false);
+                freeRefreshText.text = StringUtility.Contact(Language.Get("L2032"), Language.Get("BlessedLand036", remainFreeNum, crossServerModel.freeMaxMatchRefreshNum));
             }
             else
             {
-                reaminNumText.text = StringUtility.Contact(UIHelper.AppendColor(TextColType.Red, remainNum.ToString()), "/", crossServerModel.freeMaxMatchNum);
+                freeRefreshText.SetActive(false);
+                refreshMoneyIcon.SetActive(true);
+                refreshMoneyIcon.SetSmallIconWithMoneyType(crossServerModel.refreshMoneyType);
+                refreshMoneyText.text = StringUtility.Contact(Language.Get("BlessedLand036", CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice(), UIHelper.ReplaceLargeNum( UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType))));
             }
         }
+
 
         private void UpdatePKInfo()
         {
@@ -152,72 +138,13 @@
             UpdateActivityState();
         }
 
-        private void UpdateSecond()
-        {
-            UpdateLookPlayerTime();
-        }
-
-        private void UpdateLookPlayerTime()
-        {
-            if (!crossServerModel.IsMatching)
-            {
-                if(lookPlayerObj.activeInHierarchy)
-                {
-                    matchRedPointBeh.SetActive(true);
-                    lookPlayerObj.SetActive(false);
-                }
-                return;
-            }
-         
-            if(CrossServerOneVsOnePKSeason.Instance.isSatisfyMatch)
-            {
-                int totalSeconds = Mathf.RoundToInt((float)(DateTime.Now - crossServerModel.matchStartTime).TotalSeconds);
-                if (totalSeconds < 3600)
-                {
-                    int minute = totalSeconds / 60;
-                    int seconds = totalSeconds % 60;
-                    lookTimeText.text = StringUtility.Contact(minute.ToString("D2"), ":", seconds.ToString("D2"));
-                }
-                else
-                {
-                    ClickMatch(0);
-                }
-            }
-            else
-            {
-                ClickMatch(0);
-            }
-        }
 
         private void UpdateActivityState()
         {
             bool isInTime = CrossServerOneVsOnePKSeason.Instance.InPkSeason(TimeUtility.ServerNow);
-            bool isOpen = CrossServerOneVsOnePKSeason.Instance.InOpenTime();
             inSeasonTimeObj.SetActive(isInTime);
             outSeasonTimeObj.SetActive(!isInTime);
-            matchBtn.RemoveAllListeners();
-            if (isInTime)
-            {
-                matchBtn_Text.text = Language.Get("CrossServer109");
-                if (isOpen)
-                {
-                    matchBtn_Img.material = MaterialUtility.GetUIDefaultGraphicMaterial();
-                    if (!crossServerModel.IsMatching)
-                    {
-                        matchBtn.AddListener(() => { ClickMatch(1); });
-                    }
-                    else
-                    {
-                        matchBtn_Text.text = Language.Get("CrossServer110");
-                        matchBtn.AddListener(() => { ClickMatch(0); });
-                    }
-                }
-                else
-                {
-                    matchBtn_Img.material = MaterialUtility.GetDefaultSpriteGrayMaterial();
-                    matchBtn.AddListener(() => { SysNotifyMgr.Instance.ShowTip("CrossMatching20"); });
-                }
-            }
+            playerObjs.SetActive(isInTime);
         }
 
         private void ClickBuyTimes()
@@ -225,6 +152,32 @@
             if (!crossServerModel.TryGetBuyMatchTimes("CrossMatching21")) return;
          
             WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
+        }
+
+        private void ClickBuyRefreshMatch()
+        {
+            int price = CrossServerOneVsOnePlayerInfo.Instance.GetDayFreeRefreshPrice();
+            //    UIHelper.ReplaceLargeNum(UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType)
+            if (price == 0)
+            {
+                crossServerModel.SendCrossMatch(1);
+                return;
+            }
+
+            if (UIHelper.GetMoneyCnt(crossServerModel.refreshMoneyType) < (ulong)price)
+            {
+                SysNotifyMgr.Instance.ShowTip("LackMoney", crossServerModel.refreshMoneyType);
+                return;
+            }
+
+            ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"),
+            Language.Get("CrossServerOneVsOne1", price), (bool isOk) =>
+            {
+                if (isOk)
+                {
+                    crossServerModel.SendCrossMatch(1);
+                }
+            });
         }
 
         private void ClickDayAward()
@@ -238,45 +191,6 @@
             WindowCenter.Instance.Open<RankingWin>();
         }
 
-        private void OnStartMatch()
-        {
-            matchRedPointBeh.SetActive(false);
-            lookPlayerObj.SetActive(true);
-            crossServerModel.matchStartTime = DateTime.Now;
-            UpdateLookPlayerTime();
-            UpdateActivityState();
-        }
-
-        private void ClickMatch(int type)
-        {
-            if (type == 1)
-            {
-                if (!AssetVersionUtility.IsUnpriorAssetDownLoadOk())
-                {
-                    InGameDownLoad.Instance.TryDownLoad(InGameDownLoad.Dominant.Whole);
-                    return;
-                }
-                int remainNum = CrossServerOneVsOnePlayerInfo.Instance.GetDayRemainNum();
-                if (remainNum < 1)
-                {
-                    WindowCenter.Instance.Open<CrossSeverOneVsOneBuyMatchTimesWin>();
-                    return;
-                }
-            }
-
-            if (crossServerModel.isClickCoolTime) return;
-
-            DebugEx.Log("ClickMatch......");
-            crossServerModel.isClickCoolTime = true;
-            crossServerModel.SendCrossMatch(type);
-            if(type == 0)
-            {
-                crossServerModel.IsMatching = false;
-                matchRedPointBeh.SetActive(true);
-                lookPlayerObj.SetActive(false);
-                UpdateActivityState();
-            }
-        }
 
         private void ClickMatchRecord()
         {

--
Gitblit v1.8.0