id: movement.transitions.v1
version: 1.0
status: draft
feature: DPS-001A_MovementFoundation
states:
- idle
- walk
- run
- jump
- fall
- land
- dash
priority:
- dash
- jump
- fall
- land
- run
- walk
- idle
transitions:
- from: idle
to: walk
when: horizontal_input_active
- from: walk
to: idle
when: horizontal_input_inactive
- from: walk
to: run
when: velocity_reaches_run_threshold
- from: run
to: walk
when: velocity_below_run_threshold
- from: [idle, walk, run]
to: jump
when: jump_pressed_and_grounded_or_coyote_valid
- from: jump
to: fall
when: vertical_velocity_positive
- from: fall
to: land
when: grounded
- from: land
to: [idle, walk, run]
when: landing_recovery_complete
- from: [idle, walk, run, jump, fall]
to: dash
when: dash_pressed_and_available
- from: dash
to: fall
when: dash_finished_and_airborne
- from: dash
to: run
when: dash_finished_grounded_and_horizontal_input_active
- from: dash
to: idle
when: dash_finished_grounded_and_no_horizontal_input
disallowed:
- from: dash
to: dash
reason: dash_chaining_out_of_scope
- from: fall
to: jump
reason: double_jump_out_of_scope
contracts/movement/transitions.yaml