diff --git a/common/systems/src/stats.rs b/common/systems/src/stats.rs index 6d3c92ba41..bf28babb63 100644 --- a/common/systems/src/stats.rs +++ b/common/systems/src/stats.rs @@ -165,7 +165,14 @@ impl<'a> System<'a> for Sys { if res { let energy = &mut *energy; energy.change_by(energy.regen_rate * dt); - energy.regen_rate = (energy.regen_rate + ENERGY_REGEN_ACCEL * dt).min(10.0); + if matches!(character_state, CharacterState::Sit) { + // Higher Energy-regeneration while sitting + energy.regen_rate = + (energy.regen_rate + ENERGY_REGEN_ACCEL * dt * 1.5).min(25.0); + } else { + energy.regen_rate = + (energy.regen_rate + ENERGY_REGEN_ACCEL * dt).min(10.0); + } } let res_poise = { poise.current() < poise.maximum() }; @@ -183,6 +190,7 @@ impl<'a> System<'a> for Sys { poise.regen_rate = (poise.regen_rate + POISE_REGEN_ACCEL * dt).min(10.0); } }, + // Ability use does not regen and sets the rate back to zero. CharacterState::BasicMelee(_) | CharacterState::DashMelee(_)