RustHacker/crafting/scavenge_recipe.gd

20 lines
443 B
GDScript3
Raw Normal View History

2026-01-11 18:49:11 +11:00
extends Recipe
2026-01-11 18:11:14 +11:00
class_name ScavengeRecipe
@export var input : ItemData
@export var rolls : int = 3
2026-01-11 19:06:59 +11:00
@export var loot_pool : Array[RollableLoot]
func roll() -> ItemData:
var selected : ItemData
var total_chance : int = 0
for loot in loot_pool:
total_chance += loot.chance
var sel_chance : int = randi() % total_chance
for loot in loot_pool:
if sel_chance >= 0:
selected = loot.item
sel_chance -= loot.chance
return selected