Merge pull request #3 from osuAkatsuki/std-relax-rework
fix: some relax rework bugs
This commit is contained in:
+7
-4
@@ -373,10 +373,12 @@ impl<'m> OsuPP<'m> {
|
|||||||
|
|
||||||
// Penalize misses
|
// Penalize misses
|
||||||
if effective_miss_count > 0.0 {
|
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,
|
attributes.aim_difficult_strain_count as f32,
|
||||||
effective_miss_count,
|
effective_miss_count,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
aim_value *= miss_penalty;
|
||||||
}
|
}
|
||||||
|
|
||||||
// AR bonus
|
// AR bonus
|
||||||
@@ -464,7 +466,8 @@ impl<'m> OsuPP<'m> {
|
|||||||
strain_count *= 0.5;
|
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
|
// AR bonus
|
||||||
@@ -546,7 +549,7 @@ impl<'m> OsuPP<'m> {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn calculate_miss_penalty(&self, strain_count: f32, effective_miss_count: f32) -> f32 {
|
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]
|
#[inline]
|
||||||
@@ -559,7 +562,7 @@ impl<'m> OsuPP<'m> {
|
|||||||
let n50 = self.n50.unwrap_or(0) as f32;
|
let n50 = self.n50.unwrap_or(0) as f32;
|
||||||
|
|
||||||
if attributes.n_sliders > 0 {
|
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 {
|
if combo < fc_threshold {
|
||||||
combo_based_miss_count = fc_threshold / combo.max(1.0);
|
combo_based_miss_count = fc_threshold / combo.max(1.0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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_strain = aim_strain as f64;
|
||||||
diff_attributes.aim_difficult_strain_count = aim_difficult_strain_count;
|
diff_attributes.aim_difficult_strain_count = aim_difficult_strain_count;
|
||||||
diff_attributes.speed_difficult_strain_count = speed_difficult_strain_count;
|
diff_attributes.speed_difficult_strain_count = speed_difficult_strain_count;
|
||||||
|
diff_attributes.n_sliders = map.n_sliders as usize;
|
||||||
|
|
||||||
diff_attributes
|
diff_attributes
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user