ppy / osu

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

`CarouselBeatmap` difficulty ordering should respect selected mods and ruleset conversion #12628

Open salmonslay opened 3 years ago

salmonslay commented 3 years ago

Describe the bug: osu! beatmaps will still be ordered by their original star ratings when switching to osu!taiko, osu!catch or osu!mania, even if the difficulties on the converted maps are ordered differently. Not a huge issue in the most cases as converted difficulties usually follow the same star order, but some maps with streams can differ quite a lot in osu!catch so a fix would be nice to have.

Screenshots or videos showing encountered issue: Here is the same map with the osu! and osu!catch ruleset selected. In the first image they are sorted correctly, Relation is the last beatmap as it's 5.11 stars to 4.91. In the second screenshot however where the osu!catch ruleset is selected, the conversion will make Relation the second hardest difficulty, but the order does not change, it'll still be the last.

osu!

standard

osu!catch

catch

osu!lazer version: 2021.424.0

frenzibyte commented 3 years ago

Looks to be due to CarouselBeatmap using the beatmap's original ruleset star difficulty, rather than the current star difficulty: https://github.com/ppy/osu/blob/42c3309d4918db8044c312d28f3efbc7422caae1/osu.Game/Screens/Select/Carousel/CarouselBeatmap.cs#L91-L94 seems like it needs to resolve BeatmapDifficultyCache and get the star difficulty from there instead, and potentially share it for the corresponding DrawableCarouselBeatmap to read from it instead.

salmonslay commented 3 years ago

Adding on to this issue that the difficulty icons on the beatmap cards also will show the standard difficulty on converted beatmaps. Guessing there's a correlation with this issue image

Screenshot above taken with 2021.602.0

bdach commented 3 years ago

@LiterallyFabian that is tracked at https://github.com/ppy/osu/issues/10242#issuecomment-716164415.