summaryrefslogtreecommitdiff
path: root/scenes/defenders/base_defender.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/defenders/base_defender.gd')
-rw-r--r--scenes/defenders/base_defender.gd49
1 files changed, 0 insertions, 49 deletions
diff --git a/scenes/defenders/base_defender.gd b/scenes/defenders/base_defender.gd
deleted file mode 100644
index 66be11d..0000000
--- a/scenes/defenders/base_defender.gd
+++ /dev/null
@@ -1,49 +0,0 @@
-extends StaticBody2D
-
-@onready var sprite_node = $Sprite2D
-
-var defender_range : float
-var fire_rate : float
-var damage : int
-var target : CharacterBody2D
-
-func _on_fire_timer_timeout() -> void:
- # extending classes override here
- pass
-
-func select_target() -> void:
- var targets : Array = _find_targets()
-
- # this is all to select the furthest target on the track
- var curr : PathFollow2D = null
- for i in targets:
- if curr == null:
- curr = i.get_node("../")
- else:
- if i.get_parent().get_progress() > curr.get_progress():
- curr = i.get_node("../")
-
- _update_state_machine(curr)
-
-func _find_targets() -> Array:
- var targets : Array = get_node("Tower").get_overlapping_bodies()
- var tmp : Array = []
- for i in targets:
- if "Crawler" in i.name:
- tmp.append(i)
- return tmp
-
-func _update_state_machine(curr : PathFollow2D) -> void:
- if (curr == null):
- target = null
- sprite_node.idle_state()
- else:
- target = curr.get_child(0)
- sprite_node.attack_state()
-
-func _on_tower_body_entered(_body: Node2D) -> void:
- var old_target : CharacterBody2D = target
- select_target()
- if old_target == null && old_target != target:
- $FireTimer.start(fire_rate)
- _on_fire_timer_timeout()