fix: prevent underflow on fails due to sliders
This commit is contained in:
@@ -6,6 +6,9 @@
|
|||||||
- __Adjustments:__
|
- __Adjustments:__
|
||||||
- Specified clock rates can go below 0.001 again
|
- Specified clock rates can go below 0.001 again
|
||||||
|
|
||||||
|
- __Fixes:__
|
||||||
|
- Fixed underflow for osu!std scores that were FCs but quit mid-slider
|
||||||
|
|
||||||
# v0.9.4 (2023-02-09)
|
# v0.9.4 (2023-02-09)
|
||||||
|
|
||||||
- __Additions:__
|
- __Additions:__
|
||||||
|
|||||||
+2
-1
@@ -500,7 +500,8 @@ impl OsuPpInner {
|
|||||||
if self.attrs.n_sliders > 0 {
|
if self.attrs.n_sliders > 0 {
|
||||||
let estimate_slider_ends_dropped =
|
let estimate_slider_ends_dropped =
|
||||||
((self.state.n100 + self.state.n50 + self.state.n_misses)
|
((self.state.n100 + self.state.n50 + self.state.n_misses)
|
||||||
.min(self.attrs.max_combo - self.state.max_combo) as f64)
|
.min(self.attrs.max_combo.saturating_sub(self.state.max_combo))
|
||||||
|
as f64)
|
||||||
.clamp(0.0, estimate_diff_sliders);
|
.clamp(0.0, estimate_diff_sliders);
|
||||||
let slider_nerf_factor = (1.0 - self.attrs.slider_factor)
|
let slider_nerf_factor = (1.0 - self.attrs.slider_factor)
|
||||||
* (1.0 - estimate_slider_ends_dropped / estimate_diff_sliders).powi(3)
|
* (1.0 - estimate_slider_ends_dropped / estimate_diff_sliders).powi(3)
|
||||||
|
|||||||
Reference in New Issue
Block a user