summaryrefslogtreecommitdiff
path: root/scenes/defenders/warlock_projectile.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/defenders/warlock_projectile.gd')
-rw-r--r--scenes/defenders/warlock_projectile.gd27
1 files changed, 27 insertions, 0 deletions
diff --git a/scenes/defenders/warlock_projectile.gd b/scenes/defenders/warlock_projectile.gd
new file mode 100644
index 0000000..b46ed29
--- /dev/null
+++ b/scenes/defenders/warlock_projectile.gd
@@ -0,0 +1,27 @@
+extends CharacterBody2D
+
+var target
+var speed = 300
+var path_name = ""
+var projectile_damage
+
+func _physics_process(_delta: float):
+ var path_spawner_node = get_tree().get_root().get_node("Main/PathSpawner")
+ for i in path_spawner_node.get_child_count():
+ if path_spawner_node.get_child(i).name == path_name:
+ target = path_spawner_node.get_child(i).get_child(0).get_child(0)
+
+ # another tower destroyed this target
+ if !is_instance_valid(target):
+ queue_free()
+ else:
+ target = target.global_position
+ velocity = global_position.direction_to(target) * speed
+ look_at(target)
+ move_and_slide()
+
+
+func _on_area_2d_body_entered(body: Node2D):
+ if "CrawlerSoldier" in body.name:
+ body.health -= projectile_damage
+ queue_free()