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