extends Walk class_name Shoot var finished := false const shoot_walk_speed := 1.0 func should_enter(input: InputPacket) -> String: if finished: input.actions.sort_custom(moves_priority_sort) return input.actions[0] return "shoot" func update(input: InputPacket, delta: float): player.velocity = get_new_velocity_from_input(input, delta, shoot_walk_speed) player.move_and_slide() update_skin(delta) func on_enter_state(): finished = false player.skin.animation_tree.animation_finished.connect(_on_animation_finished) player.skin.transition_shoot() func _on_animation_finished(_name: String): # TODO: make sure animation is finished by using name finished = true player.skin.animation_tree.animation_finished.disconnect(_on_animation_finished)