Example #1
0
    private IEnumerator UploadCoroutine(OnlineScore score, string domainApiUrl)
    {
        string json = JsonUtility.ToJson(score);

        byte[] data = System.Text.Encoding.UTF8.GetBytes(json);

        var headers = new Dictionary <string, string> {
            { "Content-Type", "application/json" }
        };

        WWW www = new WWW(domainApiUrl, data, headers);

        yield return(www);

        if (!string.IsNullOrEmpty(www.error))
        {
            Debug.LogError("Form upload failed : " + www.error);

            ErrorOccured(www.error);
        }
        else
        {
            Debug.Log("Form upload succeded : " + www.text);

            if (OnScoreUploaded != null)
            {
                OnScoreUploaded();
            }
        }
    }
Example #2
0
    /// <summary>
    /// Calculate player's score
    /// </summary>
    void CalculateTotalScore()
    {
        int totalScore = 0;

        for (int hole = 0; hole < VarsTracker.playerScores.GetLength(1); hole++)
        {
            totalScore += VarsTracker.playerScores[0, hole];
        }
        myScore = new OnlineScore(PhotonNetwork.connected ? VarsTracker.PlayerName : "YOUR SCORE", totalScore);
    }
Example #3
0
    public void UploadScore(string playerName, Game.GameMode mode)
    {
        var onlineScore = new OnlineScore()
        {
            PlayerName = playerName,
            Score      = Score,
            Time       = Mathf.RoundToInt(RealTimePassed)
        };

        switch (mode)
        {
        case Game.GameMode.TimeAttack:
            StartCoroutine(UploadCoroutine(onlineScore, TimeAttack.DomainApiUrl));
            break;

        case Game.GameMode.ScoreAttack:
            StartCoroutine(UploadCoroutine(onlineScore, ScoreAttack.DomainApiUrl));
            break;
        }
    }
Example #4
0
    //Get scores from database
    IEnumerator PopulateScoreTable()
    {
        WWWForm f = new WWWForm();

        f.AddField("Course", Application.loadedLevelName);

        WWW GetScores = new WWW(VarsTracker.MinigolfNetworkBasePath + "GetHighScores.php", f);

        yield return(GetScores);

        string s = GetScores.text;

        string[] names = s.Split('\n');
        for (int i = 0; i < names.Length; i++)
        {
            if (names[i].Length > 1)
            {
                string[] split = names[i].Split(',');
                highScores[i] = new OnlineScore(split[0], int.Parse(split[1]));
            }
        }
        SetHighScoreText();
    }
Example #5
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(),
                }
            };

            AddStep("scores pack 1", () => scoresContainer.Scores  = scores);
            AddStep("scores pack 2", () => scoresContainer.Scores  = anotherScores);
            AddStep("only top score", () => scoresContainer.Scores = new[] { topScore });
            AddStep("remove scores", scoresContainer.CleanAllScores);
            AddStep("turn on loading", () => scoresContainer.IsLoading  = true);
            AddStep("turn off loading", () => scoresContainer.IsLoading = false);
            AddStep("resize to big", () => container.ResizeWidthTo(1, 300));
            AddStep("resize to normal", () => container.ResizeWidthTo(0.8f, 300));

            scores = new[]
            {
                new OnlineScore
                {
                    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 OnlineScore
                {
                    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 OnlineScore
                {
                    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 OnlineScore
                {
                    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 OnlineScore
                {
                    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("300", RNG.Next(2000));
                s.Statistics.Add("100", RNG.Next(2000));
                s.Statistics.Add("50", RNG.Next(2000));
            }

            anotherScores = new[]
            {
                new OnlineScore
                {
                    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 OnlineScore
                {
                    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 OnlineScore
                {
                    User = new User
                    {
                        Id       = 7151382,
                        Username = @"Mayuri Hana",
                        Country  = new Country
                        {
                            FullName = @"Thailand",
                            FlagName = @"TH",
                        },
                    },
                    Rank       = ScoreRank.F,
                    TotalScore = 123456,
                    Accuracy   = 0.6543,
                },
                new OnlineScore
                {
                    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 OnlineScore
                {
                    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("300", RNG.Next(2000));
                s.Statistics.Add("100", RNG.Next(2000));
                s.Statistics.Add("50", RNG.Next(2000));
            }

            topScore = new OnlineScore
            {
                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,
            };
            topScore.Statistics.Add("300", RNG.Next(2000));
            topScore.Statistics.Add("100", RNG.Next(2000));
            topScore.Statistics.Add("50", RNG.Next(2000));
        }
Example #6
0
        public DrawableScore(int index, OnlineScore 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 #7
0
                public static OnlineScore ParseScore(string onlineScoreLine)
                {
                    if (onlineScoreLine.Length == 0) return null;

                    var returnScore = new OnlineScore();
                    string[] split = onlineScoreLine.Split('|');
                    returnScore.ScoreID = int.Parse(split[0]);
                    returnScore.PlayerName = split[1];
                    returnScore.Score = int.Parse(split[2]);
                    returnScore.Combo = int.Parse(split[3]);
                    returnScore.FiftyHits = int.Parse(split[4]);
                    returnScore.HundredHits = int.Parse(split[5]);
                    returnScore.ThreeHundredHits = int.Parse(split[6]);
                    returnScore.Misses = int.Parse(split[7]);
                    returnScore.KatuHits = int.Parse(split[8]);
                    returnScore.GekiHits = int.Parse(split[9]);
                    returnScore.Perfect = (split[10] != "0");
                    returnScore.ReplayViews = int.Parse(split[11]);
                    //No idea about split[12]
                    returnScore.GlobalRank = int.Parse(split[13]);
                    returnScore.ScoreDatetime = DateTime.Parse(split[14]);

                    return returnScore;
                }