diff options
Diffstat (limited to 'Effects/Effect.gd')
-rw-r--r-- | Effects/Effect.gd | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Effects/Effect.gd b/Effects/Effect.gd new file mode 100644 index 0000000..f1662a7 --- /dev/null +++ b/Effects/Effect.gd @@ -0,0 +1,46 @@ +class_name Effect +extends Node + + +signal duration_finished +signal tick_finished + +var duration: float = 0.0 +var DurationTimer: Timer + +var tick: float = 0.0 +var TickTimer: Timer + + +func _ready(): + pass + + +func set_duration(value: float): + duration = value + + if not DurationTimer: + DurationTimer = Timer.new() + DurationTimer.timeout.connect(func(): + duration_finished.emit() + queue_free() + ) + add_child(DurationTimer) + + DurationTimer.wait_time = duration + DurationTimer.start() + + +func set_tick(value: float): + tick = value + + if not TickTimer: + TickTimer = Timer.new() + TickTimer.timeout.connect(func(): + tick_finished.emit() + TickTimer.start() + ) + add_child(TickTimer) + + TickTimer.wait_time = tick + TickTimer.start() |