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

Buff precision difficulty rating in osu! #28877

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

stanriders
Copy link
Member

This PR buffs precision (cs>5.5) maps in osu!

It's loosely based on this PR but instead of nerfing wide angle bonus based on acuteness of surrounding angles it's checking if the wide bonus comes from patterns that go back-and-forth through a central object which is usually easier to hit because your hand already knows the position of the center point.

As a consequence it changes the wide bonus calculation from current hitobject to the previous one which affects values on maps not directly affected by the precision buff itself.

@tsunyoku
Copy link
Sponsor Member

@smoogipoo can we get a sheet please

@smoogipoo
Copy link
Contributor

!diffcalc

Copy link

github-actions bot commented Jul 16, 2024

@@ -155,8 +160,7 @@ private void setDistances(double clockRate)

if (BaseObject.Radius < 30)
{
float smallCircleBonus = Math.Min(30 - (float)BaseObject.Radius, 5) / 50;
scalingFactor *= 1 + smallCircleBonus;
SmallCircleBonus = 1.0 + Math.Min(30 - BaseObject.Radius, 30) / 38;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do you even need Math.Min here?

@@ -74,7 +74,7 @@ public static double EvaluateDifficultyOf(DifficultyHitObject current, bool with
// Rewarding angles, take the smaller velocity as base.
double angleBonus = Math.Min(currVelocity, prevVelocity);

wideAngleBonus = calcWideAngleBonus(currAngle);
wideAngleBonus = calcWideAngleBonus(lastAngle);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't really understand why it's changed from currAngle to lastAngle


if (distance < 1)
{
wideAngleBonus *= 1 - 0.35 * (1 - distance);
Copy link
Contributor

@Givikap120 Givikap120 Jul 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this thing is not even working
need to check last and lastlastlast (💀) instead
EDIT: oopsie, I was wrong, it was not working cuz I changed angle for bonus from prev to curr

@Givikap120
Copy link
Contributor

stanriders#219

@Givikap120
Copy link
Contributor

Also, this requires more advanced considerations like very short and spiky maps potentially being extremely overweight (mentioned by lolu)

@stanriders stanriders marked this pull request as draft September 13, 2024 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

4 participants