This changes how the current/previous velocity is being calculated in
Aim. Currently it's being calculated as an addition of 2 velocities
together which isn't really correct, instead here velocity is being
calculated as a (combined distances) / (combined times). On practice
this buffs underweighted slider maps while overweighted ones stay about
the same
https://pp.huismetbenen.nl/rankings/players/use-proper-slider-velocity
This changes difficulty calculations to use `ClockRate` and `HitWindows`
from `DifficultyHitObjects` instead of providing them manually. It's
main purpose is unifying all the calculations to use the same source of
truth, and also allowing future work on supporting variable clockrates.
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>
This does a couple of things:
- Adds slider->circle effective ratio adjustment
- Removes same polarity nerf for single delta count islands (which are
pretty much THE most unpredictable)
- Makes polarity nerf check actual deltas and not just the count
- Excludes spinners from ratio calculation
https://pp.huismetbenen.nl/rankings/players/minor-rhythm-improvements
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>
It removes unnecessary function `DurationSpentInvisible` function that
just rescaled preempt.
Now it's just using preempt directly.
I've made multiplier to be very close to the current one, so pp deltas
should be minimal.
This PR aims to replace the current bonuses used to award high approach
rates and scores made using the Hidden mod with a Reading skill that
takes into account each note's reading difficulty separately, Important
to note is the fact that as reading difficulty is now a skill the
bonuses are now additive instead of multiplicative, meaning there are
vast changes in deltas on the high and low end of scores. Due to the
nature of adding a new skill new difficulty and performance attributes
need to be added.
Huis page:
[https://pp.huismetbenen.nl/rankings/admin/kwotaq-reading](url)
---------
Co-authored-by: apollo-dw <83023433+apollo-dw@users.noreply.github.com>
Co-authored-by: js1086 <js1086@student.le.ac.uk>
Co-authored-by: tsunyoku <tsunyoku@gmail.com>
Co-authored-by: StanR <hi@stanr.info>
## This pr resolves the issue with the angle calculation.
The old system calculated the angle between three objects. If the last
object was a long slider that the player needed to follow, the system
calculated the angle using only the slider’s end point and the previous
object, which caused long sliders to have incorrect angle values.
---------
Co-authored-by: StanR <hi@stanr.info>
Co-authored-by: James Wilson <tsunyoku@gmail.com>
* Buff precision difficulty rating in osu!
* Fix position repetition calculation
* Fix aim evaluator crashing, move small circle bonus calculation, adjust the curve slightly
* Refactor
* Fix code quality
* Semicolon
* Apply small circle bonus to speed too
* Fix formatting
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>
* Move difficulty calculation fields from `Slider` to `OsuDifficultyHitObject`
* Remove redundant check
* Use `LastObject` where possible
* Update tests
* Make `LazyTravelDistance` `double`
---------
Co-authored-by: James Wilson <tsunyoku@gmail.com>