class_name Enemy extends Creature enum State { IDLE, CHASE, ATTACK } @export var state: State = State.IDLE @export_category("Parts") @export var animation_player: AnimationPlayer var _chase_target: Node2D var _target_is_left: bool = false func _play_animation(animation: String) -> void: if not animation_player: return if not animation_player.has_animation(animation): return if animation_player.is_playing() and animation_player.current_animation == animation: return animation_player.play(animation) func _process(delta: float) -> void: var animation_name = str(State.keys()[self.state]).to_lower() self._play_animation(animation_name) func _physics_process(delta: float) -> void: match self.state: State.CHASE: if not self._chase_target: self.state = State.IDLE pass