30 lines
570 B
GDScript
30 lines
570 B
GDScript
extends BaseProjectile
|
|
class_name WoodenArrow
|
|
|
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
|
|
|
var _despawn_queued := false
|
|
|
|
# Private Methods
|
|
func _ready() -> void:
|
|
speed = 8000
|
|
|
|
|
|
func _on_collision_detector_area_entered(_area: Area2D) -> void:
|
|
queue_despawn()
|
|
|
|
|
|
func _on_collision_detector_body_entered(body: Node2D) -> void:
|
|
if body == self: return
|
|
queue_despawn()
|
|
|
|
|
|
func queue_despawn() -> void:
|
|
if _despawn_queued: return
|
|
_despawn_queued = true
|
|
|
|
animation_player.play("shaking")
|
|
await animation_player.animation_finished
|
|
|
|
queue_free()
|