Esempio n. 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);
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Registers the new user.
    /// </summary>
    static void RegisterNewUser()
    {
        if (username.Length < 1 || password.Length < 1 || email.Length < 1)
        {
            LumosSocialGUI.statusMessage = "Please fill in all the fields.";
            return;
        }

        if (password != passwordConfirmation)
        {
            LumosSocialGUI.statusMessage = "Please supply matching passwords.";
            return;
        }

        LumosSocialGUI.inProgress    = true;
        LumosSocialGUI.statusMessage = "Registering...";
        var user = new LumosUser(username, password);

        user.email = email;

        LumosSocial.RegisterUser(user,
                                 success => {
            LumosSocialGUI.inProgress = false;

            if (success)
            {
                LumosSocialGUI.statusMessage = null;
                LumosSocialGUI.HideWindow();
            }
            else
            {
                LumosSocialGUI.statusMessage = "There was a problem registering. Please try again.";
            }
        });
    }
Esempio n. 3
0
	public LumosSocial ()
	{
		instance = this;

		if (Lumos.ready) {
			InitializeSettings();
		} else {
			Lumos.OnReady += InitializeSettings;
		}
	}
Esempio n. 4
0
    public LumosSocial()
    {
        instance = this;

        if (Lumos.ready)
        {
            InitializeSettings();
        }
        else
        {
            Lumos.OnReady += InitializeSettings;
        }
    }
Esempio n. 5
0
    /// <summary>
    /// Displays the leaderboards UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        if (LumosSocialGUI.currentUser == null)
        {
            LumosSocialGUI.statusMessage = "You must login before viewing leaderboards.";
            LumosSocialGUI.DrawLoginButton();
            return;
        }

        if (LumosSocial.leaderboards == null)
        {
            LumosSocialGUI.statusMessage = "Loading leaderboards...";

            if (!LumosSocialGUI.inProgress)
            {
                LumosSocial.LoadLeaderboardDescriptions(success => {
                    LumosSocialGUI.statusMessage = null;
                });
                LumosSocialGUI.inProgress = true;
            }

            return;
        }

        if (LumosSocial.leaderboards.Length > 0)
        {
            foreach (var leaderboard in LumosSocial.leaderboards)
            {
                if (leaderboard.loading)
                {
                    GUILayout.Label("Loading...");
                    GUI.enabled = false;
                }

                if (GUILayout.Button(leaderboard.title))
                {
                    currentLeaderboard = leaderboard as LumosLeaderboard;
                    LumosSocialGUI.ShowWindow(LumosGUIWindow.Scores);

                    if (currentLeaderboard.scores == null)
                    {
                        Social.LoadScores(currentLeaderboard.id, null);
                    }
                }

                GUI.enabled = true;
            }

            LumosSocialGUI.DrawDivider();
        }
    }
Esempio n. 6
0
    static void Register(LumosUser user)
    {
        LumosSocial.RegisterUser(user, success => {
            if (success)
            {
                PlayerPrefs.SetInt(hasRegisteredKey, 1);
                Debug.Log("Registered and authenticated, assigned as Social.localUser");
            }
            else
            {
                Debug.LogError("Unable to register user");
            }

            LumosSocialDemoCustomLoginGUI.RegistrationComplete(success);
        });
    }
    // Loads leaderboard names and other info (not scores)
    public static void LoadLeaderboardDescriptions()
    {
        LumosSocial.LoadLeaderboardDescriptions((success) => {
            if (!success)
            {
                Debug.LogWarning("Unable to load leaderboard descriptions.");
                return;
            }

            leaderboards = new List <LumosLeaderboard>();

            // Loaded leaderboards are stored in LumosSocial.leaderboards for your convenience
            // We'll store our own copy of it in this class though for demonstration purposes.
            foreach (var leaderboard in LumosSocial.leaderboards)
            {
                leaderboards.Add(leaderboard as LumosLeaderboard);
            }
        });
    }
Esempio n. 8
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);
            }
        });
    }
    /// <summary>
    /// Displays the password reset UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        var halfWidth = windowRect.width / 2;

        if (GUILayout.Button(backLabel, GUILayout.ExpandWidth(false)))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.Login);
        }

        LumosSocialGUI.DrawDivider();

        // Username field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(usernameLabel);
        username = GUILayout.TextField(username, GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // Submit button.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button(resetLabel, GUILayout.Width(halfWidth)))
        {
            LumosSocial.ResetPassword(username,
                                      success => {
                if (success)
                {
                    LumosSocialGUI.statusMessage = "An email has been sent to confirm your password reset.";
                }
                else
                {
                    LumosSocialGUI.statusMessage = "There was a problem resetting your password. Please try again.";
                }
            });
        }
        GUILayout.EndHorizontal();
    }
Esempio n. 10
0
    /// <summary>
    /// Displays the achievements UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        if (LumosSocialGUI.currentUser == null)
        {
            LumosSocialGUI.statusMessage = "You must login before viewing your achievements.";
            LumosSocialGUI.DrawLoginButton();
            return;
        }

        // Load achievements if necessary.
        if (achievementDescriptions == null)
        {
            LumosSocialGUI.statusMessage = "Loading achievements...";

            if (!LumosSocialGUI.inProgress)
            {
                LumosSocialGUI.inProgress = true;
                Social.LoadAchievements(null);

                Social.LoadAchievementDescriptions(
                    descriptions => {
                    LumosSocialGUI.inProgress    = false;
                    achievementDescriptions      = descriptions;
                    LumosSocialGUI.statusMessage = null;
                });
            }

            return;
        }

        scrollPos = GUILayout.BeginScrollView(scrollPos);

        foreach (var description in achievementDescriptions)
        {
            // Skip achievements the user isn't supposed to see.
            if (description.hidden && !LumosSocial.HasAchievement(description.id))
            {
                continue;
            }

            GUI.enabled = !LumosSocial.HasAchievement(description.id);

            GUILayout.BeginHorizontal(GUI.skin.box);
            var icon = GetIcon(description);

            if (icon != null)
            {
                GUILayout.Label(icon);
            }

            GUILayout.BeginVertical();
            GUILayout.Label(description.title);

            if (LumosSocial.HasAchievement(description.id))
            {
                GUILayout.Label(description.achievedDescription);
            }
            else
            {
                GUILayout.Label(description.unachievedDescription);
            }
            GUILayout.EndVertical();
            GUILayout.EndHorizontal();

            LumosSocialGUI.DrawDivider();
        }

        GUILayout.EndScrollView();
    }