Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 2 additions & 0 deletions .github/workflows/_diffcalc_processor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:
name: Run
runs-on: self-hosted
timeout-minutes: 1440
permissions:
contents: read

outputs:
target: ${{ steps.run.outputs.target }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
- '*.*.*'
- '!*-*'

permissions: {}

jobs:
notify_pending_production_deploy:
runs-on: ubuntu-latest
Expand Down
598 changes: 385 additions & 213 deletions .github/workflows/release.yml

Large diffs are not rendered by default.

485 changes: 232 additions & 253 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion osu.Android.props
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="ppy.osu.Framework.Android" Version="2026.527.1" />
<PackageReference Include="ppy.osu.Framework.Android" Version="2026.527.3" />
<!-- `ppy.osu.Framework.NativeLibs` is a transitive dependency of `ppy.osu.Framework`
that ships desktop-only natives (Linux/macOS/Windows) under `runtimes/<rid>/native/`
— including a bare Linux `libbass.so`/`libbass_fx.so`/`libbassmix.so` for linux-arm64.
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Catch/Mods/CatchModFlashlight.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ namespace osu.Game.Rulesets.Catch.Mods
{
public partial class CatchModFlashlight : ModFlashlight<CatchHitObject>
{
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.12 : 1;

public override BindableFloat SizeMultiplier { get; } = new BindableFloat(1)
{
MinValue = 0.5f,
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Catch/Mods/CatchModFloatingFruits.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public class CatchModFloatingFruits : Mod, IApplicableToDrawableRuleset<CatchHit
public override string Name => "Floating Fruits";
public override string Acronym => "FF";
public override LocalisableString Description => "The fruits are... floating?";
public override double ScoreMultiplier => 1;
public override IconUsage? Icon => OsuIcon.ModFloatingFruits;

public void ApplyToDrawableRuleset(DrawableRuleset<CatchHitObject> drawableRuleset)
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Catch/Mods/CatchModHardRock.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ namespace osu.Game.Rulesets.Catch.Mods
{
public class CatchModHardRock : ModHardRock, IApplicableToBeatmapProcessor
{
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.12 : 1;

public void ApplyToBeatmapProcessor(IBeatmapProcessor beatmapProcessor)
{
var catchProcessor = (CatchBeatmapProcessor)beatmapProcessor;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Catch/Mods/CatchModHidden.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ namespace osu.Game.Rulesets.Catch.Mods
public class CatchModHidden : ModHidden, IApplicableToDrawableRuleset<CatchHitObject>
{
public override LocalisableString Description => @"Play with fading fruits.";
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.06 : 1;

private const double fade_out_offset_multiplier = 0.6;
private const double fade_out_duration_multiplier = 0.44;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Catch/Mods/CatchModMovingFast.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public partial class CatchModMovingFast : Mod, IApplicableToDrawableRuleset<Catc
public override string Acronym => "MF";
public override LocalisableString Description => "Dashing by default, slow down!";
public override ModType Type => ModType.Fun;
public override double ScoreMultiplier => 1;
public override IconUsage? Icon => OsuIcon.ModMovingFast;
public override Type[] IncompatibleMods => new[] { typeof(ModAutoplay), typeof(ModRelax) };

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaKeyMod.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ public abstract class ManiaKeyMod : Mod, IApplicableToBeatmapConverter
public override string Acronym => Name;
public abstract int KeyCount { get; }
public override ModType Type => ModType.Conversion;
public override double ScoreMultiplier => 0.9;
public override bool Ranked => UsesDefaultConfiguration;

public void ApplyToBeatmapConverter(IBeatmapConverter beatmapConverter)
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Mania/Mods/ManiaModConstantSpeed.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ public class ManiaModConstantSpeed : Mod, IApplicableToDrawableRuleset<ManiaHitO

public override string Acronym => "CS";

public override double ScoreMultiplier => 0.9;

public override LocalisableString Description => "No more tricky speed changes!";

public override IconUsage? Icon => OsuIcon.ModConstantSpeed;
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Mania/Mods/ManiaModCover.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,6 @@ public class ManiaModCover : ManiaModWithPlayfieldCover

public override LocalisableString Description => @"Decrease the playfield's viewing area.";

public override double ScoreMultiplier => 1;

protected override CoverExpandDirection ExpandDirection => Direction.Value;

public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[]
Expand Down
4 changes: 0 additions & 4 deletions osu.Game.Rulesets.Mania/Mods/ManiaModDoubleTime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,5 @@ namespace osu.Game.Rulesets.Mania.Mods
{
public class ManiaModDoubleTime : ModDoubleTime, IManiaRateAdjustmentMod
{
// For now, all rate-increasing mods should be given a 1x multiplier in mania because it doesn't always
// make the map harder and is more of a personal preference.
// In the future, we can consider adjusting this by experimenting with not applying the hitwindow leniency.
public override double ScoreMultiplier => 1;
}
}
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModDualStages.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public class ManiaModDualStages : Mod, IPlayfieldTypeMod, IApplicableToBeatmapCo
public override LocalisableString Description => @"Double the stages, double the fun!";
public override IconUsage? Icon => OsuIcon.ModDualStages;
public override ModType Type => ModType.Conversion;
public override double ScoreMultiplier => 1;

private bool isForCurrentRuleset;

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModFadeIn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public class ManiaModFadeIn : ManiaModHidden
public override string Acronym => "FI";
public override IconUsage? Icon => OsuIcon.ModFadeIn;
public override LocalisableString Description => @"Keys appear out of nowhere!";
public override double ScoreMultiplier => 1;
public override bool ValidForFreestyleAsRequiredMod => false;

public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[]
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModFlashlight.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ namespace osu.Game.Rulesets.Mania.Mods
{
public partial class ManiaModFlashlight : ModFlashlight<ManiaHitObject>
{
public override double ScoreMultiplier => 1;
public override Type[] IncompatibleMods => new[] { typeof(ModHidden) };

public override BindableFloat SizeMultiplier { get; } = new BindableFloat(1)
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModHardRock.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ namespace osu.Game.Rulesets.Mania.Mods
{
public class ManiaModHardRock : ModHardRock, IApplicableToHitObject
{
public override double ScoreMultiplier => 1;
public override bool Ranked => false;

public const double HIT_WINDOW_DIFFICULTY_MULTIPLIER = 1.4;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModHidden.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ public partial class ManiaModHidden : ManiaModWithPlayfieldCover, IApplicableToP
private const float coverage_increase_per_combo = 0.5f;

public override LocalisableString Description => @"Keys fade out before you hit them!";
public override double ScoreMultiplier => 1;

public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[]
{
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Mania/Mods/ManiaModHoldOff.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ public class ManiaModHoldOff : Mod, IApplicableAfterBeatmapConversion

public override string Acronym => "HO";

public override double ScoreMultiplier => 0.9;

public override LocalisableString Description => @"Replaces all hold notes with normal notes.";

public override IconUsage? Icon => OsuIcon.ModHoldOff;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Mania/Mods/ManiaModInvert.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class ManiaModInvert : Mod, IApplicableAfterBeatmapConversion
public override string Name => "Invert";

public override string Acronym => "IN";
public override double ScoreMultiplier => 1;

public override LocalisableString Description => "Hold the keys. To the beat.";

Expand Down
4 changes: 0 additions & 4 deletions osu.Game.Rulesets.Mania/Mods/ManiaModNightcore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,5 @@ namespace osu.Game.Rulesets.Mania.Mods
{
public class ManiaModNightcore : ModNightcore<ManiaHitObject>, IManiaRateAdjustmentMod
{
// For now, all rate-increasing mods should be given a 1x multiplier in mania because it doesn't always
// make the map any harder and is more of a personal preference.
// In the future, we can consider adjusting this by experimenting with not applying the hitwindow leniency.
public override double ScoreMultiplier => 1;
}
}
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Mania/Mods/ManiaModNoRelease.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ public partial class ManiaModNoRelease : Mod, IApplicableAfterBeatmapConversion,

public override LocalisableString Description => "No more timing the end of hold notes.";

public override double ScoreMultiplier => 0.9;

public override IconUsage? Icon => OsuIcon.ModNoRelease;

public override ModType Type => ModType.DifficultyReduction;
Expand Down
2 changes: 2 additions & 0 deletions osu.Game.Rulesets.Osu.Tests/Mods/TestSceneOsuModMirror.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using NUnit.Framework;
using osu.Framework.Testing;
using osu.Framework.Utils;
using osu.Game.Tests;
using osu.Game.Rulesets.Objects;
using osu.Game.Rulesets.Osu.Beatmaps;
using osu.Game.Rulesets.Osu.Mods;
Expand All @@ -18,6 +19,7 @@ namespace osu.Game.Rulesets.Osu.Tests.Mods
public partial class TestSceneOsuModMirror : OsuModTestScene
{
[Test]
[FlakyTest]
public void TestCorrectReflections([Values] OsuModMirror.MirrorType type, [Values] bool withStrictTracking) => CreateModTest(new ModTestData
{
Autoplay = true,
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/InputBlockingMod.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ namespace osu.Game.Rulesets.Osu.Mods
{
public abstract partial class InputBlockingMod : Mod, IApplicableToDrawableRuleset<OsuHitObject>, IUpdatableByPlayfield
{
public override double ScoreMultiplier => 1.0;
public override Type[] IncompatibleMods => new[] { typeof(ModAutoplay), typeof(ModRelax), typeof(OsuModCinema) };
public override ModType Type => ModType.Conversion;

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModApproachDifferent.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ public class OsuModApproachDifferent : Mod, IApplicableToDrawableHitObject, IReq
public override string Name => "Approach Different";
public override string Acronym => "AD";
public override LocalisableString Description => "Never trust the approach circles...";
public override double ScoreMultiplier => 1;
public override IconUsage? Icon => OsuIcon.ModApproachDifferent;

public override Type[] IncompatibleMods => new[] { typeof(IHidesApproachCircles), typeof(OsuModFreezeFrame) };
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModAutopilot.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public class OsuModAutopilot : Mod, IUpdatableByPlayfield, IApplicableToDrawable
public override IconUsage? Icon => OsuIcon.ModAutopilot;
public override ModType Type => ModType.Automation;
public override LocalisableString Description => @"Automatic cursor movement - just follow the rhythm.";
public override double ScoreMultiplier => 0.1;

public override Type[] IncompatibleMods => new[]
{
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModBlinds.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public partial class OsuModBlinds : ModBlinds, IApplicableToDrawableRuleset<OsuH
public override IconUsage? Icon => OsuIcon.ModBlinds;
public override ModType Type => ModType.DifficultyIncrease;

public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.12 : 1;
public override Type[] IncompatibleMods => new[] { typeof(OsuModFlashlight) };
public override bool Ranked => true;

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModBloom.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ public class OsuModBloom : Mod, IApplicableToScoreProcessor, IUpdatableByPlayfie
public override IconUsage? Icon => OsuIcon.ModBloom;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "The cursor blooms into.. a larger cursor!";
public override double ScoreMultiplier => 1;
protected const float MIN_SIZE = 1;
protected const float TRANSITION_DURATION = 100;
public override Type[] IncompatibleMods => new[] { typeof(OsuModFlashlight), typeof(OsuModNoScope), typeof(ModTouchDevice) };
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Osu/Mods/OsuModBubbles.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ public partial class OsuModBubbles : Mod, IApplicableToDrawableRuleset<OsuHitObj

public override LocalisableString Description => "Don't let their popping distract you!";

public override double ScoreMultiplier => 1;

public override IconUsage? Icon => OsuIcon.ModBubbles;

public override ModType Type => ModType.Fun;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModDepth.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ public class OsuModDepth : ModWithVisibilityAdjustment, IUpdatableByPlayfield, I
public override IconUsage? Icon => OsuIcon.ModDepth;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "3D. Almost.";
public override double ScoreMultiplier => 1;
public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[] { typeof(OsuModMagnetised), typeof(OsuModRepel), typeof(OsuModFreezeFrame), typeof(ModWithVisibilityAdjustment) }).ToArray();

private static readonly Vector3 camera_position = new Vector3(OsuPlayfield.BASE_SIZE.X * 0.5f, OsuPlayfield.BASE_SIZE.Y * 0.5f, -200);
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModFlashlight.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ namespace osu.Game.Rulesets.Osu.Mods
{
public partial class OsuModFlashlight : ModFlashlight<OsuHitObject>, IApplicableToDrawableHitObject
{
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.12 : 1;
public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[] { typeof(OsuModBloom), typeof(OsuModBlinds) }).ToArray();

private const double default_follow_delay = 120;
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Osu/Mods/OsuModFreezeFrame.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@ public class OsuModFreezeFrame : Mod, IApplicableToDrawableHitObject, IApplicabl

public override IconUsage? Icon => OsuIcon.ModFreezeFrame;

public override double ScoreMultiplier => 1;

public override LocalisableString Description => "Burn the notes into your memory.";

/// <remarks>
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ namespace osu.Game.Rulesets.Osu.Mods
{
public class OsuModHardRock : ModHardRock, IApplicableToHitObject
{
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.06 : 1;

public override Type[] IncompatibleMods => base.IncompatibleMods.Append(typeof(ModMirror)).ToArray();

public void ApplyToHitObject(HitObject hitObject)
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModHidden.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ public class OsuModHidden : ModHidden, IHidesApproachCircles
public Bindable<bool> OnlyFadeApproachCircles { get; } = new BindableBool();

public override LocalisableString Description => @"Play with no approach circles and fading circles/sliders.";
public override double ScoreMultiplier => UsesDefaultConfiguration ? 1.06 : 1;

public override Type[] IncompatibleMods => new[] { typeof(IRequiresApproachCircles), typeof(OsuModSpinIn), typeof(OsuModDepth), typeof(OsuModFreezeFrame) };

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModMagnetised.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ public class OsuModMagnetised : Mod, IUpdatableByPlayfield, IApplicableToDrawabl
public override IconUsage? Icon => OsuIcon.ModMagnetised;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "No need to chase the circles – your cursor is a magnet!";
public override double ScoreMultiplier => 0.5;
public override Type[] IncompatibleMods => new[] { typeof(OsuModAutopilot), typeof(OsuModWiggle), typeof(OsuModTransform), typeof(ModAutoplay), typeof(OsuModRelax), typeof(OsuModRepel), typeof(OsuModBubbles), typeof(OsuModDepth) };

[SettingSource("Attraction strength", "How strong the pull is.", 0)]
Expand Down
2 changes: 0 additions & 2 deletions osu.Game.Rulesets.Osu/Mods/OsuModObjectScaleTween.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ public abstract class OsuModObjectScaleTween : ModWithVisibilityAdjustment, IHid
{
public override ModType Type => ModType.Fun;

public override double ScoreMultiplier => 1;

[SettingSource("Starting Size", "The initial size multiplier applied to all objects.")]
public abstract BindableNumber<float> StartScale { get; }

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModRepel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ public class OsuModRepel : Mod, IUpdatableByPlayfield, IApplicableToDrawableRule
public override IconUsage? Icon => OsuIcon.ModRepel;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "Hit objects run away!";
public override double ScoreMultiplier => 1;
public override Type[] IncompatibleMods => new[] { typeof(OsuModAutopilot), typeof(OsuModWiggle), typeof(OsuModTransform), typeof(ModAutoplay), typeof(OsuModMagnetised), typeof(OsuModBubbles), typeof(OsuModDepth) };

[SettingSource("Repulsion strength", "How strong the repulsion is.", 0)]
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModSpinIn.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ public class OsuModSpinIn : ModWithVisibilityAdjustment, IHidesApproachCircles
public override IconUsage? Icon => OsuIcon.ModSpinIn;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "Circles spin in. No approach circles.";
public override double ScoreMultiplier => 1;

// todo: this mod needs to be incompatible with "hidden" due to forcing the circle to remain opaque,
// further implementation will be required for supporting that.
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModSpunOut.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ public class OsuModSpunOut : Mod, IApplicableToDrawableHitObject
public override IconUsage? Icon => OsuIcon.ModSpunOut;
public override ModType Type => ModType.Automation;
public override LocalisableString Description => @"Spinners will be automatically completed.";
public override double ScoreMultiplier => 0.9;
public override Type[] IncompatibleMods => new[] { typeof(ModAutoplay), typeof(OsuModAutopilot), typeof(OsuModTargetPractice) };
public override bool Ranked => UsesDefaultConfiguration;

Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModStrictTracking.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public partial class OsuModStrictTracking : Mod, IApplicableAfterBeatmapConversi
public override IconUsage? Icon => OsuIcon.ModStrictTracking;
public override ModType Type => ModType.DifficultyIncrease;
public override LocalisableString Description => @"Once you start a slider, follow precisely or get a miss.";
public override double ScoreMultiplier => 1.0;
public override Type[] IncompatibleMods => new[] { typeof(ModClassic), typeof(OsuModTargetPractice) };

public void ApplyToDrawableHitObject(DrawableHitObject drawable)
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModTargetPractice.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public class OsuModTargetPractice : ModWithVisibilityAdjustment, IApplicableToDr
public override ModType Type => ModType.Conversion;
public override IconUsage? Icon => OsuIcon.ModTargetPractice;
public override LocalisableString Description => @"Practice keeping up with the beat of the song.";
public override double ScoreMultiplier => 0.1;

public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[]
{
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModTraceable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ public class OsuModTraceable : ModTraceable, IRequiresApproachCircles
public override IconUsage? Icon => OsuIcon.ModTraceable;
public override ModType Type => ModType.DifficultyIncrease;
public override LocalisableString Description => "Put your faith in the approach circles...";
public override double ScoreMultiplier => 1;
public override bool Ranked => true;

public override Type[] IncompatibleMods => new[] { typeof(IHidesApproachCircles), typeof(OsuModDepth) };
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModTransform.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ public class OsuModTransform : ModWithVisibilityAdjustment
public override IconUsage? Icon => OsuIcon.ModTransform;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "Everything rotates. EVERYTHING.";
public override double ScoreMultiplier => 1;
public override Type[] IncompatibleMods => base.IncompatibleMods.Concat(new[] { typeof(OsuModWiggle), typeof(OsuModMagnetised), typeof(OsuModRepel), typeof(OsuModFreezeFrame), typeof(OsuModDepth) }).ToArray();

private float theta;
Expand Down
1 change: 0 additions & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModWiggle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ public class OsuModWiggle : ModWithVisibilityAdjustment
public override IconUsage? Icon => OsuIcon.ModWiggle;
public override ModType Type => ModType.Fun;
public override LocalisableString Description => "They just won't stay still...";
public override double ScoreMultiplier => 1;
public override Type[] IncompatibleMods => new[] { typeof(OsuModTransform), typeof(OsuModMagnetised), typeof(OsuModRepel), typeof(OsuModDepth) };

private const int wiggle_duration = 100; // (ms) Higher = fewer wiggles
Expand Down
Loading
Loading