facsimile-wing/scripts/effects/base_effect.gd

22 lines
488 B
GDScript

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