From eb5ea9d42ff3363c62f11dff1c33cff84f435f7e Mon Sep 17 00:00:00 2001 From: bd Date: Tue, 20 May 2025 21:19:19 -0400 Subject: Move targetting functions to base defender class --- scenes/defenders/base_defender.gd | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 scenes/defenders/base_defender.gd (limited to 'scenes/defenders/base_defender.gd') diff --git a/scenes/defenders/base_defender.gd b/scenes/defenders/base_defender.gd new file mode 100644 index 0000000..14d6249 --- /dev/null +++ b/scenes/defenders/base_defender.gd @@ -0,0 +1,36 @@ +extends StaticBody2D + +@onready var sprite_node = $Sprite2D + +var defender_range: float +var damage: int +var curr : PathFollow2D + +func _on_tower_body_entered(_body: Node2D): + select_target(get_node("Tower").get_overlapping_bodies()) + handle_animation() + +func _on_tower_body_exited(_body: Node2D): + select_target(get_node("Tower").get_overlapping_bodies()) + handle_animation() + +func handle_animation(): + if (curr == null): + sprite_node.idle_state() + else: + sprite_node.attack_state() + +func select_target(targets): + var tmp = [] + for i in targets: + if "Crawler" in i.name: + tmp.append(i) + + # this is all to select the furthest target on the track + curr = null + for i in tmp: + if curr == null: + curr = i.get_node("../") + else: + if i.get_parent().get_progress() > curr.get_progress(): + curr = i.get_node("../") -- cgit v1.2.3