class_name BaseEffect extends Resource @export var duration: float = 0.5 var _elapsed: float = 0.0 # Called when the effect is applied func start(target: Node) -> void: _elapsed = 0.0 # Called every frame (if needed) func process(delta: float, target: Node) -> void: _elapsed += delta # Clean up any changes to the target func stop(target: Node) -> void: pass # Returns true when the effect has run its course func is_finished() -> bool: return _elapsed >= duration