public override void OnGameStateChanged(Game <IEtsInterface> sender, GameStateChangedEventArgs e) { if (e.NewState == GameState.Completed) { Scores.SetScore(sender, CalculateScore(sender, true)); OnScoresUpdated?.Invoke(this, new ScoresUpdatedEventArgs(Scores)); } else if (e.NewState == GameState.Aborted) { Scores.SetScore(sender, CalculateScore(sender, false)); OnScoresUpdated?.Invoke(this, new ScoresUpdatedEventArgs(Scores)); } }
public static IEnumerator GetTopScores() { var request = UnityWebRequest.Get($"{DreamloURLPublic}/json/10"); yield return(request.SendWebRequest()); if (request.result != UnityWebRequest.Result.Success) { Debug.Log($"Error in web request: {request.error}"); yield break; } Scores = new Dictionary <string, int>(); var data = JObject.Parse(request.downloadHandler.text); foreach (var entry in data["dreamlo"]["leaderboard"]["entry"]) { Scores.Add(entry["name"].ToString(), int.Parse(entry["score"].ToString())); } OnScoresUpdated?.Invoke(Scores); }