extends "res://scripts/base_defender.gd" var projectile: PackedScene = preload("res://scenes/wyvern_projectile.tscn") var damage_tick_rate: float = 0.25 var firing : bool = false func _ready(): damage = 2 fire_rate = 1.0 func _process(_delta): select_target() if firing: if target == null: $WyvernProjectile.queue_free() firing = false else: $WyvernProjectile.target = target $WyvernProjectile.move_projectile() 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) func _on_fire_timer_timeout(): if (target != null): var tmp_projectile = projectile.instantiate() tmp_projectile.target = target tmp_projectile.projectile_damage = damage tmp_projectile.damage_tick_rate = 0.25 add_child(tmp_projectile) tmp_projectile.global_position = $Aim.global_position firing = true $FireTimer.stop()