summaryrefslogtreecommitdiff
path: root/Effects/Effect.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Effects/Effect.gd')
-rw-r--r--Effects/Effect.gd46
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()