1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-14 21:23:19 +08:00

Introduce multiplayer playability and free mod validity in Mod

This commit is contained in:
Salman Ahmed 2022-03-17 03:40:15 +03:00
parent 1025e1939b
commit d90a334853
2 changed files with 18 additions and 0 deletions

View File

@ -39,6 +39,18 @@ namespace osu.Game.Rulesets.Mods
/// </summary>
bool UserPlayable { get; }
/// <summary>
/// Whether this mod is playable in a multiplayer match.
/// Should be <c>false</c> for mods that affect the gameplay progress based on user input (e.g. <see cref="ModAdaptiveSpeed"/>).
/// </summary>
bool PlayableInMultiplayer { get; }
/// <summary>
/// Whether this mod is valid to be a "free mod" in a multiplayer match.
/// Should be <c>false</c> for mods that affect the gameplay progress (e.g. <see cref="ModRateAdjust"/> and <see cref="ModTimeRamp"/>).
/// </summary>
bool ValidFreeModInMultiplayer { get; }
/// <summary>
/// Create a fresh <see cref="Mod"/> instance based on this mod.
/// </summary>

View File

@ -94,6 +94,12 @@ namespace osu.Game.Rulesets.Mods
[JsonIgnore]
public virtual bool UserPlayable => true;
[JsonIgnore]
public virtual bool PlayableInMultiplayer => UserPlayable;
[JsonIgnore]
public virtual bool ValidFreeModInMultiplayer => PlayableInMultiplayer;
[Obsolete("Going forward, the concept of \"ranked\" doesn't exist. The only exceptions are automation mods, which should now override and set UserPlayable to false.")] // Can be removed 20211009
public virtual bool Ranked => false;