Add skill management system with unlocker and save functionality

This commit is contained in:
2025-04-27 14:15:03 +02:00
parent f880d1a811
commit 49a652a5b1
16 changed files with 294 additions and 32 deletions

View File

@@ -0,0 +1,34 @@
class_name SkillUnlockerComponent
extends Node
@export var skill_manager: SkillManager
@onready var game_manager: GM = $"/root/GameManager"
func try_unlock_skill(skill_data: SkillData) -> void:
if not game_manager:
return
if game_manager.is_skill_unlocked(skill_data.name):
return
if game_manager.get_coins() < skill_data.cost:
return
game_manager.remove_coins(skill_data.cost)
game_manager.unlock_skill(skill_data.name)
skill_manager.add_skill(skill_data)
func _input(event: InputEvent) -> void:
if event.is_action_pressed("unlock_skills"):
var available_skills: Array[SkillData] = skill_manager.available_skills
var skills: Array[String] = []
for skill in available_skills:
skills.append(skill.name)
game_manager.unlock_skills(skills)
skill_manager.apply_unlocked_skills()
print("Unlocked skills: ", skills)