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 enemy.ammo < enemy.max_ammo: reload() else: finished_reload() func Physics_Update(delta): if enemy.is_player_visible(): #get player location enemy.cache_player_pos() update_reload_look_target() move_to_nav_point(delta) turret_look3D(delta) func update_reload_look_target(): look_target = enemy.global_position + Vector3(0,10,0) func update_reload_move_target(): var direction = (enemy.player_last_seen - enemy.global_position).normalized() move_target = direction * retreat_distance enemy.nav_agent.set_target_position(move_target) func reload(): if !reload_sound.is_playing(): enemy.ammo += 1 reload_sound.play() func finished_reload(): servo_sound.play() if enemy.is_player_visible(): Transitioned.emit(self,"attack") else: Transitioned.emit(self,"search") #fix to search when it works