extends EnemyState class_name EnemyIdle @export var wander_distance_max : float = 15.0 @export var scan_cone_angle : float = 90 @export var scan_time : float = 3 var scan_timer var scan_direction = scan_cone_angle/2 func Enter(): scan_timer = scan_time get_new_wander_point() clear_points_of_interest() func Update(delta): attack_on_sight() #on timeout change scan direction if scan_timer > 0: scan_timer -= delta else: change_scan_direction() func Physics_Update(delta): #draw target for debug purposes debug_marker(move_target) #if navigation is finished get new point, otherwise continue on path if enemy.nav_agent.is_navigation_finished(): get_new_wander_point() else: move_to_nav_point(delta) #do turret scan turret_scan(Vector3(0,scan_direction,0),delta) func get_new_wander_point(): var x = randf_range(-wander_distance_max,wander_distance_max) var z = randf_range(-wander_distance_max,wander_distance_max) move_target = enemy.global_position + Vector3(x,0,z) enemy.nav_agent.set_target_position(move_target) func change_scan_direction(): scan_timer = scan_time scan_direction = -scan_direction