2024-02-13 00:22:27 +01:00
|
|
|
class_name SkillsComponent
|
|
|
|
extends Node
|
|
|
|
|
2024-02-15 16:28:27 +01:00
|
|
|
@export var skills: Array[Skill]
|
2024-02-13 00:22:27 +01:00
|
|
|
|
2024-02-16 14:45:49 +01:00
|
|
|
var character: Character
|
|
|
|
|
2024-02-13 00:22:27 +01:00
|
|
|
func _ready():
|
2024-02-16 14:45:49 +01:00
|
|
|
character = owner
|
2024-02-15 16:28:27 +01:00
|
|
|
character.controller.used_skill.connect(use_skill)
|
|
|
|
|
|
|
|
func use_skill(slot: int):
|
|
|
|
if slot < 0 || slot >= skills.size():
|
|
|
|
return
|
|
|
|
|
2024-02-16 14:45:49 +01:00
|
|
|
if character.state.current == StateComponent.State.Skill:
|
|
|
|
return
|
|
|
|
|
2024-02-15 16:28:27 +01:00
|
|
|
var skill := skills[slot]
|
2024-02-13 00:22:27 +01:00
|
|
|
|
2024-02-13 23:12:32 +01:00
|
|
|
if !skill:
|
|
|
|
return
|
|
|
|
|
|
|
|
var scene := skill.scene.instantiate()
|
2024-02-15 16:28:27 +01:00
|
|
|
owner.add_child(scene)
|