diff options
Diffstat (limited to 'scripts/base_defender.gd')
-rw-r--r-- | scripts/base_defender.gd | 21 |
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 |