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(
|
||||
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
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user