From c4ba58b752703f28b12a8148c736bcc8caaf0e3e Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 14 二月 2019 12:11:05 +0800
Subject: [PATCH] 3335 配置表读取重构。

---
 System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs |  108 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 74 insertions(+), 34 deletions(-)

diff --git a/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs b/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
index e716e7f..7a4227a 100644
--- a/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
+++ b/System/CrossServerOneVsOne/CrossServerOneVsOneRewardModel.cs
@@ -4,6 +4,7 @@
 //--------------------------------------------------------
 using System;
 using System.Collections.Generic;
+using TableConfig;
 using Snxxz.UI;
 //璺ㄦ湇PK濂栧姳淇℃伅
 [XLua.LuaCallCSharp]
@@ -80,12 +81,12 @@
     private int MianOpenLV = 0;//璺ㄦ湇鎸夐挳寮�鍚潯浠�
 
     public string ZoneName = string.Empty;//璧涘尯鍚�
-    private int currentId = 0;
+    private int currentId = 0;//鑾峰彇褰撳墠璧涘尯ID
+    private string crossZoneName = string.Empty;//璧涘尯缂栧彿
     public override void Init()
     {
-        GetSeasonAward();
-        GetSegmentReward();
-        var config = FuncConfigConfig.Get("CrossServerIcon").Numerical1;
+     
+        var config = Config.Instance.Get<FuncConfigConfig>("CrossServerIcon").Numerical1;
         MianOpenLV = int.Parse(config);
     }
 
@@ -101,6 +102,8 @@
 
     public void OnPlayerLoginOk()
     {
+        GetSeasonAward();
+        GetSegmentReward();
         crossServerModel.UpdatePkResultEvent += UpdatePkResultEvent;
         CrossServerOneVsOnePlayerInfo.Instance.UpdatePlayerInfoEvent += UpdatePlayerInfoEvent;
         GetZoneName();
@@ -158,29 +161,38 @@
             WindowCenter.Instance.Open<CrossServerSettlementWin>();
         }
     }
-    public  void GetSeasonAward()//娈典綅濂栧姳鏁版嵁鑾峰彇
+    public void GetSeasonAward()//娈典綅濂栧姳鏁版嵁鑾峰彇
     {
-        // if(currentId)
+
         var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
+        if (CrossServerOneVsOnePKSeason.Instance.CrossZoneName != null)
+        {
+            crossZoneName = CrossServerOneVsOnePKSeason.Instance.CrossZoneName;
+        }
         if (seasonID == 0)
         {
-            seasonID +=1;
+            seasonID += 1;
         }
-        var configPK = CrossRealmPKDanAwardConfig.GetValues();
-      //  var config = Config.Instance.GetAllValues<CrossServerArenaConfig>();
+        if (currentId == seasonID && SegmentRewardDic.Count != 0)
+        {
+            return;
+        }
+        var configPK = Config.Instance.GetAllValues<CrossRealmPKDanAwardConfig>();
+        SegmentRewardDic.Clear();
         for (int i = 0; i < configPK.Count; i++)
         {
             var _config = configPK[i];
-            if (!SegmentRewardDic.ContainsKey(_config.DanLV) && _config.SeasonID== seasonID)
-            {              
+            bool result = crossZoneName.Equals(_config.CrossZoneName);
+            if (!SegmentRewardDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
+            {
                 SeasonAwardClass seasonAwardClass = new SeasonAwardClass();
                 seasonAwardClass.DanLv = _config.DanLV;
-                var crossServerArena = CrossServerArenaConfig.Get(_config.DanLV);
+                var crossServerArena = Config.Instance.Get<CrossServerArenaConfig>(_config.DanLV);
                 if (crossServerArena != null)
                 {
                     seasonAwardClass.Name = crossServerArena.Name;
                     seasonAwardClass.Score = crossServerArena.LVUpScore;
-                }               
+                }
                 var _jsonData = LitJson.JsonMapper.ToObject(_config.DanLVAwardList);
                 List<Item_Class> itemClassList = new List<Item_Class>();
                 for (int j = 0; j < _jsonData.Count; j++)
@@ -199,31 +211,57 @@
                 SegmentRewardDic.Add(_config.DanLV, seasonAwardClass);
             }
         }
+        currentId = seasonID;
     }
-    private void GetSegmentReward()
+    public void GetSegmentReward()//璧涘濂栧姳
     {
-        var CrossRealmPKAward = FuncConfigConfig.Get("CrossRealmPKAward");
-        ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
-        var _jsonData = LitJson.JsonMapper.ToObject(CrossRealmPKAward.Numerical3);
-        foreach (string key in _jsonData.Keys)
+        var seasonID = CrossServerOneVsOnePKSeason.Instance.SeasonID;
+        if (CrossServerOneVsOnePKSeason.Instance.CrossZoneName != null)
         {
-            var _ranking = int.Parse(key);
-            var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
-            for (int j = 0; j < _itemArray.Length; j++)
-            {
-                _award.Add(_ranking, new AwardItem()
-                {
-                    item = new Item(_itemArray[j][0], _itemArray[j][1]),
-                    isBind = _itemArray[j][2],
-                });
-            }
+            crossZoneName = CrossServerOneVsOnePKSeason.Instance.CrossZoneName;
         }
-        SeasonRewardDic = _award;
-        var config = CrossServerArenaConfig.GetValues();
-        for (int i = 0; i < config.Count; i++)
+        if (seasonID == 0)
         {
-            var _config = config[i];
-            if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV))
+            seasonID += 1;
+        }
+        if (currentId == seasonID && SeasonRewardConfigDic.Count != 0)
+        {
+            return;
+        }
+        var crossRealmPKOrderAward = Config.Instance.GetAllValues<CrossRealmPKOrderAwardConfig>();
+        for (int i = 0; i < crossRealmPKOrderAward.Count; i++)
+        {
+            var _config = crossRealmPKOrderAward[i];
+            bool result = crossZoneName.Equals(_config.CrossZoneName);
+            if (seasonID == _config.SeasonID && result)
+            {
+                ImpactRankModel.RankAwardItem _award = new ImpactRankModel.RankAwardItem();
+                var _jsonData = LitJson.JsonMapper.ToObject(_config.SeasonOrderAward);
+                foreach (string key in _jsonData.Keys)
+                {
+                    var _ranking = int.Parse(key);
+                    var _itemArray = LitJson.JsonMapper.ToObject<int[][]>(_jsonData[key].ToJson());
+                    for (int j = 0; j < _itemArray.Length; j++)
+                    {
+                        _award.Add(_ranking, new AwardItem()
+                        {
+                            item = new Item(_itemArray[j][0], _itemArray[j][1]),
+                            isBind = _itemArray[j][2],
+                        });
+                    }
+                }
+                SeasonRewardDic = _award;
+            }
+
+        }
+        //---
+        SeasonRewardConfigDic.Clear();
+        var configPK = Config.Instance.GetAllValues<CrossRealmPKDanAwardConfig>();
+        for (int i = 0; i < configPK.Count; i++)
+        {
+            var _config = configPK[i];
+            bool result = crossZoneName.Equals(_config.CrossZoneName);
+            if (!SeasonRewardConfigDic.ContainsKey(_config.DanLV) && _config.SeasonID == seasonID && result)
             {
                 var _jsonDataC = LitJson.JsonMapper.ToObject(_config.SeasonAwardList);
                 List<Item_Class> itemClassList = new List<Item_Class>();
@@ -242,6 +280,7 @@
                 SeasonRewardConfigDic.Add(_config.DanLV, itemClassList);
             }
         }
+        currentId = seasonID;
     }
     public void CrossRealmPKAwardState(HC102_tagMCCrossRealmPKAwardState info)//c102璺ㄦ湇PK鐜╁濂栧姳璁板綍
     {
@@ -440,7 +479,8 @@
     }
 
     private static int m_PkType = 0;
-    public static int PkType {
+    public static int PkType
+    {
         get { return m_PkType; }
         set { m_PkType = value; }
     }

--
Gitblit v1.8.0