Merge pull request #3 from osuAkatsuki/std-relax-rework

fix: some relax rework bugs
This commit is contained in:
James
2022-11-21 23:16:05 +00:00
committed by GitHub
2 changed files with 8 additions and 4 deletions
+7 -4
View File
@@ -373,10 +373,12 @@ impl<'m> OsuPP<'m> {
// Penalize misses
if effective_miss_count > 0.0 {
aim_value *= self.calculate_miss_penalty(
let miss_penalty = self.calculate_miss_penalty(
attributes.aim_difficult_strain_count as f32,
effective_miss_count,
);
aim_value *= miss_penalty;
}
// AR bonus
@@ -464,7 +466,8 @@ impl<'m> OsuPP<'m> {
strain_count *= 0.5;
}
speed_value *= self.calculate_miss_penalty(strain_count, effective_miss_count);
let miss_penalty = self.calculate_miss_penalty(strain_count, effective_miss_count);
speed_value *= miss_penalty;
}
// AR bonus
@@ -546,7 +549,7 @@ impl<'m> OsuPP<'m> {
#[inline]
fn calculate_miss_penalty(&self, strain_count: f32, effective_miss_count: f32) -> f32 {
0.95 / ((effective_miss_count / (2.0 * strain_count.sqrt())) + 1.0)
0.94 / ((effective_miss_count / (2.0 * strain_count.sqrt())) + 1.0)
}
#[inline]
@@ -559,7 +562,7 @@ impl<'m> OsuPP<'m> {
let n50 = self.n50.unwrap_or(0) as f32;
if attributes.n_sliders > 0 {
let fc_threshold = attributes.max_combo as f32 - 0.1 * attributes.n_sliders as f32;
let fc_threshold = attributes.max_combo as f32 - (0.1 * attributes.n_sliders as f32);
if combo < fc_threshold {
combo_based_miss_count = fc_threshold / combo.max(1.0);
}
+1
View File
@@ -136,6 +136,7 @@ pub fn stars(map: &Beatmap, mods: u32, passed_objects: Option<usize>) -> OsuDiff
diff_attributes.aim_strain = aim_strain as f64;
diff_attributes.aim_difficult_strain_count = aim_difficult_strain_count;
diff_attributes.speed_difficult_strain_count = speed_difficult_strain_count;
diff_attributes.n_sliders = map.n_sliders as usize;
diff_attributes
}