1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-20 04:23:14 +08:00

Replace several usages of BeginDelayedSequence with LINQ-style

This commit is contained in:
Thomas Müller 2017-07-16 17:37:59 +03:00
parent 71105bb9ee
commit 99221260c4
19 changed files with 70 additions and 127 deletions

@ -1 +1 @@
Subproject commit 0bdb38e12e99716e563d27035737ba167d17763d
Subproject commit c2a20bd8b31144c6d196ab6ae0e8858acabbe032

View File

@ -60,12 +60,12 @@ namespace osu.Desktop.VisualTests.Tests
base.LoadComplete();
// Move box along a square trajectory
container.Loop(b => b
container
.MoveTo(new Vector2(0, 100), duration)
.Then().MoveTo(new Vector2(100, 100), duration)
.Then().MoveTo(new Vector2(100, 0), duration)
.Then().MoveTo(Vector2.Zero, duration)
);
.Loop();
}
private class MyContextMenuContainer : Container, IHasContextMenu

View File

@ -112,14 +112,12 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
{
double duration = ((HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime) - HitObject.StartTime;
using (glow.BeginDelayedSequence(duration))
glow.FadeOut(400);
glow.Delay(duration).FadeOut(400);
switch (state)
{
case ArmedState.Idle:
using (BeginDelayedSequence(duration + TIME_PREEMPT))
this.FadeOut(TIME_FADEOUT);
this.Delay(duration + TIME_PREEMPT).FadeOut(TIME_FADEOUT);
Expire(true);
break;
case ArmedState.Miss:
@ -131,23 +129,13 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
ApproachCircle.FadeOut(50);
const double flash_in = 40;
flash.FadeTo(0.8f, flash_in);
using (flash.BeginDelayedSequence(flash_in))
flash.FadeOut(100);
flash.FadeTo(0.8f, flash_in).Then().FadeOut(100);
explode.FadeIn(flash_in);
using (BeginDelayedSequence(flash_in, true))
{
//after the flash, we can hide some elements that were behind it
ring.FadeOut();
circle.FadeOut();
number.FadeOut();
this.FadeOut(800);
this.ScaleTo(Scale * 1.5f, 400, EasingTypes.OutQuad);
}
ring.Delay(flash_in).FadeOut();
circle.Delay(flash_in).FadeOut();
number.Delay(flash_in).FadeOut();
this.Delay(flash_in).FadeOut(800).ScaleTo(Scale * 1.5f, 400, EasingTypes.OutQuad);
Expire();
break;

View File

@ -147,9 +147,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
var completion = (float)userHits / HitObject.RequiredHits;
expandingRing.FadeTo(expandingRing.Alpha + MathHelper.Clamp(completion / 16, 0.1f, 0.6f), 50);
using (expandingRing.BeginDelayedSequence(50))
expandingRing.FadeTo(completion / 8, 2000, EasingTypes.OutQuint);
expandingRing.FadeTo(expandingRing.Alpha + MathHelper.Clamp(completion / 16, 0.1f, 0.6f), 50)
.Then().FadeTo(completion / 8, 2000, EasingTypes.OutQuint);
symbol.RotateTo((float)(completion * HitObject.Duration / 8), 4000, EasingTypes.OutQuint);

View File

@ -166,9 +166,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables.Pieces
double duration = timingPoint.BeatLength * 2;
background.FadeEdgeEffectTo(1, pre_beat_transition_time, EasingTypes.OutQuint);
using (background.BeginDelayedSequence(pre_beat_transition_time))
background.FadeEdgeEffectTo(edge_alpha_kiai, duration, EasingTypes.OutQuint);
background.FadeEdgeEffectTo(1, pre_beat_transition_time, EasingTypes.OutQuint)
.Then().FadeEdgeEffectTo(edge_alpha_kiai, duration, EasingTypes.OutQuint);
}
}
}

View File

@ -86,11 +86,7 @@ namespace osu.Game.Graphics.Cursor
this.FadeIn(500, EasingTypes.OutQuint);
}
protected override void PopOut()
{
using (BeginDelayedSequence(150))
this.FadeOut(500, EasingTypes.OutQuint);
}
protected override void PopOut() => this.Delay(150).FadeOut(500, EasingTypes.OutQuint);
public override void Move(Vector2 pos)
{

View File

@ -133,12 +133,8 @@ namespace osu.Game.Graphics.UserInterface
star.ClearTransforms(true);
var delay = (countStars <= newValue ? Math.Max(i - countStars, 0) : Math.Max(countStars - 1 - i, 0)) * animationDelay;
using (BeginDelayedSequence(delay, true))
{
star.FadeTo(i < newValue ? 1.0f : minStarAlpha, fadingDuration);
star.Icon.ScaleTo(getStarScale(i, newValue), scalingDuration, scalingEasing);
}
star.Delay(delay).FadeTo(i < newValue ? 1.0f : minStarAlpha, fadingDuration);
star.Icon.Delay(delay).ScaleTo(getStarScale(i, newValue), scalingDuration, scalingEasing);
i++;
}

View File

@ -245,9 +245,8 @@ namespace osu.Game.Graphics.UserInterface
if (beatIndex < 0) return;
icon.ScaleTo(1 - 0.1f * amplitudeAdjust, beat_in_time, EasingTypes.Out);
using (icon.BeginDelayedSequence(beat_in_time))
icon.ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
icon.ScaleTo(1 - 0.1f * amplitudeAdjust, beat_in_time, EasingTypes.Out)
.Then().ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
}
}
}

View File

@ -204,25 +204,31 @@ namespace osu.Game.Overlays
using (BeginDelayedSequence(200, true))
{
disc.FadeIn(initial_duration);
disc.FadeIn(initial_duration).ScaleTo(1f, initial_duration * 2, EasingTypes.OutElastic);
particleContainer.FadeIn(initial_duration);
outerSpin.FadeTo(0.1f, initial_duration * 2);
disc.ScaleTo(1f, initial_duration * 2, EasingTypes.OutElastic);
using (BeginDelayedSequence(initial_duration + 200, true))
{
backgroundStrip.FadeIn(step_duration);
leftStrip.ResizeWidthTo(1f, step_duration, EasingTypes.OutQuint);
rightStrip.ResizeWidthTo(1f, step_duration, EasingTypes.OutQuint);
Schedule(() => { if (drawableMedal.State != DisplayState.Full) drawableMedal.State = DisplayState.Icon; });
using (BeginDelayedSequence(step_duration, true))
this.Animate().Schedule(() =>
{
Schedule(() => { if (drawableMedal.State != DisplayState.Full) drawableMedal.State = DisplayState.MedalUnlocked; });
using (BeginDelayedSequence(step_duration, true))
Schedule(() => { if (drawableMedal.State != DisplayState.Full) drawableMedal.State = DisplayState.Full; });
}
if (drawableMedal.State != DisplayState.Full)
drawableMedal.State = DisplayState.Icon;
})
.Delay(step_duration).Schedule(() =>
{
if (drawableMedal.State != DisplayState.Full)
drawableMedal.State = DisplayState.MedalUnlocked;
})
.Delay(step_duration).Schedule(() =>
{
if (drawableMedal.State != DisplayState.Full)
drawableMedal.State = DisplayState.Full;
});
}
}
}

View File

@ -147,20 +147,17 @@ namespace osu.Game.Overlays.MedalSplash
medalContainer.ScaleTo(0);
break;
case DisplayState.Icon:
medalContainer.ScaleTo(1, duration, EasingTypes.OutElastic);
medalContainer.FadeIn(duration);
medalContainer.FadeIn(duration).ScaleTo(1, duration, EasingTypes.OutElastic);
break;
case DisplayState.MedalUnlocked:
medalContainer.ScaleTo(1);
medalContainer.Show();
medalContainer.FadeTo(1).ScaleTo(1);
this.ScaleTo(scale_when_unlocked, duration, EasingTypes.OutExpo);
this.MoveToY(MedalOverlay.DISC_SIZE / 2 - 30, duration, EasingTypes.OutExpo);
unlocked.FadeInFromZero(duration);
break;
case DisplayState.Full:
medalContainer.ScaleTo(1);
medalContainer.Show();
medalContainer.FadeTo(1).ScaleTo(1);
this.ScaleTo(scale_when_full, duration, EasingTypes.OutExpo);
this.MoveToY(MedalOverlay.DISC_SIZE / 2 - 60, duration, EasingTypes.OutExpo);

View File

@ -81,11 +81,8 @@ namespace osu.Game.Overlays.Mods
backgroundIcon.Icon = modAfter.Icon;
using (BeginDelayedSequence(mod_switch_duration, true))
{
foregroundIcon.RotateTo(-rotate_angle * direction);
foregroundIcon.RotateTo(0f, mod_switch_duration, mod_switch_easing);
backgroundIcon.RotateTo(rotate_angle * direction);
backgroundIcon.RotateTo(0f, mod_switch_duration, mod_switch_easing);
foregroundIcon.RotateTo(-rotate_angle * direction).RotateTo(0f, mod_switch_duration, mod_switch_easing);
backgroundIcon.RotateTo(rotate_angle * direction).RotateTo(0f, mod_switch_duration, mod_switch_easing);
Schedule(() => displayMod(modAfter));
}

View File

@ -154,14 +154,11 @@ namespace osu.Game.Overlays
textLine2.Text = settingValue;
textLine3.Text = shortcut.ToUpper();
box.FadeIn(500, EasingTypes.OutQuint);
box.ResizeHeightTo(height, 500, EasingTypes.OutQuint);
using (box.BeginDelayedSequence(500))
{
box.FadeOutFromOne(1500, EasingTypes.InQuint);
box.ResizeHeightTo(height_contracted, 1500, EasingTypes.InQuint);
}
box.Animate(
b => b.FadeIn(500, EasingTypes.OutQuint).ResizeHeightTo(height, 500, EasingTypes.OutQuint)
).Then(
b => b.FadeOutFromOne(1500, EasingTypes.InQuint).ResizeHeightTo(height_contracted, 1500, EasingTypes.InQuint)
);
int optionCount = 0;
int selectedOption = -1;

View File

@ -130,14 +130,11 @@ namespace osu.Game.Screens.Menu
icon.RotateTo(rightward ? 10 : -10, duration * 2, EasingTypes.InOutSine);
icon.MoveToY(-10, duration, EasingTypes.Out);
icon.ScaleTo(Vector2.One, duration, EasingTypes.Out);
using (icon.BeginDelayedSequence(duration))
{
icon.MoveToY(0, duration, EasingTypes.In);
icon.ScaleTo(new Vector2(1, 0.9f), duration, EasingTypes.In);
}
icon.Animate(
i => i.MoveToY(-10, duration, EasingTypes.Out).ScaleTo(1, duration, EasingTypes.Out)
).Then(
i => i.MoveToY(0, duration, EasingTypes.In).ScaleTo(new Vector2(1, 0.9f), duration, EasingTypes.In)
);
}
protected override bool OnHover(InputState state)

View File

@ -229,11 +229,7 @@ namespace osu.Game.Screens.Menu
buttonAreaBackground.ScaleTo(Vector2.One, 500, EasingTypes.Out);
buttonArea.FadeOut(300);
using (osuLogo.BeginDelayedSequence(150))
{
osuLogo.MoveTo(Vector2.Zero, 800, EasingTypes.OutExpo);
osuLogo.ScaleTo(1, 800, EasingTypes.OutExpo);
}
osuLogo.Delay(150).ScaleTo(1, 800, EasingTypes.OutExpo).MoveTo(Vector2.Zero, 800, EasingTypes.OutExpo);
foreach (Button b in buttonsTopLevel)
b.State = ButtonState.Contracted;

View File

@ -90,9 +90,8 @@ namespace osu.Game.Screens.Menu
private void flash(Drawable d, double beatLength, bool kiai, TrackAmplitudes amplitudes)
{
d.FadeTo(Math.Max(0, ((d.Equals(leftBox) ? amplitudes.LeftChannel : amplitudes.RightChannel) - amplitude_dead_zone) / (kiai ? kiai_multiplier : alpha_multiplier)), box_fade_in_time);
using (d.BeginDelayedSequence(box_fade_in_time))
d.FadeOut(beatLength, EasingTypes.In);
d.FadeTo(Math.Max(0, ((d.Equals(leftBox) ? amplitudes.LeftChannel : amplitudes.RightChannel) - amplitude_dead_zone) / (kiai ? kiai_multiplier : alpha_multiplier)), box_fade_in_time)
.Then().FadeOut(beatLength, EasingTypes.In);
}
}
}

View File

@ -237,34 +237,23 @@ namespace osu.Game.Screens.Menu
if (beatIndex < 0) return;
if (IsHovered)
{
using (BeginDelayedSequence(early_activation))
Schedule(() => sampleBeat.Play());
}
this.Delay(early_activation).Schedule(() => sampleBeat.Play());
logoBeatContainer.ScaleTo(1 - 0.02f * amplitudeAdjust, early_activation, EasingTypes.Out);
using (logoBeatContainer.BeginDelayedSequence(early_activation))
logoBeatContainer.ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
logoBeatContainer.ScaleTo(1 - 0.02f * amplitudeAdjust, early_activation, EasingTypes.Out)
.Then().ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
ripple.ClearTransforms();
ripple.ScaleTo(logoAmplitudeContainer.Scale);
ripple.Alpha = 0.15f * amplitudeAdjust;
ripple.ScaleTo(logoAmplitudeContainer.Scale * (1 + 0.04f * amplitudeAdjust), beatLength, EasingTypes.OutQuint);
ripple.FadeOut(beatLength, EasingTypes.OutQuint);
ripple.ScaleTo(logoAmplitudeContainer.Scale).ScaleTo(logoAmplitudeContainer.Scale * (1 + 0.04f * amplitudeAdjust), beatLength, EasingTypes.OutQuint);
ripple.FadeTo(0.15f * amplitudeAdjust).FadeOut(beatLength, EasingTypes.OutQuint);
if (effectPoint.KiaiMode && flashLayer.Alpha < 0.4f)
{
flashLayer.ClearTransforms();
visualizer.ClearTransforms();
flashLayer.FadeTo(0.2f * amplitudeAdjust, early_activation, EasingTypes.Out);
visualizer.FadeTo(0.9f * amplitudeAdjust, early_activation, EasingTypes.Out);
using (flashLayer.BeginDelayedSequence(early_activation))
flashLayer.FadeOut(beatLength);
using (visualizer.BeginDelayedSequence(early_activation))
visualizer.FadeTo(0.5f, beatLength);
flashLayer.FadeTo(0.2f * amplitudeAdjust, early_activation, EasingTypes.Out).Then().FadeOut(beatLength);
visualizer.FadeTo(0.9f * amplitudeAdjust, early_activation, EasingTypes.Out).Then().FadeTo(0.5f, beatLength);
}
}

View File

@ -98,10 +98,7 @@ namespace osu.Game.Screens.Play
// in the case a replay isn't loaded, we want some elements to only appear briefly.
if (!replayLoaded)
{
using (ModDisplay.BeginDelayedSequence(2000))
ModDisplay.FadeOut(200);
}
ModDisplay.Delay(2000).FadeOut(200);
}
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args)

View File

@ -272,19 +272,14 @@ namespace osu.Game.Screens.Play
dimLevel.ValueChanged += newDim => Background?.FadeTo(1 - (float)newDim, 800);
Content.ScaleTo(0.7f);
Content.ScaleTo(0.7f).ScaleTo(1, 750, EasingTypes.OutQuint);
Content.Delay(250).FadeIn(250);
using (Content.BeginDelayedSequence(250))
Content.FadeIn(250);
Content.ScaleTo(1, 750, EasingTypes.OutQuint);
using (BeginDelayedSequence(750))
Schedule(() =>
{
if (!pauseContainer.IsPaused)
decoupledClock.Start();
});
this.Delay(750).Schedule(() =>
{
if (!pauseContainer.IsPaused)
decoupledClock.Start();
});
pauseContainer.Alpha = 0;
pauseContainer.FadeIn(750, EasingTypes.OutQuint);

View File

@ -67,20 +67,16 @@ namespace osu.Game.Screens.Ranking
modeChangeButtons.FadeOut();
currentPage.FadeOut();
circleOuterBackground.ScaleTo(1, transition_time, EasingTypes.OutQuint);
circleOuterBackground.FadeTo(1, transition_time, EasingTypes.OutQuint);
circleOuterBackground.FadeIn(transition_time, EasingTypes.OutQuint).ScaleTo(1, transition_time, EasingTypes.OutQuint);
using (BeginDelayedSequence(transition_time * 0.25f, true))
{
circleOuter.ScaleTo(1, transition_time, EasingTypes.OutQuint);
circleOuter.FadeTo(1, transition_time, EasingTypes.OutQuint);
circleOuter.FadeIn(transition_time, EasingTypes.OutQuint).ScaleTo(1, transition_time, EasingTypes.OutQuint);
using (BeginDelayedSequence(transition_time * 0.3f, true))
{
backgroundParallax.FadeIn(transition_time, EasingTypes.OutQuint);
circleInner.ScaleTo(1, transition_time, EasingTypes.OutQuint);
circleInner.FadeTo(1, transition_time, EasingTypes.OutQuint);
circleInner.FadeIn(transition_time, EasingTypes.OutQuint).ScaleTo(1, transition_time, EasingTypes.OutQuint);
using (BeginDelayedSequence(transition_time * 0.4f, true))
{