From 63133cf5403a9d7fbe3811d20c3d24f26a752449 Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Thu, 22 Oct 2020 16:06:35 +0800
Subject: [PATCH] 无尽模式,添加法阵展示和结算界面滑动列表

---
 Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs |   60 ++++++++++++++++++++++++++++++++----------------------------
 1 files changed, 32 insertions(+), 28 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
index cc26693..50cadb4 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessBuffSelect.cs
@@ -14,11 +14,9 @@
 {
     public class EndlessBuffSelect : Singleton<EndlessBuffSelect>
     {
-        public Text Prompt;
-
         public List<SelectBuffIcon> IconList;
 
-        public List<Sprite> SpriteList;
+        private string iconPath = "UI/Endless/BuffIcon/BuffIcon_";
 
         /// <summary>
         /// buff是否选中完成
@@ -27,7 +25,12 @@
 
         public event Action<int> BuffSelectCompleted;
 
-        private int SelectedIndex;
+        /// <summary>
+        /// 当前选择的索引,-1表示还未选中其中一个
+        /// </summary>
+        private int SelectedIndex = -1;
+
+        public Button SelectBtn;
 
         // Start is called before the first frame update
         private void Start()
@@ -36,37 +39,45 @@
             {
                 IconList[i].OnSelectBuffCompleted += OnClick;
             }
+
+            SelectBtn.onClick.AddListener(OnClickSelectBtn);
         }
 
         private void OnEnable()
         {
             isCompleted = false;
-            Prompt.text = "点击选择buff";
-            
+            SelectedIndex = -1;
+
             for (int i = 0; i < IconList.Count; ++i)
             {
-                IconList[i].SetIcon(SpriteList[i]);
-                IconList[i].SetState(EndlessBuffSelectState.Normal);
+                IconList[i].Reset();
             }
         }
 
         public void OnClick(int index)
         {
-            if (isCompleted) return;
+            // 如果点击同一个直接返回
+            if (index == SelectedIndex) return;
 
-            isCompleted = true;
+            // 如果已经选择过了,设置一个之前选择的item
+            if (SelectedIndex != -1)
+                IconList[SelectedIndex].SetState(false);
+
             SelectedIndex = index;
-            Prompt.text = "选择buff成功";
+            IconList[index].SetState(true);
+        }
 
-            for (int i = 0; i < IconList.Count; ++i)
-            {
-                if (index == i)
-                    IconList[i].SetState(EndlessBuffSelectState.Selected);
-                else
-                    IconList[i].SetState(EndlessBuffSelectState.Unselected);
-            }
+        /// <summary>
+        /// 点击了选择按钮
+        /// </summary>
+        public void OnClickSelectBtn()
+        {
+            if (SelectedIndex == -1) return;
 
-            StartCoroutine(DelayToClose());
+            HideBuffUI();
+
+            if (BuffSelectCompleted != null)
+                BuffSelectCompleted(SelectedIndex);
         }
 
         public void ShowBuffUI()
@@ -79,19 +90,12 @@
             gameObject.SetActive(false);
         }
 
-        private IEnumerator DelayToClose()
-        {
-            yield return new WaitForSeconds(0.5f);
-            HideBuffUI();
-
-            if (BuffSelectCompleted != null)
-                BuffSelectCompleted(SelectedIndex);
-        }
-
         public void Refresh(List<EndlessBuffConfig> list)
         {
             for (int i = 0; i < IconList.Count; ++i)
             {
+                IconList[i].SetIcon(list[i].Config.image);
+                IconList[i].SetQuality(list[i].Config.rare);
                 IconList[i].SetName(list[i].Config.name);
                 IconList[i].SetEffect(list[i].Config.brief);
                 IconList[i].SetRare(list[i].Config.rare);

--
Gitblit v1.9.1