1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-05 13:13:22 +08:00

Sliders no longer modified by HD but have transparent body now

This commit is contained in:
MaxOhn 2019-07-03 18:42:02 +02:00
parent 4145173ac9
commit 664257fbbe
3 changed files with 31 additions and 32 deletions

View File

@ -17,7 +17,6 @@ namespace osu.Game.Rulesets.Osu.Mods
{
public override string Description => @"Play with no approach circles and fading circles/sliders.";
public override double ScoreMultiplier => 1.06;
private const double fade_in_duration_multiplier = 0.4;
private const double fade_out_duration_multiplier = 0.3;

View File

@ -8,6 +8,7 @@ using osu.Framework.Graphics.Sprites;
using osu.Game.Rulesets.Mods;
using osu.Game.Rulesets.Objects.Drawables;
using osu.Game.Rulesets.Osu.Objects.Drawables;
using osuTK.Graphics;
namespace osu.Game.Rulesets.Osu.Mods
{
@ -24,43 +25,44 @@ namespace osu.Game.Rulesets.Osu.Mods
public override void ApplyToDrawableHitObjects(IEnumerable<DrawableHitObject> drawables)
{
foreach (var drawable in drawables.Skip(IncreaseFirstObjectVisibility.Value ? 1 : 0))
{
switch (drawable)
{
case DrawableHitCircle _:
drawable.ApplyCustomUpdateState += ApplyTraceableState;
break;
case DrawableSlider slider:
slider.ApplyCustomUpdateState += ApplyHiddenState;
slider.HeadCircle.ApplyCustomUpdateState += ApplyTraceableState;
break;
default:
drawable.ApplyCustomUpdateState += ApplyHiddenState;
break;
}
}
drawable.ApplyCustomUpdateState += ApplyTraceableState;
}
protected void ApplyTraceableState(DrawableHitObject drawable, ArmedState state)
{
if (!(drawable is DrawableHitCircle circle))
if (!(drawable is DrawableOsuHitObject d))
return;
var h = circle.HitObject;
var h = d.HitObject;
// we only want to see the approach circle
using (circle.BeginAbsoluteSequence(h.StartTime - h.TimePreempt, true))
switch (drawable)
{
circle.Circle.Hide(); // CirclePiece
circle.Circle.AlwaysPresent = true;
circle.Ring.Hide();
circle.Flash.Hide();
circle.Explode.Hide();
circle.Number.Hide();
circle.Glow.Hide();
circle.ApproachCircle.Show();
case DrawableHitCircle circle:
// we only want to see the approach circle
using (circle.BeginAbsoluteSequence(h.StartTime - h.TimePreempt, true))
{
circle.Circle.Hide(); // CirclePiece
circle.Circle.AlwaysPresent = true;
circle.Ring.Hide();
circle.Flash.Hide();
circle.Explode.Hide();
circle.Number.Hide();
circle.Glow.Hide();
circle.ApproachCircle.Show();
}
break;
case DrawableSlider slider:
ApplyTraceableState(slider.HeadCircle, state);
slider.Body.AccentColour = Color4.Transparent;
break;
default:
ApplyHiddenState(drawable, state);
break;
}
}
}

View File

@ -112,7 +112,6 @@ namespace osu.Game.Overlays.Mods
if (selected == null) continue;
foreach (var type in modTypes)
{
if (type.IsInstanceOfType(selected))
{
if (immediate)
@ -120,7 +119,6 @@ namespace osu.Game.Overlays.Mods
else
Scheduler.AddDelayed(button.Deselect, delay += 50);
}
}
}
}