diff options
author | bd <bdunahu@operationnull.com> | 2025-05-22 13:50:49 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-22 13:50:49 -0400 |
commit | 8c5c4863aeacb4afcf70f339df6d601e2df1a7a6 (patch) | |
tree | 6c2af54a18271534864a7a1daed7814ebac5abd1 /scripts/wyvern.gd | |
parent | 80e145ba2b85e08f895e76ba6a03bb67bc9ce9ea (diff) |
Reorganized files into scenes and scripts
Diffstat (limited to 'scripts/wyvern.gd')
-rw-r--r-- | scripts/wyvern.gd | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/wyvern.gd b/scripts/wyvern.gd new file mode 100644 index 0000000..ecd92ad --- /dev/null +++ b/scripts/wyvern.gd @@ -0,0 +1,36 @@ +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() |