From bed0bf5657dca602614cfc1b0f3f19e4b8aa9984 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 21 八月 2018 13:56:06 +0800
Subject: [PATCH] 2755【前端】仙盟联赛积分奖励新增只根据排名变化奖励

---
 System/FairyAu/FairyLeagueModel.cs |   32 ++++++++++++++++++++++++++++++--
 1 files changed, 30 insertions(+), 2 deletions(-)

diff --git a/System/FairyAu/FairyLeagueModel.cs b/System/FairyAu/FairyLeagueModel.cs
index 8fe0473..da224da 100644
--- a/System/FairyAu/FairyLeagueModel.cs
+++ b/System/FairyAu/FairyLeagueModel.cs
@@ -187,7 +187,7 @@
             private set;
         }
         public readonly int buffTypeId = 22203;
-        public Dictionary<int, List<AwardItem>> integralRankAwardDict = new Dictionary<int, List<AwardItem>>();
+        public Dictionary<int, List<IntegralRankItem>> integralRankAwardDict = new Dictionary<int, List<IntegralRankItem>>();
         public int[] integralRankAwardPer { get; private set; }
         public int integralAddition { get; private set; }
         public Dictionary<int, int[]> crystalSortDict { get; private set; }
@@ -269,7 +269,8 @@
                 foreach (Match match in _regex.Matches(cfg.Numerical1))
                 {
                     var _rank = int.Parse(match.Groups[1].Value);
-                    List<AwardItem> _list = ParseAward(StringUtility.Contact('[', match.Groups[2].Value, ']'));
+                    var _value = StringUtility.Contact('[', match.Groups[2].Value, ']');
+                    List<IntegralRankItem> _list = ParseAward(LitJson.JsonMapper.ToObject<int[][]>(_value));
                     integralRankAwardDict.Add(_rank, _list);
                 }
                 integralRankAwardPer = JsonMapper.ToObject<int[]>(cfg.Numerical2);
@@ -311,6 +312,24 @@
                     _item.item.id = _array[i][0];
                     _item.item.count = _array[i][1];
                     _item.isBind = _array[i][2];
+                    _list.Add(_item);
+                }
+            }
+            return _list;
+        }
+
+        private List<IntegralRankItem> ParseAward(int[][] itemsArray)
+        {
+            List<IntegralRankItem> _list = new List<IntegralRankItem>();
+            if (itemsArray != null)
+            {
+                for (int i = 0; i < itemsArray.Length; i++)
+                {
+                    IntegralRankItem _item = new IntegralRankItem();
+                    _item.id = itemsArray[i][0];
+                    _item.count = itemsArray[i][1];
+                    _item.bind = itemsArray[i][2];
+                    _item.isPer = itemsArray[i].Length > 3 ? itemsArray[i][3] : 1;
                     _list.Add(_item);
                 }
             }
@@ -1103,6 +1122,15 @@
             public int IsFinalMatch;
         }
     }
+
+    public struct IntegralRankItem
+    {
+        public int id;
+        public int count;
+        public int bind;
+        public int isPer;
+    }
+
     [Serializable]
     public class AwardItemUI
     {

--
Gitblit v1.8.0