Пример #1
0
        private void load(BeatmapSetOverlay beatmapSetOverlay)
        {
            Action = () =>
            {
                if (beatmap.OnlineBeatmapID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmap(beatmap.OnlineBeatmapID.Value);
                }
                else if (beatmap.BeatmapSet?.OnlineBeatmapSetID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.BeatmapSet.OnlineBeatmapSetID.Value);
                }
            };

            Child = new FillFlowContainer
            {
                AutoSizeAxes = Axes.Both,
                Children     = new Drawable[]
                {
                    new OsuSpriteText
                    {
                        Text = new LocalisedString(($"{beatmap.Metadata.TitleUnicode ?? beatmap.Metadata.Title} [{beatmap.Version}] ",
                                                    $"{beatmap.Metadata.Title ?? beatmap.Metadata.TitleUnicode} [{beatmap.Version}] ")),
                        TextSize = 15,
                        Font     = "Exo2.0-SemiBoldItalic",
                    },
Пример #2
0
        private void load(BeatmapManager beatmaps, OsuColour colours, BeatmapSetOverlay beatmapSetOverlay)
        {
            AddInternal(content = new Container
            {
                RelativeSizeAxes = Axes.Both,
                Masking          = true,
                EdgeEffect       = edgeEffectNormal,
                Children         = new[]
                {
                    CreateBackground(),
                    new DownloadProgressBar(SetInfo)
                    {
                        Anchor = Anchor.BottomLeft,
                        Origin = Anchor.BottomLeft,
                        Depth  = -1,
                    },
                }
            });

            Action = ViewBeatmap = () =>
            {
                Debug.Assert(SetInfo.OnlineBeatmapSetID != null);
                beatmapSetOverlay?.FetchAndShowBeatmapSet(SetInfo.OnlineBeatmapSetID.Value);
            };
        }
Пример #3
0
        private void load(BeatmapSetOverlay beatmapSetOverlay)
        {
            Action = () =>
            {
                if (beatmap.OnlineBeatmapID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmap(beatmap.OnlineBeatmapID.Value);
                }
                else if (beatmap.BeatmapSet?.OnlineBeatmapSetID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.BeatmapSet.OnlineBeatmapSetID.Value);
                }
            };

            Child = new FillFlowContainer
            {
                AutoSizeAxes = Axes.Both,
                Children     = CreateText(beatmap),
            };
        }
Пример #4
0
        private void load(LocalisationEngine locale, BeatmapSetOverlay beatmapSetOverlay)
        {
            Action = () =>
            {
                if (beatmap.OnlineBeatmapID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmap(beatmap.OnlineBeatmapID.Value);
                }
                else if (beatmap.BeatmapSet?.OnlineBeatmapSetID != null)
                {
                    beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmap.BeatmapSet.OnlineBeatmapSetID.Value);
                }
            };

            Child = new FillFlowContainer
            {
                AutoSizeAxes = Axes.Both,
                Children     = new Drawable[]
                {
                    new OsuSpriteText
                    {
                        Current = locale.GetUnicodePreference(
                            $"{beatmap.Metadata.TitleUnicode ?? beatmap.Metadata.Title} [{beatmap.Version}] ",
                            $"{beatmap.Metadata.Title ?? beatmap.Metadata.TitleUnicode} [{beatmap.Version}] "
                            ),
                        TextSize = 15,
                        Font     = "Exo2.0-SemiBoldItalic",
                    },
                    new OsuSpriteText
                    {
                        Current  = locale.GetUnicodePreference(beatmap.Metadata.ArtistUnicode, beatmap.Metadata.Artist),
                        TextSize = 12,
                        Padding  = new MarginPadding {
                            Top = 3
                        },
                        Font = "Exo2.0-RegularItalic",
                    },
                },
            };
        }
Пример #5
0
 /// <summary>
 /// Show a beatmap set as an overlay.
 /// </summary>
 /// <param name="setId">The set to display.</param>
 public void ShowBeatmapSet(int setId) => beatmapSetOverlay.FetchAndShowBeatmapSet(setId);
Пример #6
0
        private void load(BeatmapSetOverlay?beatmapSetOverlay)
        {
            Width  = WIDTH;
            Height = height;

            FillFlowContainer leftIconArea    = null !;
            FillFlowContainer titleBadgeArea  = null !;
            GridContainer     artistContainer = null !;

            Child = content.With(c =>
            {
                c.MainContent = new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children         = new Drawable[]
                    {
                        thumbnail = new BeatmapCardThumbnail(BeatmapSet)
                        {
                            Name    = @"Left (icon) area",
                            Size    = new Vector2(height),
                            Padding = new MarginPadding {
                                Right = CORNER_RADIUS
                            },
                            Child = leftIconArea = new FillFlowContainer
                            {
                                Margin       = new MarginPadding(5),
                                AutoSizeAxes = Axes.Both,
                                Direction    = FillDirection.Horizontal,
                                Spacing      = new Vector2(1)
                            }
                        },
                        buttonContainer = new CollapsibleButtonContainer(BeatmapSet)
                        {
                            X                     = height - CORNER_RADIUS,
                            Width                 = WIDTH - height + CORNER_RADIUS,
                            FavouriteState        = { BindTarget = FavouriteState },
                            ButtonsCollapsedWidth = CORNER_RADIUS,
                            ButtonsExpandedWidth  = 30,
                            ButtonsPadding        = new MarginPadding {
                                Vertical = 35
                            },
                            Children = new Drawable[]
                            {
                                new FillFlowContainer
                                {
                                    RelativeSizeAxes = Axes.Both,
                                    Direction        = FillDirection.Vertical,
                                    Children         = new Drawable[]
                                    {
                                        new GridContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            ColumnDimensions = new[]
                                            {
                                                new Dimension(),
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            RowDimensions = new[]
                                            {
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            Content = new[]
                                            {
                                                new Drawable[]
                                                {
                                                    new OsuSpriteText
                                                    {
                                                        Text             = new RomanisableString(BeatmapSet.TitleUnicode, BeatmapSet.Title),
                                                        Font             = OsuFont.Default.With(size: 22.5f, weight: FontWeight.SemiBold),
                                                        RelativeSizeAxes = Axes.X,
                                                        Truncate         = true
                                                    },
                                                    titleBadgeArea = new FillFlowContainer
                                                    {
                                                        Anchor       = Anchor.BottomRight,
                                                        Origin       = Anchor.BottomRight,
                                                        AutoSizeAxes = Axes.Both,
                                                        Direction    = FillDirection.Horizontal,
                                                    }
                                                }
                                            }
                                        },
                                        artistContainer = new GridContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            ColumnDimensions = new[]
                                            {
                                                new Dimension(),
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            RowDimensions = new[]
                                            {
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            Content = new[]
                                            {
                                                new[]
                                                {
                                                    new OsuSpriteText
                                                    {
                                                        Text             = createArtistText(),
                                                        Font             = OsuFont.Default.With(size: 17.5f, weight: FontWeight.SemiBold),
                                                        RelativeSizeAxes = Axes.X,
                                                        Truncate         = true
                                                    },
                                                    Empty()
                                                },
                                            }
                                        },
                                        new OsuSpriteText
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            Truncate         = true,
                                            Text             = BeatmapSet.Source,
                                            Shadow           = false,
                                            Font             = OsuFont.GetFont(size: 14, weight: FontWeight.SemiBold),
                                            Colour           = colourProvider.Content2
                                        },
                                    }
                                },
                                new Container
                                {
                                    Name             = @"Bottom content",
                                    RelativeSizeAxes = Axes.X,
                                    AutoSizeAxes     = Axes.Y,
                                    Anchor           = Anchor.BottomLeft,
                                    Origin           = Anchor.BottomLeft,
                                    Children         = new Drawable[]
                                    {
                                        idleBottomContent = new FillFlowContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            Direction        = FillDirection.Vertical,
                                            Spacing          = new Vector2(0, 3),
                                            AlwaysPresent    = true,
                                            Children         = new Drawable[]
                                            {
                                                new LinkFlowContainer(s =>
                                                {
                                                    s.Shadow = false;
                                                    s.Font   = OsuFont.GetFont(size: 14, weight: FontWeight.SemiBold);
                                                }).With(d =>
                                                {
                                                    d.AutoSizeAxes = Axes.Both;
                                                    d.Margin       = new MarginPadding {
                                                        Top = 2
                                                    };
                                                    d.AddText("mapped by ", t => t.Colour = colourProvider.Content2);
                                                    d.AddUserLink(BeatmapSet.Author);
                                                }),
                                                statisticsContainer = new GridContainer
                                                {
                                                    RelativeSizeAxes = Axes.X,
                                                    AutoSizeAxes     = Axes.Y,
                                                    RowDimensions    = new[]
                                                    {
                                                        new Dimension(GridSizeMode.AutoSize),
                                                        new Dimension(GridSizeMode.AutoSize)
                                                    },
                                                    ColumnDimensions = new[]
                                                    {
                                                        new Dimension(GridSizeMode.AutoSize),
                                                        new Dimension(GridSizeMode.AutoSize),
                                                        new Dimension()
                                                    },
                                                    Content = new[]
                                                    {
                                                        new Drawable[3],
                                                        new Drawable[3]
                                                    }
                                                },
                                                new BeatmapCardExtraInfoRow(BeatmapSet)
                                            }
                                        },
                                        downloadProgressBar = new BeatmapCardDownloadProgressBar
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            Height           = 6,
                                            Anchor           = Anchor.Centre,
                                            Origin           = Anchor.Centre,
                                            State            = { BindTarget = DownloadTracker.State },
                                            Progress         = { BindTarget = DownloadTracker.Progress }
                                        }
                                    }
                                }
                            }
                        }
                    }
                };
                c.ExpandedContent = new Container
                {
                    RelativeSizeAxes = Axes.X,
                    AutoSizeAxes     = Axes.Y,
                    Padding          = new MarginPadding {
                        Horizontal = 10, Vertical = 13
                    },
                    Child = new BeatmapCardDifficultyList(BeatmapSet)
                };
                c.Expanded.BindTarget = Expanded;
            });

            if (BeatmapSet.HasVideo)
            {
                leftIconArea.Add(new VideoIconPill {
                    IconSize = new Vector2(20)
                });
            }

            if (BeatmapSet.HasStoryboard)
            {
                leftIconArea.Add(new StoryboardIconPill {
                    IconSize = new Vector2(20)
                });
            }

            if (BeatmapSet.FeaturedInSpotlight)
            {
                titleBadgeArea.Add(new SpotlightBeatmapBadge
                {
                    Anchor = Anchor.BottomRight,
                    Origin = Anchor.BottomRight,
                    Margin = new MarginPadding {
                        Left = 5
                    }
                });
            }

            if (BeatmapSet.HasExplicitContent)
            {
                titleBadgeArea.Add(new ExplicitContentBeatmapBadge
                {
                    Anchor = Anchor.BottomRight,
                    Origin = Anchor.BottomRight,
                    Margin = new MarginPadding {
                        Left = 5
                    }
                });
            }

            if (BeatmapSet.TrackId != null)
            {
                artistContainer.Content[0][1] = new FeaturedArtistBeatmapBadge
                {
                    Anchor = Anchor.BottomRight,
                    Origin = Anchor.BottomRight,
                    Margin = new MarginPadding {
                        Left = 5
                    }
                };
            }

            createStatistics();

            Action = () => beatmapSetOverlay?.FetchAndShowBeatmapSet(BeatmapSet.OnlineID);
        }
Пример #7
0
        private void load(BeatmapSetOverlay?beatmapSetOverlay)
        {
            Action = () => beatmapSetOverlay?.FetchAndShowBeatmapSet(BeatmapSet.OnlineID);

            AddInternal(DownloadTracker);
        }
Пример #8
0
        private void load(BeatmapSetOverlay?beatmapSetOverlay)
        {
            Width  = width;
            Height = height;

            FillFlowContainer leftIconArea;
            GridContainer     titleContainer;
            GridContainer     artistContainer;

            InternalChild = content = new BeatmapCardContent(height)
            {
                MainContent = new Container
                {
                    RelativeSizeAxes = Axes.Both,
                    Children         = new Drawable[]
                    {
                        downloadTracker,
                        rightAreaBackground = new Container
                        {
                            RelativeSizeAxes = Axes.Y,
                            Width            = icon_area_width + 2 * CORNER_RADIUS,
                            Anchor           = Anchor.CentreRight,
                            Origin           = Anchor.CentreRight,
                            // workaround for masking artifacts at the top & bottom of card,
                            // which become especially visible on downloaded beatmaps (when the icon area has a lime background).
                            Padding = new MarginPadding {
                                Vertical = 1
                            },
                            Child = new Box
                            {
                                RelativeSizeAxes = Axes.Both,
                                Colour           = Colour4.White
                            },
                        },
                        thumbnail = new BeatmapCardThumbnail(beatmapSet)
                        {
                            Name    = @"Left (icon) area",
                            Size    = new Vector2(height),
                            Padding = new MarginPadding {
                                Right = CORNER_RADIUS
                            },
                            Child = leftIconArea = new FillFlowContainer
                            {
                                Margin       = new MarginPadding(5),
                                AutoSizeAxes = Axes.Both,
                                Direction    = FillDirection.Horizontal,
                                Spacing      = new Vector2(1)
                            }
                        },
                        new Container
                        {
                            Name             = @"Right (button) area",
                            Width            = 30,
                            RelativeSizeAxes = Axes.Y,
                            Origin           = Anchor.TopRight,
                            Anchor           = Anchor.TopRight,
                            Padding          = new MarginPadding {
                                Vertical = 17.5f
                            },
                            Child = rightAreaButtons = new Container <BeatmapCardIconButton>
                            {
                                RelativeSizeAxes = Axes.Both,
                                Children         = new BeatmapCardIconButton[]
                                {
                                    new FavouriteButton(beatmapSet)
                                    {
                                        Current = favouriteState,
                                        Anchor  = Anchor.TopCentre,
                                        Origin  = Anchor.TopCentre
                                    },
                                    new DownloadButton(beatmapSet)
                                    {
                                        Anchor = Anchor.BottomCentre,
                                        Origin = Anchor.BottomCentre,
                                        State  = { BindTarget = downloadTracker.State }
                                    },
                                    new GoToBeatmapButton(beatmapSet)
                                    {
                                        Anchor = Anchor.BottomCentre,
                                        Origin = Anchor.BottomCentre,
                                        State  = { BindTarget = downloadTracker.State }
                                    }
                                }
                            }
                        },
                        mainContent = new Container
                        {
                            Name         = @"Main content",
                            X            = height - CORNER_RADIUS,
                            Height       = height,
                            CornerRadius = CORNER_RADIUS,
                            Masking      = true,
                            Children     = new Drawable[]
                            {
                                mainContentBackground = new BeatmapCardContentBackground(beatmapSet)
                                {
                                    RelativeSizeAxes = Axes.Both,
                                },
                                new FillFlowContainer
                                {
                                    RelativeSizeAxes = Axes.Both,
                                    Padding          = new MarginPadding
                                    {
                                        Horizontal = 10,
                                        Vertical   = 4
                                    },
                                    Direction = FillDirection.Vertical,
                                    Children  = new Drawable[]
                                    {
                                        titleContainer = new GridContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            ColumnDimensions = new[]
                                            {
                                                new Dimension(),
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            RowDimensions = new[]
                                            {
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            Content = new[]
                                            {
                                                new[]
                                                {
                                                    new OsuSpriteText
                                                    {
                                                        Text             = new RomanisableString(beatmapSet.TitleUnicode, beatmapSet.Title),
                                                        Font             = OsuFont.Default.With(size: 22.5f, weight: FontWeight.SemiBold),
                                                        RelativeSizeAxes = Axes.X,
                                                        Truncate         = true
                                                    },
                                                    Empty()
                                                }
                                            }
                                        },
                                        artistContainer = new GridContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            ColumnDimensions = new[]
                                            {
                                                new Dimension(),
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            RowDimensions = new[]
                                            {
                                                new Dimension(GridSizeMode.AutoSize)
                                            },
                                            Content = new[]
                                            {
                                                new[]
                                                {
                                                    new OsuSpriteText
                                                    {
                                                        Text             = createArtistText(),
                                                        Font             = OsuFont.Default.With(size: 17.5f, weight: FontWeight.SemiBold),
                                                        RelativeSizeAxes = Axes.X,
                                                        Truncate         = true
                                                    },
                                                    Empty()
                                                },
                                            }
                                        },
                                        new LinkFlowContainer(s =>
                                        {
                                            s.Shadow = false;
                                            s.Font   = OsuFont.GetFont(size: 14, weight: FontWeight.SemiBold);
                                        }).With(d =>
                                        {
                                            d.AutoSizeAxes = Axes.Both;
                                            d.Margin       = new MarginPadding {
                                                Top = 2
                                            };
                                            d.AddText("mapped by ", t => t.Colour = colourProvider.Content2);
                                            d.AddUserLink(beatmapSet.Author);
                                        }),
                                    }
                                },
                                new Container
                                {
                                    Name             = @"Bottom content",
                                    RelativeSizeAxes = Axes.X,
                                    AutoSizeAxes     = Axes.Y,
                                    Anchor           = Anchor.BottomLeft,
                                    Origin           = Anchor.BottomLeft,
                                    Padding          = new MarginPadding
                                    {
                                        Horizontal = 10,
                                        Vertical   = 4
                                    },
                                    Children = new Drawable[]
                                    {
                                        idleBottomContent = new FillFlowContainer
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            AutoSizeAxes     = Axes.Y,
                                            Direction        = FillDirection.Vertical,
                                            Spacing          = new Vector2(0, 3),
                                            AlwaysPresent    = true,
                                            Children         = new Drawable[]
                                            {
                                                statisticsContainer = new FillFlowContainer <BeatmapCardStatistic>
                                                {
                                                    RelativeSizeAxes   = Axes.X,
                                                    AutoSizeAxes       = Axes.Y,
                                                    Direction          = FillDirection.Horizontal,
                                                    Spacing            = new Vector2(10, 0),
                                                    Alpha              = 0,
                                                    AlwaysPresent      = true,
                                                    ChildrenEnumerable = createStatistics()
                                                },
                                                new BeatmapCardExtraInfoRow(beatmapSet)
                                                {
                                                    Hovered = _ =>
                                                    {
                                                        content.ExpandAfterDelay();
                                                        return(false);
                                                    },
                                                    Unhovered = _ =>
                                                    {
                                                        // Handles the case where a user has not shown explicit intent to view expanded info.
                                                        // ie. quickly moved over the info row area but didn't remain within it.
                                                        if (!Expanded.Value)
                                                        {
                                                            content.CancelExpand();
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        downloadProgressBar = new BeatmapCardDownloadProgressBar
                                        {
                                            RelativeSizeAxes = Axes.X,
                                            Height           = 6,
                                            Anchor           = Anchor.Centre,
                                            Origin           = Anchor.Centre,
                                            State            = { BindTarget = downloadTracker.State },
                                            Progress         = { BindTarget = downloadTracker.Progress }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                ExpandedContent = new Container
                {
                    RelativeSizeAxes = Axes.X,
                    AutoSizeAxes     = Axes.Y,
                    Padding          = new MarginPadding {
                        Horizontal = 10, Vertical = 13
                    },
                    Child = new BeatmapCardDifficultyList(beatmapSet)
                },
                Expanded = { BindTarget = Expanded }
            };

            if (beatmapSet.HasVideo)
            {
                leftIconArea.Add(new IconPill(FontAwesome.Solid.Film)
                {
                    IconSize = new Vector2(20)
                });
            }

            if (beatmapSet.HasStoryboard)
            {
                leftIconArea.Add(new IconPill(FontAwesome.Solid.Image)
                {
                    IconSize = new Vector2(20)
                });
            }

            if (beatmapSet.HasExplicitContent)
            {
                titleContainer.Content[0][1] = new ExplicitContentBeatmapPill
                {
                    Anchor = Anchor.BottomRight,
                    Origin = Anchor.BottomRight,
                    Margin = new MarginPadding {
                        Left = 5
                    }
                };
            }

            if (beatmapSet.TrackId != null)
            {
                artistContainer.Content[0][1] = new FeaturedArtistBeatmapPill
                {
                    Anchor = Anchor.BottomRight,
                    Origin = Anchor.BottomRight,
                    Margin = new MarginPadding {
                        Left = 5
                    }
                };
            }

            Action = () => beatmapSetOverlay?.FetchAndShowBeatmapSet(beatmapSet.OnlineID);
        }
Пример #9
0
 public void TestOnline()
 {
     AddStep(@"show online", () => overlay.FetchAndShowBeatmapSet(55));
 }
Пример #10
0
        private void load(RulesetStore rulesets)
        {
            var mania = rulesets.GetRuleset(3);
            var taiko = rulesets.GetRuleset(1);

            AddStep(@"show loading", () => overlay.ShowBeatmapSet(null));

            AddStep(@"show online", () => overlay.FetchAndShowBeatmapSet(55));

            AddStep(@"show first", () =>
            {
                overlay.ShowBeatmapSet(new BeatmapSetInfo
                {
                    Metadata = new BeatmapMetadata
                    {
                        Title  = @"Lachryma <Re:Queen’M>",
                        Artist = @"Kaneko Chiharu",
                        Source = @"SOUND VOLTEX III GRAVITY WARS",
                        Tags   = @"sdvx grace the 5th kac original song contest konami bemani",
                        Author = new User
                        {
                            Username = @"Fresh Chicken",
                            Id       = 3984370,
                        },
                    },
                    OnlineInfo = new BeatmapSetOnlineInfo
                    {
                        Preview        = @"https://b.ppy.sh/preview/415886.mp3",
                        PlayCount      = 681380,
                        FavouriteCount = 356,
                        Submitted      = new DateTime(2016, 2, 10),
                        Ranked         = new DateTime(2016, 6, 19),
                        Status         = BeatmapSetOnlineStatus.Ranked,
                        BPM            = 236,
                        HasVideo       = true,
                        Covers         = new BeatmapSetOnlineCovers
                        {
                            Cover = @"https://assets.ppy.sh/beatmaps/415886/covers/cover.jpg?1465651778",
                        },
                    },
                    Beatmaps = new List <BeatmapInfo>
                    {
                        new BeatmapInfo
                        {
                            StarDifficulty = 1.36,
                            Version        = @"BASIC",
                            Ruleset        = mania,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 4,
                                DrainRate         = 6.5f,
                                OverallDifficulty = 6.5f,
                                ApproachRate      = 5,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 115000,
                                CircleCount = 265,
                                SliderCount = 71,
                                PlayCount   = 47906,
                                PassCount   = 19899,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 2.22,
                            Version        = @"NOVICE",
                            Ruleset        = mania,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 4,
                                DrainRate         = 7,
                                OverallDifficulty = 7,
                                ApproachRate      = 5,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 118000,
                                CircleCount = 592,
                                SliderCount = 62,
                                PlayCount   = 162021,
                                PassCount   = 72116,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 3.49,
                            Version        = @"ADVANCED",
                            Ruleset        = mania,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 4,
                                DrainRate         = 7.5f,
                                OverallDifficulty = 7.5f,
                                ApproachRate      = 5,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 118000,
                                CircleCount = 1042,
                                SliderCount = 79,
                                PlayCount   = 225178,
                                PassCount   = 73001,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 4.24,
                            Version        = @"EXHAUST",
                            Ruleset        = mania,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 4,
                                DrainRate         = 8,
                                OverallDifficulty = 8,
                                ApproachRate      = 5,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 118000,
                                CircleCount = 1352,
                                SliderCount = 69,
                                PlayCount   = 131545,
                                PassCount   = 42703,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 5.26,
                            Version        = @"GRAVITY",
                            Ruleset        = mania,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 4,
                                DrainRate         = 8.5f,
                                OverallDifficulty = 8.5f,
                                ApproachRate      = 5,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 118000,
                                CircleCount = 1730,
                                SliderCount = 115,
                                PlayCount   = 117673,
                                PassCount   = 24241,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                    },
                });
            });

            AddStep(@"show second", () =>
            {
                overlay.ShowBeatmapSet(new BeatmapSetInfo
                {
                    Metadata = new BeatmapMetadata
                    {
                        Title  = @"Soumatou Labyrinth",
                        Artist = @"Yunomi with Momobako&miko",
                        Tags   = @"mmbk.com yuzu__rinrin charlotte",
                        Author = new User
                        {
                            Username = @"komasy",
                            Id       = 1980256,
                        },
                    },
                    OnlineInfo = new BeatmapSetOnlineInfo
                    {
                        Preview        = @"https://b.ppy.sh/preview/625493.mp3",
                        PlayCount      = 22996,
                        FavouriteCount = 58,
                        Submitted      = new DateTime(2016, 6, 11),
                        Ranked         = new DateTime(2016, 7, 12),
                        Status         = BeatmapSetOnlineStatus.Pending,
                        BPM            = 160,
                        HasVideo       = false,
                        Covers         = new BeatmapSetOnlineCovers
                        {
                            Cover = @"https://assets.ppy.sh/beatmaps/625493/covers/cover.jpg?1499167472",
                        },
                    },
                    Beatmaps = new List <BeatmapInfo>
                    {
                        new BeatmapInfo
                        {
                            StarDifficulty = 1.40,
                            Version        = @"yzrin's Kantan",
                            Ruleset        = taiko,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 2,
                                DrainRate         = 7,
                                OverallDifficulty = 3,
                                ApproachRate      = 10,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 193000,
                                CircleCount = 262,
                                SliderCount = 0,
                                PlayCount   = 3952,
                                PassCount   = 1373,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 2.23,
                            Version        = @"Futsuu",
                            Ruleset        = taiko,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 2,
                                DrainRate         = 6,
                                OverallDifficulty = 4,
                                ApproachRate      = 10,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 193000,
                                CircleCount = 464,
                                SliderCount = 0,
                                PlayCount   = 4833,
                                PassCount   = 920,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 3.19,
                            Version        = @"Muzukashii",
                            Ruleset        = taiko,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 2,
                                DrainRate         = 6,
                                OverallDifficulty = 5,
                                ApproachRate      = 10,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 193000,
                                CircleCount = 712,
                                SliderCount = 0,
                                PlayCount   = 4405,
                                PassCount   = 854,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 3.97,
                            Version        = @"Charlotte's Oni",
                            Ruleset        = taiko,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 5,
                                DrainRate         = 6,
                                OverallDifficulty = 5.5f,
                                ApproachRate      = 10,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 193000,
                                CircleCount = 943,
                                SliderCount = 0,
                                PlayCount   = 3950,
                                PassCount   = 693,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                        new BeatmapInfo
                        {
                            StarDifficulty = 5.08,
                            Version        = @"Labyrinth Oni",
                            Ruleset        = taiko,
                            BaseDifficulty = new BeatmapDifficulty
                            {
                                CircleSize        = 5,
                                DrainRate         = 5,
                                OverallDifficulty = 6,
                                ApproachRate      = 10,
                            },
                            OnlineInfo = new BeatmapOnlineInfo
                            {
                                Length      = 193000,
                                CircleCount = 1068,
                                SliderCount = 0,
                                PlayCount   = 5856,
                                PassCount   = 1207,
                            },
                            Metrics = new BeatmapMetrics
                            {
                                Ratings = Enumerable.Range(0, 11),
                                Fails   = Enumerable.Range(1, 100).Select(i => i % 12 - 6),
                                Retries = Enumerable.Range(-2, 100).Select(i => i % 12 - 6),
                            },
                        },
                    },
                });
            });

            AddStep(@"hide", overlay.Hide);
            AddStep(@"show without reload", overlay.Show);
        }