Box item implementation
This commit is contained in:
@@ -18,12 +18,31 @@ public class ItemDatabase
|
||||
|
||||
public T PickItem<T>(T itemToExclude = null)
|
||||
where T : InventoryItem
|
||||
{
|
||||
var itemsToSelectFrom = Items;
|
||||
return PickItemInternal(itemsToSelectFrom, itemToExclude);
|
||||
}
|
||||
|
||||
public T PickRareItem<T>(T itemToExclude = null)
|
||||
where T : InventoryItem
|
||||
{
|
||||
var getRareItems = Items.Where(x => x.SpawnRate < 0.1f);
|
||||
return PickItemInternal(getRareItems, itemToExclude);
|
||||
}
|
||||
|
||||
public T PickBasicItem<T>(T itemToExclude = null)
|
||||
where T : InventoryItem
|
||||
{
|
||||
var getBasicItems = Items.Where(x => x.SpawnRate > 0.5f);
|
||||
return PickItemInternal(getBasicItems, itemToExclude);
|
||||
}
|
||||
|
||||
private T PickItemInternal<T>(IEnumerable<InventoryItem> itemsToSelectFrom, T itemToExclude = null)
|
||||
where T : InventoryItem
|
||||
{
|
||||
var rng = new RandomNumberGenerator();
|
||||
rng.Randomize();
|
||||
|
||||
var itemsToSelectFrom = Items;
|
||||
|
||||
if (itemToExclude is not null)
|
||||
itemsToSelectFrom = [.. itemsToSelectFrom.OfType<T>().Where(x => x.ItemName != itemToExclude.ItemName)];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user