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

[pull] master from ppy:master #4

Open
wants to merge 10,000 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
10000 commits
Select commit Hold shift + click to select a range
8e0f6fc
Re-encode difficulties on resource change
frenzibyte Dec 4, 2024
fa87df6
Move non-current handling to `PerformExit`
frenzibyte Dec 4, 2024
a7586c5
Merge branch 'master' into results-screen-quick-retry-transition
frenzibyte Dec 4, 2024
aa0ee5c
Merge pull request #30970 from peppy/results-screen-quick-retry-trans…
frenzibyte Dec 4, 2024
72aa652
Merge pull request #30965 from Susko3/use-GetLocalisedString
peppy Dec 5, 2024
f83ec72
Move latency certifier and import files button outside debug section
frenzibyte Dec 5, 2024
7ab16a5
Make debug section only visible on debug builds
frenzibyte Dec 5, 2024
7c1be5e
Remove unnecessary localisations
frenzibyte Dec 5, 2024
791416c
Merge pull request #30937 from frenzibyte/fix-quick-restart-not-savin…
peppy Dec 5, 2024
1b1e7b6
Clean up code slightly
frenzibyte Dec 5, 2024
3d6e766
Merge pull request #30976 from frenzibyte/hide-some-settings
peppy Dec 5, 2024
d92ea91
Merge branch 'master' into netcore-analyzer
huoyaoyuan Dec 5, 2024
68e400d
Put globalconfig into seperated folder and reference explicitly
huoyaoyuan Dec 5, 2024
8d0e1f9
Merge branch 'master' into improve-menu-sample-playback
peppy Dec 5, 2024
84a8500
Update framework
peppy Dec 5, 2024
49f4b0e
Update resources
peppy Dec 5, 2024
6901455
Remove unnecessary null checks
peppy Dec 6, 2024
7592813
Merge pull request #30910 from nekodex/improve-menu-sample-playback
peppy Dec 6, 2024
62ea4e0
Add failing test
smoogipoo Dec 6, 2024
8b456e1
Always convert mania spinners
smoogipoo Dec 6, 2024
8e1bd98
Split out + rename `PassThroughPatternGenerator`
smoogipoo Dec 6, 2024
e65f8ba
Simplify implementation
smoogipoo Dec 6, 2024
e8728ab
Rename `LegacyPatternGenerator` to stop naming conflicts
smoogipoo Dec 6, 2024
1bbf32d
Add some explanatory comments
smoogipoo Dec 6, 2024
e703d9e
NRT refactorings + rename generators to match usage
smoogipoo Dec 6, 2024
8dda5aa
Populate default `LegacyType` value on convert hitobjects
smoogipoo Dec 6, 2024
ec8b320
Handle non-legacy types
smoogipoo Dec 6, 2024
5cb6b86
Fix reference effect point getting mutated
frenzibyte Dec 6, 2024
5849a69
Merge pull request #30921 from huoyaoyuan/netcore-analyzer
peppy Dec 7, 2024
e22f3b7
Merge branch 'master' into named-pipe
peppy Dec 7, 2024
b9f1fef
Update framework
peppy Dec 7, 2024
3e7005d
Merge pull request #30956 from peppy/named-pipe
peppy Dec 7, 2024
0a00f7a
Implement skinnable mod display
Tom94 Dec 7, 2024
db18492
Update default osk for skinnable mod display
Tom94 Dec 7, 2024
13759f5
Back out test change
bdach Dec 7, 2024
2713ae6
Remove unused using
peppy Dec 7, 2024
b04f5ab
Fix IPC not working in release
LittleEndu Dec 7, 2024
eeac8f5
Merge pull request #31000 from LittleEndu/release-ipc-name
peppy Dec 7, 2024
459533a
Merge branch 'master' into bookmarks
bdach Dec 7, 2024
1b8d937
Merge pull request #30973 from frenzibyte/copy-effect-points
smoogipoo Dec 9, 2024
a46070b
Add description to osu! file associations in iOS
frenzibyte Dec 9, 2024
e9868c6
Enable exporting beatmaps in iOS
frenzibyte Dec 9, 2024
0c0dcb1
Use temporary storage for exported files on iOS
frenzibyte Dec 9, 2024
216e0c7
Merge pull request #31035 from frenzibyte/ios-uttype-description
smoogipoo Dec 9, 2024
f0f3c53
Update exporter test to use `OsuStorage`
frenzibyte Dec 9, 2024
1febed6
Fix top score statistics section total score display being terminally…
bdach Dec 9, 2024
197d553
Merge pull request #31041 from bdach/wtf-wtf-wtf-wtf-wtf-wtf
peppy Dec 10, 2024
7ec2d91
Merge branch 'master' into editor-multiple-background-audio-files
peppy Dec 10, 2024
92dfcae
Adjust bad grammar
peppy Dec 10, 2024
d69f5fd
Avoid beatmap lookup per bar in logo visualisation
peppy Dec 10, 2024
7fcfebf
Use Alt-{Left,Right} as default bindings for bookmark navigation
bdach Dec 7, 2024
48bf2fa
Merge pull request #30960 from bdach/bookmarks
peppy Dec 10, 2024
3cac583
Rewrite resource changing code to be more legible (to my eye)
peppy Dec 10, 2024
bbaa542
Add note about expensive operation
peppy Dec 10, 2024
e6e79cb
Merge branch 'master' into silly-thing
frenzibyte Dec 10, 2024
d8e545e
Merge pull request #31047 from peppy/silly-thing
frenzibyte Dec 10, 2024
dae380b
Fix lookups of hit circle slider pieces potentially using wrong sourc…
peppy Dec 10, 2024
86f86fa
Merge pull request #31052 from peppy/fix-hitcircle-lookup-fallback
smoogipoo Dec 10, 2024
315a9db
Allow tsunyoku and stanriders to trigger diffcalc spreadsheet generator
smoogipoo Dec 11, 2024
842829d
Merge pull request #31071 from smoogipoo/add-diffcalc-allowed-users
peppy Dec 11, 2024
637fe07
Rename `Room{Status -> Mode}Filter`
bdach Dec 11, 2024
3352571
Add ability to filter out currently playing rooms
bdach Dec 11, 2024
b37a06c
Hide "show playing rooms" toggle when in filter mode it doesn't make …
bdach Dec 11, 2024
89e3c55
Merge pull request #30860 from frenzibyte/editor-multiple-background-…
bdach Dec 11, 2024
723883e
Revert "Update exporter test to use `OsuStorage`"
frenzibyte Dec 11, 2024
e0aec6f
Revert unnecessary complexity
frenzibyte Dec 11, 2024
c4374c7
Merge branch 'master' into medal-display-fix
bdach Dec 11, 2024
1f43ad3
Merge branch 'master' into catch-convert-to-stream
bdach Dec 11, 2024
5a0b732
Add comments backreferences to copies of duplicated code for future use
bdach Dec 11, 2024
de31a48
Some `Carousel` classes can be abstract
peppy Dec 9, 2024
bab9b9c
Remove no-longer-correct comment
peppy Dec 10, 2024
c94b393
Access beatmap store via abstract base class
peppy Dec 10, 2024
a868c33
Remove `BeatmapCarousel` testing backdoor
peppy Dec 11, 2024
8079784
Merge pull request #30877 from peppy/medal-display-fix
peppy Dec 11, 2024
02c52e4
Merge pull request #31039 from frenzibyte/ios-temporary-export-storage
peppy Dec 11, 2024
2a4f596
Merge branch 'master' into ios-beatmap-export
peppy Dec 11, 2024
cc1f949
Merge pull request #31037 from frenzibyte/ios-beatmap-export
peppy Dec 11, 2024
99f9e28
Merge pull request #30763 from Darius-Wattimena/catch-convert-to-stream
bdach Dec 11, 2024
4e4a99d
Merge pull request #31076 from peppy/beatmap-store-interface
bdach Dec 11, 2024
a3998fb
Merge branch 'master' into better-room-status
peppy Dec 11, 2024
0aa17a9
Increase timed update frequency and add inline comment
peppy Dec 11, 2024
e8c0e27
Adjust in line with upstream changes
peppy Dec 11, 2024
26f15de
Add missing mania tooltip overlay for 4k and 7k
NicholasChin28 Dec 11, 2024
862b41c
Move `BeatmapInfoWedgeV2` to correct namespace
peppy Dec 12, 2024
88241d5
Merge pull request #30838 from smoogipoo/better-room-status
bdach Dec 12, 2024
d8d5a00
Merge branch 'master' into filter-playing-rooms
bdach Dec 12, 2024
61ee830
Adjust copy
bdach Dec 12, 2024
0328708
Store value of toggle to setting
bdach Dec 12, 2024
a22f341
Replace switch expression with LocalisableDescription attribute for v…
NicholasChin28 Dec 12, 2024
3035e84
Apply `NRT` to incoming changed files
Joehuu Dec 10, 2024
e95dc2b
Add `FormatStarRating()` method util
Joehuu Dec 10, 2024
92e07b4
Add recommended difficulty numerical value near filter in beatmap li…
Joehuu Dec 10, 2024
f7364de
Add test and null protections
Joehuu Dec 11, 2024
38b3d5f
Update recommended difficulty for osu!taiko
Joehuu Dec 13, 2024
ae10301
Merge pull request #31103 from Joehuu/update-taiko-recommended-diff
smoogipoo Dec 13, 2024
313de33
Adjust padding to avoid wrapping on checkbox text
peppy Dec 13, 2024
12e5999
Add another failing test
smoogipoo Dec 13, 2024
d597232
Fix incorrect `lastPattern` value
smoogipoo Dec 13, 2024
62a1a58
Merge branch 'master' into recommended-diff-beatmap-listing
smoogipoo Dec 13, 2024
7bb1a51
Unbind event on disposal
smoogipoo Dec 13, 2024
2930db5
Merge pull request #31073 from bdach/filter-playing-rooms
smoogipoo Dec 13, 2024
b470e30
Add failing test showing player settings appearing in skin editor
peppy Dec 13, 2024
1e809c7
Fix player settings overlay appearing while in skin editor
peppy Dec 13, 2024
a796af9
Fix player settings overlay cog overlapping skin elements
peppy Dec 13, 2024
fdc41ac
Fix flaky editor beatmap creation test
bdach Dec 13, 2024
edbaaa9
Fix test
smoogipoo Dec 13, 2024
0e0d968
Fix "quick retry" hotkey not working for autoplay
peppy Dec 13, 2024
d00bc4b
Also allow using "quick retry" for other replays
peppy Dec 13, 2024
c29c3d4
Merge pull request #31105 from peppy/player-settings-no-show-skin-editor
smoogipoo Dec 13, 2024
22a5ed8
Merge branch 'master' into player-settings-fix-overlap-skins
smoogipoo Dec 13, 2024
e2af882
Merge pull request #31107 from bdach/flaky-editor-test
smoogipoo Dec 13, 2024
f84c67b
Merge pull request #31101 from Joehuu/recommended-diff-beatmap-listing
smoogipoo Dec 13, 2024
4b0cdd7
Add note about player settings overlay button
peppy Dec 13, 2024
35c70ce
Merge pull request #31106 from peppy/player-settings-fix-overlap-skins
smoogipoo Dec 13, 2024
64555de
Fix adjusting control point offset after undo/redo causing catastroph…
peppy Dec 13, 2024
da840e3
Change the way "current" points are hinted on timing screen
peppy Dec 13, 2024
9025103
Reword comment to hopefully be more understandable
peppy Dec 13, 2024
c0b6e78
Fix text anchor for mania tooltip
NicholasChin28 Dec 13, 2024
c93b6db
Merge pull request #31108 from peppy/quick-retry-for-replays
peppy Dec 13, 2024
153e6c0
Use Count comparison instead of Any
NicholasChin28 Dec 14, 2024
e2edd9e
Fix code quality issues
NicholasChin28 Dec 15, 2024
a6e00d6
Implement ability to mark beatmap as played
bdach Dec 16, 2024
1058abb
Fix code quality
bdach Dec 16, 2024
98e8d0b
Merge branch 'master' into timing-current-point-indicator
bdach Dec 16, 2024
573d709
Merge pull request #31109 from peppy/fix-editor-timing-undo-redo
bdach Dec 16, 2024
a894862
Expose high precision mouse toggle when searching for "sensitivity" a…
peppy Dec 16, 2024
8d1d026
Clean up model
bdach Dec 16, 2024
cfdb959
Split actual methods & fix completely broken localisation
bdach Dec 16, 2024
ecb7a80
Revert "Fix text anchor for mania tooltip"
bdach Dec 16, 2024
9652c5a
Merge pull request #31110 from peppy/timing-current-point-indicator
bdach Dec 16, 2024
8a2f161
Merge pull request #31139 from peppy/settings-sensitivity
bdach Dec 16, 2024
85ada32
Skip the pause cooldown when in intro / break time
peppy Dec 16, 2024
d72a0b0
Merge pull request #31084 from NicholasChin28/mania-profile-overlay-t…
bdach Dec 16, 2024
bdd417c
Move "global" scroll-adjusts-volume to a per-screen component-based i…
peppy Dec 16, 2024
d97ea78
Change beat snap divisior adjust defaults to be Ctrl+Scroll instead o…
peppy Dec 16, 2024
68a5618
Add test coverage
bdach Dec 16, 2024
09fc30e
Hide `!mp` commands from tournament streaming chat
peppy Dec 16, 2024
c46e81d
Roll our own iOS application delegates
frenzibyte Dec 11, 2024
4bf90a5
Use time-based resume overlay when playing osu! on touchscreen
frenzibyte Dec 16, 2024
22e74cc
Fix iOS app configuration missing certain specifications
frenzibyte Dec 16, 2024
47d81e7
Fix null inspections on `GameplayChatDisplay`
peppy Dec 17, 2024
d542382
Merge pull request #31156 from frenzibyte/mobile-delayed-resume-overlay
smoogipoo Dec 18, 2024
546f004
Merge branch 'master' into ios-osu-is-not-document-app
smoogipoo Dec 18, 2024
c68dc11
Fix being able to click through slider tail drag handles
peppy Dec 18, 2024
75d694d
Add key value for `NSBluetoothAlwaysUsageDescription`
frenzibyte Dec 18, 2024
532c681
Update framework
frenzibyte Dec 18, 2024
239dc7d
Merge pull request #31162 from frenzibyte/ios-osu-is-not-document-app
peppy Dec 19, 2024
c7354d9
Apply type inheritance check
minisbett Dec 15, 2024
dedf8ad
Update resources
peppy Dec 19, 2024
6dc681f
Annotate virtual as potentially nullable
bdach Dec 19, 2024
b99b3a5
Merge branch 'master' into tournament-hide-mp-commands
bdach Dec 19, 2024
bc81440
Merge pull request #31184 from peppy/slider-drag-tail-click-through
bdach Dec 19, 2024
9cdf06b
Merge pull request #31150 from peppy/tournament-hide-mp-commands
bdach Dec 19, 2024
772ac2d
Fix mod display not fading out after start of play
bdach Dec 19, 2024
7d1473c
Simplify expand/contract code
bdach Dec 19, 2024
e458f54
Adjust formatting
bdach Dec 19, 2024
2cab8f4
Add localisation support
bdach Dec 19, 2024
1057aa8
Merge pull request #30984 from smoogipoo/fix-mania-spinner-conversion
bdach Dec 19, 2024
df607ac
Load seasonal backgrounds without requiring being logged in
peppy Dec 19, 2024
f9939e7
Remove invalid test
peppy Dec 19, 2024
9f8c390
Update framework
peppy Dec 20, 2024
7c14823
Remove unused using statements
peppy Dec 20, 2024
55dff1f
Merge branch 'master' into skinnable-mod-display
peppy Dec 20, 2024
a94ada2
Update resources
peppy Dec 20, 2024
80ae794
Add christmas-specific logo heartbeat
peppy Dec 19, 2024
180a381
Adjust menu side flashes to be brighter and coloured when seasonal ac…
peppy Dec 19, 2024
a4bf29e
Adjust menu logo visualiser to use seasonal colours
peppy Dec 19, 2024
618a984
Increase intro time allowance to account for seasonal tracks with act…
peppy Dec 19, 2024
0240298
Add christmas intro
peppy Dec 19, 2024
0954e0b
Add seasonal lighting
peppy Dec 19, 2024
22f3831
Add logo hat
peppy Dec 19, 2024
4924a35
Fix light expiry
peppy Dec 19, 2024
8c7af79
Tidy up for pull request attempt
peppy Dec 20, 2024
e5dbf9c
Subclass osu logo instead of adding much code to it
peppy Dec 20, 2024
2a720ef
Move christmas intro screen to seasonal namespace
peppy Dec 20, 2024
ad4a8a1
Subclass menu flashes instead of adding local code to it
peppy Dec 20, 2024
8e93779
Subclass menu logo visualisation
peppy Dec 20, 2024
3fc9990
Fix some failing tests
peppy Dec 20, 2024
7ebc9dd
Disable seasonal for now
peppy Dec 20, 2024
f5b0198
Fix test faiulres when seasonal set to `true` due to non-circles intro
peppy Dec 20, 2024
5d17014
Fix mouse wheel disable not working during gameplay
peppy Dec 20, 2024
48ce686
Add missing partial
peppy Dec 20, 2024
25373c3
Fix backwards repeat check
bdach Dec 20, 2024
0a87fb5
Merge branch 'master' into global-volume-scroll-better-maybe
bdach Dec 20, 2024
18e2912
Merge pull request #31198 from peppy/seasonal-no-login
bdach Dec 20, 2024
767be9d
Merge pull request #31146 from peppy/global-volume-scroll-better-maybe
bdach Dec 20, 2024
e23085c
Merge branch 'master' into editor-beat-snap-adjust-scroll
bdach Dec 20, 2024
3ec63d0
Silence test that apparently can't work on CI
bdach Dec 19, 2024
139fb2c
Revert and fix some tests still
peppy Dec 20, 2024
4551d59
Give skinnable mod display a minimum size
bdach Dec 20, 2024
c16bfa0
Merge branch 'master' into christmas
peppy Dec 20, 2024
f698284
Merge branch 'master' into ios-app-delegates
peppy Dec 20, 2024
e62b329
Merge pull request #31143 from peppy/no-pause-cooldown-break-intro
bdach Dec 20, 2024
bdcfec3
Merge pull request #31152 from frenzibyte/ios-app-delegates
peppy Dec 20, 2024
a9cf31f
Usings
peppy Dec 20, 2024
9b1d94b
Merge branch 'master' into skinnable-mod-display
peppy Dec 20, 2024
881623d
Merge branch 'master' into christmas
peppy Dec 21, 2024
cf987bc
Merge pull request #30993 from Tom94/skinnable-mod-display
peppy Dec 21, 2024
1fcd953
Fetch ruleset before initialising beatmap the first time
peppy Dec 21, 2024
d897a31
Add extra safeties against null ref when rulesets are missing
peppy Dec 21, 2024
5f617e6
Implement rename skin popover and button
normalid-awa Dec 21, 2024
1174f46
Add menu tip hinting at correct spelling of laser
peppy Dec 21, 2024
9a0d964
Select all on focus when popover just open
normalid-awa Dec 21, 2024
ae7f1a9
Fix code quality
normalid-awa Dec 21, 2024
7cd3979
Fix typo in main menu tip
frenzibyte Dec 21, 2024
1c48fdb
Add `Hidden` cursor state flag on all platforms
frenzibyte Dec 21, 2024
ce5a205
Capitalise English
Joehuu Dec 21, 2024
78e9463
Merge pull request #31224 from frenzibyte/fix-tip
Joehuu Dec 21, 2024
431d57a
Make "featured artist" beatmap listing filter persist in config
frenzibyte Dec 21, 2024
c24f690
Allow disabling filter items in beatmap listing overlay
frenzibyte Dec 22, 2024
589e187
Disable ability to toggle "featured artists" beatmap listing filter i…
frenzibyte Dec 22, 2024
e716919
Remove redundant `&& true`
peppy Dec 22, 2024
0aed625
Rename variable and adjust commentary
peppy Dec 22, 2024
fcfab9e
Fix spacing
frenzibyte Dec 22, 2024
1a7feeb
Use `virtual` property rather than inline iOS conditional
peppy Dec 23, 2024
f12fffd
Fix more than obvious test failure
peppy Dec 23, 2024
7b9f776
Merge pull request #31206 from peppy/christmas
peppy Dec 23, 2024
097828d
Fix incorrect mouse wheel mappings
peppy Dec 23, 2024
9ff4a58
Add migration to update users which have previous default bindings fo…
peppy Dec 23, 2024
050bf9e
Keep 'x' symbol visible even while disabled
frenzibyte Dec 23, 2024
7e3477f
Remove unnecessary guarding
frenzibyte Dec 23, 2024
6b635d5
Add tooltip
frenzibyte Dec 23, 2024
7e8aaa6
Add keywords for intro-related settings
peppy Dec 24, 2024
282c67d
Update resources
peppy Dec 24, 2024
8762e3f
Always show tooltip, and reword to be always applicable
peppy Dec 24, 2024
ae9c7e1
Adjust layout and remove localisable strings for temporary buttons
peppy Dec 24, 2024
378bef3
Change order of skin layout editor button for better visual balance
peppy Dec 24, 2024
85f5234
Merge pull request #31238 from frenzibyte/make-featured-artist-setting
peppy Dec 24, 2024
362311d
Merge pull request #31220 from normalid-awa/feature/skin/rename-skin
peppy Dec 24, 2024
a5d354d
Update framework
peppy Dec 24, 2024
b8d6bba
Fix legacy hitcircle fallback logic being broken with recent fix
peppy Dec 24, 2024
d9be172
Add explanatory comment for schema version bump
bdach Dec 24, 2024
1f90be3
Merge branch 'master' into editor-beat-snap-adjust-scroll
bdach Dec 24, 2024
2211a4d
Merge pull request #31147 from peppy/editor-beat-snap-adjust-scroll
bdach Dec 24, 2024
6b56c65
Merge pull request #31254 from peppy/fix-invisible-circle-sprites
bdach Dec 24, 2024
d8686f5
Slightly reduce background brightness at main menu when seasonal ligh…
peppy Dec 24, 2024
ce1eda7
Fix adjusting volume using scroll wheel not working during intro
peppy Dec 24, 2024
a169bf5
Merge pull request #31258 from peppy/reduce-dim-seasonal
bdach Dec 24, 2024
287b880
Merge pull request #31259 from peppy/intro-volume-adjust
bdach Dec 24, 2024
df3b300
Merge pull request #31226 from frenzibyte/fix-raw-input-mobile
peppy Dec 24, 2024
62e536b
Merge pull request #31138 from bdach/mark-as-played
peppy Dec 24, 2024
1f60adb
Switch scroll direction for beat snap
kongehund Dec 25, 2024
2a374c0
Add migration
peppy Dec 26, 2024
fa0d2f4
Merge pull request #31277 from kongehund/switch-scroll-direction-beat…
bdach Dec 26, 2024
ed397c8
Add failing assertions
bdach Dec 27, 2024
5abad07
Pause playback when entering gameplay test from editor
bdach Dec 27, 2024
6a6db5a
Populate metadata from ID3 tags when changing beatmap audio track in …
bdach Dec 27, 2024
1b2a223
Fix failing test scene due to new dependency
peppy Dec 27, 2024
ac348b8
Merge pull request #31307 from bdach/id3-tags
peppy Dec 27, 2024
10ee2e2
Merge pull request #31303 from bdach/pause-on-gameplay-test
peppy Dec 27, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add missing mania tooltip overlay for 4k and 7k
  • Loading branch information
NicholasChin28 committed Dec 11, 2024
commit 26f15def70a6c2ccf1f66bdac5aad14097524efe
12 changes: 11 additions & 1 deletion osu.Game/Localisation/CommonStrings.cs
Original file line number Diff line number Diff line change
@@ -179,6 +179,16 @@ public static class CommonStrings
/// </summary>
public static LocalisableString CopyLink => new TranslatableString(getKey(@"copy_link"), @"Copy link");

/// <summary>
/// "4K"
/// </summary>
public static LocalisableString FourKey => new TranslatableString(getKey(@"four_key"), @"4K");

/// <summary>
/// "7K"
/// </summary>
public static LocalisableString SevenKey => new TranslatableString(getKey(@"seven_key"), @"7K");

private static string getKey(string key) => $@"{prefix}:{key}";
}
}
}
48 changes: 46 additions & 2 deletions osu.Game/Overlays/Profile/Header/Components/MainDetails.cs
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@
// See the LICENCE file in the repository root for full licence text.

using System.Collections.Generic;
using System.Linq;
using osu.Framework.Allocation;
using osu.Framework.Bindables;
using osu.Framework.Extensions.LocalisationExtensions;
@@ -164,13 +165,56 @@ private void updateDisplay(UserProfileData? data)
detailGlobalRank.Content = user?.Statistics?.GlobalRank?.ToLocalisableString("\\##,##0") ?? (LocalisableString)"-";

var rankHighest = user?.RankHighest;
var variants = user?.Statistics.Variants;

detailGlobalRank.ContentTooltipText = rankHighest != null
? UsersStrings.ShowRankHighest(rankHighest.Rank.ToLocalisableString("\\##,##0"), rankHighest.UpdatedAt.ToLocalisableString(@"d MMM yyyy"))
#region Global rank tooltip
var tooltipParts = new List<LocalisableString>();

if (variants?.Count > 0)
{
foreach (var variant in variants)
{
if (variant.GlobalRank != null)
{
tooltipParts.Add($"{variant.VariantDisplay}: {variant.GlobalRank.ToLocalisableString("\\##,##0")}");
}
}
}

if (rankHighest != null)
{
tooltipParts.Add(UsersStrings.ShowRankHighest(
rankHighest.Rank.ToLocalisableString("\\##,##0"),
rankHighest.UpdatedAt.ToLocalisableString(@"d MMM yyyy"))
);
}

detailGlobalRank.ContentTooltipText = tooltipParts.Any()
? string.Join("\n", tooltipParts)
: string.Empty;
#endregion

detailCountryRank.Content = user?.Statistics?.CountryRank?.ToLocalisableString("\\##,##0") ?? (LocalisableString)"-";

#region Country rank tooltip
var countryTooltipParts = new List<LocalisableString>();

if (variants?.Count > 0)
{
foreach (var variant in variants)
{
if (variant.CountryRank != null)
{
countryTooltipParts.Add($"{variant.VariantDisplay}: {variant.CountryRank.Value.ToLocalisableString("\\##,##0")}");
}
}
}

detailCountryRank.ContentTooltipText = countryTooltipParts.Any()
? string.Join("\n", countryTooltipParts)
: string.Empty;
#endregion

rankGraph.Statistics.Value = user?.Statistics;
}

40 changes: 40 additions & 0 deletions osu.Game/Users/UserStatistics.cs
Original file line number Diff line number Diff line change
@@ -4,8 +4,12 @@
#nullable disable

using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using osu.Framework.Localisation;
using osu.Game.Localisation;
using osu.Game.Online.API.Requests.Responses;
using osu.Game.Scoring;
using osu.Game.Utils;
@@ -74,6 +78,9 @@ public struct LevelInfo
[JsonProperty(@"grade_counts")]
public Grades GradesCount;

[JsonProperty(@"variants")]
public List<Variant> Variants = null!;

public struct Grades
{
[JsonProperty(@"ssh")]
@@ -118,5 +125,38 @@ public int this[ScoreRank rank]
}
}
}
public enum GameVariant
{
[EnumMember(Value = "4k")]
FourKey,
[EnumMember(Value = "7k")]
SevenKey
}

public class Variant
{
[JsonProperty("country_rank")]
public int? CountryRank;

[JsonProperty("global_rank")]
public int? GlobalRank;

[JsonProperty("mode")]
public string Mode;

[JsonProperty("pp")]
public decimal PP;

[JsonProperty("variant")]
[JsonConverter(typeof(StringEnumConverter))]
public GameVariant? VariantType;

public LocalisableString VariantDisplay => VariantType switch
{
GameVariant.FourKey => CommonStrings.FourKey,
GameVariant.SevenKey => CommonStrings.SevenKey,
_ => string.Empty
};
}
}
}