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/CrossServerModel.cs |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 5 deletions(-)

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>();

--
Gitblit v1.8.0