extends EnemyState class_name EnemyReload @export var reload_sound : AudioStreamPlayer3D @export var servo_sound : AudioStreamPlayer3D @export var retreat_distance : float = 5.0 @onready var player = get_tree().current_scene.player func Enter(): update_reload_move_target() servo_sound.play() func Update(delta): if character.ammo < character.max_ammo: reload() else: finished_reload() func Physics_Update(delta): if character.is_player_visible(): #get player location character.cache_player_pos() update_reload_look_target() move_to_nav_point(delta) turret_look3D(delta) func update_reload_look_target(): look_target = character.global_position + Vector3(0,10,0) func update_reload_move_target(): var direction = (character.player_last_seen - character.global_position).normalized() move_target = direction * retreat_distance character.nav_agent.set_target_position(move_target) func reload(): if !reload_sound.is_playing(): character.ammo += 1 reload_sound.play() func finished_reload(): servo_sound.play() if character.is_player_visible(): Transitioned.emit(self,"attack") else: Transitioned.emit(self,"search") #fix to search when it works