From 8f3bfa07c7d0ed894fce64c17fa7c5148a67b604 Mon Sep 17 00:00:00 2001
From: Client_PangDeRong <593317293@qq.com>
Date: 星期四, 20 十二月 2018 14:58:52 +0800
Subject: [PATCH] 5398 子 【开发】【1.4】跨服竞技场 / 【前端】【1.4】跨服竞技场开发

---
 System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs |    4 +-
 System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs     |   25 ++++++++++++
 System/CrossServerOneVsOne/CrossServerModel.cs           |   56 +++++++++++++++++++++++++--
 System/CrossServerOneVsOne/CrossServerArenaWin.cs        |    2 
 System/CrossServerOneVsOne/CrossServerPlayerInfo.cs      |    8 ++++
 System/CrossServerOneVsOne/CrossServerRewardModel.cs     |   22 +++++-----
 6 files changed, 97 insertions(+), 20 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerArenaWin.cs b/System/CrossServerOneVsOne/CrossServerArenaWin.cs
index 4216fd6..77eb9a5 100644
--- a/System/CrossServerOneVsOne/CrossServerArenaWin.cs
+++ b/System/CrossServerOneVsOne/CrossServerArenaWin.cs
@@ -83,7 +83,7 @@
 
         private void UpdateActivityState()
         {
-            bool isInTime = false;
+            bool isInTime = CrossServerPKSeason.Instance.InDay(TimeUtility.ServerNow);
             bool isOpen = false;
             matchBtn.RemoveAllListeners();
             if(!isInTime)
diff --git a/System/CrossServerOneVsOne/CrossServerModel.cs b/System/CrossServerOneVsOne/CrossServerModel.cs
index 3066f44..bfa41ec 100644
--- a/System/CrossServerOneVsOne/CrossServerModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerModel.cs
@@ -13,6 +13,8 @@
     {
         public string PkResultLocalSaveKey { get; private set; }
         public List<CrossServerPkResult> localSaveResults { get; private set; }
+        CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
+        public event Action UpdateDayAwardsEvent;
 
         public override void Init()
         {
@@ -21,6 +23,8 @@
 
         public void OnBeforePlayerDataInitialize()
         {
+            rewardModel.CrossRealmPKAwardStateUpdate -= UpdateDayAwardState;
+            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent -= UpdateDayAwardState;
             InitData();
         }
 
@@ -33,7 +37,9 @@
 
         public void OnPlayerLoginOk()
         {
-
+            rewardModel.CrossRealmPKAwardStateUpdate += UpdateDayAwardState;
+            CrossServerPlayerInfo.Instance.UpdatePlayerInfoEvent += UpdateDayAwardState;
+            UpdateDayAwardState();
         }
 
         public override void UnInit()
@@ -45,6 +51,32 @@
         {
             CrossServerPlayerInfo.Instance.InitData();
             pkResultInfo = new CrossServerPkResult();
+        }
+
+        public void UpdateDayAwardState()
+        {
+            var playerInfo = CrossServerPlayerInfo.Instance;
+            for(int i = 0; i < dayAwardTypelist.Count; i++)
+            {
+                var dayAward = dayAwardTypelist[i];
+                int awardType = dayAward.type;
+                switch(awardType)
+                {
+                    case 1:
+                        dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayWinCountAwardState,dayAward.index);
+                        dayAward.SetCompletedNum(playerInfo.DayWinCount);
+                        break;
+                    case 2:
+                        dayAward.IsReceived = rewardModel.IsAwardState(CrossRealmPKAwardStateEnum.DayPKCountAwardState,dayAward.index);
+                        dayAward.SetCompletedNum(playerInfo.DayPKCount);
+                        break;
+                }
+            }
+
+            if(UpdateDayAwardsEvent != null)
+            {
+                UpdateDayAwardsEvent();
+            }
         }
 
         public List<AwardType> sortDayAwardslist = new List<AwardType>();
@@ -80,11 +112,12 @@
             var dayMatchAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical1);
             var dayWinAwardData = JsonMapper.ToObject(CrossRealmPKAward.Numerical2);
             dayAwardTypelist = new List<AwardType>();
+            int dayWinIndex = 0;
             foreach (var num in dayWinAwardData.Keys)
             {
                 int times = int.Parse(num);
                 var items = dayWinAwardData[num];
-                var awardType = new AwardType(times,1);
+                var awardType = new AwardType(times,1,dayWinIndex);
                 dayAwardTypelist.Add(awardType);
                 if (items.IsArray)
                 {
@@ -104,13 +137,16 @@
                         }
                     }
                 }
+
+                dayWinIndex += 1;
             }
 
+            int dayPkIndex = 0;
             foreach (var num in dayMatchAwardData.Keys)
             {
                 int times = int.Parse(num);
                 var items = dayMatchAwardData[num];
-                var awardType = new AwardType(times,2);
+                var awardType = new AwardType(times,2,dayPkIndex);
                 dayAwardTypelist.Add(awardType);
                 if (items.IsArray)
                 {
@@ -130,6 +166,8 @@
                         }
                     }
                 }
+
+                dayPkIndex += 1;
             }
 
             var CrossRealmPKMatchCount = Config.Instance.Get<FuncConfigConfig>("CrossRealmPKMatchCount");
@@ -144,15 +182,17 @@
         public class AwardType
         {
             public int type { get; private set; } //1 鑳滃埄濂栧姳 2 鍖归厤濂栧姳 
+            public int index { get; private set; }
             public int num { get; private set;}
             public int curCompletedNum { get; private set; }
             public CompleteProgress progress { get; private set;}
             public bool IsReceived { get; set; }
             public List<AwardItem> awardItems = new List<AwardItem>();
-            public AwardType(int _num,int _type)
+            public AwardType(int _num,int _type,int _index)
             {
                 type = _type;
                 num = _num;
+                index = _index;
                 curCompletedNum = 0;
                 IsReceived = false;
                 progress = CompleteProgress.Completed;
@@ -224,10 +264,16 @@
             match.Type = (byte)type;
             GameNetSystem.Instance.SendInfo(match);
         }
+
+        public void SendBuyMatchCount()
+        {
+            CC102_tagCMCrossRealmPKBuy pKBuy = new CC102_tagCMCrossRealmPKBuy();
+            GameNetSystem.Instance.SendInfo(pKBuy);
+        }
         #endregion
 
         #region 鍖归厤璁板綍
-    
+
         private void GetLocalSaveData()
         {
             localSaveResults = new List<CrossServerPkResult>();
diff --git a/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs b/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
index 71e8651..b5671be 100644
--- a/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
+++ b/System/CrossServerOneVsOne/CrossServerPlayerInfo.cs
@@ -20,9 +20,12 @@
 
         public int DayPKCount { get; private set; }     // 褰撴棩宸睵K娆℃暟
 
+        public int DayWinCount { get; private set;}  //褰撴棩鑳滃埄娆℃暟
+
         public int DayBuyCount { get; private set; }     // 褰撴棩宸茶喘涔版鏁�
 
         CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
+        public event Action UpdatePlayerInfoEvent;
 
         public void InitData()
         {
@@ -33,6 +36,7 @@
             CWinCount = 0;
             DayPKCount = 0;
             DayBuyCount = 0;
+            DayWinCount = 0;
         }
 
         public void UpdatePlayerInfo(HC101_tagMCCrossRealmPKPlayerInfo playerInfo)
@@ -44,6 +48,10 @@
             this.CWinCount = playerInfo.CWinCount;
             this.DayPKCount = playerInfo.DayPKCount;
             this.DayBuyCount = playerInfo.DayBuyCount;
+            if(UpdatePlayerInfoEvent != null)
+            {
+                UpdatePlayerInfoEvent();
+            }
         }
 
         public bool TryGetMaxRank(out int upScore)
diff --git a/System/CrossServerOneVsOne/CrossServerRewardModel.cs b/System/CrossServerOneVsOne/CrossServerRewardModel.cs
index 68233c7..4505893 100644
--- a/System/CrossServerOneVsOne/CrossServerRewardModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerRewardModel.cs
@@ -1,7 +1,7 @@
-锘�//--------------------------------------------------------
-//    [Author]:           绗簩涓栫晫
-//    [  Date ]:           Wednesday, December 12, 2018
-//--------------------------------------------------------
+锘�//--------------------------------------------------------
+//    [Author]:           绗簩涓栫晫
+//    [  Date ]:           Wednesday, December 12, 2018
+//--------------------------------------------------------
 using System;
 using System.Collections.Generic;
 using TableConfig;
@@ -147,7 +147,7 @@
         }
     }
 
-    private bool IsAwardState(CrossRealmPKAwardStateEnum _cross, int Index)//鏄惁宸查鍙栧鍔�
+    public bool IsAwardState(CrossRealmPKAwardStateEnum _cross, int Index)//鏄惁宸查鍙栧鍔�
     {
         bool _bool = false;
         if (_cross == CrossRealmPKAwardStateEnum.SeasonAwardState)
@@ -187,9 +187,9 @@
         GameNetSystem.Instance.SendInfo(c103);
     }
 
-}
-
-
-
-
-
+}
+
+
+
+
+
diff --git a/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs b/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
index dde5ad1..c90c4a6 100644
--- a/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
+++ b/System/CrossServerOneVsOne/CrossSeverBuyMatchTimesWin.cs
@@ -75,14 +75,14 @@
                         {
                             if (isOk)
                             {
-                               
+                                crossServerModel.SendBuyMatchCount();
                             }
                         });
                     return;
                 }
                 else
                 {
-                   
+                    crossServerModel.SendBuyMatchCount();
                 }
             }
             else
diff --git a/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs b/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
index a9b1337..0d3c469 100644
--- a/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
+++ b/System/CrossServerOneVsOne/CrossSeverDayAwardCell.cs
@@ -25,13 +25,17 @@
 
         CrossServerModel crossServerModel { get { return ModelCenter.Instance.GetModel<CrossServerModel>(); } }
         ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } }
+        CrossServerRewardModel rewardModel { get { return ModelCenter.Instance.GetModel<CrossServerRewardModel>(); } }
+
         CrossServerModel.AwardType awardType;
         float height = 0;
-
+        bool isLineMove = false;
         public override void Display(object _data)
         {
             base.Display(_data);
+            isLineMove = false;
             recieveBtn.AddListener(ClickRecieve);
+            crossServerModel.UpdateDayAwardsEvent += UpdateDayAwards;
             awardType = (CrossServerModel.AwardType)_data;
             DisplayDayAward();
         }
@@ -40,6 +44,7 @@
         {
             base.Dispose();
             recieveBtn.RemoveAllListeners();
+            crossServerModel.UpdateDayAwardsEvent -= UpdateDayAwards;
         }
 
         private void DisplayDayAward()
@@ -74,7 +79,25 @@
         {
             if (awardType == null) return;
 
+            isLineMove = true;
+            switch (awardType.type)
+            {
+                case 1:
+                    rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayWinCountAwardState,awardType.num);
+                    break;
+                case 2:
+                    rewardModel.CrossRealmPKGetAward(CrossRealmPKAwardStateEnum.DayPKCountAwardState, awardType.num);
+                    break;
+            }
+        }
+
+        private void UpdateDayAwards()
+        {
+            if (!isLineMove) return;
+
+            isLineMove = false;
             m_CrossServerCyclicScroll.ShowBegin(this);
         }
+
     }
 }

--
Gitblit v1.8.0