diff options
author | Daniel Weipert <git@mail.dweipert.de> | 2024-09-08 22:35:06 +0200 |
---|---|---|
committer | Daniel Weipert <git@mail.dweipert.de> | 2024-09-08 22:35:06 +0200 |
commit | 4597189f157834c80f56b12b701fd2b2a15c2798 (patch) | |
tree | f522e9a58ec756dc27306781da99e828b195c549 /Effects/SlowEffect.gd | |
parent | 7d7d845e76f78a87cf87c9464d700e52cd88ce6f (diff) |
next commit
Diffstat (limited to 'Effects/SlowEffect.gd')
-rw-r--r-- | Effects/SlowEffect.gd | 33 |
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 |