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(); } } }
/// <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); }
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; } }
//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(); }
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)); }
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), }); } }
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; }