gae_wild_jam/scripts/level_up_manager.gd

35 lines
939 B
GDScript

extends Control
@onready var perk_effects = get_node("/root/Game/PerkEffects")
var perks
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
perks = perk_effects.available_perks
get_node("/root/Game/DropManager").leveled_up.connect(show_perks)
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func show_perks():
if perks.is_empty():
return
get_tree().paused = true
var shuffled = perks.duplicate()
shuffled.shuffle()
var chosen = shuffled.slice(0, 3)
for x in chosen:
var button = Button.new()
button.text = x.name + "\n" + x.description
button.pressed.connect(func(): select_perk(x))
$HBoxContainer.add_child(button)
func select_perk(perk):
perk.effect.call()
get_tree().paused = false
perks.erase(perk)
for child in $HBoxContainer.get_children(): child.queue_free()