using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TowerDefense.Level;
using UnityEngine.UI;
using Protobuf;
using DG.Tweening;
/**
* 无尽模式结算界面列表脚本
* @Author: chenxin
* @Date: 2020-10-22 11:06:15
*/
namespace KTGMGemClient
{
public class EndlessSettlementPropList : MonoBehaviour
{
public GameObject ItemPrefab;
public GameObject Grid;
private string iconPath = "UI/Props/";
private string bgPath = "UI/Props/Di/";
private float slowTime = 0.1f;//物品挨个出现频率
//private float parentHeight;//父物体高度
GridLayoutGroup myGroup;
RectTransform myRect, gridRect;
///
/// Awake is called when the script instance is being loaded.
///
void Awake()
{
//parentHeight = transform.parent.GetComponent().sizeDelta.y;
myGroup = Grid.GetComponent();
gridRect = Grid.GetComponent();
myRect = GetComponent();
}
///
/// 刷新道具列表
///
public void RefreshList()
{
Invoke("StartLater", 0.1f);
// if (Application.platform == RuntimePlatform.WindowsEditor)
// {
// Debug.Log(gameObject.activeSelf);
// //UnityEditor.EditorApplication.isPaused = true;
// }
return;
// List 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 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}");
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();
Sprite iconSp = Resources.Load($"{iconPath}{resId}");
Sprite bgSp = Resources.Load($"{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);
}
}
}
}