Implement directional influence (#43)
CI / build-and-test (push) Successful in 1m9s

Reviewed-on: #43
Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #43.
This commit is contained in:
2026-09-18 20:43:41 +00:00
committed by EIREXE
parent 2b5af49e15
commit 9f51207f48
8 changed files with 116 additions and 20 deletions
+10 -4
View File
@@ -9,7 +9,7 @@ use bevy_egui::{EguiContexts, egui};
use crate::debug_tools::{DebugSettings, FighterDebugRowKind};
use crate::fighter::animation::FighterAnimationFrame;
use crate::fighter::attack::{
FighterKnockbackVelocity, FighterLastAttackDebug, FighterPendingHitReaction,
self, FighterKnockbackVelocity, FighterLastAttackDebug, FighterPendingHitReaction,
FighterSolvedHurtboxes,
};
use crate::fighter::baked_animation::{BakedFighterAnimations, FighterBoneMatrices};
@@ -382,14 +382,14 @@ pub fn attack_debug_gather(
&FighterPendingHitReaction,
&FighterTranslation,
&Fighter,
&FighterInput,
)>,
mut commands: Commands,
manifests: Res<Assets<FighterManifest>>,
game_settings: Res<GameSettings>,
) -> Result {
for (entity, reaction, translation, fighter) in query {
for (entity, reaction, translation, fighter, input) in query {
let Some(ref hit) = reaction.0 else {
commands.entity(entity).remove::<FighterLastAttackDebug>();
continue;
};
@@ -397,7 +397,13 @@ pub fn attack_debug_gather(
.get(&fighter.manifest)
.ok_or(FighterErrors::FighterManifestNotFound)?;
let mut knockback_vel = FighterKnockbackVelocity(hit.launch_velocity);
let launch_dir = attack::directional_influence::apply_directional_influence(
input.get_last_frame().movement,
hit.launch_angle,
game_settings.fighter_common.di_max_angle,
);
let mut knockback_vel = FighterKnockbackVelocity(launch_dir * hit.launch_velocity);
let mut fighter_vel = FighterVelocity(FGVec2::ZERO);
let mut translation = Vec3::new(translation.x.to_num(), translation.y.to_num(), 0.0);