2 class_name FallingState
5 @export var fall_landing_limit: float
6 @export var fall_roll_limit: float
8 var _landing_type := ""
10 func should_enter(input: InputPacket) -> String:
11 if not player.is_on_floor():
12 input.player_actions.append("fall")
13 elif not _landing_type.is_empty():
14 input.player_actions.append(_landing_type)
16 input.player_actions.sort_custom(states_priority_sort)
17 return input.player_actions[0]
20 func update(_input: InputPacket, delta: float):
21 player.velocity += player.get_gravity() * delta
23 if abs(player.velocity.y) > fall_landing_limit:
24 if abs(player.velocity.y) > fall_roll_limit:
25 _landing_type = "fallToRoll"
27 _landing_type = "fallToLanding"
29 player.move_and_slide()