fruits: consider given misses when calculating hit results

This commit is contained in:
MaxOhn
2021-01-20 19:22:31 +01:00
parent b3f73b7b6c
commit b2f2333c66
2 changed files with 13 additions and 3 deletions
+11 -2
View File
@@ -506,6 +506,8 @@ pub fn strains(map: &Beatmap, mods: impl Mods) -> Strains {
}
}
// BUG: Sometimes there are off-by-one errors,
// presumably caused by floating point inaccuracies
fn tiny_droplet_count(
start_time: f32,
time_between_ticks: f32,
@@ -630,7 +632,7 @@ mod tests {
#[test]
#[ignore]
fn fruits_single() {
let file = match File::open("./maps/1974968.osu") {
let file = match File::open("./maps/1587421.osu") {
Ok(file) => file,
Err(why) => panic!("Could not open file: {}", why),
};
@@ -640,7 +642,14 @@ mod tests {
Err(why) => panic!("Error while parsing map: {}", why),
};
let result = FruitsPP::new(&map).mods(0).calculate();
let result = FruitsPP::new(&map)
.mods(0)
.combo(266)
.fruits(644)
.droplets(33)
.tiny_droplet_misses(12)
.misses(10)
.calculate();
println!("Stars: {}", result.stars());
println!("PP: {}", result.pp());
+2 -1
View File
@@ -207,7 +207,8 @@ impl<'m> FruitsPP<'m> {
let missing = attributes
.max_combo
.saturating_sub(n_fruits)
.saturating_sub(n_droplets);
.saturating_sub(n_droplets)
.saturating_sub(self.n_misses);
let missing_fruits =
missing.saturating_sub(attributes.n_droplets.saturating_sub(n_droplets));