1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 10:52:53 +08:00

review modifications: change xmldocs, change reflection method name, remove reflection method returns, simplify incompat. mod list

This commit is contained in:
Gabe Livengood 2021-07-27 09:01:01 -04:00
parent c7c261ba03
commit c741366c72
No known key found for this signature in database
GPG Key ID: 70321B78DAECE683
3 changed files with 16 additions and 20 deletions

View File

@ -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);
}
}
}

View File

@ -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;
}
}

View File

@ -106,16 +106,15 @@ namespace osu.Game.Rulesets.Osu.Utils
}
/// <summary>
/// Reflects an OsuHitObject's position horizontally.
/// Reflects the position of the <see cref="OsuHitObject"/> in the playfield vertically.
/// </summary>
/// <param name="osuObject">The OsuHitObject to be reflected.</param>
/// <returns>The reflected OsuHitObject.</returns>
public static OsuHitObject ReflectOsuHitObjectHorizontally(OsuHitObject osuObject)
/// <param name="osuObject">The object to reflect.</param>
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<SliderTick>().ForEach(h => h.Position = new Vector2(OsuPlayfield.BASE_SIZE.X - h.Position.X, h.Position.Y));
slider.NestedHitObjects.OfType<SliderRepeat>().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;
}
/// <summary>
/// Reflects an OsuHitObject's position vertically.
/// Reflects the position of the <see cref="OsuHitObject"/> in the playfield horizontally.
/// </summary>
/// <param name="osuObject">The OsuHitObject to be reflected.</param>
/// <returns>The reflected OsuHitObject.</returns>
public static OsuHitObject ReflectOsuHitObjectVertically(OsuHitObject osuObject)
/// <param name="osuObject">The object to reflect.</param>
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<SliderTick>().ForEach(h => h.Position = new Vector2(h.Position.X, OsuPlayfield.BASE_SIZE.Y - h.Position.Y));
slider.NestedHitObjects.OfType<SliderRepeat>().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;
}
}
}