Compare commits

..
Author SHA1 Message Date
EIREXE 31e41f3800 Fix run direction not being taken into account when accelerating (Fixes #11)
CI / build-and-test (pull_request) Successful in 11m3s
2026-09-16 20:31:25 +02:00
EIREXE ae8f7b5850 Deduplicate fighter state lifecycle policies (#36)
CI / build-and-test (push) Failing after 10m51s
Fixes #22

Extracts shared grounded collision/friction and airborne movement/landing policies while preserving state-specific behavior. Running fighters now pass `can_walk_off = true` so they can run off platform edges. Includes grounded and airborne hitstun call sites.

Reviewed-on: #36
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
2026-09-16 18:30:53 +00:00
2 changed files with 3 additions and 1 deletions
+2
View File
@@ -150,6 +150,7 @@ pub struct UpdateContext<'a> {
pub fighter_attributes: &'a FighterAttributes,
pub attack_scripts: &'a Assets<FighterAttackScript>,
pub attack_script_assets: &'a FighterAttackScriptAssets,
pub facing_direction: &'a FighterFacingDirection,
}
impl UpdateContext<'_> {
@@ -290,6 +291,7 @@ impl<'w, 's> FighterFrameQueryItem<'w, 's> {
fighter_attributes: attributes,
attack_scripts,
attack_script_assets,
facing_direction: &self.facing_direction
}
}
+1 -1
View File
@@ -41,7 +41,7 @@ impl FighterStateImpl for RunState {
let last_frame = state_context.input.get_last_frame();
let (accel, target_vel) = state_context
.fighter_attributes
.get_accel_and_target_dashrun(&last_frame, FGi32::ONE);
.get_accel_and_target_dashrun(&last_frame, state_context.facing_direction.to_sign());
let accel = ground::compute_ground_accel(
accel,
target_vel,