Files
ft/Client/Assets/Scripts/UI/OfferTreasureAscent/GeneralProbabilityPanel.cs
2026-06-29 21:18:33 +08:00

40 lines
1.1 KiB
C#

using System.Linq;
using UnityEngine;
public class GeneralProbabilityPanel : MonoBehaviour
{
[SerializeField] private GeneralProbabilityView[] probabilityViews;
private void Awake()
{
probabilityViews = GetComponentsInChildren<GeneralProbabilityView>();
}
public void Init(GeneralProbabilityData[] dataArray)
{
var dataList = dataArray.ToList();
dataList.Sort(CompareData);
int i;
int length = Mathf.Min(probabilityViews.Length, dataList.Count);
for (i = 0; i < length; i++)
probabilityViews[i].Init(dataList[i]);
for (; i < probabilityViews.Length; i++)
probabilityViews[i].Hide();
}
private int CompareData(GeneralProbabilityData a, GeneralProbabilityData b)
{
if (a.IsClaimed)
return 1;
if (b.IsClaimed)
return -1;
return (a.Probability - b.Probability) > 0 ? 1 : -1;
}
}
public class GeneralProbabilityData
{
public GameCore.ItemData Item { get; set; }
public float Probability { get; set; }
public bool IsClaimed { get; set; }
}