Changelog: 1. Linear projectile scene and script 2. project.godot 3D collision layers renamed
23 lines
681 B
GDScript
23 lines
681 B
GDScript
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
|