Esempio n. 1
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. 2
0
    /// <summary>
    /// Submits the username and password.
    /// </summary>
    static void SubmitLoginCredentials()
    {
        if (username.Length < 1)
        {
            LumosSocialGUI.statusMessage = "Please enter a username.";
            return;
        }

        if (password.Length < 1)
        {
            LumosSocialGUI.statusMessage = "Please enter a password.";
            return;
        }

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

        Social.Active.Authenticate(user,
                                   success => {
            LumosSocialGUI.inProgress = false;

            if (success)
            {
                LumosSocialGUI.HideWindow();
                LumosSocialGUI.statusMessage = null;
            }
            else
            {
                LumosSocialGUI.statusMessage = "There was a problem signing in. Perhaps your username and password do not match.";
            }
        });
    }
Esempio n. 3
0
    /// <summary>
    /// Displays the registration UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        var halfWidth = windowRect.width / 2;

        GUI.enabled = !LumosSocialGUI.inProgress;

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

        // Email address field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(emailLabel);
        email = GUILayout.TextField(email, GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // Password field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(passwordLabel);
        password = GUILayout.PasswordField(password, '\u2022', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // Password confirmation field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(confirmPasswordLabel);
        passwordConfirmation = GUILayout.PasswordField(passwordConfirmation, '\u2022', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

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

        if (GUILayout.Button(registerLabel, GUILayout.Width(halfWidth)))
        {
            RegisterNewUser();
        }
        GUILayout.EndHorizontal();

        LumosSocialGUI.DrawDivider();

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

        if (GUILayout.Button(loginLabel, GUILayout.Width(halfWidth)))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.Login);
        }
        GUILayout.EndHorizontal();
    }
Esempio n. 4
0
    /// <summary>
    /// Displays the login UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        var halfWidth = windowRect.width / 2;

        GUI.enabled = !LumosSocialGUI.inProgress;

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

        // Password field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(passwordLabel);
        password = GUILayout.PasswordField(password, '\u2022', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

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

        if (GUILayout.Button(loginLabel, GUILayout.Width(halfWidth)))
        {
            SubmitLoginCredentials();
        }
        GUILayout.EndHorizontal();

        LumosSocialGUI.DrawDivider();

        // Forgot password button.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button(forgotPasswordLabel, GUILayout.Width(halfWidth)))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.ResetPassword);
        }
        GUILayout.EndHorizontal();

        // Register new account button.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();

        if (GUILayout.Button(registerLabel, GUILayout.Width(halfWidth)))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.Registration);
            return;
        }
        GUILayout.EndHorizontal();
    }
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
    void Awake()
    {
        // Prevent multiple instances of LumosSocialGUI from existing.
        // Necessary because DontDestroyOnLoad keeps the object between scenes.
        if (instance != null)
        {
            Destroy(gameObject);
            return;
        }

        instance      = this;
        Social.Active = new LumosSocial();
        windowRect    = DetermineWindowRect();
    }
Esempio n. 7
0
    void OnGUI()
    {
        if (LumosSocialGUI.isShowing())
        {
            return;
        }

        switch (currentUI)
        {
        case UI.Menu:
            DisplayMenu();
            break;

        default:
            DisplayMenuButton();
            break;
        }
    }
    /// <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. 9
0
    void DisplayMenu()
    {
        if (Social.localUser == null || !Social.localUser.authenticated)
        {
            if (GUILayout.Button("Login/Register"))
            {
                LumosSocialGUI.ShowWindow(LumosGUIWindow.Login);
            }
        }
        else
        {
            if (GUILayout.Button("Achievements"))
            {
                LumosSocialGUI.ShowWindow(LumosGUIWindow.Achievements);
            }

            if (GUILayout.Button("Leaderboards"))
            {
                LumosSocialGUI.ShowWindow(LumosGUIWindow.Leaderboards);
            }

            if (GUILayout.Button("Profile"))
            {
                LumosSocialGUI.ShowWindow(LumosGUIWindow.Profile);
            }

            if (GUILayout.Button("Settings"))
            {
                LumosSocialGUI.ShowWindow(LumosGUIWindow.Settings);
            }

            if (GUILayout.Button("Close"))
            {
                currentUI = UI.None;
            }
        }
    }
Esempio n. 10
0
 // Shows the leaderboard UI.
 public void ShowLeaderboardUI()
 {
     LumosSocialGUI.ShowWindow(LumosGUIWindow.Leaderboards);
 }
Esempio n. 11
0
    /// <summary>
    /// Displays the profile 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 profile.";
            LumosSocialGUI.DrawLoginButton();
            return;
        }

        GUILayout.BeginHorizontal();
        var avatar = GetAvatar();

        if (avatar != null)
        {
            GUILayout.Label(GetAvatar(), GUILayout.MaxWidth(LumosSocialGUI.avatarSize), GUILayout.MaxHeight(LumosSocialGUI.avatarSize));
        }

        GUILayout.BeginVertical();
        GUILayout.Label(LumosSocialGUI.currentUser.userID);
        GUILayout.Label(LumosSocialGUI.currentUser.email);
        GUILayout.EndVertical();

        GUILayout.BeginVertical();
        if (GUILayout.Button(achievementsLabel))
        {
            Social.ShowAchievementsUI();
        }

        if (GUILayout.Button(leaderboardsLabel))
        {
            Social.ShowLeaderboardUI();
        }

        if (GUILayout.Button(settingsLabel))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.Settings);
        }
        GUILayout.EndVertical();
        GUILayout.EndHorizontal();

        LumosSocialGUI.DrawDivider();

        GUILayout.BeginHorizontal();
        // Other info.
        if (LumosSocialGUI.currentUser.other != null)
        {
            GUILayout.BeginVertical();
            GUILayout.Label("Other");

            otherScrollPos = GUILayout.BeginScrollView(otherScrollPos);

            foreach (var other in LumosSocialGUI.currentUser.other)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(other.Key);
                GUILayout.Label(other.Value.ToString());
                GUILayout.EndHorizontal();
            }

            GUILayout.EndScrollView();
            GUILayout.EndVertical();
        }

        // Friends list.
        GUILayout.BeginVertical();
        GUILayout.Label("Friends");

        friendsScrollPos = GUILayout.BeginScrollView(friendsScrollPos);

        GUILayout.BeginHorizontal();
        friendToAdd = GUILayout.TextField(friendToAdd);

        if (GUILayout.Button("Send Friend Request"))
        {
            if (friendToAdd.Length > 0)
            {
                LumosSocialGUI.currentUser.SendFriendRequest(friendToAdd,
                                                             success => {
                    if (success)
                    {
                        LumosSocialGUI.statusMessage = "Friend request sent.";
                    }
                    else
                    {
                        LumosSocialGUI.statusMessage = "There was a problem processing the friend request. Please try again.";
                    }
                });
            }
        }
        GUILayout.EndHorizontal();

        if (LumosSocialGUI.currentUser.friendRequests != null)
        {
            foreach (var request in LumosSocialGUI.currentUser.friendRequests)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(request.id);

                if (GUILayout.Button("Accept", GUILayout.ExpandWidth(false)))
                {
                    LumosSocialGUI.currentUser.AcceptFriendRequest(request.id,
                                                                   success => {
                        if (success)
                        {
                            LumosSocialGUI.statusMessage = "Friend request accepted.";
                        }
                        else
                        {
                            LumosSocialGUI.statusMessage = "There was a problem accepting the friend request. Please try again.";
                        }
                    });
                }

                if (GUILayout.Button("Decline", GUILayout.ExpandWidth(false)))
                {
                    LumosSocialGUI.currentUser.DeclineFriendRequest(request.id,
                                                                    success => {
                        if (success)
                        {
                            LumosSocialGUI.statusMessage = "Friend request declined.";
                        }
                        else
                        {
                            LumosSocialGUI.statusMessage = "There was a problem declining the friend request. Please try again.";
                        }
                    });
                }
                GUILayout.EndHorizontal();
            }
        }

        if (LumosSocialGUI.currentUser.friends != null)
        {
            foreach (var friend in LumosSocialGUI.currentUser.friends)
            {
                GUILayout.BeginHorizontal();
                GUILayout.Label(friend.id);

                if (GUILayout.Button("Remove"))
                {
                    LumosSocialGUI.currentUser.RemoveFriend(friend.id,
                                                            success => {
                        if (success)
                        {
                            LumosSocialGUI.statusMessage = "Friend removed.";
                        }
                        else
                        {
                            LumosSocialGUI.statusMessage = "There was a problem removing this friend. Please try again.";
                        }
                    });
                }
                GUILayout.EndHorizontal();
            }
        }

        GUILayout.EndScrollView();
        GUILayout.EndVertical();

        LumosSocialGUI.DrawDivider();

        // Scores.
        GUILayout.BeginVertical();
        GUILayout.Label("High Scores");

        scoresScrollPos = GUILayout.BeginScrollView(scoresScrollPos);

        if (LumosSocialGUI.currentUser.scores != null)
        {
            foreach (var score in LumosSocialGUI.currentUser.scores)
            {
                GUILayout.Label(score.leaderboardID);
                GUILayout.BeginHorizontal();
                GUILayout.Label(score.value.ToString());
                GUILayout.EndHorizontal();
                LumosSocialGUI.DrawDivider();
            }
        }

        GUILayout.EndScrollView();
        GUILayout.EndVertical();

        LumosSocialGUI.DrawDivider();
        GUILayout.EndHorizontal();
    }
Esempio n. 12
0
 // Use this for initialization
 void Start()
 {
     LumosSocialGUI.ShowWindow(LumosGUIWindow.Login);
 }
Esempio n. 13
0
    /// <summary>
    /// Displays the scores UI.
    /// </summary>
    /// <param name="windowRect">The bounding rect of the window.</param>
    public static void OnGUI(Rect windowRect)
    {
        if (LumosLeaderboardsGUI.currentLeaderboard == null)
        {
            return;
        }

        if (LumosLeaderboardsGUI.currentLeaderboard.scores == null)
        {
            GUILayout.Label("Loading scores...");
            return;
        }

        if (GUILayout.Button("Leaderboards List", GUILayout.ExpandWidth(false)))
        {
            LumosSocialGUI.ShowWindow(LumosGUIWindow.Leaderboards);
        }

        LumosSocialGUI.DrawDivider();

        // Title
        GUILayout.Label(LumosLeaderboardsGUI.currentLeaderboard.title);

        LumosSocialGUI.DrawDivider();

        // Friend Scores
        if (LumosLeaderboardsGUI.currentLeaderboard.friendScores != null)
        {
            DisplayScoreLabel("Friends");
            GUILayout.BeginVertical(GUI.skin.box);
            friendScoresScrollPos = GUILayout.BeginScrollView(friendScoresScrollPos);
            DisplayScoreData(LumosLeaderboardsGUI.currentLeaderboard.friendScores);
            GUILayout.EndScrollView();
            GUILayout.EndVertical();
        }

        // All Scores
        DisplayScoreLabel("All Scores");
        GUILayout.BeginVertical(GUI.skin.box);
        allScoresScrollPos = GUILayout.BeginScrollView(allScoresScrollPos);
        DisplayScoreData(LumosLeaderboardsGUI.currentLeaderboard.scores);
        GUILayout.EndScrollView();
        GUILayout.EndVertical();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Refresh", GUILayout.ExpandWidth(false)))
        {
            Social.LoadScores(LumosLeaderboardsGUI.currentLeaderboard.id, null);
        }

        if (GUILayout.Button("More...", GUILayout.ExpandWidth(false)))
        {
            var length    = LumosLeaderboardsGUI.currentLeaderboard.scores.Length - 1;
            var lastScore = LumosLeaderboardsGUI.currentLeaderboard.scores[length];

            LumosLeaderboardsGUI.currentLeaderboard.LoadScores(1, lastScore.rank,
                                                               scores => {
                // Nothing yet.
            });
        }
        GUILayout.EndHorizontal();
    }
Esempio n. 14
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();
    }
    /// <summary>
    /// Displays the settings 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 settings.";
            LumosSocialGUI.DrawLoginButton();
            return;
        }

        var halfWidth = windowRect.width / 2;

        scrollPos = GUILayout.BeginScrollView(scrollPos);

        // Name field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(nameLabel);
        name = GUILayout.TextField(name, GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // Current Password field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(currentPasswordLabel);
        currentPassword = GUILayout.PasswordField(currentPassword, '*', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // New Password field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(passwordLabel);
        password = GUILayout.PasswordField(password, '*', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // New Password confirmation field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(confirmPasswordLabel);
        passwordConfirmation = GUILayout.PasswordField(passwordConfirmation, '*', GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        // Email address field.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        GUILayout.Label(emailLabel);
        email = GUILayout.TextField(email, GUILayout.Width(halfWidth));
        GUILayout.EndHorizontal();

        if (LumosSocialGUI.currentUser.other != null)
        {
            if (other == null)
            {
                other = new Dictionary <string, object>(LumosSocialGUI.currentUser.other);
            }

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            GUILayout.Label(otherLabel);

            GUILayout.BeginVertical(GUILayout.Width(halfWidth));

            foreach (var entry in other)
            {
                GUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                GUILayout.Label(entry.Key);
                other[entry.Key] = GUILayout.TextField(entry.Value as string, GUILayout.Width(halfWidth));
                GUILayout.EndHorizontal();
            }

            GUILayout.EndVertical();
            GUILayout.EndHorizontal();
        }

        // Submit button.
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button(updateLabel, GUILayout.Width(halfWidth)))
        {
            SaveSettings();
        }
        GUILayout.EndHorizontal();

        GUILayout.EndScrollView();
    }
 /// Shows the achievements UI.
 public void ShowAchievementsUI()
 {
     LumosSocialGUI.ShowWindow(LumosGUIWindow.Achievements);
 }