summaryrefslogtreecommitdiff
path: root/scripts/base_defender.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/base_defender.gd')
-rw-r--r--scripts/base_defender.gd21
1 files changed, 19 insertions, 2 deletions
diff --git a/scripts/base_defender.gd b/scripts/base_defender.gd
index 4ebe417..424ce96 100644
--- a/scripts/base_defender.gd
+++ b/scripts/base_defender.gd
@@ -1,11 +1,22 @@
extends StaticBody2D
@onready var sprite_node = $Sprite2D
+@onready var util = preload("res://scripts/util.gd")
var defender_range : float
var fire_rate : float
var damage : float
var target : CharacterBody2D
+var idle_atlas_coords : Vector2i
+var attack_atlas_coords : Vector2i
+
+var _idle_texture : Texture
+var _attack_texture : Texture
+
+func _ready() -> void:
+ _idle_texture = util.get_tile_texture(idle_atlas_coords)
+ _attack_texture = util.get_tile_texture(attack_atlas_coords)
+ _idle_state()
func _on_fire_timer_timeout() -> void:
# extending classes override here
@@ -36,10 +47,10 @@ func _find_targets() -> Array:
func _update_state_machine(curr : PathFollow2D) -> void:
if (curr == null):
target = null
- sprite_node.idle_state()
+ _idle_state()
else:
target = curr.get_child(0)
- sprite_node.attack_state()
+ _attack_state()
func _on_tower_body_entered(_body: Node2D) -> void:
var old_target : CharacterBody2D = target
@@ -47,3 +58,9 @@ func _on_tower_body_entered(_body: Node2D) -> void:
if old_target == null && old_target != target:
$FireTimer.start(fire_rate)
_on_fire_timer_timeout()
+
+func _attack_state():
+ sprite_node.texture = _attack_texture
+
+func _idle_state():
+ sprite_node.texture = _idle_texture