40 lines
1.1 KiB
C#
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; }
|
|
} |