refactor!: add n_objects to mania diff attrs
This commit is contained in:
@@ -131,12 +131,14 @@ impl<'map> ManiaStars<'map> {
|
|||||||
.clock_rate(clock_rate)
|
.clock_rate(clock_rate)
|
||||||
.hit_windows();
|
.hit_windows();
|
||||||
|
|
||||||
|
let n_objects = self.map.hit_objects.len();
|
||||||
let ManiaResult { strain, max_combo } = calculate_result(self);
|
let ManiaResult { strain, max_combo } = calculate_result(self);
|
||||||
|
|
||||||
ManiaDifficultyAttributes {
|
ManiaDifficultyAttributes {
|
||||||
stars: strain.difficulty_value() * STAR_SCALING_FACTOR,
|
stars: strain.difficulty_value() * STAR_SCALING_FACTOR,
|
||||||
hit_window,
|
hit_window,
|
||||||
max_combo,
|
max_combo,
|
||||||
|
n_objects,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -233,6 +235,8 @@ pub struct ManiaDifficultyAttributes {
|
|||||||
pub stars: f64,
|
pub stars: f64,
|
||||||
/// The perceived hit window for an n300 inclusive of rate-adjusting mods (DT/HT/etc).
|
/// The perceived hit window for an n300 inclusive of rate-adjusting mods (DT/HT/etc).
|
||||||
pub hit_window: f64,
|
pub hit_window: f64,
|
||||||
|
/// The amount of hitobjects in the map.
|
||||||
|
pub n_objects: usize,
|
||||||
/// The maximum achievable combo.
|
/// The maximum achievable combo.
|
||||||
pub max_combo: usize,
|
pub max_combo: usize,
|
||||||
}
|
}
|
||||||
@@ -243,6 +247,12 @@ impl ManiaDifficultyAttributes {
|
|||||||
pub fn max_combo(&self) -> usize {
|
pub fn max_combo(&self) -> usize {
|
||||||
self.max_combo
|
self.max_combo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return the amount of hitobjects.
|
||||||
|
#[inline]
|
||||||
|
pub fn n_objects(&self) -> usize {
|
||||||
|
self.n_objects
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The result of a performance calculation on an osu!mania map.
|
/// The result of a performance calculation on an osu!mania map.
|
||||||
@@ -274,6 +284,12 @@ impl ManiaPerformanceAttributes {
|
|||||||
pub fn max_combo(&self) -> usize {
|
pub fn max_combo(&self) -> usize {
|
||||||
self.difficulty.max_combo
|
self.difficulty.max_combo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return the amount of hitobjects.
|
||||||
|
#[inline]
|
||||||
|
pub fn n_objects(&self) -> usize {
|
||||||
|
self.difficulty.n_objects
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<ManiaPerformanceAttributes> for ManiaDifficultyAttributes {
|
impl From<ManiaPerformanceAttributes> for ManiaDifficultyAttributes {
|
||||||
|
|||||||
@@ -589,6 +589,12 @@ impl OsuDifficultyAttributes {
|
|||||||
pub fn max_combo(&self) -> usize {
|
pub fn max_combo(&self) -> usize {
|
||||||
self.max_combo
|
self.max_combo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return the amount of hitobjects.
|
||||||
|
#[inline]
|
||||||
|
pub fn n_objects(&self) -> usize {
|
||||||
|
self.n_circles + self.n_sliders + self.n_spinners
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The result of a performance calculation on an osu!standard map.
|
/// The result of a performance calculation on an osu!standard map.
|
||||||
@@ -628,6 +634,11 @@ impl OsuPerformanceAttributes {
|
|||||||
pub fn max_combo(&self) -> usize {
|
pub fn max_combo(&self) -> usize {
|
||||||
self.difficulty.max_combo
|
self.difficulty.max_combo
|
||||||
}
|
}
|
||||||
|
/// Return the amount of hitobjects.
|
||||||
|
#[inline]
|
||||||
|
pub fn n_objects(&self) -> usize {
|
||||||
|
self.difficulty.n_objects()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<OsuPerformanceAttributes> for OsuDifficultyAttributes {
|
impl From<OsuPerformanceAttributes> for OsuDifficultyAttributes {
|
||||||
|
|||||||
@@ -64,5 +64,6 @@ impl_mode! {
|
|||||||
stars: 3.441830819988125,
|
stars: 3.441830819988125,
|
||||||
hit_window: 40.0,
|
hit_window: 40.0,
|
||||||
max_combo: 956,
|
max_combo: 956,
|
||||||
|
n_objects: 594,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user