extends Area3D ## Speed of the projectile in meters per second @export_range(0,1000,0.01,"or_greater","suffix:m/s") var speed : float ## Damage of projectile @export var damage : float func _ready() -> void: body_entered.connect(on_body_entered) ## Invoked when area contacts collision object func on_body_entered(body : Node): if body.is_in_group("Entities") == false: return # Owner needs to be set to Entity node when spawning projectile if owner is Entity: body.get_node("Entity").deal_damage(damage,owner) else: body.get_node("Entity").deal_damage(damage,null) func _physics_process(delta: float) -> void: global_position += global_transform.basis.z * delta