23 lines
436 B
GDScript
23 lines
436 B
GDScript
extends Area3D
|
|
|
|
const SPEED = 55.0
|
|
const RANGE = 80.0
|
|
|
|
var travelled_distance = 0.0
|
|
|
|
func _physics_process(delta: float) -> void:
|
|
var distance = SPEED * delta
|
|
position += -transform.basis.z * distance
|
|
|
|
if travelled_distance >= RANGE:
|
|
queue_free()
|
|
else:
|
|
travelled_distance += distance
|
|
|
|
|
|
func _on_body_entered(body: Node3D) -> void:
|
|
queue_free()
|
|
|
|
if body.has_method("take_damage"):
|
|
body.take_damage(randf_range(25.0, 50.0))
|