ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.09k stars 2.23k forks source link

When earning multiple medals, only one medal popup is displayed #29119

Open SteampunkWizardStudios opened 1 month ago

SteampunkWizardStudios commented 1 month ago

Type

Cosmetic

Bug description

After trying to earn a hush-hush medal, I accidentally got another medal and ending up getting both after checking my profile but did not know initially due to only the popup for one medal appearing.

Screenshots or videos

Unfortunately, this is difficult to reproduce and I do not have a recording.

Version

2024.727.0-lazer

Logs

compressed-logs.zip

whamer100 commented 1 month ago

I had this happen to me earlier. Specifically Slowboat and Insanity Approaches in my case (although i guess that doesn't matter in this case).

I imagine this would be easiest to reproduce with a new account and clear basically any map with only one mod enabled.

Joehuu commented 1 month ago

There was a design that was supposed to address this: https://www.figma.com/design/kWr58bjRf9pZWtLFgvn0li/Medal-Unlocked-Screen?node-id=0-1&t=u78TSRtcKx7YcXrw-0

but it and the linked animation were too underwhelming, so the old stable implementation was used, which only makes sense for one medal at a time.

SteampunkWizardStudios commented 1 month ago

It could also just play the animation again, it doesn't take too long and getting multiple medals at once is obviously pretty rare, at least for now.

bdach commented 1 month ago

The animation is supposed to play again. The code is structured to support displaying multiple medals in succession, and there's even a test case exercising it.

I'm not sure why in these cases it didn't play. It's either an issue with delivery of the notification from web, or some race I didn't account for. Or maybe a case of accidentally dismissing the medal or something early on in the animation?

peppy commented 4 weeks ago

If anyone encounters this again, please check on the osu! website whether both the notifications arrive or not. This will help us isolate whether this is client-side or web-side.

I've also added some simple logging for the display code, as I can't immediately see an issue with it.