summaryrefslogtreecommitdiff
path: root/scenes/defenders/warlock.gd
diff options
context:
space:
mode:
Diffstat (limited to 'scenes/defenders/warlock.gd')
-rw-r--r--scenes/defenders/warlock.gd42
1 files changed, 6 insertions, 36 deletions
diff --git a/scenes/defenders/warlock.gd b/scenes/defenders/warlock.gd
index fbc6a3f..0178382 100644
--- a/scenes/defenders/warlock.gd
+++ b/scenes/defenders/warlock.gd
@@ -1,44 +1,14 @@
-extends StaticBody2D
+extends "res://scenes/defenders/base_defender.gd"
-@export var projectile_damage = 5
+var projectile: PackedScene = preload("res://scenes/defenders/warlock_projectile.tscn")
-@onready var sprite_node = $Sprite2D
-var projectile = preload("res://scenes/defenders/warlock_projectile.tscn")
-var curr
+func _ready():
+ damage = 200
-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("../")
-
-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 _on_fire_rate_timeout():
+func _on_fire_timer_timeout():
if (curr != null):
var tmp_projectile = projectile.instantiate()
tmp_projectile.curr = curr
- tmp_projectile.projectile_damage = projectile_damage
+ tmp_projectile.projectile_damage = 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()