1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-27 02:01:18 +08:00

Merge pull request #34007 from bdach/not-implemented-mods-cannot-be-freestyled

Disallow Classic mod from being valid in freestyle as required mod
This commit is contained in:
Dan Balasescu
2025-07-03 22:34:41 +09:00
committed by GitHub
Unverified
2 changed files with 8 additions and 7 deletions
+7 -6
View File
@@ -342,13 +342,14 @@ namespace osu.Game.Tests.Mods
{
foreach (var mod in ruleset.CreateAllMods())
{
if (mod.ValidForFreestyleAsRequiredMod && mod.UserPlayable && !commonAcronyms.Contains(mod.Acronym))
Assert.Fail($"{mod.GetType().ReadableName()} declares {nameof(Mod.ValidForFreestyleAsRequiredMod)} but does not exist in all four basic rulesets!");
if (mod.ValidForFreestyleAsRequiredMod && !mod.UserPlayable)
Assert.Fail($"Mod {mod.GetType().ReadableName()} declares {nameof(Mod.ValidForFreestyleAsRequiredMod)} but is not playable!");
// downgraded to warning, because there are valid reasons why they may still not be specified to be valid for freestyle as required
// (see `TestModsValidForRequiredFreestyleAreConsistentlyCompatibleAcrossRulesets()` test case below).
if (!mod.ValidForFreestyleAsRequiredMod && mod.UserPlayable && commonAcronyms.Contains(mod.Acronym))
Assert.Warn($"{mod.GetType().ReadableName()} does not declare {nameof(Mod.ValidForFreestyleAsRequiredMod)} but exists in all four basic rulesets.");
if (mod.ValidForFreestyleAsRequiredMod && !mod.HasImplementation)
Assert.Fail($"Mod {mod.GetType().ReadableName()} declares {nameof(Mod.ValidForFreestyleAsRequiredMod)} but is not implemented!");
if (mod.ValidForFreestyleAsRequiredMod && mod.UserPlayable && mod.HasImplementation && !commonAcronyms.Contains(mod.Acronym))
Assert.Fail($"{mod.GetType().ReadableName()} declares {nameof(Mod.ValidForFreestyleAsRequiredMod)} but does not exist in all four basic rulesets!");
}
}
});
+1 -1
View File
@@ -31,6 +31,6 @@ namespace osu.Game.Rulesets.Mods
/// </summary>
public sealed override bool Ranked => false;
public sealed override bool ValidForFreestyleAsRequiredMod => true;
public sealed override bool ValidForFreestyleAsRequiredMod => false;
}
}