From bae54d556e064414eb1823764b5368a300f1d1e1 Mon Sep 17 00:00:00 2001 From: bd Date: Wed, 21 May 2025 16:24:59 -0400 Subject: Refactor tower firing and enemy detection --- scenes/defenders/warlock_projectile.gd | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'scenes/defenders/warlock_projectile.gd') diff --git a/scenes/defenders/warlock_projectile.gd b/scenes/defenders/warlock_projectile.gd index 2188c38..9645a2c 100644 --- a/scenes/defenders/warlock_projectile.gd +++ b/scenes/defenders/warlock_projectile.gd @@ -1,26 +1,23 @@ extends CharacterBody2D -var target -var speed = 100 -var curr = "" -var projectile_damage +var target : CharacterBody2D +var speed : int = 100 +var projectile_damage : int 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 == curr.get_parent().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() + _move_projectile() func _on_area_2d_body_entered(body: Node2D): if "Crawler" in body.name: body.health -= projectile_damage queue_free() + +func _move_projectile(): + var pos : Vector2 + pos = target.global_position + velocity = global_position.direction_to(pos) * speed + look_at(pos) + move_and_slide() -- cgit v1.2.3