예제 #1
0
    public void SetText(LeaderboardMeta entry, bool setIndex = false)
    {
        if (entry.Score == -1)
        {
            alias.text = "-";
            meta.text  = "-";
        }
        else
        {
            alias.text = $"{entry.Alias} - {entry.Score:N0}";
            meta.text  =
                $"Time: {entry.Time} - Tries: {entry.Tries}";
        }

        if (setIndex)
        {
            if (entry.Index == 0)
            {
                index.text = "-";
            }
            else
            {
                index.text = $"# {entry.Index}.";
            }
        }
    }
예제 #2
0
    public void PostScore(LeaderboardMeta data, string level)
    {
        var entry = new LeaderboardEntry()
        {
            Key      = data.Alias,
            Metadata = JsonConvert.SerializeObject(data)
        };

        PostEntry(entry, data.Score, level);
    }
예제 #3
0
    public void LoadLeaderboard(string levelName)
    {
        selectPanel.SetActive(false);
        loadingPanel.SetActive(true);
        leadButtons.SetActive(false);

        StartCoroutine(Work());

        IEnumerator Work()
        {
            yield return(new WaitForSeconds(0.2f));

            LeaderboardController.Instance.FetchLeaderboard(levelName).Then(response =>
            {
                var entries = JsonConvert.DeserializeObject <LeaderboardEntry[]>(response.Text);
                var index   = 0;
                var perso   = FindPersonalBest(entries);

                foreach (var btn in btnList)
                {
                    if (index >= entries.Length)
                    {
                        var meta = new LeaderboardMeta()
                        {
                            Alias = "-", FanUsed = -1, Score = -1, Time = "-", TotalFan = -1, Tries = -1
                        };
                        btn.SetText(meta);
                    }
                    else
                    {
                        var meta = JsonConvert.DeserializeObject <LeaderboardMeta>(entries[index++].Metadata);
                        btn.SetText(meta);
                    }
                }

                if (perso != null)
                {
                    personalBest.SetText(perso, true);
                }
                else
                {
                    var meta = new LeaderboardMeta()
                    {
                        Alias = "-", FanUsed = -1, Score = -1, Time = "-", TotalFan = -1, Tries = -1
                    };
                    personalBest.SetText(meta, true);
                }

                leadButtons.SetActive(true);
                loadingPanel.SetActive(false);
            });
        }
    }
예제 #4
0
    public void SendLeaderboard()
    {
        var meta = new LeaderboardMeta()
        {
            Alias    = PlayerPrefs.GetString("player_alias", "##UNDEFINED"),
            Time     = currentTime.ToString("N3"),
            Tries    = level.tries,
            FanUsed  = level.fans.Count,
            TotalFan = level.availableFans,
            Score    = CalculateScore()
        };
        var boardName = level.levelName.Replace(" ", string.Empty).ToLower();

        LeaderboardController.Instance.PostScore(meta, boardName);
    }