mirror of
https://github.com/ppy/osu.git
synced 2025-01-15 14:53:01 +08:00
Add IMod and change ShortenedName to Acronym
This commit is contained in:
parent
84f3d4f48d
commit
d97a15a504
@ -11,7 +11,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public abstract class ManiaKeyMod : Mod, IApplicableToBeatmapConverter
|
public abstract class ManiaKeyMod : Mod, IApplicableToBeatmapConverter
|
||||||
{
|
{
|
||||||
public override string ShortenedName => Name;
|
public override string Acronym => Name;
|
||||||
public abstract int KeyCount { get; }
|
public abstract int KeyCount { get; }
|
||||||
public override ModType Type => ModType.Conversion;
|
public override ModType Type => ModType.Conversion;
|
||||||
public override double ScoreMultiplier => 1; // TODO: Implement the mania key mod score multiplier
|
public override double ScoreMultiplier => 1; // TODO: Implement the mania key mod score multiplier
|
||||||
|
@ -12,7 +12,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
public class ManiaModDualStages : Mod, IPlayfieldTypeMod, IApplicableToBeatmapConverter, IApplicableToBeatmap<ManiaHitObject>
|
public class ManiaModDualStages : Mod, IPlayfieldTypeMod, IApplicableToBeatmapConverter, IApplicableToBeatmap<ManiaHitObject>
|
||||||
{
|
{
|
||||||
public override string Name => "Dual Stages";
|
public override string Name => "Dual Stages";
|
||||||
public override string ShortenedName => "DS";
|
public override string Acronym => "DS";
|
||||||
public override string Description => @"Double the stages, double the fun!";
|
public override string Description => @"Double the stages, double the fun!";
|
||||||
public override ModType Type => ModType.Conversion;
|
public override ModType Type => ModType.Conversion;
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
@ -11,7 +11,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
public class ManiaModFadeIn : Mod
|
public class ManiaModFadeIn : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Fade In";
|
public override string Name => "Fade In";
|
||||||
public override string ShortenedName => "FI";
|
public override string Acronym => "FI";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hidden;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hidden;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override string Description => @"Keys appear out of nowhere!";
|
public override string Description => @"Keys appear out of nowhere!";
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 1;
|
public override int KeyCount => 1;
|
||||||
public override string Name => "One Key";
|
public override string Name => "One Key";
|
||||||
public override string ShortenedName => "1K";
|
public override string Acronym => "1K";
|
||||||
public override string Description => @"Play with one key.";
|
public override string Description => @"Play with one key.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 2;
|
public override int KeyCount => 2;
|
||||||
public override string Name => "Two Keys";
|
public override string Name => "Two Keys";
|
||||||
public override string ShortenedName => "2K";
|
public override string Acronym => "2K";
|
||||||
public override string Description => @"Play with two keys.";
|
public override string Description => @"Play with two keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 3;
|
public override int KeyCount => 3;
|
||||||
public override string Name => "Three Keys";
|
public override string Name => "Three Keys";
|
||||||
public override string ShortenedName => "3K";
|
public override string Acronym => "3K";
|
||||||
public override string Description => @"Play with three keys.";
|
public override string Description => @"Play with three keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 4;
|
public override int KeyCount => 4;
|
||||||
public override string Name => "Four Keys";
|
public override string Name => "Four Keys";
|
||||||
public override string ShortenedName => "4K";
|
public override string Acronym => "4K";
|
||||||
public override string Description => @"Play with four keys.";
|
public override string Description => @"Play with four keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 5;
|
public override int KeyCount => 5;
|
||||||
public override string Name => "Five Keys";
|
public override string Name => "Five Keys";
|
||||||
public override string ShortenedName => "5K";
|
public override string Acronym => "5K";
|
||||||
public override string Description => @"Play with five keys.";
|
public override string Description => @"Play with five keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 6;
|
public override int KeyCount => 6;
|
||||||
public override string Name => "Six Keys";
|
public override string Name => "Six Keys";
|
||||||
public override string ShortenedName => "6K";
|
public override string Acronym => "6K";
|
||||||
public override string Description => @"Play with six keys.";
|
public override string Description => @"Play with six keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 7;
|
public override int KeyCount => 7;
|
||||||
public override string Name => "Seven Keys";
|
public override string Name => "Seven Keys";
|
||||||
public override string ShortenedName => "7K";
|
public override string Acronym => "7K";
|
||||||
public override string Description => @"Play with seven keys.";
|
public override string Description => @"Play with seven keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 8;
|
public override int KeyCount => 8;
|
||||||
public override string Name => "Eight Keys";
|
public override string Name => "Eight Keys";
|
||||||
public override string ShortenedName => "8K";
|
public override string Acronym => "8K";
|
||||||
public override string Description => @"Play with eight keys.";
|
public override string Description => @"Play with eight keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
{
|
{
|
||||||
public override int KeyCount => 9;
|
public override int KeyCount => 9;
|
||||||
public override string Name => "Nine Keys";
|
public override string Name => "Nine Keys";
|
||||||
public override string ShortenedName => "9K";
|
public override string Acronym => "9K";
|
||||||
public override string Description => @"Play with nine keys.";
|
public override string Description => @"Play with nine keys.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
public class ManiaModMirror : Mod, IApplicableToRulesetContainer<ManiaHitObject>
|
public class ManiaModMirror : Mod, IApplicableToRulesetContainer<ManiaHitObject>
|
||||||
{
|
{
|
||||||
public override string Name => "Mirror";
|
public override string Name => "Mirror";
|
||||||
public override string ShortenedName => "MR";
|
public override string Acronym => "MR";
|
||||||
public override ModType Type => ModType.Conversion;
|
public override ModType Type => ModType.Conversion;
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
public override bool Ranked => true;
|
public override bool Ranked => true;
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Mania.Mods
|
|||||||
public class ManiaModRandom : Mod, IApplicableToRulesetContainer<ManiaHitObject>
|
public class ManiaModRandom : Mod, IApplicableToRulesetContainer<ManiaHitObject>
|
||||||
{
|
{
|
||||||
public override string Name => "Random";
|
public override string Name => "Random";
|
||||||
public override string ShortenedName => "RD";
|
public override string Acronym => "RD";
|
||||||
public override ModType Type => ModType.Conversion;
|
public override ModType Type => ModType.Conversion;
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_dice;
|
public override FontAwesome Icon => FontAwesome.fa_osu_dice;
|
||||||
public override string Description => @"Shuffle around the keys!";
|
public override string Description => @"Shuffle around the keys!";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
public class OsuModAutopilot : Mod
|
public class OsuModAutopilot : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Autopilot";
|
public override string Name => "Autopilot";
|
||||||
public override string ShortenedName => "AP";
|
public override string Acronym => "AP";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_autopilot;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_autopilot;
|
||||||
public override ModType Type => ModType.Automation;
|
public override ModType Type => ModType.Automation;
|
||||||
public override string Description => @"Automatic cursor movement - just follow the rhythm.";
|
public override string Description => @"Automatic cursor movement - just follow the rhythm.";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
public class OsuModSpunOut : Mod
|
public class OsuModSpunOut : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Spun Out";
|
public override string Name => "Spun Out";
|
||||||
public override string ShortenedName => "SO";
|
public override string Acronym => "SO";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_spunout;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_spunout;
|
||||||
public override ModType Type => ModType.DifficultyReduction;
|
public override ModType Type => ModType.DifficultyReduction;
|
||||||
public override string Description => @"Spinners will be automatically completed.";
|
public override string Description => @"Spinners will be automatically completed.";
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
public class OsuModTarget : Mod
|
public class OsuModTarget : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Target";
|
public override string Name => "Target";
|
||||||
public override string ShortenedName => "TP";
|
public override string Acronym => "TP";
|
||||||
public override ModType Type => ModType.Conversion;
|
public override ModType Type => ModType.Conversion;
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_target;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_target;
|
||||||
public override string Description => @"Practice keeping up with the beat of the song.";
|
public override string Description => @"Practice keeping up with the beat of the song.";
|
||||||
|
@ -15,7 +15,7 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
internal class OsuModTransform : Mod, IApplicableToDrawableHitObjects
|
internal class OsuModTransform : Mod, IApplicableToDrawableHitObjects
|
||||||
{
|
{
|
||||||
public override string Name => "Transform";
|
public override string Name => "Transform";
|
||||||
public override string ShortenedName => "TR";
|
public override string Acronym => "TR";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_arrows;
|
public override FontAwesome Icon => FontAwesome.fa_arrows;
|
||||||
public override ModType Type => ModType.Fun;
|
public override ModType Type => ModType.Fun;
|
||||||
public override string Description => "Everything rotates. EVERYTHING.";
|
public override string Description => "Everything rotates. EVERYTHING.";
|
||||||
|
@ -16,7 +16,7 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
internal class OsuModWiggle : Mod, IApplicableToDrawableHitObjects
|
internal class OsuModWiggle : Mod, IApplicableToDrawableHitObjects
|
||||||
{
|
{
|
||||||
public override string Name => "Wiggle";
|
public override string Name => "Wiggle";
|
||||||
public override string ShortenedName => "WG";
|
public override string Acronym => "WG";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_certificate;
|
public override FontAwesome Icon => FontAwesome.fa_certificate;
|
||||||
public override ModType Type => ModType.Fun;
|
public override ModType Type => ModType.Fun;
|
||||||
public override string Description => "They just won't stay still...";
|
public override string Description => "They just won't stay still...";
|
||||||
|
@ -94,7 +94,7 @@ namespace osu.Game.Tests.NonVisual
|
|||||||
private class ModA : Mod
|
private class ModA : Mod
|
||||||
{
|
{
|
||||||
public override string Name => nameof(ModA);
|
public override string Name => nameof(ModA);
|
||||||
public override string ShortenedName => nameof(ModA);
|
public override string Acronym => nameof(ModA);
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
|
||||||
public override Type[] IncompatibleMods => new[] { typeof(ModIncompatibleWithA), typeof(ModIncompatibleWithAAndB) };
|
public override Type[] IncompatibleMods => new[] { typeof(ModIncompatibleWithA), typeof(ModIncompatibleWithAAndB) };
|
||||||
@ -103,7 +103,7 @@ namespace osu.Game.Tests.NonVisual
|
|||||||
private class ModB : Mod
|
private class ModB : Mod
|
||||||
{
|
{
|
||||||
public override string Name => nameof(ModB);
|
public override string Name => nameof(ModB);
|
||||||
public override string ShortenedName => nameof(ModB);
|
public override string Acronym => nameof(ModB);
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
|
||||||
public override Type[] IncompatibleMods => new[] { typeof(ModIncompatibleWithAAndB) };
|
public override Type[] IncompatibleMods => new[] { typeof(ModIncompatibleWithAAndB) };
|
||||||
@ -112,7 +112,7 @@ namespace osu.Game.Tests.NonVisual
|
|||||||
private class ModIncompatibleWithA : Mod
|
private class ModIncompatibleWithA : Mod
|
||||||
{
|
{
|
||||||
public override string Name => $"Incompatible With {nameof(ModA)}";
|
public override string Name => $"Incompatible With {nameof(ModA)}";
|
||||||
public override string ShortenedName => $"Incompatible With {nameof(ModA)}";
|
public override string Acronym => $"Incompatible With {nameof(ModA)}";
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
|
||||||
public override Type[] IncompatibleMods => new[] { typeof(ModA) };
|
public override Type[] IncompatibleMods => new[] { typeof(ModA) };
|
||||||
@ -130,7 +130,7 @@ namespace osu.Game.Tests.NonVisual
|
|||||||
private class ModIncompatibleWithAAndB : Mod
|
private class ModIncompatibleWithAAndB : Mod
|
||||||
{
|
{
|
||||||
public override string Name => $"Incompatible With {nameof(ModA)} and {nameof(ModB)}";
|
public override string Name => $"Incompatible With {nameof(ModA)} and {nameof(ModB)}";
|
||||||
public override string ShortenedName => $"Incompatible With {nameof(ModA)} and {nameof(ModB)}";
|
public override string Acronym => $"Incompatible With {nameof(ModA)} and {nameof(ModB)}";
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
|
||||||
public override Type[] IncompatibleMods => new[] { typeof(ModA), typeof(ModB) };
|
public override Type[] IncompatibleMods => new[] { typeof(ModA), typeof(ModB) };
|
||||||
|
@ -187,7 +187,7 @@ namespace osu.Game.Tests.Visual
|
|||||||
private static int importId;
|
private static int importId;
|
||||||
private int getImportId() => ++importId;
|
private int getImportId() => ++importId;
|
||||||
|
|
||||||
private void changeMods(params Mod[] mods) => AddStep($"change mods to {string.Join(", ", mods.Select(m => m.ShortenedName))}", () => selectedMods.Value = mods);
|
private void changeMods(params Mod[] mods) => AddStep($"change mods to {string.Join(", ", mods.Select(m => m.Acronym))}", () => selectedMods.Value = mods);
|
||||||
|
|
||||||
private void changeRuleset(int id) => AddStep($"change ruleset to {id}", () => Ruleset.Value = rulesets.AvailableRulesets.First(r => r.ID == id));
|
private void changeRuleset(int id) => AddStep($"change ruleset to {id}", () => Ruleset.Value = rulesets.AvailableRulesets.First(r => r.ID == id));
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ namespace osu.Game.Online.API.Requests.Responses
|
|||||||
base.Ruleset = value;
|
base.Ruleset = value;
|
||||||
|
|
||||||
// Evaluate the mod string
|
// Evaluate the mod string
|
||||||
Mods = Ruleset.CreateInstance().GetAllMods().Where(mod => modStrings.Contains(mod.ShortenedName)).ToArray();
|
Mods = Ruleset.CreateInstance().GetAllMods().Where(mod => modStrings.Contains(mod.Acronym)).ToArray();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
osu.Game/Rulesets/Mods/IMod.cs
Normal file
10
osu.Game/Rulesets/Mods/IMod.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
namespace osu.Game.Rulesets.Mods
|
||||||
|
{
|
||||||
|
public interface IMod
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The shortened name of this mod.
|
||||||
|
/// </summary>
|
||||||
|
string Acronym { get; }
|
||||||
|
}
|
||||||
|
}
|
@ -11,7 +11,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The base class for gameplay modifiers.
|
/// The base class for gameplay modifiers.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract class Mod : IJsonSerializable
|
public abstract class Mod : IMod, IJsonSerializable
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The name of this mod.
|
/// The name of this mod.
|
||||||
@ -22,7 +22,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// The shortened name of this mod.
|
/// The shortened name of this mod.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract string ShortenedName { get; }
|
public abstract string Acronym { get; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The icon of this mod.
|
/// The icon of this mod.
|
||||||
|
@ -24,7 +24,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModAutoplay : Mod, IApplicableFailOverride
|
public abstract class ModAutoplay : Mod, IApplicableFailOverride
|
||||||
{
|
{
|
||||||
public override string Name => "Autoplay";
|
public override string Name => "Autoplay";
|
||||||
public override string ShortenedName => "AT";
|
public override string Acronym => "AT";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_auto;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_auto;
|
||||||
public override ModType Type => ModType.Automation;
|
public override ModType Type => ModType.Automation;
|
||||||
public override string Description => "Watch a perfect automated play through the song.";
|
public override string Description => "Watch a perfect automated play through the song.";
|
||||||
|
@ -8,7 +8,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public class ModCinema : ModAutoplay
|
public class ModCinema : ModAutoplay
|
||||||
{
|
{
|
||||||
public override string Name => "Cinema";
|
public override string Name => "Cinema";
|
||||||
public override string ShortenedName => "CN";
|
public override string Acronym => "CN";
|
||||||
public override bool HasImplementation => false;
|
public override bool HasImplementation => false;
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_cinema;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_cinema;
|
||||||
public override string Description => "Watch the video without visual distractions.";
|
public override string Description => "Watch the video without visual distractions.";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModDaycore : ModHalfTime
|
public abstract class ModDaycore : ModHalfTime
|
||||||
{
|
{
|
||||||
public override string Name => "Daycore";
|
public override string Name => "Daycore";
|
||||||
public override string ShortenedName => "DC";
|
public override string Acronym => "DC";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_question;
|
public override FontAwesome Icon => FontAwesome.fa_question;
|
||||||
public override string Description => "Whoaaaaa...";
|
public override string Description => "Whoaaaaa...";
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModDoubleTime : Mod, IApplicableToClock
|
public abstract class ModDoubleTime : Mod, IApplicableToClock
|
||||||
{
|
{
|
||||||
public override string Name => "Double Time";
|
public override string Name => "Double Time";
|
||||||
public override string ShortenedName => "DT";
|
public override string Acronym => "DT";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_doubletime;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_doubletime;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override string Description => "Zoooooooooom...";
|
public override string Description => "Zoooooooooom...";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModEasy : Mod, IApplicableToDifficulty
|
public abstract class ModEasy : Mod, IApplicableToDifficulty
|
||||||
{
|
{
|
||||||
public override string Name => "Easy";
|
public override string Name => "Easy";
|
||||||
public override string ShortenedName => "EZ";
|
public override string Acronym => "EZ";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_easy;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_easy;
|
||||||
public override ModType Type => ModType.DifficultyReduction;
|
public override ModType Type => ModType.DifficultyReduction;
|
||||||
public override double ScoreMultiplier => 0.5;
|
public override double ScoreMultiplier => 0.5;
|
||||||
|
@ -23,7 +23,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModFlashlight : Mod
|
public abstract class ModFlashlight : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Flashlight";
|
public override string Name => "Flashlight";
|
||||||
public override string ShortenedName => "FL";
|
public override string Acronym => "FL";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_flashlight;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_flashlight;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override string Description => "Restricted view area.";
|
public override string Description => "Restricted view area.";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModHalfTime : Mod, IApplicableToClock
|
public abstract class ModHalfTime : Mod, IApplicableToClock
|
||||||
{
|
{
|
||||||
public override string Name => "Half Time";
|
public override string Name => "Half Time";
|
||||||
public override string ShortenedName => "HT";
|
public override string Acronym => "HT";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_halftime;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_halftime;
|
||||||
public override ModType Type => ModType.DifficultyReduction;
|
public override ModType Type => ModType.DifficultyReduction;
|
||||||
public override string Description => "Less zoom...";
|
public override string Description => "Less zoom...";
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModHardRock : Mod, IApplicableToDifficulty
|
public abstract class ModHardRock : Mod, IApplicableToDifficulty
|
||||||
{
|
{
|
||||||
public override string Name => "Hard Rock";
|
public override string Name => "Hard Rock";
|
||||||
public override string ShortenedName => "HR";
|
public override string Acronym => "HR";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hardrock;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hardrock;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override string Description => "Everything just got a bit harder...";
|
public override string Description => "Everything just got a bit harder...";
|
||||||
|
@ -13,7 +13,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModHidden : Mod, IReadFromConfig, IApplicableToDrawableHitObjects
|
public abstract class ModHidden : Mod, IReadFromConfig, IApplicableToDrawableHitObjects
|
||||||
{
|
{
|
||||||
public override string Name => "Hidden";
|
public override string Name => "Hidden";
|
||||||
public override string ShortenedName => "HD";
|
public override string Acronym => "HD";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hidden;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_hidden;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override bool Ranked => true;
|
public override bool Ranked => true;
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModNightcore : ModDoubleTime
|
public abstract class ModNightcore : ModDoubleTime
|
||||||
{
|
{
|
||||||
public override string Name => "Nightcore";
|
public override string Name => "Nightcore";
|
||||||
public override string ShortenedName => "NC";
|
public override string Acronym => "NC";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_nightcore;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_nightcore;
|
||||||
public override string Description => "Uguuuuuuuu...";
|
public override string Description => "Uguuuuuuuu...";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModNoFail : Mod, IApplicableFailOverride
|
public abstract class ModNoFail : Mod, IApplicableFailOverride
|
||||||
{
|
{
|
||||||
public override string Name => "No Fail";
|
public override string Name => "No Fail";
|
||||||
public override string ShortenedName => "NF";
|
public override string Acronym => "NF";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_nofail;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_nofail;
|
||||||
public override ModType Type => ModType.DifficultyReduction;
|
public override ModType Type => ModType.DifficultyReduction;
|
||||||
public override string Description => "You can't fail, no matter what.";
|
public override string Description => "You can't fail, no matter what.";
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModPerfect : ModSuddenDeath
|
public abstract class ModPerfect : ModSuddenDeath
|
||||||
{
|
{
|
||||||
public override string Name => "Perfect";
|
public override string Name => "Perfect";
|
||||||
public override string ShortenedName => "PF";
|
public override string Acronym => "PF";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_perfect;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_perfect;
|
||||||
public override string Description => "SS or quit.";
|
public override string Description => "SS or quit.";
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModRelax : Mod
|
public abstract class ModRelax : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "Relax";
|
public override string Name => "Relax";
|
||||||
public override string ShortenedName => "RX";
|
public override string Acronym => "RX";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_relax;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_relax;
|
||||||
public override ModType Type => ModType.Automation;
|
public override ModType Type => ModType.Automation;
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
|
@ -10,7 +10,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public abstract class ModSuddenDeath : Mod, IApplicableToScoreProcessor
|
public abstract class ModSuddenDeath : Mod, IApplicableToScoreProcessor
|
||||||
{
|
{
|
||||||
public override string Name => "Sudden Death";
|
public override string Name => "Sudden Death";
|
||||||
public override string ShortenedName => "SD";
|
public override string Acronym => "SD";
|
||||||
public override FontAwesome Icon => FontAwesome.fa_osu_mod_suddendeath;
|
public override FontAwesome Icon => FontAwesome.fa_osu_mod_suddendeath;
|
||||||
public override ModType Type => ModType.DifficultyIncrease;
|
public override ModType Type => ModType.DifficultyIncrease;
|
||||||
public override string Description => "Miss and fail.";
|
public override string Description => "Miss and fail.";
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public class MultiMod : Mod
|
public class MultiMod : Mod
|
||||||
{
|
{
|
||||||
public override string Name => string.Empty;
|
public override string Name => string.Empty;
|
||||||
public override string ShortenedName => string.Empty;
|
public override string Acronym => string.Empty;
|
||||||
public override string Description => string.Empty;
|
public override string Description => string.Empty;
|
||||||
public override double ScoreMultiplier => 0;
|
public override double ScoreMultiplier => 0;
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ namespace osu.Game.Rulesets.Mods
|
|||||||
public sealed class NoModMod : Mod
|
public sealed class NoModMod : Mod
|
||||||
{
|
{
|
||||||
public override string Name => "No Mod";
|
public override string Name => "No Mod";
|
||||||
public override string ShortenedName => "NM";
|
public override string Acronym => "NM";
|
||||||
public override double ScoreMultiplier => 1;
|
public override double ScoreMultiplier => 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,19 +53,19 @@ namespace osu.Game.Scoring
|
|||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
|
modsJson = null;
|
||||||
mods = value;
|
mods = value;
|
||||||
ModsJson = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Mod[] getModsFromRuleset(DeserializedMod[] mods) => Ruleset.CreateInstance().GetAllMods().Where(mod => mods.Any(d => d.ShortenedName == mod.ShortenedName)).ToArray();
|
private Mod[] getModsFromRuleset(DeserializedMod[] mods) => Ruleset.CreateInstance().GetAllMods().Where(mod => mods.Any(d => d.Acronym == mod.Acronym)).ToArray();
|
||||||
|
|
||||||
private string modsJson;
|
private string modsJson;
|
||||||
|
|
||||||
[Column("Mods")]
|
[Column("Mods")]
|
||||||
public string ModsJson
|
public string ModsJson
|
||||||
{
|
{
|
||||||
get => modsJson ?? JsonConvert.SerializeObject(Mods);
|
get => modsJson ?? (modsJson = JsonConvert.SerializeObject(mods));
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
modsJson = value;
|
modsJson = value;
|
||||||
@ -121,11 +121,9 @@ namespace osu.Game.Scoring
|
|||||||
public bool DeletePending { get; set; }
|
public bool DeletePending { get; set; }
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
protected class DeserializedMod : Mod
|
protected class DeserializedMod : IMod
|
||||||
{
|
{
|
||||||
public override string Name { get; } = string.Empty;
|
public string Acronym { get; set; }
|
||||||
public override string ShortenedName { get; } = string.Empty;
|
|
||||||
public override double ScoreMultiplier { get; } = 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user