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

Replace recently-added HP drain density calculation with combo-end bonus #26083

Merged
merged 4 commits into from
Dec 23, 2023

Conversation

smoogipoo
Copy link
Contributor

@smoogipoo smoogipoo commented Dec 23, 2023

When maps have very consistent density, HP drain is as harsh as it can get to the point that it feels like if you miss a note you can never regain HP.

I don't know how to maths enough to fix this just from just the hp increase / hp drain side of things, so I'm taking another approach by adding combo-end bonuses similar to stable.

Stable gives one of three bonuses at the time combo:

  • "Geki" if every object was hit with a 300.
  • "Katu" if every object was hit with 100 or above.
  • "Mu" if any object was hit with 50 or below.

The slider tick/slider tail cases are a bit special in lazer due to judgement differences from stable.

Replays.zip (5. is most relevant to this PR)

Comment on lines +28 to +29
if (result.HitObject is not IHasComboInformation combo)
return getHealthIncreaseFor(result);
Copy link
Collaborator

Choose a reason for hiding this comment

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

I guess this is for safety but this branch should be 100% dead...? OsuHitObject implements IHasComboInformation.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I suppose so. Imo there's nothing wrong with being safe. Might eventually move this to the base implementation if it works well too.

Comment on lines +25 to +26
if (IsSimulating)
return getHealthIncreaseFor(result);
Copy link
Collaborator

Choose a reason for hiding this comment

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

So the simulation run that determines the drain rate does ignores the existence of the end combo bonus entirely?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yeah. This is not how stable does it but adding the combo bonus during simulation still makes it harder than it should be. Perhaps it could consider the lowest possible combo result, but let's get some feedback on how this feels the way it is first.

break;
}

// The tail has a special IgnoreMiss judgement
Copy link
Collaborator

Choose a reason for hiding this comment

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

...or SmallTickMiss, if classic mod is active. But the condition below appears to cover both, so it's fine.

@bdach
Copy link
Collaborator

bdach commented Dec 23, 2023

I'm unable to review the actual balance part of this and I'm not even sure it's productive at this point. Just pointed out things that seemed strange.

@peppy peppy merged commit d72ec81 into ppy:master Dec 23, 2023
11 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants