extends Node3D class_name Projectile @export var speed := 20.0 @export var max_range := 30.0 var last_movement_direction: Vector3 var weapon: Weapon var collision_layer: int = 1 var collision_mask: int = 1 var _origin: Vector3 @onready var hurtbox: Hurtbox = $Model/Hurtbox func _ready() -> void: if not last_movement_direction: last_movement_direction = Vector3.BACK.rotated(Vector3.UP, rotation.y) hurtbox.weapon = weapon hurtbox.is_attacking = true hurtbox.set_collision_layer(collision_layer) hurtbox.set_collision_mask(collision_mask) _origin = global_position func _process(delta: float) -> void: if (global_position - _origin).length() > max_range: queue_free() else: global_position = lerp( global_position, global_position + speed * last_movement_direction.normalized(), delta )