From 99221260c4fecdfe042f43b983daaf2d313d8cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Sun, 16 Jul 2017 17:37:59 +0300 Subject: [PATCH] Replace several usages of BeginDelayedSequence with LINQ-style --- osu-framework | 2 +- .../Tests/TestCaseContextMenu.cs | 4 +-- .../Objects/Drawables/DrawableHitCircle.cs | 26 +++++-------------- .../Objects/Drawables/DrawableSwell.cs | 5 ++-- .../Objects/Drawables/Pieces/CirclePiece.cs | 5 ++-- .../Graphics/Cursor/OsuTooltipContainer.cs | 6 +---- .../Graphics/UserInterface/StarCounter.cs | 8 ++---- .../Graphics/UserInterface/TwoLayerButton.cs | 5 ++-- osu.Game/Overlays/MedalOverlay.cs | 24 ++++++++++------- .../Overlays/MedalSplash/DrawableMedal.cs | 9 +++---- osu.Game/Overlays/Mods/ModButton.cs | 7 ++--- osu.Game/Overlays/OnScreenDisplay.cs | 13 ++++------ osu.Game/Screens/Menu/Button.cs | 13 ++++------ osu.Game/Screens/Menu/ButtonSystem.cs | 6 +---- osu.Game/Screens/Menu/MenuSideFlashes.cs | 5 ++-- osu.Game/Screens/Menu/OsuLogo.cs | 25 +++++------------- osu.Game/Screens/Play/HUDOverlay.cs | 5 +--- osu.Game/Screens/Play/Player.cs | 19 +++++--------- osu.Game/Screens/Ranking/Results.cs | 10 +++---- 19 files changed, 70 insertions(+), 127 deletions(-) diff --git a/osu-framework b/osu-framework index 0bdb38e12e..c2a20bd8b3 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 0bdb38e12e99716e563d27035737ba167d17763d +Subproject commit c2a20bd8b31144c6d196ab6ae0e8858acabbe032 diff --git a/osu.Desktop.VisualTests/Tests/TestCaseContextMenu.cs b/osu.Desktop.VisualTests/Tests/TestCaseContextMenu.cs index 112a11d400..d89397e793 100644 --- a/osu.Desktop.VisualTests/Tests/TestCaseContextMenu.cs +++ b/osu.Desktop.VisualTests/Tests/TestCaseContextMenu.cs @@ -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 diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableHitCircle.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableHitCircle.cs index 947af733ec..ec047d2aa8 100644 --- a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableHitCircle.cs +++ b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableHitCircle.cs @@ -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; diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs index 90e1d594e9..4cb5f211e4 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/DrawableSwell.cs @@ -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); diff --git a/osu.Game.Rulesets.Taiko/Objects/Drawables/Pieces/CirclePiece.cs b/osu.Game.Rulesets.Taiko/Objects/Drawables/Pieces/CirclePiece.cs index 3f8249f5a9..cd7e70eff3 100644 --- a/osu.Game.Rulesets.Taiko/Objects/Drawables/Pieces/CirclePiece.cs +++ b/osu.Game.Rulesets.Taiko/Objects/Drawables/Pieces/CirclePiece.cs @@ -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); } } } \ No newline at end of file diff --git a/osu.Game/Graphics/Cursor/OsuTooltipContainer.cs b/osu.Game/Graphics/Cursor/OsuTooltipContainer.cs index 5ce836bbe5..d3d01a5bc8 100644 --- a/osu.Game/Graphics/Cursor/OsuTooltipContainer.cs +++ b/osu.Game/Graphics/Cursor/OsuTooltipContainer.cs @@ -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) { diff --git a/osu.Game/Graphics/UserInterface/StarCounter.cs b/osu.Game/Graphics/UserInterface/StarCounter.cs index 490ea6e64a..41ecb56db4 100644 --- a/osu.Game/Graphics/UserInterface/StarCounter.cs +++ b/osu.Game/Graphics/UserInterface/StarCounter.cs @@ -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++; } diff --git a/osu.Game/Graphics/UserInterface/TwoLayerButton.cs b/osu.Game/Graphics/UserInterface/TwoLayerButton.cs index 5713f5fe27..32903b4eaf 100644 --- a/osu.Game/Graphics/UserInterface/TwoLayerButton.cs +++ b/osu.Game/Graphics/UserInterface/TwoLayerButton.cs @@ -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); } } } diff --git a/osu.Game/Overlays/MedalOverlay.cs b/osu.Game/Overlays/MedalOverlay.cs index fce4604d9d..627e485993 100644 --- a/osu.Game/Overlays/MedalOverlay.cs +++ b/osu.Game/Overlays/MedalOverlay.cs @@ -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; + }); } } } diff --git a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs index bba58e1a26..166b8e8d41 100644 --- a/osu.Game/Overlays/MedalSplash/DrawableMedal.cs +++ b/osu.Game/Overlays/MedalSplash/DrawableMedal.cs @@ -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); diff --git a/osu.Game/Overlays/Mods/ModButton.cs b/osu.Game/Overlays/Mods/ModButton.cs index aca73d2828..45da537a60 100644 --- a/osu.Game/Overlays/Mods/ModButton.cs +++ b/osu.Game/Overlays/Mods/ModButton.cs @@ -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)); } diff --git a/osu.Game/Overlays/OnScreenDisplay.cs b/osu.Game/Overlays/OnScreenDisplay.cs index 464c9893d1..93e2cdfbbc 100644 --- a/osu.Game/Overlays/OnScreenDisplay.cs +++ b/osu.Game/Overlays/OnScreenDisplay.cs @@ -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; diff --git a/osu.Game/Screens/Menu/Button.cs b/osu.Game/Screens/Menu/Button.cs index aa866574cc..4b5d815c02 100644 --- a/osu.Game/Screens/Menu/Button.cs +++ b/osu.Game/Screens/Menu/Button.cs @@ -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) diff --git a/osu.Game/Screens/Menu/ButtonSystem.cs b/osu.Game/Screens/Menu/ButtonSystem.cs index 24fee10195..e27cf666c0 100644 --- a/osu.Game/Screens/Menu/ButtonSystem.cs +++ b/osu.Game/Screens/Menu/ButtonSystem.cs @@ -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; diff --git a/osu.Game/Screens/Menu/MenuSideFlashes.cs b/osu.Game/Screens/Menu/MenuSideFlashes.cs index 065c7c5be0..4b7c2a0e00 100644 --- a/osu.Game/Screens/Menu/MenuSideFlashes.cs +++ b/osu.Game/Screens/Menu/MenuSideFlashes.cs @@ -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); } } } diff --git a/osu.Game/Screens/Menu/OsuLogo.cs b/osu.Game/Screens/Menu/OsuLogo.cs index efbd106cb5..db2bffa079 100644 --- a/osu.Game/Screens/Menu/OsuLogo.cs +++ b/osu.Game/Screens/Menu/OsuLogo.cs @@ -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); } } diff --git a/osu.Game/Screens/Play/HUDOverlay.cs b/osu.Game/Screens/Play/HUDOverlay.cs index 3248495b61..70093a1407 100644 --- a/osu.Game/Screens/Play/HUDOverlay.cs +++ b/osu.Game/Screens/Play/HUDOverlay.cs @@ -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) diff --git a/osu.Game/Screens/Play/Player.cs b/osu.Game/Screens/Play/Player.cs index c9ca91faa0..aafe459800 100644 --- a/osu.Game/Screens/Play/Player.cs +++ b/osu.Game/Screens/Play/Player.cs @@ -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); diff --git a/osu.Game/Screens/Ranking/Results.cs b/osu.Game/Screens/Ranking/Results.cs index 636851e14d..34e9cd186f 100644 --- a/osu.Game/Screens/Ranking/Results.cs +++ b/osu.Game/Screens/Ranking/Results.cs @@ -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)) {