class_name Wanderer extends Node const DIST_FROM_MOUSE := 1000.0 @onready var new_target: Timer = $NewTarget @export var node_to_move: Node2D @export var speed := 75 @export var move := false @export var wait_time_min := 1.0 @export var wait_time_max := 2.0 var target_pos := Vector2() func _process(delta: float) -> void: if move: node_to_move.position += node_to_move.position.direction_to(target_pos) * speed * delta func _on_new_target_timeout() -> void: target_pos = get_viewport().get_camera_2d().get_global_mouse_position() + (Vector2.RIGHT * DIST_FROM_MOUSE).rotated(randf_range(0, PI)) new_target.start(randf_range(wait_time_min, wait_time_max))