Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement difficulty and performance calculations. #292

Merged
merged 81 commits into from
Jun 28, 2022
Merged

Implement difficulty and performance calculations. #292

merged 81 commits into from
Jun 28, 2022

Conversation

naoei
Copy link
Member

@naoei naoei commented Jun 3, 2022

Supersedes #133.
Special thanks to @Coppertine @Flutterish, @YukiSnow0, Homura, and many others for helping.

Here's a quick breakdown of how we're calculating difficulty currently.

Preprocessing

Currently, we have two difficulty hit objects, the ordinary difficulty hit object (for hard beats) and an angled version (for beats, sliders, and slider repeats).

Regular difficulty hit object

This has nothing special attached to it, only providing a property called StrainTime with a minimum value of 25ms.

Angled difficulty hit object

This inherits the normal difficulty hit object and provides information around the current AngleRange, the Distance (or in other words, a delta angle) in angles between the current and last knowable angle, which if the previous hit object is a slider, it will fetch the very last angle of that slider.

If the current object is a Slider, then it will also provide information such as TravelDistance, LazyTravelDistance (travel distance - angle range), and the TravelTime.

Skills

We've combined the Star rating calculation and Performance points calculation into each skill, just to keep things simpler and easier to think of in mind.

Aim

The aim skill can be simply described by this mathematical operation:

$\dfrac{\texttt{distance}}{(\dfrac{\texttt{delta}^{1.4}-77}{100})^2 \cdot 0.1 + 25}$


The rest of the skills we copied from osu! lol

naoei and others added 30 commits May 8, 2022 19:08
Co-authored-by: Nao <35349837+naoei@users.noreply.github.com>
Implement Basic Performance Point Calculations
This should have it's own difficulty value calculated.. right?
Move away from inheriting Beat
@Coppertine Coppertine added enhancement New feature or request Epic labels Jun 16, 2022
@naoei naoei marked this pull request as ready for review June 28, 2022 20:09
@naoei naoei merged commit 8026d26 into master Jun 28, 2022
@naoei naoei deleted the diff-calc branch June 28, 2022 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Epic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants