Add skill management system with unlocker and save functionality
This commit is contained in:
34
scripts/components/skill_unlocker_component.gd
Normal file
34
scripts/components/skill_unlocker_component.gd
Normal 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)
|
Reference in New Issue
Block a user