Example #1
0
    /// Loads the scores.
    public void LoadScores(string leaderboardID, Action <IScore[]> callback)
    {
        var leaderboard = LumosSocial.GetLeaderboard(leaderboardID);

        if (leaderboard == null)
        {
            leaderboard    = new LumosLeaderboard();
            leaderboard.id = leaderboardID;
            leaderboard.LoadDescription(
                success => {
                if (success)
                {
                    LoadScoresFromLeaderboard(leaderboard, callback);
                }
                else
                {
                    callback(null);
                }
            }
                );
        }
        else
        {
            LoadScoresFromLeaderboard(leaderboard, callback);
        }
    }
Example #2
0
    /// <summary>
    /// Loads a leaderboard with only friend scores.
    /// </summary>
    /// <param name="callback">Callback.</param>
    public void LoadFriendLeaderboardScores(Action <bool> callback)
    {
        var endpoint = "/users/" + id + "/friends/scores";

        LumosRequest.Send(LumosSocial.instance, endpoint, LumosRequest.Method.GET,
                          success => {
            var resp         = success as IList;
            var leaderboards = new LumosLeaderboard[resp.Count];

            for (int i = 0; i < resp.Count; i++)
            {
                leaderboards[i] = new LumosLeaderboard(resp[i] as Dictionary <string, object>);
            }

            foreach (var leaderboard in leaderboards)
            {
                var current = LumosSocial.GetLeaderboard(leaderboard.id);

                // Leaderboard already exists; update friend scores only.
                if (current != null)
                {
                    current.friendScores = leaderboard.friendScores;
                }
                // Leaderboard doesn't exist yet; add entire leaderboard.
                else
                {
                    LumosSocial.AddLeaderboard(leaderboard);
                }
            }

            if (callback != null)
            {
                callback(true);
            }
        },
                          error => {
            if (callback != null)
            {
                callback(false);
            }
        });
    }