From 623db722f78fd093fa9bba54e62125dcc12de44c Mon Sep 17 00:00:00 2001
From: client_Zxw <826696702@qq.com>
Date: 星期三, 17 十月 2018 17:45:59 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Rune/RuneModel.cs |  101 ++++++++++++--------------------------------------
 1 files changed, 25 insertions(+), 76 deletions(-)

diff --git a/System/Rune/RuneModel.cs b/System/Rune/RuneModel.cs
index cc0de13..8d99de6 100644
--- a/System/Rune/RuneModel.cs
+++ b/System/Rune/RuneModel.cs
@@ -116,12 +116,6 @@
                         var _result = Equation.Instance.Eval<float>(runeExpFormula);
                         runeExpResultDict.Add(i + 1, _result);
                     }
-                    doublePropertyRunes = new List<int>();
-                    var _cfgs = Config.Instance.GetAllValues<RuneComposeConfig>();
-                    foreach (var _cfg in _cfgs)
-                    {
-                        doublePropertyRunes.Add(_cfg.TagItemID);
-                    }
 
                     config = Config.Instance.Get<FuncConfigConfig>("RuneDoubleInlayCnt");
                     doublePropRuneInlayDict = ConfigParse.GetDic<int, int>(config.Numerical1);
@@ -227,7 +221,6 @@
             return Mathf.RoundToInt(runeValue);
         }
         private Dictionary<int, float> runeExpResultDict = new Dictionary<int, float>();
-        public List<int> doublePropertyRunes { get; private set; }
         public int GetRuneNeedExp(int id, int level)
         {
             float _levelUpExp = 0;
@@ -914,103 +907,59 @@
 
         public bool CanEquipBetterRune(int _hole)
         {
-            var _runeHole = GetHoleRune(_hole);
-            if (_runeHole == null)
+            foreach (var rune in runePackData.Values)
             {
-                return false;
-            }
-            var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id);
-            var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id);
-            var _propertyType = _runeCfg.AttrType[0];
-            if (_runeCfg == null)
-            {
-                return false;
-            }
-            foreach (var _rune in runePackData.Values)
-            {
-                if (_rune.IsRuneCream)
+                if (IsBetterRune(rune, _hole))
                 {
-                    continue;
-                }
-                var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_rune.id);
-                if (_runeBetterCfg == null)
-                {
-                    continue;
-                }
-                bool _same = false;
-                for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++)
-                {
-                    if (_runeBetterCfg.AttrType[i] == _propertyType)
-                    {
-                        _same = true;
-                        break;
-                    }
-                }
-                if (!_same)
-                {
-                    continue;
-                }
-                var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_rune.id);
-                if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor
-                    || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2))
-                {
-                    if (runeComposeModel.m_RuneBothPropertys.Contains(_rune.id)
-                        && GetDoublePropLimitCount() <= GetCurrentDoublePropCount()
-                        && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id))
-                    {
-                        return false;
-                    }
                     return true;
                 }
             }
             return false;
         }
 
-        public bool IsBetterRune(RuneData _data, int _hole)
+        public bool IsBetterRune(RuneData rune, int _hole)
         {
-            var _runeHole = GetHoleRune(_hole);
-            if (_runeHole == null)
+            if (rune.IsRuneCream)
             {
                 return false;
             }
-            var _runeCfg = Config.Instance.Get<RuneConfig>(_runeHole.id);
-            var _itemCfg = Config.Instance.Get<ItemConfig>(_runeHole.id);
-            var _propertyType = _runeCfg.AttrType[0];
-            if (_runeCfg == null)
+            var runeHole = GetHoleRune(_hole);
+            if (runeHole == null)
             {
                 return false;
             }
-            if (_data.IsRuneCream)
+            var runeHoleConfig = Config.Instance.Get<RuneConfig>(runeHole.id);
+            var itemHoleConfig = Config.Instance.Get<ItemConfig>(runeHole.id);
+            var propertyType = runeHoleConfig.AttrType[0];
+            if (runeHoleConfig == null)
             {
                 return false;
             }
-            var _runeBetterCfg = Config.Instance.Get<RuneConfig>(_data.id);
-            bool _same = false;
-            for (int i = 0; i < _runeBetterCfg.AttrType.Length; i++)
+
+            var runeConfig = Config.Instance.Get<RuneConfig>(rune.id);
+            bool same = false;
+            for (int i = 0; i < runeConfig.AttrType.Length; i++)
             {
-                if (_runeBetterCfg.AttrType[i] == _propertyType)
+                if (runeConfig.AttrType[i] == propertyType)
                 {
-                    _same = true;
+                    same = true;
                     break;
                 }
             }
-            if (!_same)
+            if (!same)
             {
                 return false;
             }
-            var _itemBetterCfg = Config.Instance.Get<ItemConfig>(_data.id);
-            if (_itemBetterCfg.ItemColor > _itemCfg.ItemColor
-                || (_itemBetterCfg.ItemColor == _itemCfg.ItemColor && _runeCfg.AttrType.Length == 1 && _runeBetterCfg.AttrType.Length == 2))
+
+            bool isDoubleRuneHole = runeComposeModel.m_RuneBothPropertys.Contains(runeHole.id);
+            bool isDoubleRune = runeComposeModel.m_RuneBothPropertys.Contains(rune.id);
+            if (isDoubleRuneHole != isDoubleRune)
             {
-                if (runeComposeModel.m_RuneBothPropertys.Contains(_data.id)
-                    && GetDoublePropLimitCount() <= GetCurrentDoublePropCount()
-                    && !runeComposeModel.m_RuneBothPropertys.Contains(_runeHole.id))
-                {
-                    return false;
-                }
-                return true;
+                return isDoubleRune && GetCurrentDoublePropCount() < GetDoublePropLimitCount();
             }
-            return false;
+
+            var itemConfig = Config.Instance.Get<ItemConfig>(rune.id);
+            return itemConfig.ItemColor > itemHoleConfig.ItemColor;
         }
 
         public bool CanEquipHoleRune(int id, int _color, out int _hole)

--
Gitblit v1.8.0