1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-22 18:12:56 +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(); base.LoadComplete();
// Move box along a square trajectory // Move box along a square trajectory
container.Loop(b => b container
.MoveTo(new Vector2(0, 100), duration) .MoveTo(new Vector2(0, 100), duration)
.Then().MoveTo(new Vector2(100, 100), duration) .Then().MoveTo(new Vector2(100, 100), duration)
.Then().MoveTo(new Vector2(100, 0), duration) .Then().MoveTo(new Vector2(100, 0), duration)
.Then().MoveTo(Vector2.Zero, duration) .Then().MoveTo(Vector2.Zero, duration)
); .Loop();
} }
private class MyContextMenuContainer : Container, IHasContextMenu 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; double duration = ((HitObject as IHasEndTime)?.EndTime ?? HitObject.StartTime) - HitObject.StartTime;
using (glow.BeginDelayedSequence(duration)) glow.Delay(duration).FadeOut(400);
glow.FadeOut(400);
switch (state) switch (state)
{ {
case ArmedState.Idle: case ArmedState.Idle:
using (BeginDelayedSequence(duration + TIME_PREEMPT)) this.Delay(duration + TIME_PREEMPT).FadeOut(TIME_FADEOUT);
this.FadeOut(TIME_FADEOUT);
Expire(true); Expire(true);
break; break;
case ArmedState.Miss: case ArmedState.Miss:
@ -131,23 +129,13 @@ namespace osu.Game.Rulesets.Osu.Objects.Drawables
ApproachCircle.FadeOut(50); ApproachCircle.FadeOut(50);
const double flash_in = 40; const double flash_in = 40;
flash.FadeTo(0.8f, flash_in).Then().FadeOut(100);
flash.FadeTo(0.8f, flash_in);
using (flash.BeginDelayedSequence(flash_in))
flash.FadeOut(100);
explode.FadeIn(flash_in); explode.FadeIn(flash_in);
using (BeginDelayedSequence(flash_in, true)) ring.Delay(flash_in).FadeOut();
{ circle.Delay(flash_in).FadeOut();
//after the flash, we can hide some elements that were behind it number.Delay(flash_in).FadeOut();
ring.FadeOut(); this.Delay(flash_in).FadeOut(800).ScaleTo(Scale * 1.5f, 400, EasingTypes.OutQuad);
circle.FadeOut();
number.FadeOut();
this.FadeOut(800);
this.ScaleTo(Scale * 1.5f, 400, EasingTypes.OutQuad);
}
Expire(); Expire();
break; break;

View File

@ -147,9 +147,8 @@ namespace osu.Game.Rulesets.Taiko.Objects.Drawables
var completion = (float)userHits / HitObject.RequiredHits; var completion = (float)userHits / HitObject.RequiredHits;
expandingRing.FadeTo(expandingRing.Alpha + MathHelper.Clamp(completion / 16, 0.1f, 0.6f), 50); expandingRing.FadeTo(expandingRing.Alpha + MathHelper.Clamp(completion / 16, 0.1f, 0.6f), 50)
using (expandingRing.BeginDelayedSequence(50)) .Then().FadeTo(completion / 8, 2000, EasingTypes.OutQuint);
expandingRing.FadeTo(completion / 8, 2000, EasingTypes.OutQuint);
symbol.RotateTo((float)(completion * HitObject.Duration / 8), 4000, 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; double duration = timingPoint.BeatLength * 2;
background.FadeEdgeEffectTo(1, pre_beat_transition_time, EasingTypes.OutQuint); background.FadeEdgeEffectTo(1, pre_beat_transition_time, EasingTypes.OutQuint)
using (background.BeginDelayedSequence(pre_beat_transition_time)) .Then().FadeEdgeEffectTo(edge_alpha_kiai, duration, EasingTypes.OutQuint);
background.FadeEdgeEffectTo(edge_alpha_kiai, duration, EasingTypes.OutQuint);
} }
} }
} }

View File

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

View File

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

View File

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

View File

@ -204,25 +204,31 @@ namespace osu.Game.Overlays
using (BeginDelayedSequence(200, true)) using (BeginDelayedSequence(200, true))
{ {
disc.FadeIn(initial_duration); disc.FadeIn(initial_duration).ScaleTo(1f, initial_duration * 2, EasingTypes.OutElastic);
particleContainer.FadeIn(initial_duration); particleContainer.FadeIn(initial_duration);
outerSpin.FadeTo(0.1f, initial_duration * 2); outerSpin.FadeTo(0.1f, initial_duration * 2);
disc.ScaleTo(1f, initial_duration * 2, EasingTypes.OutElastic);
using (BeginDelayedSequence(initial_duration + 200, true)) using (BeginDelayedSequence(initial_duration + 200, true))
{ {
backgroundStrip.FadeIn(step_duration); backgroundStrip.FadeIn(step_duration);
leftStrip.ResizeWidthTo(1f, step_duration, EasingTypes.OutQuint); leftStrip.ResizeWidthTo(1f, step_duration, EasingTypes.OutQuint);
rightStrip.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; }); if (drawableMedal.State != DisplayState.Full)
drawableMedal.State = DisplayState.Icon;
using (BeginDelayedSequence(step_duration, true)) })
Schedule(() => { if (drawableMedal.State != DisplayState.Full) drawableMedal.State = DisplayState.Full; }); .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); medalContainer.ScaleTo(0);
break; break;
case DisplayState.Icon: case DisplayState.Icon:
medalContainer.ScaleTo(1, duration, EasingTypes.OutElastic); medalContainer.FadeIn(duration).ScaleTo(1, duration, EasingTypes.OutElastic);
medalContainer.FadeIn(duration);
break; break;
case DisplayState.MedalUnlocked: case DisplayState.MedalUnlocked:
medalContainer.ScaleTo(1); medalContainer.FadeTo(1).ScaleTo(1);
medalContainer.Show();
this.ScaleTo(scale_when_unlocked, duration, EasingTypes.OutExpo); this.ScaleTo(scale_when_unlocked, duration, EasingTypes.OutExpo);
this.MoveToY(MedalOverlay.DISC_SIZE / 2 - 30, duration, EasingTypes.OutExpo); this.MoveToY(MedalOverlay.DISC_SIZE / 2 - 30, duration, EasingTypes.OutExpo);
unlocked.FadeInFromZero(duration); unlocked.FadeInFromZero(duration);
break; break;
case DisplayState.Full: case DisplayState.Full:
medalContainer.ScaleTo(1); medalContainer.FadeTo(1).ScaleTo(1);
medalContainer.Show();
this.ScaleTo(scale_when_full, duration, EasingTypes.OutExpo); this.ScaleTo(scale_when_full, duration, EasingTypes.OutExpo);
this.MoveToY(MedalOverlay.DISC_SIZE / 2 - 60, 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; backgroundIcon.Icon = modAfter.Icon;
using (BeginDelayedSequence(mod_switch_duration, true)) using (BeginDelayedSequence(mod_switch_duration, true))
{ {
foregroundIcon.RotateTo(-rotate_angle * direction); foregroundIcon.RotateTo(-rotate_angle * direction).RotateTo(0f, mod_switch_duration, mod_switch_easing);
foregroundIcon.RotateTo(0f, mod_switch_duration, mod_switch_easing); backgroundIcon.RotateTo(rotate_angle * direction).RotateTo(0f, mod_switch_duration, mod_switch_easing);
backgroundIcon.RotateTo(rotate_angle * direction);
backgroundIcon.RotateTo(0f, mod_switch_duration, mod_switch_easing);
Schedule(() => displayMod(modAfter)); Schedule(() => displayMod(modAfter));
} }

View File

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

View File

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

View File

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

View File

@ -237,34 +237,23 @@ namespace osu.Game.Screens.Menu
if (beatIndex < 0) return; if (beatIndex < 0) return;
if (IsHovered) if (IsHovered)
{ this.Delay(early_activation).Schedule(() => sampleBeat.Play());
using (BeginDelayedSequence(early_activation))
Schedule(() => sampleBeat.Play());
}
logoBeatContainer.ScaleTo(1 - 0.02f * amplitudeAdjust, early_activation, EasingTypes.Out); logoBeatContainer.ScaleTo(1 - 0.02f * amplitudeAdjust, early_activation, EasingTypes.Out)
using (logoBeatContainer.BeginDelayedSequence(early_activation)) .Then().ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
logoBeatContainer.ScaleTo(1, beatLength * 2, EasingTypes.OutQuint);
ripple.ClearTransforms(); ripple.ClearTransforms();
ripple.ScaleTo(logoAmplitudeContainer.Scale); ripple.ScaleTo(logoAmplitudeContainer.Scale).ScaleTo(logoAmplitudeContainer.Scale * (1 + 0.04f * amplitudeAdjust), beatLength, EasingTypes.OutQuint);
ripple.Alpha = 0.15f * amplitudeAdjust; ripple.FadeTo(0.15f * amplitudeAdjust).FadeOut(beatLength, EasingTypes.OutQuint);
ripple.ScaleTo(logoAmplitudeContainer.Scale * (1 + 0.04f * amplitudeAdjust), beatLength, EasingTypes.OutQuint);
ripple.FadeOut(beatLength, EasingTypes.OutQuint);
if (effectPoint.KiaiMode && flashLayer.Alpha < 0.4f) if (effectPoint.KiaiMode && flashLayer.Alpha < 0.4f)
{ {
flashLayer.ClearTransforms(); flashLayer.ClearTransforms();
visualizer.ClearTransforms(); visualizer.ClearTransforms();
flashLayer.FadeTo(0.2f * amplitudeAdjust, early_activation, EasingTypes.Out); flashLayer.FadeTo(0.2f * amplitudeAdjust, early_activation, EasingTypes.Out).Then().FadeOut(beatLength);
visualizer.FadeTo(0.9f * amplitudeAdjust, early_activation, EasingTypes.Out); visualizer.FadeTo(0.9f * amplitudeAdjust, early_activation, EasingTypes.Out).Then().FadeTo(0.5f, beatLength);
using (flashLayer.BeginDelayedSequence(early_activation))
flashLayer.FadeOut(beatLength);
using (visualizer.BeginDelayedSequence(early_activation))
visualizer.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. // in the case a replay isn't loaded, we want some elements to only appear briefly.
if (!replayLoaded) if (!replayLoaded)
{ ModDisplay.Delay(2000).FadeOut(200);
using (ModDisplay.BeginDelayedSequence(2000))
ModDisplay.FadeOut(200);
}
} }
protected override bool OnKeyDown(InputState state, KeyDownEventArgs args) 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); 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)) this.Delay(750).Schedule(() =>
Content.FadeIn(250); {
if (!pauseContainer.IsPaused)
Content.ScaleTo(1, 750, EasingTypes.OutQuint); decoupledClock.Start();
});
using (BeginDelayedSequence(750))
Schedule(() =>
{
if (!pauseContainer.IsPaused)
decoupledClock.Start();
});
pauseContainer.Alpha = 0; pauseContainer.Alpha = 0;
pauseContainer.FadeIn(750, EasingTypes.OutQuint); pauseContainer.FadeIn(750, EasingTypes.OutQuint);

View File

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