diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
index 82b8959456..c94bafe6af 100644
--- a/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
+++ b/osu.Game.Rulesets.Osu/Mods/OsuModHardRock.cs
@@ -17,13 +17,13 @@ namespace osu.Game.Rulesets.Osu.Mods
{
public override double ScoreMultiplier => 1.06;
- public override Type[] IncompatibleMods => new[] { typeof(ModEasy), typeof(ModDifficultyAdjust), typeof(ModMirror) };
+ public override Type[] IncompatibleMods => base.IncompatibleMods.Append(typeof(ModMirror)).ToArray();
public void ApplyToHitObject(HitObject hitObject)
{
var osuObject = (OsuHitObject)hitObject;
- OsuHitObjectGenerationUtils.ReflectOsuHitObjectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
}
}
}
diff --git a/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs b/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
index fd1d685fd1..9b4614c9b2 100644
--- a/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
+++ b/osu.Game.Rulesets.Osu/Mods/OsuModMirror.cs
@@ -29,14 +29,16 @@ namespace osu.Game.Rulesets.Osu.Mods
switch (Reflection.Value)
{
case MirrorType.Horizontal:
- OsuHitObjectGenerationUtils.ReflectOsuHitObjectHorizontally(osuObject);
+ OsuHitObjectGenerationUtils.ReflectHorizontally(osuObject);
break;
+
case MirrorType.Vertical:
- OsuHitObjectGenerationUtils.ReflectOsuHitObjectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
break;
+
case MirrorType.Both:
- OsuHitObjectGenerationUtils.ReflectOsuHitObjectHorizontally(osuObject);
- OsuHitObjectGenerationUtils.ReflectOsuHitObjectVertically(osuObject);
+ OsuHitObjectGenerationUtils.ReflectHorizontally(osuObject);
+ OsuHitObjectGenerationUtils.ReflectVertically(osuObject);
break;
}
}
diff --git a/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs b/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
index bf55898901..fcd5fb4a31 100644
--- a/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
+++ b/osu.Game.Rulesets.Osu/Utils/OsuHitObjectGenerationUtils.cs
@@ -106,16 +106,15 @@ namespace osu.Game.Rulesets.Osu.Utils
}
///
- /// Reflects an OsuHitObject's position horizontally.
+ /// Reflects the position of the in the playfield vertically.
///
- /// The OsuHitObject to be reflected.
- /// The reflected OsuHitObject.
- public static OsuHitObject ReflectOsuHitObjectHorizontally(OsuHitObject osuObject)
+ /// The object to reflect.
+ public static void ReflectHorizontally(OsuHitObject osuObject)
{
osuObject.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - osuObject.X, osuObject.Position.Y);
if (!(osuObject is Slider slider))
- return osuObject;
+ return;
slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - h.Position.X, h.Position.Y));
slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - h.Position.X, h.Position.Y));
@@ -125,21 +124,18 @@ namespace osu.Game.Rulesets.Osu.Utils
point.Position.Value = new Vector2(-point.Position.Value.X, point.Position.Value.Y);
slider.Path = new SliderPath(controlPoints, slider.Path.ExpectedDistance.Value);
-
- return osuObject;
}
///
- /// Reflects an OsuHitObject's position vertically.
+ /// Reflects the position of the in the playfield horizontally.
///
- /// The OsuHitObject to be reflected.
- /// The reflected OsuHitObject.
- public static OsuHitObject ReflectOsuHitObjectVertically(OsuHitObject osuObject)
+ /// The object to reflect.
+ public static void ReflectVertically(OsuHitObject osuObject)
{
osuObject.Position = new Vector2(osuObject.Position.X, OsuPlayfield.BASE_SIZE.Y - osuObject.Y);
if (!(osuObject is Slider slider))
- return osuObject;
+ return;
slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(h.Position.X, OsuPlayfield.BASE_SIZE.Y - h.Position.Y));
slider.NestedHitObjects.OfType().ForEach(h => h.Position = new Vector2(h.Position.X, OsuPlayfield.BASE_SIZE.Y - h.Position.Y));
@@ -149,8 +145,6 @@ namespace osu.Game.Rulesets.Osu.Utils
point.Position.Value = new Vector2(point.Position.Value.X, -point.Position.Value.Y);
slider.Path = new SliderPath(controlPoints, slider.Path.ExpectedDistance.Value);
-
- return osuObject;
}
}
}