diff options
Diffstat (limited to 'scenes/defenders/warlock.gd')
-rw-r--r-- | scenes/defenders/warlock.gd | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/scenes/defenders/warlock.gd b/scenes/defenders/warlock.gd index b8d143b..fbc6a3f 100644 --- a/scenes/defenders/warlock.gd +++ b/scenes/defenders/warlock.gd @@ -4,7 +4,7 @@ extends StaticBody2D @onready var sprite_node = $Sprite2D var projectile = preload("res://scenes/defenders/warlock_projectile.tscn") -var path_name +var curr func select_target(targets): var tmp = [] @@ -13,29 +13,32 @@ func select_target(targets): tmp.append(i) # this is all to select the furthest target on the track - var curr = null + 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("../") - path_name = null if (curr == null) else curr.get_parent().name func _on_tower_body_entered(_body: Node2D): select_target(get_node("Tower").get_overlapping_bodies()) - sprite_node.is_idle = true if (path_name == null) else false - sprite_node.update_texture() + handle_animation() func _on_tower_body_exited(_body: Node2D): select_target(get_node("Tower").get_overlapping_bodies()) - sprite_node.is_idle = true if (path_name == null) else false - sprite_node.update_texture() + handle_animation() func _on_fire_rate_timeout(): - if (path_name != null): + if (curr != null): var tmp_projectile = projectile.instantiate() - tmp_projectile.path_name = path_name + tmp_projectile.curr = curr tmp_projectile.projectile_damage = projectile_damage get_node("ProjectileContainer").call_deferred("add_child", tmp_projectile) tmp_projectile.global_position = $Aim.global_position + +func handle_animation(): + if (curr == null): + sprite_node.idle_state() + else: + sprite_node.attack_state() |