Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 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