mirror of
https://github.com/osukey/osukey.git
synced 2025-06-23 20:27:58 +09:00
Reworking the Ouendan 2 Hidden code AGAIN
Not finished. Will be finished in a later commit.
This commit is contained in:
parent
7a92c7ab7e
commit
c9a2c6c031
@ -50,15 +50,15 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
|
|
||||||
protected override void ApplyIncreasedVisibilityState(DrawableHitObject hitObject, ArmedState state)
|
protected override void ApplyIncreasedVisibilityState(DrawableHitObject hitObject, ArmedState state)
|
||||||
{
|
{
|
||||||
applyState(hitObject, true);
|
applyHiddenState(hitObject, true, OnlyFadeApproachCircles.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void ApplyNormalVisibilityState(DrawableHitObject hitObject, ArmedState state)
|
protected override void ApplyNormalVisibilityState(DrawableHitObject hitObject, ArmedState state)
|
||||||
{
|
{
|
||||||
applyState(hitObject, false);
|
applyHiddenState(hitObject, false, OnlyFadeApproachCircles.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void applyState(DrawableHitObject drawableObject, bool increaseVisibility)
|
private void applyHiddenState(DrawableHitObject drawableObject, bool hideApproachCircle, bool hideCirclePiece)
|
||||||
{
|
{
|
||||||
if (!(drawableObject is DrawableOsuHitObject drawableOsuObject))
|
if (!(drawableObject is DrawableOsuHitObject drawableOsuObject))
|
||||||
return;
|
return;
|
||||||
@ -67,90 +67,63 @@ namespace osu.Game.Rulesets.Osu.Mods
|
|||||||
|
|
||||||
(double fadeStartTime, double fadeDuration) = getFadeOutParameters(drawableOsuObject);
|
(double fadeStartTime, double fadeDuration) = getFadeOutParameters(drawableOsuObject);
|
||||||
|
|
||||||
if (!OnlyFadeApproachCircles.Value)
|
switch (drawableObject)
|
||||||
{
|
{
|
||||||
switch (drawableObject)
|
case DrawableSliderTail _:
|
||||||
{
|
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
||||||
case DrawableSliderTail _:
|
drawableObject.FadeOut(fadeDuration);
|
||||||
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
|
||||||
drawableObject.FadeOut(fadeDuration);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DrawableSliderRepeat sliderRepeat:
|
case DrawableSliderRepeat sliderRepeat:
|
||||||
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
||||||
// only apply to circle piece – reverse arrow is not affected by hidden.
|
// only apply to circle piece – reverse arrow is not affected by hidden.
|
||||||
sliderRepeat.CirclePiece.FadeOut(fadeDuration);
|
sliderRepeat.CirclePiece.FadeOut(fadeDuration);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DrawableHitCircle circle:
|
case DrawableHitCircle circle:
|
||||||
Drawable fadeTarget = circle;
|
Drawable fadeTarget = circle;
|
||||||
|
|
||||||
if (increaseVisibility)
|
if (hideApproachCircle)
|
||||||
{
|
{
|
||||||
// only fade the circle piece (not the approach circle) for the increased visibility object.
|
// only fade the circle piece (not the approach circle) for the increased visibility object.
|
||||||
fadeTarget = circle.CirclePiece;
|
fadeTarget = circle.CirclePiece;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// we don't want to see the approach circle
|
// we don't want to see the approach circle
|
||||||
using (circle.BeginAbsoluteSequence(hitObject.StartTime - hitObject.TimePreempt))
|
using (circle.BeginAbsoluteSequence(hitObject.StartTime - hitObject.TimePreempt))
|
||||||
circle.ApproachCircle.Hide();
|
circle.ApproachCircle.Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
using (drawableObject.BeginAbsoluteSequence(fadeStartTime))
|
||||||
fadeTarget.FadeOut(fadeDuration);
|
fadeTarget.FadeOut(fadeDuration);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DrawableSlider slider:
|
case DrawableSlider slider:
|
||||||
using (slider.BeginAbsoluteSequence(fadeStartTime))
|
using (slider.BeginAbsoluteSequence(fadeStartTime))
|
||||||
slider.Body.FadeOut(fadeDuration, Easing.Out);
|
slider.Body.FadeOut(fadeDuration, Easing.Out);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DrawableSliderTick sliderTick:
|
case DrawableSliderTick sliderTick:
|
||||||
using (sliderTick.BeginAbsoluteSequence(fadeStartTime))
|
using (sliderTick.BeginAbsoluteSequence(fadeStartTime))
|
||||||
sliderTick.FadeOut(fadeDuration);
|
sliderTick.FadeOut(fadeDuration);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DrawableSpinner spinner:
|
case DrawableSpinner spinner:
|
||||||
// hide elements we don't care about.
|
// hide elements we don't care about.
|
||||||
// todo: hide background
|
// todo: hide background
|
||||||
|
|
||||||
spinner.Body.OnSkinChanged += () => hideSpinnerApproachCircle(spinner);
|
spinner.Body.OnSkinChanged += () => hideSpinnerApproachCircle(spinner);
|
||||||
hideSpinnerApproachCircle(spinner);
|
hideSpinnerApproachCircle(spinner);
|
||||||
|
|
||||||
using (spinner.BeginAbsoluteSequence(fadeStartTime))
|
using (spinner.BeginAbsoluteSequence(fadeStartTime))
|
||||||
spinner.FadeOut(fadeDuration);
|
spinner.FadeOut(fadeDuration);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
switch(drawableObject)
|
|
||||||
{
|
|
||||||
case DrawableHitCircle circle:
|
|
||||||
if (!increaseVisibility)
|
|
||||||
{
|
|
||||||
// we don't want to see the approach circle
|
|
||||||
using (circle.BeginAbsoluteSequence(hitObject.StartTime - hitObject.TimePreempt))
|
|
||||||
circle.ApproachCircle.Hide();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case DrawableSpinner spinner:
|
|
||||||
// hide elements we don't care about.
|
|
||||||
// todo: hide background
|
|
||||||
|
|
||||||
spinner.Body.OnSkinChanged += () => hideSpinnerApproachCircle(spinner);
|
|
||||||
hideSpinnerApproachCircle(spinner);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user