From 49d14c36c7a6ec949fc18c118896550b45bcbfba Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 04 三月 2019 23:24:01 +0800
Subject: [PATCH] 3555 新版装备系统开发。

---
 System/Equip/EquipSuitPropertyWidget.cs |   92 +++++++++++++++++++++++++---------------------
 1 files changed, 50 insertions(+), 42 deletions(-)

diff --git a/System/Equip/EquipSuitPropertyWidget.cs b/System/Equip/EquipSuitPropertyWidget.cs
index 776308c..ddb5ceb 100644
--- a/System/Equip/EquipSuitPropertyWidget.cs
+++ b/System/Equip/EquipSuitPropertyWidget.cs
@@ -18,24 +18,39 @@
 
         [SerializeField] EquipSuitPropertyBar m_TwoSuit;
         [SerializeField] EquipSuitPropertyBar m_FiveSuit;
+        [SerializeField] Text m_EightSuitTitle;
         [SerializeField] Text m_EightSuitDescription;
 
         EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
         EquipStarModel starModel { get { return ModelCenter.Instance.GetModel<EquipStarModel>(); } }
         PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
 
-        public void Display(int level)
+        public void Init(int level)
+        {
+            var maxLevel = starModel.GetMaxStarLevel(level);
+            m_StarToggles[0].SetActive(true);
+            m_StarToggles[1].SetActive(maxLevel >= 3);
+            m_StarToggles[2].SetActive(maxLevel >= 6);
+            m_StarToggles[3].SetActive(maxLevel >= 9);
+        }
+
+        public void Display(int level, int star)
         {
             m_SuitName.text = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.TwoSuit)[0].name;
             for (int i = 1; i <= 8; i++)
             {
                 var equip = packModel.GetItemByGuid(model.GetEquipSet(level).GetEquip(i));
-                m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(equip.config.SuiteiD > 0 ? TextColType.Green : TextColType.Gray);
+                var hasSuit = equip != null && equip.config.SuiteiD > 0;
+                m_SuitEquipNames[i - 1].color = UIHelper.GetUIColor(hasSuit ? TextColType.Green : TextColType.Gray);
             }
 
-            m_TwoSuit.Display(model.GetEquipSuitEntry(level, EquipSuitType.TwoSuit));
-            m_FiveSuit.Display(model.GetEquipSuitEntry(level, EquipSuitType.FiveSuit));
-            m_EightSuitDescription.text = GetEightSuitDescription(level);
+            m_TwoSuit.Display(model.GetEquipSuitEntry(level, star, EquipSuitType.TwoSuit));
+            m_FiveSuit.Display(model.GetEquipSuitEntry(level, star, EquipSuitType.FiveSuit));
+            m_EightSuitDescription.text = GetEightSuitDescription(level, star);
+            var eightSuitLevel = starModel.GetSuitLevel(level, EquipSuitType.EightSuit);
+            var color = UIHelper.GetUIColor(eightSuitLevel >= star ? TextColType.Green : TextColType.Gray, true);
+            m_EightSuitTitle.color = color;
+            m_EightSuitDescription.color = color;
         }
 
         public void Dispose()
@@ -43,67 +58,60 @@
 
         }
 
-        private string GetEightSuitDescription(int level)
+        private string GetEightSuitDescription(int level, int star)
         {
-            var lines = new List<string>();
             var configs = EquipSuitConfig.GetConfigs(PlayerDatas.Instance.baseData.Job, level, EquipSuitType.EightSuit);
             for (int i = 0; i < configs.Count; i++)
             {
                 var config = configs[i];
-                var description = string.Empty;
-                if (config.skillID > 0)
+                if (config.star == star)
                 {
-                    description = config.description;
-                }
-                else
-                {
-                    var propertyConfig = PlayerPropertyConfig.Get(config.attr.x);
-                    var propertyDescription = PlayerPropertyConfig.GetPropertyDescription(config.attr.x, config.attr.y);
-                    description = StringUtility.Contact(propertyConfig.Name, " +", propertyDescription);
-                }
+                    var description = string.Empty;
+                    if (config.skillID > 0)
+                    {
+                        description = config.description;
+                    }
+                    else
+                    {
+                        var propertyConfig = PlayerPropertyConfig.Get(config.attr[0].x);
+                        var propertyDescription = PlayerPropertyConfig.GetPropertyDescription(config.attr[0].x, config.attr[0].y);
+                        description = StringUtility.Contact(propertyConfig.Name, " +", propertyDescription);
+                    }
 
-                var line = string.Format("{0}鏄熻澶囷細 {1}", config.star, description);
-                var starLevel = starModel.GetSuitLevel(level, EquipSuitType.EightSuit);
-                lines.Add(UIHelper.AppendStringColor(config.star >= starLevel ? TextColType.Green : TextColType.Gray, line));
+                    return description;
+                }
             }
 
-            return string.Join("\n", lines.ToArray());
+            return string.Empty;
         }
 
+        [System.Serializable]
         public class StarToggle
         {
             public int star;
             public Text title;
             public Toggle toggle;
 
-            public void Display()
+            EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
+
+            public void SetActive(bool active)
             {
-
-                title.gameObject.SetActive(true);
-            }
-
-            public void Hide()
-            {
-
+                title.gameObject.SetActive(active);
+                if (active)
+                {
+                    toggle.SetListener(OnValueChange);
+                }
+                else
+                {
+                    toggle.RemoveAllListeners();
+                }
             }
 
             private void OnValueChange(bool value)
             {
                 if (value)
                 {
-                    switch (star)
-                    {
-                        case 0:
-                            break;
-                        case 3:
-                            break;
-                        case 6:
-                            break;
-                        case 9:
-                            break;
-                        default:
-                            break;
-                    }
+                    model.selectedStarLevel.value = star;
                 }
             }
 

--
Gitblit v1.8.0