26 lines
676 B
GDScript
26 lines
676 B
GDScript
extends CharacterBody3D
|
|
class_name Projectile
|
|
|
|
@export var damage : float = 10
|
|
@export var lifetime : float = 1
|
|
@export var collsion_scene : PackedScene
|
|
|
|
signal collided
|
|
|
|
var timeout_timer : Timer
|
|
|
|
func _ready() -> void:
|
|
timeout_timer = Timer.new()
|
|
add_child(timeout_timer)
|
|
timeout_timer.timeout.connect(projectile_collision)
|
|
timeout_timer.start(lifetime)
|
|
|
|
func projectile_collision():
|
|
timeout_timer.stop()
|
|
if collsion_scene:
|
|
var new_collision_scene = collsion_scene.instantiate()
|
|
get_tree().root.add_child(new_collision_scene)
|
|
new_collision_scene.global_transform = global_transform
|
|
get_tree().create_timer(lifetime).timeout.connect(queue_free)
|
|
collided.emit()
|