From 7da5f5b780af330ecda645f5538e0917bd9eeb01 Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期三, 26 九月 2018 19:37:20 +0800
Subject: [PATCH] Merge branch 'master' into 1871天赋功能

---
 System/Dogz/DogzModel.cs |   76 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 73 insertions(+), 3 deletions(-)

diff --git a/System/Dogz/DogzModel.cs b/System/Dogz/DogzModel.cs
index d33c8ad..0977455 100644
--- a/System/Dogz/DogzModel.cs
+++ b/System/Dogz/DogzModel.cs
@@ -26,6 +26,7 @@
             selectEquipPlacelist = new List<ItemModel>();
             dogzAssistStateDict = new Dictionary<int, int>();
             m_DogzEquipAttrDict = new Dictionary<int, int>();
+            m_DogzAttrDict = new Dictionary<int, int>();
         }
 
         public void OnAfterPlayerDataInitialize()
@@ -56,7 +57,7 @@
         public int DogzPackGridCnt { get; private set; } //绁炲吔鐗╁搧鑳屽寘鏍煎瓙鏁�
         public int[] AddAssistItemCnt { get; private set; } //澧炲姞鍔╂垬绁炲吔鎬绘暟鐨勭墿鍝佹暟閲�
         public Dictionary<int, int> m_DogzEquipStrenLimit { get; private set;} //绁炲吔瑁呭寮哄寲涓婇檺 鍝佽川 寮哄寲绛夌骇
-
+        public string dogzScoreFormula { get; private set; } //绁炲吔璇勫垎鍏紡
         void ParseConfig()
         {
             var _dogzCfgs = Config.Instance.GetAllValues<DogzConfig>();
@@ -78,6 +79,8 @@
             m_DogzEquipStrenLimit = ConfigParse.GetDic<int, int>(_funcCfg.Numerical4);
             _funcCfg = Config.Instance.Get<FuncConfigConfig>("DogzPack");
             DogzPackGridCnt = int.Parse(_funcCfg.Numerical1);
+            _funcCfg = Config.Instance.Get<FuncConfigConfig>("DogzGrade");
+            dogzScoreFormula = _funcCfg.Numerical1;
         }
         /// <summary>
         /// 鑾峰緱鏍煎瓙鍙互绌挎埓鐨勮澶囬檺鍒�  绁炲吔Id  鏍煎瓙绱㈠紩 
@@ -103,7 +106,7 @@
         /// </summary>
         /// <param name="_index"></param>
         /// <returns></returns>
-        public static string GetDogzPartNameByIndex(int _index)
+        public string GetDogzPartNameByIndex(int _index)
         {
             switch (_index)
             {
@@ -122,7 +125,7 @@
             }
         }
 
-        public static string GetItemColorName(int _itemColor)
+        public string GetItemColorName(int _itemColor)
         {
             switch (_itemColor)
             {
@@ -143,6 +146,73 @@
                     return string.Empty;
             }
         }
+
+        public int GetDogzScoreById(int dogzId)
+        {
+            DogzConfig dogzConfig = Config.Instance.Get<DogzConfig>(dogzId);
+            if (dogzConfig == null) return 0;
+            Equation.Instance.Clear();
+            Equation.Instance.AddKeyValue("FightPowerEx",dogzConfig.FightPowerEx);
+            Equation.Instance.AddKeyValue("EquipGSFormula", GetDogzEquipScore(dogzId));
+            GetDogzAttrDictById(dogzId);
+            foreach(var key in m_DogzAttrDict.Keys)
+            {
+                PlayerPropertyConfig propertyConfig = Config.Instance.Get<PlayerPropertyConfig>(key);
+                if (propertyConfig != null)
+                {
+                    Equation.Instance.AddKeyValue(propertyConfig.Parameter, m_DogzAttrDict[key]);
+                }
+            }
+            return Equation.Instance.Eval<int>(dogzScoreFormula);
+        }
+        public Dictionary<int, int> m_DogzAttrDict { get; private set; }
+        public Dictionary<int, int> GetDogzAttrDictById(int dogzId)
+        {
+            m_DogzAttrDict.Clear();
+            DogzConfig dogzConfig = Config.Instance.Get<DogzConfig>(dogzId);
+            int[] baseAttrIds = dogzConfig.BaseAttrTypes;
+            int[] baseAttrValues = dogzConfig.BaseAttrValues;
+            for (int i = 0; i < baseAttrIds.Length; i++)
+            {
+                if (!m_DogzAttrDict.ContainsKey(baseAttrIds[i]))
+                {
+                    m_DogzAttrDict.Add(baseAttrIds[i], baseAttrValues[i]);
+                }
+                else
+                {
+                    m_DogzAttrDict[baseAttrIds[i]] += baseAttrValues[i];
+                }
+            }
+
+            Dictionary<int, int> dogzStrenDict = beastModel.AllEnhancedProperties(dogzId);
+            foreach (var key in dogzStrenDict.Keys)
+            {
+                if (!m_DogzAttrDict.ContainsKey(key))
+                {
+                    m_DogzAttrDict.Add(key, dogzStrenDict[key]);
+                }
+                else
+                {
+                    m_DogzAttrDict[key] += dogzStrenDict[key];
+                }
+            }
+            return m_DogzAttrDict;
+        }
+
+        public int GetDogzEquipScore(int dogzId)
+        {
+            int score = 0;
+            List<ItemModel> itemModels = GetDogzEquips(dogzId);
+            if(itemModels != null)
+            {
+                for(int i = 0; i < itemModels.Count; i++)
+                {
+                    score += itemModels[i].equipScore;
+                }
+            }
+            return score;
+        }
+
         #endregion
 
         public int GetAssistItemCnt()

--
Gitblit v1.8.0