extends Node signal effect_added(effect : StringName) signal effect_removed(effect : StringName) ## Add effect to func add_effect(effectScene : PackedScene): var effect = effectScene.instantiate() effect.owner = owner if get_node(effect.name) != null: remove_effect(effect.name) add_child(effect) effect_added.emit(effect.name) func remove_effect(effect : StringName): var path = NodePath(effect) if get_node(path) == null: printerr("Effect does not exist: ", effect) return effect_removed.emit(effect) get_node(path).queue_free()