class_name AnimationBase extends Node2D signal animationFinished(spell: Spell) @onready var animationPlayer: AnimationPlayer = $AnimationPlayer @export var inverted: bool = false @export var index: int = -1 @export var finalIndex: int = 0 @export var spell: Spell var attackName: String = "attackSegment" var inverseName: String = "attackInverse" var targetProg: float var finalProg: float # Called when the node enters the scene tree for the first time. func _ready(): if inverted: attackName = inverseName func castFailed() -> void: die() func setProgress(target: float, final: float = finalProg) -> void: targetProg = target finalProg = final if (index > -1): animationPlayer.queue(attackName + str(index)) index += 1 func animFinished(_s: String): if (index == finalIndex): animationFinished.emit(spell) die() func die(): queue_free()