fruits: calculate object amount if no accuracy given

This commit is contained in:
MaxOhn
2021-01-19 20:37:47 +01:00
parent 6755532559
commit bd6130d79c
+35
View File
@@ -191,12 +191,47 @@ impl<'m> FruitsPP<'m> {
.unwrap()
});
// Make sure all objects are set
if self
.n_fruits
.and(self.n_droplets)
.and(self.n_tiny_droplets)
.and(self.n_tiny_droplet_misses)
.is_none()
{
let mut n_fruits = self.n_fruits.unwrap_or(0);
let mut n_droplets = self.n_droplets.unwrap_or(0);
let mut n_tiny_droplets = self.n_tiny_droplets.unwrap_or(0);
let n_tiny_droplet_misses = self.n_tiny_droplet_misses.unwrap_or(0);
let missing = attributes
.max_combo
.saturating_sub(n_fruits)
.saturating_sub(n_droplets);
let missing_fruits =
missing.saturating_sub(attributes.n_droplets.saturating_sub(n_droplets));
n_fruits += missing_fruits;
n_droplets += missing.saturating_sub(missing_fruits);
n_tiny_droplets += attributes
.n_tiny_droplets
.saturating_sub(n_tiny_droplets)
.saturating_sub(n_tiny_droplet_misses);
self.n_fruits.replace(n_fruits);
self.n_droplets.replace(n_droplets);
self.n_tiny_droplets.replace(n_tiny_droplets);
self.n_tiny_droplet_misses.replace(n_tiny_droplet_misses);
}
let stars = attributes.stars;
// Relying heavily on aim
let mut pp = (5.0 * (stars / 0.0049).max(1.0) - 4.0).powi(2) / 100_000.0;
let mut combo_hits = self.combo_hits();
if combo_hits == 0 {
combo_hits = attributes.max_combo;
}