RustHacker/crafting/recipe book/scavengeBook.gd
2026-01-17 17:07:53 +11:00

36 lines
1.2 KiB
GDScript

extends PanelContainer
@export var grid : GridContainer
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
RecipeManager.recipes_loaded.connect(scavs_ready)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func scavs_ready():
for scav in RecipeManager.scavenge_recipes:
# TODO: create an item slot with the scav recipie icon, bock dragging
# show details about scavenge results in tooltip?
var new_slot = load("res://inv_system/item_slot.tscn").instantiate() as ItemSlot
new_slot.item = scav.input
new_slot.block_taking = true
var scav_preview : String = str(scav.rolls) + " Rolls"
var total_chance : int = 0
for loot in scav.loot_pool:
total_chance += loot.chance
var uncounted_chance = total_chance
for loot in scav.loot_pool:
if loot.item:
scav_preview += "\n" + loot.item.item_name + ": " + str((int((loot.chance/float(total_chance))*10000))/100) + "%"
uncounted_chance -= loot.chance
if uncounted_chance > 0:
scav_preview += "\nNothing: " + str((int((uncounted_chance/float(total_chance))*10000))/100) + "%"
new_slot.extra_data = scav_preview
grid.add_child(new_slot)
pass