mtd/PCs/Universal/ClassCards/RocketLauncher/rocket.gd

34 lines
741 B
GDScript

extends RigidBody3D
class_name Rocket
@export var damage := 10.0
@export var explosion_range := 6.0
var target : Node3D
var acceleration := 15.0
var direction
var lifetime := 15.0
var time_alive := 0.0
func _process(delta: float) -> void:
time_alive += delta
if time_alive >= lifetime:
explode()
func _physics_process(_delta: float) -> void:
if is_instance_valid(target):
direction = global_position.direction_to(target.global_position)
apply_central_force(direction * acceleration)
func _on_body_entered(_body: Node) -> void:
explode()
func explode():
for enemy in get_tree().get_nodes_in_group("Enemies"):
if global_position.distance_to(enemy.global_position) <= explosion_range:
enemy.damage(damage)
queue_free()