summaryrefslogtreecommitdiff
path: root/Effects/SlowEffect.gd
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2024-09-08 22:35:06 +0200
committerDaniel Weipert <git@mail.dweipert.de>2024-09-08 22:35:06 +0200
commit4597189f157834c80f56b12b701fd2b2a15c2798 (patch)
treef522e9a58ec756dc27306781da99e828b195c549 /Effects/SlowEffect.gd
parent7d7d845e76f78a87cf87c9464d700e52cd88ce6f (diff)
next commit
Diffstat (limited to 'Effects/SlowEffect.gd')
-rw-r--r--Effects/SlowEffect.gd33
1 files changed, 33 insertions, 0 deletions
diff --git a/Effects/SlowEffect.gd b/Effects/SlowEffect.gd
new file mode 100644
index 0000000..27dcc59
--- /dev/null
+++ b/Effects/SlowEffect.gd
@@ -0,0 +1,33 @@
+extends Effect
+
+
+@onready var unit: Unit = get_parent()
+
+var base_speed: float
+
+
+var magnitude: float = 0.5 :
+ set(value):
+ magnitude = clamp(value, 0.0, 1.0)
+
+
+func _ready():
+ if self.name != "SlowEffect" and unit.has_node("SlowEffect"):
+ unit.get_node("SlowEffect").set_duration(5.0)
+ queue_free()
+ else:
+ add()
+ set_duration(5.0)
+ duration_finished.connect(func():
+ remove()
+ )
+
+
+func add():
+ unit.get_node("Sprite2D").self_modulate = Color(0, 0, 1)
+ unit.speed -= unit.base_speed * magnitude
+
+
+func remove():
+ unit.get_node("Sprite2D").self_modulate = Color(1, 1, 1)
+ unit.speed += unit.base_speed * magnitude