From e005994d32105faa2cccdedfa2de4eaa8223fe0a Mon Sep 17 00:00:00 2001
From: client_linchunjie <461730578@qq.com>
Date: 星期二, 26 三月 2019 11:38:55 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts

---
 System/Equip/EquipModel.cs |   80 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 3 deletions(-)

diff --git a/System/Equip/EquipModel.cs b/System/Equip/EquipModel.cs
index ad92a5e..2f91075 100644
--- a/System/Equip/EquipModel.cs
+++ b/System/Equip/EquipModel.cs
@@ -258,12 +258,86 @@
             }
         }
 
-        public void SelectCandidateEquip(string equipGuid)
+        public bool HasSamePlaceCandidateEquip(Int2 equipPosition)
         {
             for (int i = 0; i < candidateEquips.Count; i++)
             {
-                var candidateEquip = candidateEquips[i];
-                candidateEquip.selected.value = candidateEquip.guid == equipGuid;
+                var item = packModel.GetItemByGuid(candidateEquips[i].guid);
+                if (item != null && item.config.LV == equipPosition.x && item.config.EquipPlace == equipPosition.y)
+                {
+                    return true;
+                }
+            }
+
+            return false;
+        }
+
+        public void RecommendCandidateEquip(Int2 equipPosition)
+        {
+            var highestScore = 0;
+            var highestScoreEquip = string.Empty;
+            for (int i = 0; i < candidateEquips.Count; i++)
+            {
+                var candidate = candidateEquips[i];
+                var item = packModel.GetItemByGuid(candidate.guid);
+                if (equipPosition.x == item.config.LV && item.config.EquipPlace == equipPosition.y)
+                {
+                    if (item.score > highestScore)
+                    {
+                        highestScore = item.score;
+                        highestScoreEquip = candidate.guid;
+                    }
+                }
+            }
+
+            if (!string.IsNullOrEmpty(highestScoreEquip))
+            {
+                candidateEquips.Sort((CandidateEquip x, CandidateEquip y) =>
+                {
+                    if (x.guid == highestScoreEquip && y.guid != highestScoreEquip)
+                    {
+                        return -1;
+                    }
+                    else if (x.guid != highestScoreEquip && y.guid == highestScoreEquip)
+                    {
+                        return 1;
+                    }
+                    else
+                    {
+                        var betterX = CompareToCurrent(x.guid);
+                        var betterY = CompareToCurrent(y.guid);
+
+                        if (betterX > 0 && betterY < 0)
+                        {
+                            return -1;
+                        }
+                        else if (betterX < 0 && betterY > 0)
+                        {
+                            return 1;
+                        }
+                        else
+                        {
+                            var a = packModel.GetItemByGuid(x.guid);
+                            var b = packModel.GetItemByGuid(y.guid);
+                            return -a.score.CompareTo(b.score);
+                        }
+                    }
+
+                });
+            }
+
+            for (int i = 0; i < candidateEquips.Count; i++)
+            {
+                candidateEquips[i].selected.value = candidateEquips[i].guid == highestScoreEquip;
+            }
+
+        }
+
+        public void ClearRecommendCandidateEquip()
+        {
+            for (int i = 0; i < candidateEquips.Count; i++)
+            {
+                candidateEquips[i].selected.value = false;
             }
         }
 

--
Gitblit v1.8.0