From 5c2c937ca185299b8593790607e814e632d4139c Mon Sep 17 00:00:00 2001 From: LA <1245661240@qq.com> Date: Sat, 19 Jul 2025 20:47:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0=EF=BC=8C?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=B5=84=E6=BA=90=E5=B7=A5=E5=8E=82=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E4=BC=98=E5=8C=96EzPro=E7=9A=AE=E8=82=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.props | 2 +- LICENCE | 2 +- Templates/osu.Game.Templates.csproj | 2 +- osu.Android.props | 2 +- osu.Android/OsuGameAndroid.cs | 48 +- osu.Desktop.slnf | 62 +-- osu.Desktop/OsuGameDesktop.cs | 2 +- osu.Desktop/Updater/VelopackUpdateManager.cs | 51 +- osu.Desktop/osu.nuspec | 2 +- .../CatchRateAdjustedDisplayDifficultyTest.cs | 7 +- osu.Game.Rulesets.Catch/CatchRuleset.cs | 4 +- osu.Game.Rulesets.Catch/Mods/CatchModEasy.cs | 8 + .../Mods/CatchModHardRock.cs | 1 + .../ManiaLegacyModConversionTest.cs | 3 +- .../TestSceneLegacyReplayPlayback.cs | 9 +- .../LAsEZMania/ManiaKeyCounterDisplay.cs | 2 +- osu.Game.Rulesets.Mania/ManiaRuleset.cs | 30 +- .../Mods/IManiaRateAdjustmentMod.cs | 18 +- .../Mods/LAsMods/ManiaModSpaceBody.cs | 2 +- osu.Game.Rulesets.Mania/Mods/ManiaKeyMod.cs | 2 +- .../Mods/ManiaModClassic.cs | 32 +- .../Mods/ManiaModDaycore.cs | 3 - .../Mods/ManiaModDoubleTime.cs | 4 - osu.Game.Rulesets.Mania/Mods/ManiaModEasy.cs | 22 +- .../Mods/ManiaModHalfTime.cs | 3 - .../Mods/ManiaModHardRock.cs | 22 +- .../Mods/ManiaModNightcore.cs | 4 - .../Mods/ManiaModScoreV2.cs | 37 ++ .../Scoring/ManiaHitWindows.cs | 135 ++++- .../Skinning/EzStylePro/EzHitExplosion.cs | 109 ++-- .../Skinning/EzStylePro/EzHitTarget.cs | 19 +- .../Skinning/EzStylePro/EzHoldNoteHead.cs | 208 ++------ .../EzStylePro/EzHoldNoteHittingLayer.cs | 104 ++-- .../Skinning/EzStylePro/EzHoldNoteMiddle.cs | 259 ++++------ .../Skinning/EzStylePro/EzHoldNoteTail.cs | 20 +- .../Skinning/EzStylePro/EzKeyArea.cs | 21 +- .../Skinning/EzStylePro/EzNote.cs | 173 +------ .../Skinning/EzStylePro/EzNoteBase.cs | 171 ++++++ .../Skinning/EzStylePro/EzNoteSideLine.cs | 4 +- .../Skinning/EzStylePro/EzStageBottom.cs | 19 +- .../ManiaEzStyleProSkinTransformer.cs | 3 +- .../Legacy/HitTargetInsetContainer.cs | 20 +- osu.Game.Rulesets.Mania/UI/ColumnFlow.cs | 2 +- .../Components/HitPositionPaddedContainer.cs | 16 +- .../OsuRateAdjustedDisplayDifficultyTest.cs | 9 +- .../TestSceneSpinnerRotation.cs | 2 + .../Difficulty/OsuPerformanceCalculator.cs | 2 +- osu.Game.Rulesets.Osu/Mods/OsuModEasy.cs | 8 + osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs | 1 + .../Mods/OsuModStrictTracking.cs | 9 +- osu.Game.Rulesets.Osu/OsuRuleset.cs | 4 +- .../TaikoRateAdjustedDisplayDifficultyTest.cs | 7 +- osu.Game.Rulesets.Taiko/Mods/TaikoModEasy.cs | 2 + .../Mods/TaikoModHardRock.cs | 3 + osu.Game.Rulesets.Taiko/TaikoRuleset.cs | 4 +- .../Editing/Checks/CheckAudioQualityTest.cs | 51 +- .../NonVisual/TestSceneUpdateManager.cs | 25 + .../Menus/TestSceneToolbarRulesetSelector.cs | 75 +++ .../Multiplayer/TestSceneMultiplayer.cs | 112 +++- .../TestSceneMultiplayerMatchSubScreen.cs | 8 + .../Navigation/TestSceneScreenNavigation.cs | 2 +- .../Online/TestSceneBeatmapSetOverlay.cs | 38 +- .../TestScenePlaylistsResultsScreen.cs | 27 +- .../BeatmapCarouselFilterGroupingTest.cs | 36 +- .../SongSelectV2/SongSelectTestScene.cs | 20 +- .../TestSceneDifficultyStatisticsDisplay.cs | 18 + ...neSongSelectCurrentSelectionInvalidated.cs | 253 +++++++++ .../TestSceneSongSelectFiltering.cs | 34 +- .../Screens/Setup/SetupScreen.cs | 5 +- osu.Game/Beatmaps/BeatmapManager.cs | 19 +- .../Beatmaps/Drawables/Cards/BeatmapCard.cs | 2 +- .../Drawables/Cards/BeatmapCardExtra.cs | 20 + .../Drawables/Cards/BeatmapCardNano.cs | 20 + .../Drawables/Cards/BeatmapCardNormal.cs | 20 + .../Cards/Buttons/GoToBeatmapButton.cs | 3 +- .../Cards/CollapsibleButtonContainer.cs | 3 + .../Drawables/DifficultyIconTooltip.cs | 2 +- osu.Game/Database/RealmAccess.cs | 2 - osu.Game/Graphics/Carousel/Carousel.cs | 7 +- .../Containers/OsuTextFlowContainer.cs | 16 +- osu.Game/Localisation/MenuTipStrings.cs | 32 +- osu.Game/Localisation/SongSelectStrings.cs | 29 +- .../API/Requests/Responses/APIBeatmapSet.cs | 21 +- .../Online/API/Requests/Responses/APIUser.cs | 3 +- osu.Game/Online/Chat/ChannelManager.cs | 13 +- .../Online/LocalUserStatisticsProvider.cs | 7 +- .../Online/Metadata/OnlineMetadataClient.cs | 3 +- osu.Game/Online/OnlineStatusNotifier.cs | 2 +- osu.Game/Online/Rooms/MatchType.cs | 2 +- osu.Game/OsuGame.cs | 237 +++++---- osu.Game/OsuGameBase.cs | 3 +- osu.Game/Overlays/Changelog/ChangelogBuild.cs | 6 +- .../Changelog/ChangelogSingleBuild.cs | 67 ++- .../Overlays/FirstRunSetup/ScreenBehaviour.cs | 9 +- .../Overlays/Mods/BeatmapAttributesDisplay.cs | 2 +- .../Settings/Sections/DebugSection.cs | 12 +- .../Sections/DebugSettings/GeneralSettings.cs | 23 +- .../Sections/DebugSettings/MemorySettings.cs | 157 +++--- .../Overlays/Settings/Sections/SkinSection.cs | 6 +- osu.Game/Overlays/SettingsOverlay.cs | 9 +- .../SkinEditor/ExternalEditOverlay.cs | 27 +- .../Overlays/SkinEditor/SkinEditorOverlay.cs | 6 +- .../Toolbar/ToolbarRulesetSelector.cs | 21 +- .../Rulesets/Edit/Checks/CheckAudioQuality.cs | 23 +- .../Rulesets/Edit/Checks/CheckSongFormat.cs | 31 +- .../Edit/Checks/Components/AudioCheckUtils.cs | 45 ++ osu.Game/Rulesets/Mods/ModEasy.cs | 10 +- osu.Game/Rulesets/Mods/ModHardRock.cs | 1 - osu.Game/Rulesets/Mods/ModScoreV2.cs | 2 +- osu.Game/Rulesets/Ruleset.cs | 6 +- osu.Game/Screens/Edit/BindableBeatDivisor.cs | 2 +- .../Submission/SubmissionStageProgress.cs | 3 + osu.Game/Screens/EzColumnTab.cs | 364 ++++++------- osu.Game/Screens/EzConfig.cs | 49 ++ osu.Game/Screens/EzSkinSettingsManager.cs | 292 ++++++----- osu.Game/Screens/EzSkinSettingsTab.cs | 325 ++++++------ osu.Game/Screens/IEzConfig.cs | 15 + .../LAsEzExtensions/EzColumnTypeManager.cs | 44 +- .../LAsEzExtensions/EzEditorSidebar.cs | 4 +- .../LAsEzExtensions/EzLocalTextureFactory.cs | 486 +++++++++++++----- .../LAsEzExtensions/EzSelectorColour.cs | 29 +- osu.Game/Screens/Menu/MenuTipDisplay.cs | 133 +++-- osu.Game/Screens/Menu/SupporterDisplay.cs | 2 +- .../Multiplayer/MultiplayerMatchSubScreen.cs | 53 +- .../Spectate/MultiSpectatorScreen.cs | 3 +- .../OnlinePlay/OnlinePlayFreestyleSelect.cs | 19 +- .../PlaylistItemScoreResultsScreen.cs | 15 + .../Playlists/PlaylistsRoomSubScreen.cs | 9 +- .../Play/HUD/DrawableGameplayLeaderboard.cs | 4 +- .../Carousel/DrawableCarouselBeatmap.cs | 2 +- .../Screens/Select/Details/AdvancedStats.cs | 4 +- osu.Game/Screens/Select/Filter/GroupMode.cs | 7 +- osu.Game/Screens/Select/Filter/SortMode.cs | 13 +- osu.Game/Screens/SelectV2/BeatmapCarousel.cs | 95 +++- .../SelectV2/BeatmapCarouselFilterGrouping.cs | 12 + .../SelectV2/BeatmapLeaderboardWedge.cs | 3 +- .../BeatmapTitleWedge_DifficultyDisplay.cs | 16 +- .../BeatmapTitleWedge_StatisticDifficulty.cs | 3 +- .../SelectV2/PanelBeatmapStandalone.cs | 4 +- osu.Game/Screens/SelectV2/SoloSongSelect.cs | 4 +- osu.Game/Screens/SelectV2/SongSelect.cs | 59 ++- .../Components/BeatmapAttributeText.cs | 5 +- osu.Game/Skinning/EzStyleProSkin.cs | 12 +- osu.Game/Skinning/SkinImporter.cs | 6 +- osu.Game/Skinning/SkinManager.cs | 9 + osu.Game/Tests/Visual/OsuGameTestScene.cs | 7 +- osu.Game/Updater/UpdateManager.cs | 35 +- osu.Game/osu.Game.csproj | 4 +- osu.iOS.props | 2 +- osu.sln | 24 +- 150 files changed, 3493 insertions(+), 2037 deletions(-) create mode 100644 osu.Game.Rulesets.Mania/Mods/ManiaModScoreV2.cs create mode 100644 osu.Game.Rulesets.Mania/Skinning/EzStylePro/EzNoteBase.cs create mode 100644 osu.Game.Tests/Visual/Menus/TestSceneToolbarRulesetSelector.cs create mode 100644 osu.Game.Tests/Visual/SongSelectV2/TestSceneSongSelectCurrentSelectionInvalidated.cs create mode 100644 osu.Game/Screens/EzConfig.cs create mode 100644 osu.Game/Screens/IEzConfig.cs diff --git a/Directory.Build.props b/Directory.Build.props index 580e61dafb..a856825d87 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -50,7 +50,7 @@ https://github.com/ppy/osu Automated release. ppy Pty Ltd - Copyright (c) 2024 ppy Pty Ltd + Copyright (c) 2025 ppy Pty Ltd osu game diff --git a/LICENCE b/LICENCE index 3bb8b62d5d..9ffcc70c13 100644 --- a/LICENCE +++ b/LICENCE @@ -1,4 +1,4 @@ -Copyright (c) 2024 ppy Pty Ltd . +Copyright (c) 2025 ppy Pty Ltd . Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/Templates/osu.Game.Templates.csproj b/Templates/osu.Game.Templates.csproj index 186a6093f5..ecac2e4794 100644 --- a/Templates/osu.Game.Templates.csproj +++ b/Templates/osu.Game.Templates.csproj @@ -8,7 +8,7 @@ https://github.com/ppy/osu/blob/master/Templates https://github.com/ppy/osu Automated release. - Copyright (c) 2024 ppy Pty Ltd + Copyright (c) 2025 ppy Pty Ltd Templates to use when creating a ruleset for consumption in osu!. dotnet-new;templates;osu netstandard2.1 diff --git a/osu.Android.props b/osu.Android.props index de3fe31ee6..0509d86b0a 100644 --- a/osu.Android.props +++ b/osu.Android.props @@ -10,7 +10,7 @@ true - + @@ -48,13 +47,14 @@ - + + diff --git a/osu.iOS.props b/osu.iOS.props index bb5e3da49e..99eed6c204 100644 --- a/osu.iOS.props +++ b/osu.iOS.props @@ -17,6 +17,6 @@ -all - + diff --git a/osu.sln b/osu.sln index 3878444d1c..f5f1560598 100644 --- a/osu.sln +++ b/osu.sln @@ -105,10 +105,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Framework", "..\osu-fra EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Framework.NativeLibs", "..\osu-framework\osu.Framework.NativeLibs\osu.Framework.NativeLibs.csproj", "{F5037F74-E137-4940-8CE7-4D3E5DF0FB39}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Framework.Android", "..\osu-framework\osu.Framework.Android\osu.Framework.Android.csproj", "{5ABDA3A9-BDAD-48A2-945E-EF78228FD5FC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "osu.Framework.iOS", "..\osu-framework\osu.Framework.iOS\osu.Framework.iOS.csproj", "{335CB301-EB9C-4108-A353-CD68AFA200AA}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -160,13 +156,13 @@ Global {6A2D5D58-0261-4A75-BE84-2BE8B076B7C2}.Release|Any CPU.ActiveCfg = Release|Any CPU {6A2D5D58-0261-4A75-BE84-2BE8B076B7C2}.Release|Any CPU.Build.0 = Release|Any CPU {5672CA4D-1B37-425B-A118-A8DA26E78938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5672CA4D-1B37-425B-A118-A8DA26E78938}.Debug|Any CPU.Build.0 = Debug|Any CPU {5672CA4D-1B37-425B-A118-A8DA26E78938}.Release|Any CPU.ActiveCfg = Release|Any CPU {5672CA4D-1B37-425B-A118-A8DA26E78938}.Release|Any CPU.Build.0 = Release|Any CPU + {5672CA4D-1B37-425B-A118-A8DA26E78938}.Debug|Any CPU.Build.0 = Debug|Any CPU {5789E78D-38F9-4072-AB7B-978F34B2C17F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5789E78D-38F9-4072-AB7B-978F34B2C17F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5789E78D-38F9-4072-AB7B-978F34B2C17F}.Release|Any CPU.ActiveCfg = Release|Any CPU {5789E78D-38F9-4072-AB7B-978F34B2C17F}.Release|Any CPU.Build.0 = Release|Any CPU + {5789E78D-38F9-4072-AB7B-978F34B2C17F}.Debug|Any CPU.Build.0 = Debug|Any CPU {3F082D0B-A964-43D7-BDF7-C256D76A50D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {3F082D0B-A964-43D7-BDF7-C256D76A50D0}.Release|Any CPU.Build.0 = Release|Any CPU {3F082D0B-A964-43D7-BDF7-C256D76A50D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -232,35 +228,27 @@ Global {93632F2D-2BB4-46C1-A7B8-F8CF2FB27118}.Release|Any CPU.ActiveCfg = Release|Any CPU {93632F2D-2BB4-46C1-A7B8-F8CF2FB27118}.Release|Any CPU.Build.0 = Release|Any CPU {9014CA66-5217-49F6-8C1E-3430FD08EF61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9014CA66-5217-49F6-8C1E-3430FD08EF61}.Debug|Any CPU.Build.0 = Debug|Any CPU {9014CA66-5217-49F6-8C1E-3430FD08EF61}.Release|Any CPU.ActiveCfg = Release|Any CPU {9014CA66-5217-49F6-8C1E-3430FD08EF61}.Release|Any CPU.Build.0 = Release|Any CPU {561DFD5E-5896-40D1-9708-4D692F5BAE66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {561DFD5E-5896-40D1-9708-4D692F5BAE66}.Debug|Any CPU.Build.0 = Debug|Any CPU {561DFD5E-5896-40D1-9708-4D692F5BAE66}.Release|Any CPU.ActiveCfg = Release|Any CPU {561DFD5E-5896-40D1-9708-4D692F5BAE66}.Release|Any CPU.Build.0 = Release|Any CPU {B325271C-85E7-4DB3-8BBB-B70F242954F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B325271C-85E7-4DB3-8BBB-B70F242954F8}.Debug|Any CPU.Build.0 = Debug|Any CPU {B325271C-85E7-4DB3-8BBB-B70F242954F8}.Release|Any CPU.ActiveCfg = Release|Any CPU {B325271C-85E7-4DB3-8BBB-B70F242954F8}.Release|Any CPU.Build.0 = Release|Any CPU {4C834F7F-07CA-46C7-8C7B-F10A1B3BC738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C834F7F-07CA-46C7-8C7B-F10A1B3BC738}.Debug|Any CPU.Build.0 = Debug|Any CPU {4C834F7F-07CA-46C7-8C7B-F10A1B3BC738}.Release|Any CPU.ActiveCfg = Release|Any CPU {4C834F7F-07CA-46C7-8C7B-F10A1B3BC738}.Release|Any CPU.Build.0 = Release|Any CPU {AD923016-F318-49B7-B08B-89DED6DC2422}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD923016-F318-49B7-B08B-89DED6DC2422}.Debug|Any CPU.Build.0 = Debug|Any CPU {AD923016-F318-49B7-B08B-89DED6DC2422}.Release|Any CPU.ActiveCfg = Release|Any CPU {AD923016-F318-49B7-B08B-89DED6DC2422}.Release|Any CPU.Build.0 = Release|Any CPU {B9B92246-02EB-4118-9C6F-85A0D726AA70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B9B92246-02EB-4118-9C6F-85A0D726AA70}.Debug|Any CPU.Build.0 = Debug|Any CPU {B9B92246-02EB-4118-9C6F-85A0D726AA70}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9B92246-02EB-4118-9C6F-85A0D726AA70}.Release|Any CPU.Build.0 = Release|Any CPU {B9022390-8184-4548-9DB1-50EB8878D20A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B9022390-8184-4548-9DB1-50EB8878D20A}.Debug|Any CPU.Build.0 = Debug|Any CPU {B9022390-8184-4548-9DB1-50EB8878D20A}.Release|Any CPU.ActiveCfg = Release|Any CPU {B9022390-8184-4548-9DB1-50EB8878D20A}.Release|Any CPU.Build.0 = Release|Any CPU {1743BF7C-E6AE-4A06-BAD9-166D62894303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1743BF7C-E6AE-4A06-BAD9-166D62894303}.Debug|Any CPU.Build.0 = Debug|Any CPU {1743BF7C-E6AE-4A06-BAD9-166D62894303}.Release|Any CPU.ActiveCfg = Release|Any CPU {1743BF7C-E6AE-4A06-BAD9-166D62894303}.Release|Any CPU.Build.0 = Release|Any CPU {18ED4ABC-6064-46F1-9A05-4E0BE88A635A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -275,14 +263,6 @@ Global {F5037F74-E137-4940-8CE7-4D3E5DF0FB39}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5037F74-E137-4940-8CE7-4D3E5DF0FB39}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5037F74-E137-4940-8CE7-4D3E5DF0FB39}.Release|Any CPU.Build.0 = Release|Any CPU - {5ABDA3A9-BDAD-48A2-945E-EF78228FD5FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5ABDA3A9-BDAD-48A2-945E-EF78228FD5FC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5ABDA3A9-BDAD-48A2-945E-EF78228FD5FC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5ABDA3A9-BDAD-48A2-945E-EF78228FD5FC}.Release|Any CPU.Build.0 = Release|Any CPU - {335CB301-EB9C-4108-A353-CD68AFA200AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {335CB301-EB9C-4108-A353-CD68AFA200AA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {335CB301-EB9C-4108-A353-CD68AFA200AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {335CB301-EB9C-4108-A353-CD68AFA200AA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE