diff options
Diffstat (limited to 'scenes/defenders/warlock_projectile.gd')
-rw-r--r-- | scenes/defenders/warlock_projectile.gd | 27 |
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() |