fruits: consider given misses when calculating hit results
This commit is contained in:
+11
-2
@@ -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(
|
fn tiny_droplet_count(
|
||||||
start_time: f32,
|
start_time: f32,
|
||||||
time_between_ticks: f32,
|
time_between_ticks: f32,
|
||||||
@@ -630,7 +632,7 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
#[ignore]
|
#[ignore]
|
||||||
fn fruits_single() {
|
fn fruits_single() {
|
||||||
let file = match File::open("./maps/1974968.osu") {
|
let file = match File::open("./maps/1587421.osu") {
|
||||||
Ok(file) => file,
|
Ok(file) => file,
|
||||||
Err(why) => panic!("Could not open file: {}", why),
|
Err(why) => panic!("Could not open file: {}", why),
|
||||||
};
|
};
|
||||||
@@ -640,7 +642,14 @@ mod tests {
|
|||||||
Err(why) => panic!("Error while parsing map: {}", why),
|
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!("Stars: {}", result.stars());
|
||||||
println!("PP: {}", result.pp());
|
println!("PP: {}", result.pp());
|
||||||
|
|||||||
+2
-1
@@ -207,7 +207,8 @@ impl<'m> FruitsPP<'m> {
|
|||||||
let missing = attributes
|
let missing = attributes
|
||||||
.max_combo
|
.max_combo
|
||||||
.saturating_sub(n_fruits)
|
.saturating_sub(n_fruits)
|
||||||
.saturating_sub(n_droplets);
|
.saturating_sub(n_droplets)
|
||||||
|
.saturating_sub(self.n_misses);
|
||||||
|
|
||||||
let missing_fruits =
|
let missing_fruits =
|
||||||
missing.saturating_sub(attributes.n_droplets.saturating_sub(n_droplets));
|
missing.saturating_sub(attributes.n_droplets.saturating_sub(n_droplets));
|
||||||
|
|||||||
Reference in New Issue
Block a user