Implement damage UI

This commit is contained in:
2026-09-19 17:13:05 +02:00
parent 7269a1cb49
commit 3678d6a53d
10 changed files with 154 additions and 56 deletions
+8 -1
View File
@@ -32,9 +32,15 @@ use crate::{
#[derive(Deref, Component, Default, Hash, Debug, Copy, Clone)]
pub struct FighterKnockbackVelocity(pub FGVec2);
#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Component, Hash)]
#[derive(Debug, Default, Clone, Copy, Serialize, Deserialize, Component, Hash, PartialEq)]
pub struct FighterDamage(FGi32);
impl std::fmt::Display for FighterDamage {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{:.2}", self.0)
}
}
#[derive(Debug, Hash, Clone)]
pub enum HitReactionKind {
Flinch,
@@ -48,6 +54,7 @@ pub struct FighterHitReaction {
pub hitstop_frames: HitStop,
pub hitstun_frames: u32,
pub kind: HitReactionKind,
pub damage: FighterDamage,
}
#[derive(Component, DerefMut, Deref, Debug, Default, Hash, Clone)]
+3 -1
View File
@@ -49,10 +49,11 @@ pub fn resolve_fighter_hits(
};
let attack_script = attack_scripts.get(&hit.attack_script)?;
let hitbox = attack_script.hitboxes.get(hit.hitbox_index)?;
dbg!(hitbox.damage.0);
let damage_received = stale_move_queue
.get_attack_damage_multiplier(hit.attack_kind)
* hitbox.damage.0;
dbg!(damage_received);
Some((
hit.attacker,
damage_received,
@@ -100,6 +101,7 @@ pub fn resolve_fighter_hits(
hitstun_frames: knockback.get_hitstun_frames(&game_settings),
hitstop_frames: hitstop,
kind: HitReactionKind::Flinch,
damage: FighterDamage(attack_damage)
},
));
}
-1
View File
@@ -47,7 +47,6 @@ impl FighterStateImpl for GroundAttackState {
fn on_enter(&mut self, state_context: &mut EnterContext) {
state_context.play_animation(self.attack_kind.get_animation(), false);
let script = state_context.attack_script_assets.scripts[&self.attack_kind].clone();
state_context.stale_move_queue.push(self.attack_kind);
state_context.hitboxes.0 = Some(crate::fighter::FighterActiveAttack {
kind: self.attack_kind,
script,