From adb0dae8a82a7eabb4e686bc0e83c8859bf6445f Mon Sep 17 00:00:00 2001
From: chenxin <chenxin6991@163.com>
Date: Fri, 25 Dec 2020 10:48:53 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.218.140:8090/r/GemBattle into master

---
 Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs |   96 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 85 insertions(+), 11 deletions(-)

diff --git a/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs b/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs
index fff7f20..3101b0d 100644
--- a/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs
+++ b/Assets/Scripts/TowerDefense/UI/EndlessSettlementPropList.cs
@@ -2,6 +2,9 @@
 using System.Collections.Generic;
 using UnityEngine;
 using TowerDefense.Level;
+using UnityEngine.UI;
+using Protobuf;
+using DG.Tweening;
 
 /**
  * 无尽模式结算界面列表脚本
@@ -19,29 +22,100 @@
         private string iconPath = "UI/Props/";
 
         private string bgPath = "UI/Props/Di/";
+        private float slowTime = 0.1f;//物品挨个出现频率
+
+        //private float parentHeight;//父物体高度
+        GridLayoutGroup myGroup;
+
+        RectTransform myRect, gridRect;
+
+        /// <summary>
+        /// Awake is called when the script instance is being loaded.
+        /// </summary>
+        void Awake()
+        {
+            //parentHeight = transform.parent.GetComponent<RectTransform>().sizeDelta.y;
+            myGroup = Grid.GetComponent<GridLayoutGroup>();
+            gridRect = Grid.GetComponent<RectTransform>();
+            myRect = GetComponent<RectTransform>();
+        }
 
         /// <summary>
         /// 刷新道具列表
         /// </summary>
         public void RefreshList()
         {
+            Invoke("StartLater", 0.1f);
+
+            // if (Application.platform == RuntimePlatform.WindowsEditor)
+            // {
+            //     Debug.Log(gameObject.activeSelf);
+            //     //UnityEditor.EditorApplication.isPaused = true;
+            // }
+
+            return;
+            // List<EndlessDrop> list = EndlessDropManager.instance.GetAllObtainedDrop();
+
+            // for (int i = 0; i < list.Count; ++i)
+            // {
+            //     if (list[i].Reward.type == CURRENCY.Gold)
+            //     {
+            //         AddItem($"{(int)list[i].Reward.type}");
+            //     }
+            //     else
+            //     {
+            //         for (int j = 0; j < list[i].Reward.count; ++j)
+            //         {
+            //             AddItem($"{(int)list[i].Reward.type}_{list[i].Reward.id}");
+            //         }
+            //     }
+            // }
+        }
+
+        private void StartLater()
+        {
+            AudioSourceManager.Ins.Play(AudioEnum.End);
+
+            StartCoroutine(ShowSlow());
+        }
+
+        IEnumerator ShowSlow()
+        {
             List<EndlessDrop> list = EndlessDropManager.instance.GetAllObtainedDrop();
 
             for (int i = 0; i < list.Count; ++i)
             {
-                for (int j = 0; j < list[i].Reward.count; ++j)
+                if (list[i].Reward.type == CURRENCY.Gold)
                 {
-                    GameObject item = Instantiate(ItemPrefab);
-                    EndlessPropIcon propIcon = item.GetComponent<EndlessPropIcon>();
-                    string resId = list[i].Reward.id == 0 ? resId = $"{(int)list[i].Reward.type}" : $"{list[i].Reward.type}_{list[i].Reward.id}";
-
-                    Sprite iconSp = Resources.Load<Sprite>($"{iconPath}{resId}");
-                    Sprite bgSp = Resources.Load<Sprite>($"{bgPath}{resId}");
-
-                    propIcon.SetIcon(iconSp);
-                    propIcon.SetBg(bgSp);
-                    item.transform.SetParent(Grid.transform);
+                    AddItem($"{(int)list[i].Reward.type}");
+                    yield return new WaitForSeconds(slowTime);
                 }
+                else
+                {
+                    for (int j = 0; j < list[i].Reward.count; ++j)
+                    {
+                        AddItem($"{(int)list[i].Reward.type}_{list[i].Reward.id}");
+                        yield return new WaitForSeconds(slowTime);
+                    }
+                }
+            }
+        }
+
+        private void AddItem(string resId)
+        {
+            GameObject item = Instantiate(ItemPrefab);
+            EndlessPropIcon propIcon = item.GetComponent<EndlessPropIcon>();
+
+            Sprite iconSp = Resources.Load<Sprite>($"{iconPath}{resId}");
+            Sprite bgSp = Resources.Load<Sprite>($"{bgPath}{resId}");
+
+            propIcon.SetIcon(iconSp);
+            propIcon.SetBg(bgSp);
+            item.transform.SetParent(Grid.transform, false);
+
+            if (gridRect.sizeDelta.y > myRect.sizeDelta.y && Grid.transform.childCount % myGroup.constraintCount == 1)
+            {
+                gridRect.DOAnchorPosY(gridRect.sizeDelta.y - myRect.sizeDelta.y + (item.transform as RectTransform).sizeDelta.y, 0.2f);
             }
         }
     }

--
Gitblit v1.9.1