Beispiel #1
0
        protected override void OnEntering(Screen last)
        {
            base.OnEntering(last);

            if (menuVoice)
            {
                welcome.Play();
            }

            Scheduler.AddDelayed(delegate
            {
                // Only start the current track if it is the menu music. A beatmap's track is started when entering the Main Manu.
                if (menuMusic)
                {
                    track.Start();
                }

                LoadComponentAsync(mainMenu = new MainMenu());

                Scheduler.AddDelayed(delegate
                {
                    DidLoadMenu = true;
                    Push(mainMenu);
                }, 2300);
            }, 600);

            logo.ScaleTo(0.4f);
            logo.FadeOut();

            logo.ScaleTo(1, 4400, Easing.OutQuint);
            logo.FadeIn(20000, Easing.OutQuint);
        }
Beispiel #2
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            logo.RelativePositionAxes = Axes.Both;
            logo.Colour = Color4.White;
            logo.Ripple = false;

            const int quick_appear = 350;

            int initialMovementTime = logo.Alpha > 0.2f ? quick_appear : 0;

            logo.MoveTo(new Vector2(0.5f), initialMovementTime, Easing.OutQuint);

            if (!resuming)
            {
                logo.ScaleTo(1);
                logo.FadeIn();
                logo.PlayIntro();
            }
            else
            {
                logo.Triangles = false;

                logo
                .ScaleTo(1, initialMovementTime, Easing.OutQuint)
                .FadeIn(quick_appear, Easing.OutQuint)
                .Then()
                .RotateTo(20, EXIT_DELAY * 1.5f)
                .FadeOut(EXIT_DELAY);
            }
        }
Beispiel #3
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            logo.Colour    = Color4.White;
            logo.Triangles = false;
            logo.Ripple    = false;

            if (!resuming)
            {
                beatmap.Value = initialBeatmap;
                Track         = initialBeatmap.Track;

                // ensure the track starts at maximum volume
                musicController.CurrentTrack.FinishTransforms();

                logo.MoveTo(new Vector2(0.5f));
                logo.ScaleTo(Vector2.One);
                logo.Hide();
            }
            else
            {
                const int quick_appear        = 350;
                var       initialMovementTime = logo.Alpha > 0.2f ? quick_appear : 0;

                logo.MoveTo(new Vector2(0.5f), initialMovementTime, Easing.OutQuint);

                logo
                .ScaleTo(1, initialMovementTime, Easing.OutQuint)
                .FadeIn(quick_appear, Easing.OutQuint)
                .Then()
                .RotateTo(20, exit_delay * 1.5f)
                .FadeOut(exit_delay);
            }
        }
Beispiel #4
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            logo.Colour    = Color4.White;
            logo.Triangles = false;
            logo.Ripple    = false;

            if (!resuming)
            {
                beatmap.Value = initialBeatmap;

                logo.MoveTo(new Vector2(0.5f));
                logo.ScaleTo(Vector2.One);
                logo.Hide();
            }
            else
            {
                const int quick_appear        = 350;
                var       initialMovementTime = logo.Alpha > 0.2f ? quick_appear : 0;

                logo.MoveTo(new Vector2(0.5f), initialMovementTime, Easing.OutQuint);

                logo
                .ScaleTo(1, initialMovementTime, Easing.OutQuint)
                .FadeIn(quick_appear, Easing.OutQuint)
                .Then()
                .RotateTo(20, exit_delay * 1.5f)
                .FadeOut(exit_delay);
            }
        }
Beispiel #5
0
        protected override void OnEntering(Screen last)
        {
            base.OnEntering(last);

            welcome.Play();

            Scheduler.AddDelayed(delegate
            {
                bgm.Start();

                (mainMenu = new MainMenu()).LoadAsync(Game);

                Scheduler.AddDelayed(delegate
                {
                    DidLoadMenu = true;
                    Push(mainMenu);
                }, 2300);
            }, 600);

            logo.ScaleTo(0.4f);
            logo.FadeOut();

            logo.ScaleTo(1, 4400, EasingTypes.OutQuint);
            logo.FadeIn(20000, EasingTypes.OutQuint);
        }
Beispiel #6
0
        protected override void OnEntering(Screen last)
        {
            base.OnEntering(last);

            if (menuVoice)
            {
                welcome.Play();
            }

            Scheduler.AddDelayed(delegate
            {
                if (menuMusic)
                {
                    bgm.Start();
                }

                LoadComponentAsync(mainMenu = new MainMenu());

                Scheduler.AddDelayed(delegate
                {
                    DidLoadMenu = true;
                    Push(mainMenu);
                }, 2300);
            }, 600);

            logo.ScaleTo(0.4f);
            logo.FadeOut();

            logo.ScaleTo(1, 4400, EasingTypes.OutQuint);
            logo.FadeIn(20000, EasingTypes.OutQuint);
        }
Beispiel #7
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            if (!resuming)
            {
                Beatmap.Value = introBeatmap;
                introBeatmap  = null;

                if (menuVoice.Value)
                {
                    welcome.Play();
                }

                Scheduler.AddDelayed(delegate
                {
                    // Only start the current track if it is the menu music. A beatmap's track is started when entering the Main Manu.
                    if (menuMusic.Value)
                    {
                        track.Start();
                        track = null;
                    }

                    LoadComponentAsync(mainMenu = new MainMenu());

                    Scheduler.AddDelayed(delegate
                    {
                        DidLoadMenu = true;
                        this.Push(mainMenu);
                    }, delay_step_one);
                }, delay_step_two);
            }

            logo.Colour = Color4.White;
            logo.Ripple = false;

            const int quick_appear = 350;

            int initialMovementTime = logo.Alpha > 0.2f ? quick_appear : 0;

            logo.MoveTo(new Vector2(0.5f), initialMovementTime, Easing.OutQuint);

            if (!resuming)
            {
                logo.ScaleTo(1);
                logo.FadeIn();
                logo.PlayIntro();
            }
            else
            {
                logo.Triangles = false;

                logo
                .ScaleTo(1, initialMovementTime, Easing.OutQuint)
                .FadeIn(quick_appear, Easing.OutQuint)
                .Then()
                .RotateTo(20, EXIT_DELAY * 1.5f)
                .FadeOut(EXIT_DELAY);
            }
        }
Beispiel #8
0
        protected override void LoadComplete()
        {
            base.LoadComplete();
            Scheduler.Add(delegate
            {
                welcome.Play();

                Scheduler.AddDelayed(delegate
                {
                    bgm.Start();

                    mainMenu = new MainMenu();
                    mainMenu.Preload(Game);

                    Scheduler.AddDelayed(delegate
                    {
                        DidLoadMenu = true;
                        Push(mainMenu);
                    }, 2300);
                }, 600);
            });

            logo.ScaleTo(0.4f);
            logo.FadeOut();

            logo.ScaleTo(1, 4400, EasingTypes.OutQuint);
            logo.FadeIn(20000, EasingTypes.OutQuint);
        }
Beispiel #9
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            if (!resuming)
            {
                Beatmap.Value = introBeatmap;
                introBeatmap  = null;

                welcome?.Play();

                Scheduler.AddDelayed(delegate
                {
                    // Only start the current track if it is the menu music. A beatmap's track is started when entering the Main Manu.
                    if (menuMusic.Value)
                    {
                        track.Restart();
                        track = null;
                    }

                    PrepareMenuLoad();

                    Scheduler.AddDelayed(LoadMenu, delay_step_one);
                }, delay_step_two);

                logo.ScaleTo(1);
                logo.FadeIn();
                logo.PlayIntro();
            }
        }
Beispiel #10
0
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            if (!resuming)
            {
                Track.Looping = true;

                LoadComponentAsync(new WelcomeIntroSequence
                {
                    RelativeSizeAxes = Axes.Both
                }, intro =>
                {
                    PrepareMenuLoad();

                    AddInternal(intro);

                    if (skinnableWelcome != null)
                    {
                        skinnableWelcome.Play();
                    }
                    else
                    {
                        welcome?.Play();
                    }

                    var reverbChannel = pianoReverb?.Play();
                    if (reverbChannel != null)
                    {
                        intro.LogoVisualisation.AddAmplitudeSource(reverbChannel);
                    }

                    Scheduler.AddDelayed(() =>
                    {
                        StartTrack();

                        // this classic intro loops forever.
                        if (UsingThemedIntro)
                        {
                            Track.Looping = true;
                        }

                        const float fade_in_time = 200;

                        logo.ScaleTo(1);
                        logo.FadeIn(fade_in_time);

                        background.FadeIn(fade_in_time);

                        LoadMenu();
                    }, delay_step_two);
                });
            }
        }
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            logo.Colour    = Color4.White;
            logo.Triangles = false;
            logo.Ripple    = false;

            if (!resuming)
            {
                // generally this can never be null
                // an exception is running ruleset tests, where the osu! ruleset may not be present (causing importing the intro to fail).
                if (initialBeatmap != null)
                {
                    beatmap.Value = initialBeatmap;
                }
                Track = beatmap.Value.Track;

                // ensure the track starts at maximum volume
                musicController.CurrentTrack.FinishTransforms();

                logo.MoveTo(new Vector2(0.5f));
                logo.ScaleTo(Vector2.One);
                logo.Hide();
            }
            else
            {
                const int quick_appear        = 350;
                int       initialMovementTime = logo.Alpha > 0.2f ? quick_appear : 0;

                logo.MoveTo(new Vector2(0.5f), initialMovementTime, Easing.OutQuint);

                logo
                .ScaleTo(1, initialMovementTime, Easing.OutQuint)
                .FadeIn(quick_appear, Easing.OutQuint)
                .Then()
                .RotateTo(20, exit_delay * 1.5f)
                .FadeOut(exit_delay);
            }
        }
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            if (!resuming)
            {
                welcome?.Play();

                Scheduler.AddDelayed(delegate
                {
                    StartTrack();

                    PrepareMenuLoad();

                    Scheduler.AddDelayed(LoadMenu, delay_step_one);
                }, delay_step_two);

                logo.ScaleTo(1);
                logo.FadeIn();
                logo.PlayIntro();
            }
        }
        protected override void LogoArriving(OsuLogo logo, bool resuming)
        {
            base.LogoArriving(logo, resuming);

            if (!resuming)
            {
                Track.Looping = true;

                LoadComponentAsync(new WelcomeIntroSequence
                {
                    RelativeSizeAxes = Axes.Both
                }, intro =>
                {
                    PrepareMenuLoad();

                    intro.LogoVisualisation.AddAmplitudeSource(pianoReverb);

                    AddInternal(intro);

                    welcome?.Play();
                    pianoReverb?.Play();

                    Scheduler.AddDelayed(() =>
                    {
                        StartTrack();

                        const float fade_in_time = 200;

                        logo.ScaleTo(1);
                        logo.FadeIn(fade_in_time);

                        background.FadeIn(fade_in_time);

                        LoadMenu();
                    }, delay_step_two);
                });
            }
        }
Beispiel #14
0
        private void updateLogoState(ButtonSystemState lastState = ButtonSystemState.Initial)
        {
            if (logo == null)
            {
                return;
            }

            switch (state)
            {
            case ButtonSystemState.Exit:
            case ButtonSystemState.Initial:
                logoDelayedAction?.Cancel();
                logoDelayedAction = Scheduler.AddDelayed(() =>
                {
                    logoTracking = false;

                    game?.Toolbar.Hide();

                    logo.ClearTransforms(targetMember: nameof(Position));
                    logo.RelativePositionAxes = Axes.Both;

                    logo.MoveTo(new Vector2(0.5f), 800, Easing.OutExpo);
                    logo.ScaleTo(1, 800, Easing.OutExpo);
                }, buttonArea.Alpha * 150);
                break;

            case ButtonSystemState.TopLevel:
            case ButtonSystemState.Play:
                switch (lastState)
                {
                case ButtonSystemState.TopLevel:         // coming from toplevel to play
                    break;

                case ButtonSystemState.Initial:
                    logo.ClearTransforms(targetMember: nameof(Position));
                    logo.RelativePositionAxes = Axes.None;

                    bool impact = logo.Scale.X > 0.6f;

                    if (lastState == ButtonSystemState.Initial)
                    {
                        logo.ScaleTo(0.5f, 200, Easing.In);
                    }

                    logo.MoveTo(logoTrackingPosition, lastState == ButtonSystemState.EnteringMode ? 0 : 200, Easing.In);

                    logoDelayedAction?.Cancel();
                    logoDelayedAction = Scheduler.AddDelayed(() =>
                    {
                        logoTracking = true;

                        if (impact)
                        {
                            logo.Impact();
                        }

                        game?.Toolbar.Show();
                    }, 200);
                    break;

                default:
                    logo.ClearTransforms(targetMember: nameof(Position));
                    logo.RelativePositionAxes = Axes.None;
                    logoTracking = true;
                    logo.ScaleTo(0.5f, 200, Easing.OutQuint);
                    break;
                }

                break;

            case ButtonSystemState.EnteringMode:
                logoTracking = true;
                break;
            }
        }
Beispiel #15
0
        private void updateLogoState(MenuState lastState = MenuState.Initial)
        {
            if (logo == null)
            {
                return;
            }

            logoDelayedAction?.Cancel();

            switch (state)
            {
            case MenuState.Exit:
            case MenuState.Initial:
                logoTracking = false;

                logoDelayedAction = Scheduler.AddDelayed(() =>
                {
                    showOverlays.Value = false;

                    logo.ClearTransforms(targetMember: nameof(Position));
                    logo.RelativePositionAxes = Axes.Both;

                    logo.MoveTo(new Vector2(0.5f), 800, Easing.OutExpo);
                    logo.ScaleTo(1, 800, Easing.OutExpo);
                }, 150);

                break;

            case MenuState.TopLevel:
            case MenuState.Play:
                logo.ClearTransforms(targetMember: nameof(Position));
                logo.RelativePositionAxes = Axes.None;

                switch (lastState)
                {
                case MenuState.TopLevel:         // coming from toplevel to play
                case MenuState.Initial:
                    logoTracking = false;
                    logo.ScaleTo(0.5f, 200, Easing.In);

                    logo.MoveTo(logoTrackingPosition, lastState == MenuState.EnteringMode ? 0 : 200, Easing.In);

                    logoDelayedAction = Scheduler.AddDelayed(() =>
                    {
                        logoTracking = true;

                        logo.Impact();
                        showOverlays.Value = true;
                    }, 200);
                    break;

                default:
                    logoTracking = true;
                    logo.ScaleTo(0.5f, 200, Easing.OutQuint);
                    break;
                }
                break;

            case MenuState.EnteringMode:
                logoTracking = true;
                break;
            }
        }