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 legacy countdown #21009

Draft
wants to merge 13 commits into
base: master
Choose a base branch
from
Draft

Implement legacy countdown #21009

wants to merge 13 commits into from

Conversation

salmonslay
Copy link
Contributor

@salmonslay salmonslay commented Oct 29, 2022

Closes #20584

Prereqs:

This PR adds the countdown currently only present in stable. It is not visible in osu!taiko and osu!mania, but present in all other rulesets by default if a legacy skin is used.

The countdown from stable and from lazer onion skinned:

countdown.overlay.mp4

User skins:

countdown.skin.mp4

I haven't written any tests for this, so if someone could do that that would be great.

The code is a bit messy since this only adds the legacy countdown and not a "new" lazer-one (for example, it currently assumes that both will use the same timings CountdownTimings.GetTimings()), but if the rest looks good I'd be willing to add the lazer-countdown as well when a design for it is made.

@salmonslay
Copy link
Contributor Author

One of the CI errors are because of the ready sprite not being present, and will be fixed once ppy/osu-resources#221 is published.

The other two, TestSkinnableComponentsCoveredByDeserialisationTests() and the countdown having a non-registered dependency on DrawableRuleset and GameplayState in the tests I will need some help with solving.


double offset = Player.GameplayClockContainer.StartTime;

Scheduler.AddDelayed(() => sampleReady?.Play(), goTime - 5.9 * beatLength - offset);
Copy link
Member

Choose a reason for hiding this comment

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

This kind of logic isn't going to work with rewinding (and probably not even with pausing, depending on the scheduler's clock). At very least this needs to use transforms, but that might not be the best way forward.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Gotcha. Should I try readdressing this with transforms? If so, could you give me some guidance on where to start or point me to somewhere they're used in a similar way in the game?

@peppy peppy marked this pull request as draft June 16, 2023 06:08
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.

Beatmap countdown support is missing
3 participants