From 807064e2ee58a03e177340bc2cde1df5b73b2273 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 27 三月 2019 11:13:54 +0800
Subject: [PATCH] 3335 升星和洗练界面添加装备星级显示.

---
 System/EquipGem/EquipGemWin.cs                    |    2 
 System/EquipStar/EquipStarModel.cs                |   37 +++++++++++++++++-
 Lua/Gen/SnxxzUIEquipStarModelWrap.cs              |    2 
 System/EquipStar/EquipStarUpgradeCandidate.cs     |    1 
 System/ItemTip/EquipTipUtility.cs                 |    4 +-
 System/EquipGem/EquipStrengthSelectBehaviour.cs   |    2 
 System/EquipStar/EquipStarUpgradeCandidateSlot.cs |    8 ++++
 System/EquipTrain/EquipTrainModel.cs              |    2 +
 System/EquipGem/EquipGemSelectBehaviour.cs        |    2 
 System/EquipGem/EquipStrengthWin.cs               |    4 +-
 System/EquipGem/EquipGemModel.cs                  |    2 
 System/EquipStar/EquipStarWin.cs                  |    5 ++
 12 files changed, 60 insertions(+), 11 deletions(-)

diff --git a/Lua/Gen/SnxxzUIEquipStarModelWrap.cs b/Lua/Gen/SnxxzUIEquipStarModelWrap.cs
index 034bb0a..32ca80d 100644
--- a/Lua/Gen/SnxxzUIEquipStarModelWrap.cs
+++ b/Lua/Gen/SnxxzUIEquipStarModelWrap.cs
@@ -518,7 +518,7 @@
                 {
                     Int2 _equipPosition;translator.Get(L, 2, out _equipPosition);
                     
-                        int gen_ret = gen_to_be_invoked.GetEquipStarLevel( _equipPosition );
+                        int gen_ret = gen_to_be_invoked.GetStarLevel( _equipPosition );
                         LuaAPI.xlua_pushinteger(L, gen_ret);
                     
                     
diff --git a/System/EquipGem/EquipGemModel.cs b/System/EquipGem/EquipGemModel.cs
index 9bdbdd1..8f02224 100644
--- a/System/EquipGem/EquipGemModel.cs
+++ b/System/EquipGem/EquipGemModel.cs
@@ -288,7 +288,7 @@
                         starLimit = itemLevelStars[equip.config.LV];
                     }
                 }
-                var star = Mathf.Min(starLimit, equipStarModel.GetEquipStarLevel(equipPosition));
+                var star = Mathf.Min(starLimit, equipStarModel.GetStarLevel(equipPosition));
                 if (star < condition.equipStar)
                 {
                     return false;
diff --git a/System/EquipGem/EquipGemSelectBehaviour.cs b/System/EquipGem/EquipGemSelectBehaviour.cs
index c7c6552..b1bcd79 100644
--- a/System/EquipGem/EquipGemSelectBehaviour.cs
+++ b/System/EquipGem/EquipGemSelectBehaviour.cs
@@ -73,7 +73,7 @@
                 m_ItemName.color = UIHelper.GetUIColor(item.config.ItemColor, true);
 
                 var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV);
-                var starLevel = Mathf.Min(maxStar, equipStarModel.GetEquipStarLevel(new Int2(equipLevel, equipPlace)));
+                var starLevel = Mathf.Min(maxStar, equipStarModel.GetStarLevel(new Int2(equipLevel, equipPlace)));
                 m_EquipStar.text = starLevel == 0 ? string.Empty : Language.Get("EquipStarLevel", starLevel);
             }
         }
diff --git a/System/EquipGem/EquipGemWin.cs b/System/EquipGem/EquipGemWin.cs
index 2cc30cf..91a2dc8 100644
--- a/System/EquipGem/EquipGemWin.cs
+++ b/System/EquipGem/EquipGemWin.cs
@@ -244,7 +244,7 @@
                 });
 
                 var maxStar = EquipStarModel.GetMaxStarLevel(equip.config.ItemColor, equip.config.LV);
-                var starLevel = Mathf.Min(maxStar, equipStarModel.GetEquipStarLevel(equipPosition));
+                var starLevel = Mathf.Min(maxStar, equipStarModel.GetStarLevel(equipPosition));
                 m_EquipStar.text = starLevel == 0 ? string.Empty : Language.Get("EquipStarLevel", starLevel);
             }
 
diff --git a/System/EquipGem/EquipStrengthSelectBehaviour.cs b/System/EquipGem/EquipStrengthSelectBehaviour.cs
index df9d775..d65d349 100644
--- a/System/EquipGem/EquipStrengthSelectBehaviour.cs
+++ b/System/EquipGem/EquipStrengthSelectBehaviour.cs
@@ -77,7 +77,7 @@
                 m_ItemName.color = UIHelper.GetUIColor(item.config.ItemColor, true);
 
                 var maxStar = EquipStarModel.GetMaxStarLevel(item.config.ItemColor, item.config.LV);
-                var starLevel = Mathf.Min(maxStar, equipStarModel.GetEquipStarLevel(new Int2(equipLevel, equipPlace)));
+                var starLevel = Mathf.Min(maxStar, equipStarModel.GetStarLevel(new Int2(equipLevel, equipPlace)));
                 m_EquipStar.text = Language.Get("EquipStarLevel", starLevel);
                 m_EquipStar.gameObject.SetActive(starLevel>0);
             }
diff --git a/System/EquipGem/EquipStrengthWin.cs b/System/EquipGem/EquipStrengthWin.cs
index 3eb4e36..1fb0ae8 100644
--- a/System/EquipGem/EquipStrengthWin.cs
+++ b/System/EquipGem/EquipStrengthWin.cs
@@ -255,7 +255,7 @@
             if (equiped)
             {
                 int equipIndex = EquipPlaceMapConfig.GetServerPlace(equipLevel, equipPlace);
-                int star = equipStarModel.GetEquipStarLevel( new Int2(equipLevel, equipPlace));
+                int star = equipStarModel.GetStarLevel( new Int2(equipLevel, equipPlace));
                 int equipLv = 0;
                 int advancedLv = 0;
                 if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//鑾峰彇褰撳墠寮哄寲绛夌骇
@@ -366,7 +366,7 @@
             bool isBool = false;
             var equipPosition = new Int2(strengthModel.SelectLevel, strengthModel.SelectEquipPlace);
             int equipIndex = EquipSet.ClientPlaceToServerPlace(equipPosition);
-            int star = equipStarModel.GetEquipStarLevel(equipPosition);
+            int star = equipStarModel.GetStarLevel(equipPosition);
             int equipLv = 0;
             if (strengthModel.EquipStrengthDic.ContainsKey(equipIndex))//鑾峰彇褰撳墠寮哄寲绛夌骇
             {
diff --git a/System/EquipStar/EquipStarModel.cs b/System/EquipStar/EquipStarModel.cs
index 63579a6..f2eb72b 100644
--- a/System/EquipStar/EquipStarModel.cs
+++ b/System/EquipStar/EquipStarModel.cs
@@ -64,6 +64,12 @@
 
             equipStarLevel.value = GetEquipStarLevel(new Int2(selectedLevel.value, selectedPlace.value));
             selectedPlace.dirty = true;
+
+            for (int i = 0; i < candidatePlaces.Count; i++)
+            {
+                var candidate = candidatePlaces[i];
+                candidate.starLevel.value = GetEquipStarLevel(candidate.equipPosition);
+            }
         }
 
         void OnGetUpgradeStarResult(H0721_tagMakeItemAnswer info)
@@ -169,7 +175,9 @@
                 {
                     var place = places[i];
                     var equipPosition = new Int2(level, place);
-                    candidatePlaces[place] = new EquipStarUpgradeCandidate(equipPosition);
+                    var candidate = new EquipStarUpgradeCandidate(equipPosition);
+                    candidate.starLevel.value = GetEquipStarLevel(equipPosition);
+                    candidatePlaces[place] = candidate;
                     if (i == 0)
                     {
                         SelectPlace(equipPosition);
@@ -287,6 +295,23 @@
             return max;
         }
 
+        public int GetEquipPositionMaxStarLevel(Int2 equipPosition)
+        {
+            var equipGuid = equipModel.GetEquip(equipPosition);
+            if (equipGuid == null)
+            {
+                return 0;
+            }
+
+            var equip = packModel.GetItemByGuid(equipGuid);
+            if (equip == null)
+            {
+                return 0;
+            }
+
+            return GetMaxStarLevel(equip.config.ItemColor, equip.config.LV);
+        }
+
         public int GetTotalStarLevel(int level)
         {
             if (!equipStars.ContainsKey(level))
@@ -297,7 +322,7 @@
             return equipStars[level].GetTotalStarLevel();
         }
 
-        public int GetEquipStarLevel(Int2 equipPosition)
+        public int GetStarLevel(Int2 equipPosition)
         {
             if (!equipStars.ContainsKey(equipPosition.x))
             {
@@ -307,6 +332,14 @@
             return equipStars[equipPosition.x].GetEquipStarLevel(equipPosition.y);
         }
 
+        public int GetEquipStarLevel(Int2 equipPosition)
+        {
+            var starLevel = GetStarLevel(equipPosition);
+            var maxLevel = GetEquipPositionMaxStarLevel(equipPosition);
+
+            return Mathf.Min(starLevel, maxLevel);
+        }
+
         public List<int> GetMaterialGetWays(Int2 equipPosition, int starLevel)
         {
             var config = EquipStarConfig.Get(equipPosition.x, equipPosition.y, starLevel);
diff --git a/System/EquipStar/EquipStarUpgradeCandidate.cs b/System/EquipStar/EquipStarUpgradeCandidate.cs
index 1ab8a52..ace5f49 100644
--- a/System/EquipStar/EquipStarUpgradeCandidate.cs
+++ b/System/EquipStar/EquipStarUpgradeCandidate.cs
@@ -13,6 +13,7 @@
     {
         public readonly Int2 equipPosition;
         public readonly LogicBool selected = new LogicBool();
+        public readonly LogicInt starLevel = new LogicInt();
 
         public EquipStarUpgradeCandidate(Int2 equipPosition)
         {
diff --git a/System/EquipStar/EquipStarUpgradeCandidateSlot.cs b/System/EquipStar/EquipStarUpgradeCandidateSlot.cs
index ca78091..ebea1c6 100644
--- a/System/EquipStar/EquipStarUpgradeCandidateSlot.cs
+++ b/System/EquipStar/EquipStarUpgradeCandidateSlot.cs
@@ -14,6 +14,7 @@
         [SerializeField] Image m_BackGround;
         [SerializeField] Image m_EmptyItem;
         [SerializeField] ItemCell m_ItemCell;
+        [SerializeField] Text m_EquipStar;
         [SerializeField] Text m_Description1;
         [SerializeField] Text m_Description2;
         [SerializeField] Button m_Select;
@@ -76,6 +77,13 @@
                 var selected = this.candidate.selected.Fetch();
                 m_BackGround.SetSprite(selected ? "Title_RightWindow" : "Title_PopupWindow");
             }
+
+            if (force || this.candidate.starLevel.dirty)
+            {
+                var starLevel = this.candidate.starLevel.Fetch();
+                m_EquipStar.text = starLevel >= 1 ? string.Format("{0}鏄�", starLevel) : "";
+            }
+
         }
     }
 
diff --git a/System/EquipStar/EquipStarWin.cs b/System/EquipStar/EquipStarWin.cs
index 96992f9..20c1a9d 100644
--- a/System/EquipStar/EquipStarWin.cs
+++ b/System/EquipStar/EquipStarWin.cs
@@ -17,6 +17,7 @@
         [SerializeField] RectTransform m_LevelContainer;
         [SerializeField] ImageCouple[] m_Stars;
         [SerializeField] ItemCell m_TargetEquip;
+        [SerializeField] Text m_EquipStar;
         [SerializeField] Materials m_Materials;
         [SerializeField] Text m_SuccessRate;
         [SerializeField] RectTransform m_EmptyHint;
@@ -121,9 +122,13 @@
                     m_TargetEquip.gameObject.SetActive(true);
                     m_TargetEquip.Init(equip);
                     currentStarLevel = model.GetEquipStarLevel(equipPosition);
+
+                    m_EquipStar.gameObject.SetActive(true);
+                    m_EquipStar.text = currentStarLevel >= 1 ? string.Format("{0}鏄�", currentStarLevel) : "";
                 }
                 else
                 {
+                    m_EquipStar.gameObject.SetActive(false);
                     m_TargetEquip.gameObject.SetActive(false);
                 }
 
diff --git a/System/EquipTrain/EquipTrainModel.cs b/System/EquipTrain/EquipTrainModel.cs
index 431e307..d534359 100644
--- a/System/EquipTrain/EquipTrainModel.cs
+++ b/System/EquipTrain/EquipTrainModel.cs
@@ -234,6 +234,7 @@
                     var trainCandidate = new EquipTrainCandidate(equipPosition);
                     trainCandidate.trainLevel.value = GetTrainLevel(equipPosition);
                     trainCandidate.equipGuid.value = equipModel.GetEquip(equipPosition);
+                    trainCandidate.starLevel.value = starModel.GetEquipStarLevel(equipPosition);
                     candidatePlaces.Add(trainCandidate);
                 }
 
@@ -292,6 +293,7 @@
             var trainState = GetEquipPlaceTrainState(equipPosition);
             equipTrainLevel.value = GetTrainLevel(equipPosition);
             equipTrainMaxLevel.value = trainState == TrainState.Empty ? -1 : GetMaxTrainLevel(equipPosition);
+            equipTrainMaxLevel.dirty = true;
             material.value = GetTrainMaterial(equipPosition);
 
             operateType.value = CalculateTrainOperateType(equipPosition);
diff --git a/System/ItemTip/EquipTipUtility.cs b/System/ItemTip/EquipTipUtility.cs
index 5e1c557..f8a776c 100644
--- a/System/ItemTip/EquipTipUtility.cs
+++ b/System/ItemTip/EquipTipUtility.cs
@@ -504,7 +504,7 @@
             var starInfo = new StarInfo();
             starInfo.equipPosition = new Int2(config.LV, config.EquipPlace);
             starInfo.maxLevel = EquipStarModel.GetMaxStarLevel(config.ItemColor, config.LV);
-            starInfo.starLevel = starModel.GetEquipStarLevel(new Int2(config.LV, config.EquipPlace));
+            starInfo.starLevel = starModel.GetStarLevel(new Int2(config.LV, config.EquipPlace));
 
             return starInfo;
         }
@@ -668,7 +668,7 @@
             GemHoleCondition condition;
             if (gemModel.TryGetGemHoleCondition(hole, out condition))
             {
-                var star = starModel.GetEquipStarLevel(equipPosition);
+                var star = starModel.GetStarLevel(equipPosition);
                 if (Mathf.Min(star, maxStar) < condition.equipStar)
                 {
                     return false;

--
Gitblit v1.8.0