25 lines
538 B
GDScript
25 lines
538 B
GDScript
class_name Projectile extends Area3D
|
|
|
|
var id : int = 0
|
|
var direction : Vector3
|
|
var speed : float
|
|
var friend_safe : bool = true
|
|
var damage
|
|
var time_remaining : float
|
|
func _ready() -> void:
|
|
time_remaining = 2
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
global_position += speed * direction * delta
|
|
time_remaining -= delta
|
|
if time_remaining <= 0:
|
|
queue_free()
|
|
|
|
func _on_hit_area_entered(body: Node3D) -> void:
|
|
if body is PawnController:
|
|
if !friend_safe or id != body.id:
|
|
body.hurt(damage)
|
|
queue_free()
|
|
else:
|
|
queue_free()
|