From 7e58471cbf28cfbcc5c77d81a2eb9bee4cc3160d Mon Sep 17 00:00:00 2001 From: "m.cirafisi" Date: Sat, 6 Jun 2026 16:17:47 +0200 Subject: [PATCH] fix ai --- core/ai/agents/base/ai_base.gd | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/ai/agents/base/ai_base.gd b/core/ai/agents/base/ai_base.gd index 05718bb..8a203b3 100644 --- a/core/ai/agents/base/ai_base.gd +++ b/core/ai/agents/base/ai_base.gd @@ -58,6 +58,13 @@ func _physics_process(delta: float) -> void: func navigate_to_random_point() -> void: var nav_map_rid = get_world_3d().get_navigation_map() var patrol_radius = patrol_radius_shape.shape.radius - var target_point_in_space = global_position + Vector3(randf_range(-1, 1), 0, randf_range(-1, 1)).normalized() * randf_range(0, patrol_radius) - var closest_valid_point = NavigationServer3D.map_get_closest_point(nav_map_rid, target_point_in_space) - nav_agent.target_position = closest_valid_point + + for i in range(10): + var target_point_in_space = global_position + Vector3(randf_range(-1, 1), 0, randf_range(-1, 1)).normalized() * randf_range(0, patrol_radius) + var closest_valid_point = NavigationServer3D.map_get_closest_point(nav_map_rid, target_point_in_space) + nav_agent.target_position = closest_valid_point + + if nav_agent.is_target_reachable(): + return + + nav_agent.target_position = global_position