From 57f21b5ec74d8164ddbcca3538aecb73e2a3706f Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期一, 04 三月 2019 18:04:47 +0800
Subject: [PATCH] 3555 新版装备功能开发

---
 System/Equip/RealmEquipWin.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/System/Equip/RealmEquipWin.cs b/System/Equip/RealmEquipWin.cs
index 9e3f240..b89b6d8 100644
--- a/System/Equip/RealmEquipWin.cs
+++ b/System/Equip/RealmEquipWin.cs
@@ -14,6 +14,7 @@
 
     public class RealmEquipWin : Window
     {
+        [SerializeField] RectTransform m_LevelsContainer;
         [SerializeField] EquipSlots m_EquipSlots;
         [SerializeField] Text m_FightPoint;
         [SerializeField] RawImage m_Role;
@@ -21,6 +22,9 @@
 
         [SerializeField] EquipSuitPropertyWidget m_SuitPropertyWidget;
         [SerializeField] CandidateEquipWidget m_CandidateEquipWidget;
+
+        List<EquipLevelSelectBehaviour> levelSelectBehaviours = new List<EquipLevelSelectBehaviour>();
+        List<GameObject> emptyFillers = new List<GameObject>();
 
         EquipModel model { get { return ModelCenter.Instance.GetModel<EquipModel>(); } }
 
@@ -53,9 +57,8 @@
         protected override void OnActived()
         {
             base.OnActived();
+            DisplayLevels();
             DisplayDynamicInfo(true);
-
-            ShowCandidateEquips();
         }
 
         protected override void LateUpdate()
@@ -85,6 +88,7 @@
             if (force || model.selectedLevel.dirty)
             {
                 var level = model.selectedLevel.Fetch();
+
                 DisplayEquips(level);
                 DisplayAppearance(level);
                 DisplayFightPoint(level);
@@ -98,6 +102,49 @@
             }
         }
 
+        private void DisplayLevels()
+        {
+            var sets = model.GetViewableEquipSets();
+            var behaviourCount = sets.Count;
+            var emptyCount = behaviourCount >= 5 ? 0 : 5 - behaviourCount;
+            var behaviourGap = behaviourCount - levelSelectBehaviours.Count;
+            for (var i = 0; i < behaviourGap; i++)
+            {
+                var instance = UIUtility.CreateWidget("EquipLevelSelectBehaviour", "EquipLevelSelectBehaviour");
+                instance.transform.SetParentEx(m_LevelsContainer, Vector3.zero, Quaternion.identity, Vector3.one);
+                instance.transform.SetAsFirstSibling();
+                levelSelectBehaviours.Insert(0, instance.GetComponent<EquipLevelSelectBehaviour>());
+            }
+
+            var emptyGap = emptyCount - emptyFillers.Count;
+            for (var i = 0; i < emptyCount; i++)
+            {
+                var instance = UIUtility.CreateWidget("EquipLevelSelectEmptyBehaviour", "EquipLevelSelectEmptyBehaviour");
+                instance.transform.SetParentEx(m_LevelsContainer, Vector3.zero, Quaternion.identity, Vector3.one);
+                instance.transform.SetAsLastSibling();
+                emptyFillers.Add(instance);
+            }
+
+            for (var i = 0; i < levelSelectBehaviours.Count; i++)
+            {
+                var behaviour = levelSelectBehaviours[i];
+                if (i < behaviourCount)
+                {
+                    behaviour.gameObject.SetActive(true);
+                    behaviour.Display(sets[i]);
+                }
+                else
+                {
+                    behaviour.gameObject.SetActive(false);
+                }
+            }
+
+            for (var i = 0; i < emptyFillers.Count; i++)
+            {
+                emptyFillers[i].SetActive(i < emptyCount);
+            }
+        }
+
         private void DisplayEquips(int level)
         {
             for (var i = 1; i <= 12; i++)

--
Gitblit v1.8.0