extends MovingState class_name FallingState @export var fall_landing_limit: float @export var fall_roll_limit: float var _landing_type := "" func should_enter(input: InputPacket) -> String: if not player.is_on_floor(): input.player_actions.append("fall") elif not _landing_type.is_empty(): input.player_actions.append(_landing_type) input.player_actions.sort_custom(states_priority_sort) return input.player_actions[0] func update(_input: InputPacket, delta: float): player.velocity += player.get_gravity() * delta if abs(player.velocity.y) > fall_landing_limit: if abs(player.velocity.y) > fall_roll_limit: _landing_type = "fallToRoll" else: _landing_type = "fallToLanding" player.move_and_slide()