Example #1
0
        public DrawableProfileScore(APIScoreInfo score)
        {
            Score = score;

            RelativeSizeAxes = Axes.X;
            Height           = height;
        }
Example #2
0
        public TestCaseBeatmapScoresContainer()
        {
            Container       container;
            ScoresContainer scoresContainer;

            Child = container = new Container
            {
                Anchor           = Anchor.TopCentre,
                Origin           = Anchor.TopCentre,
                AutoSizeAxes     = Axes.Y,
                RelativeSizeAxes = Axes.X,
                Width            = 0.8f,
                Children         = new Drawable[]
                {
                    background = new Box {
                        RelativeSizeAxes = Axes.Both
                    },
                    scoresContainer = new ScoresContainer(),
                }
            };

            IEnumerable <APIScoreInfo> scores = new[]
            {
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 6602580,
                        Username = @"waaiiru",
                        Country  = new Country
                        {
                            FullName = @"Spain",
                            FlagName = @"ES",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                        new OsuModFlashlight(),
                        new OsuModHardRock(),
                    },
                    Rank       = ScoreRank.XH,
                    TotalScore = 1234567890,
                    Accuracy   = 1,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 4608074,
                        Username = @"Skycries",
                        Country  = new Country
                        {
                            FullName = @"Brazil",
                            FlagName = @"BR",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                        new OsuModFlashlight(),
                    },
                    Rank       = ScoreRank.S,
                    TotalScore = 1234789,
                    Accuracy   = 0.9997,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 1014222,
                        Username = @"eLy",
                        Country  = new Country
                        {
                            FullName = @"Japan",
                            FlagName = @"JP",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                    },
                    Rank       = ScoreRank.B,
                    TotalScore = 12345678,
                    Accuracy   = 0.9854,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 1541390,
                        Username = @"Toukai",
                        Country  = new Country
                        {
                            FullName = @"Canada",
                            FlagName = @"CA",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                    },
                    Rank       = ScoreRank.C,
                    TotalScore = 1234567,
                    Accuracy   = 0.8765,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 7151382,
                        Username = @"Mayuri Hana",
                        Country  = new Country
                        {
                            FullName = @"Thailand",
                            FlagName = @"TH",
                        },
                    },
                    Rank       = ScoreRank.F,
                    TotalScore = 123456,
                    Accuracy   = 0.6543,
                },
            };

            foreach (var s in scores)
            {
                s.Statistics.Add(HitResult.Great, RNG.Next(2000));
                s.Statistics.Add(HitResult.Good, RNG.Next(2000));
                s.Statistics.Add(HitResult.Meh, RNG.Next(2000));
            }

            IEnumerable <APIScoreInfo> anotherScores = new[]
            {
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 4608074,
                        Username = @"Skycries",
                        Country  = new Country
                        {
                            FullName = @"Brazil",
                            FlagName = @"BR",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                        new OsuModFlashlight(),
                    },
                    Rank       = ScoreRank.S,
                    TotalScore = 1234789,
                    Accuracy   = 0.9997,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 6602580,
                        Username = @"waaiiru",
                        Country  = new Country
                        {
                            FullName = @"Spain",
                            FlagName = @"ES",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                        new OsuModFlashlight(),
                        new OsuModHardRock(),
                    },
                    Rank       = ScoreRank.XH,
                    TotalScore = 1234567890,
                    Accuracy   = 1,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 7151382,
                        Username = @"Mayuri Hana",
                        Country  = new Country
                        {
                            FullName = @"Thailand",
                            FlagName = @"TH",
                        },
                    },
                    Rank       = ScoreRank.F,
                    TotalScore = 123456,
                    Accuracy   = 0.6543,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 1014222,
                        Username = @"eLy",
                        Country  = new Country
                        {
                            FullName = @"Japan",
                            FlagName = @"JP",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                        new OsuModHidden(),
                    },
                    Rank       = ScoreRank.B,
                    TotalScore = 12345678,
                    Accuracy   = 0.9854,
                },
                new APIScoreInfo
                {
                    User = new User
                    {
                        Id       = 1541390,
                        Username = @"Toukai",
                        Country  = new Country
                        {
                            FullName = @"Canada",
                            FlagName = @"CA",
                        },
                    },
                    Mods = new Mod[]
                    {
                        new OsuModDoubleTime(),
                    },
                    Rank       = ScoreRank.C,
                    TotalScore = 1234567,
                    Accuracy   = 0.8765,
                },
            };

            foreach (var s in anotherScores)
            {
                s.Statistics.Add(HitResult.Great, RNG.Next(2000));
                s.Statistics.Add(HitResult.Good, RNG.Next(2000));
                s.Statistics.Add(HitResult.Meh, RNG.Next(2000));
            }

            var topScoreInfo = new APIScoreInfo
            {
                User = new User
                {
                    Id       = 2705430,
                    Username = @"Mooha",
                    Country  = new Country
                    {
                        FullName = @"France",
                        FlagName = @"FR",
                    },
                },
                Mods = new Mod[]
                {
                    new OsuModDoubleTime(),
                    new OsuModFlashlight(),
                    new OsuModHardRock(),
                },
                Rank       = ScoreRank.B,
                TotalScore = 987654321,
                Accuracy   = 0.8487,
            };

            topScoreInfo.Statistics.Add(HitResult.Great, RNG.Next(2000));
            topScoreInfo.Statistics.Add(HitResult.Good, RNG.Next(2000));
            topScoreInfo.Statistics.Add(HitResult.Meh, RNG.Next(2000));

            AddStep("scores pack 1", () => scoresContainer.Scores  = scores);
            AddStep("scores pack 2", () => scoresContainer.Scores  = anotherScores);
            AddStep("only top score", () => scoresContainer.Scores = new[] { topScoreInfo });
            AddStep("remove scores", () => scoresContainer.Scores  = null);
            AddStep("resize to big", () => container.ResizeWidthTo(1, 300));
            AddStep("resize to normal", () => container.ResizeWidthTo(0.8f, 300));
            AddStep("online scores", () => scoresContainer.Beatmap = new BeatmapInfo {
                OnlineBeatmapID = 75, Ruleset = new OsuRuleset().RulesetInfo
            });
        }
Example #3
0
        public DrawableScore(int index, APIScoreInfo score)
        {
            ScoreModsContainer modsContainer;

            RelativeSizeAxes = Axes.X;
            Height           = 30;
            CornerRadius     = 3;
            Masking          = true;
            Children         = new Drawable[]
            {
                background = new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Alpha            = 0,
                },
                new OsuSpriteText
                {
                    Anchor = Anchor.CentreLeft,
                    Origin = Anchor.CentreLeft,
                    Text   = $"#{index + 1}",
                    Font   = @"Exo2.0-RegularItalic",
                    Margin = new MarginPadding {
                        Left = side_margin
                    }
                },
                new DrawableFlag(score.User.Country)
                {
                    Anchor = Anchor.CentreLeft,
                    Origin = Anchor.CentreLeft,
                    Size   = new Vector2(30, 20),
                    Margin = new MarginPadding {
                        Left = 60
                    }
                },
                new ClickableUsername
                {
                    Anchor = Anchor.CentreLeft,
                    Origin = Anchor.CentreLeft,
                    User   = score.User,
                    Margin = new MarginPadding {
                        Left = 100
                    }
                },
                modsContainer = new ScoreModsContainer
                {
                    Anchor               = Anchor.CentreLeft,
                    Origin               = Anchor.CentreLeft,
                    AutoSizeAxes         = Axes.Y,
                    RelativeSizeAxes     = Axes.X,
                    Width                = 0.06f,
                    RelativePositionAxes = Axes.X,
                    X = 0.42f
                },
                new DrawableRank(score.Rank)
                {
                    Anchor               = Anchor.CentreLeft,
                    Origin               = Anchor.CentreLeft,
                    Size                 = new Vector2(30, 20),
                    FillMode             = FillMode.Fit,
                    RelativePositionAxes = Axes.X,
                    X = 0.55f
                },
                new OsuSpriteText
                {
                    Anchor = Anchor.CentreLeft,
                    Origin = Anchor.CentreRight,
                    Text   = $@"{score.TotalScore:N0}",
                    Font   = @"Venera",
                    RelativePositionAxes = Axes.X,
                    X          = 0.75f,
                    FixedWidth = true,
                },
                new OsuSpriteText
                {
                    Anchor = Anchor.CentreLeft,
                    Origin = Anchor.CentreRight,
                    Text   = $@"{score.Accuracy:P2}",
                    Font   = @"Exo2.0-RegularItalic",
                    RelativePositionAxes = Axes.X,
                    X = 0.85f
                },
                new OsuSpriteText
                {
                    Anchor = Anchor.CentreRight,
                    Origin = Anchor.CentreRight,
                    Text   = $"{score.Statistics[HitResult.Great]}/{score.Statistics[HitResult.Good]}/{score.Statistics[HitResult.Meh]}",
                    Font   = @"Exo2.0-RegularItalic",
                    Margin = new MarginPadding {
                        Right = side_margin
                    }
                },
            };

            foreach (Mod mod in score.Mods)
            {
                modsContainer.Add(new ModIcon(mod)
                {
                    AutoSizeAxes = Axes.Both,
                    Scale        = new Vector2(0.35f),
                });
            }
        }
Example #4
0
 public DrawableProfileWeightedScore(APIScoreInfo score, double weight)
     : base(score)
 {
     this.weight = weight;
 }
        public TestSceneUserProfileScores()
        {
            var firstScore = new APIScoreInfo
            {
                PP      = 1047.21,
                Rank    = ScoreRank.SH,
                Beatmap = new APIBeatmap
                {
                    BeatmapSet = new APIBeatmapSet
                    {
                        Title  = "JUSTadICE (TV Size)",
                        Artist = "Oomori Seiko",
                    },
                    DifficultyName = "Extreme"
                },
                Date = DateTimeOffset.Now,
                Mods = new[]
                {
                    new APIMod {
                        Acronym = new OsuModHidden().Acronym
                    },
                    new APIMod {
                        Acronym = new OsuModHardRock().Acronym
                    },
                    new APIMod {
                        Acronym = new OsuModDoubleTime().Acronym
                    },
                },
                Accuracy = 0.9813
            };

            var secondScore = new APIScoreInfo
            {
                PP      = 134.32,
                Rank    = ScoreRank.A,
                Beatmap = new APIBeatmap
                {
                    BeatmapSet = new APIBeatmapSet
                    {
                        Title  = "Triumph & Regret",
                        Artist = "typeMARS",
                    },
                    DifficultyName = "[4K] Regret"
                },
                Date = DateTimeOffset.Now,
                Mods = new[]
                {
                    new APIMod {
                        Acronym = new OsuModHardRock().Acronym
                    },
                    new APIMod {
                        Acronym = new OsuModDoubleTime().Acronym
                    },
                },
                Accuracy = 0.998546
            };

            var thirdScore = new APIScoreInfo
            {
                PP      = 96.83,
                Rank    = ScoreRank.S,
                Beatmap = new APIBeatmap
                {
                    BeatmapSet = new APIBeatmapSet
                    {
                        Title  = "Idolize",
                        Artist = "Creo",
                    },
                    DifficultyName = "Insane"
                },
                Date     = DateTimeOffset.Now,
                Accuracy = 0.9726
            };

            var noPPScore = new APIScoreInfo
            {
                Rank    = ScoreRank.B,
                Beatmap = new APIBeatmap
                {
                    BeatmapSet = new APIBeatmapSet
                    {
                        Title  = "C18H27NO3(extend)",
                        Artist = "Team Grimoire",
                    },
                    DifficultyName = "[4K] Cataclysmic Hypernova"
                },
                Date     = DateTimeOffset.Now,
                Accuracy = 0.55879
            };

            Add(new FillFlowContainer
            {
                Anchor           = Anchor.Centre,
                Origin           = Anchor.Centre,
                RelativeSizeAxes = Axes.X,
                AutoSizeAxes     = Axes.Y,
                Direction        = FillDirection.Vertical,
                Spacing          = new Vector2(0, 10),
                Children         = new[]
                {
                    new ColourProvidedContainer(OverlayColourScheme.Green, new DrawableProfileScore(firstScore)),
                    new ColourProvidedContainer(OverlayColourScheme.Green, new DrawableProfileScore(secondScore)),
                    new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileScore(noPPScore)),
                    new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(firstScore, 0.97)),
                    new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(secondScore, 0.85)),
                    new ColourProvidedContainer(OverlayColourScheme.Pink, new DrawableProfileWeightedScore(thirdScore, 0.66)),
                }
            });
        }