//unlocks the splitter with the given name
 public void Unlock_Splitter(string name)
 {
     splittersUnlocked [Splitter_Lookup_Index_by_Name(name)] = true;
     PlayerPrefs.SetInt(name + " Splitter unlocked", 1);
     if (notification != null)
     {
         notification.Achievement_Unlocked(name, "Splitter");
     }
     if (gpgh != null && gpgh.isSignedIn())
     {
         Social.ReportProgress(Name_to_ID(true, name), 100.0f, (bool success) => {
             // handle success or failure, dunno if necessary here
         });
     }
 }
    public void activate()
    {
        if (isActive || isBusy)
        {
            return;
        }

        if (!gpgh.isSignedIn())
        {
            stage            = 0;
            description.text = prompts[0];
        }
        else
        {
            stage            = 1;
            description.text = prompts[1];
        }
        isActive  = true;
        isBusy    = true;
        startTime = Time.time;
    }
    //use this to add new high scores
    public void Add_Score(string gameMode, int score)
    {
        //you need to actually score to save a high score
        if (score == 0)
        {
            return;
        }
        int tempScore = score;

        GameObject temp = GameObject.FindGameObjectWithTag("Google Play");

        if (temp != null)
        {
            gpgh = temp.GetComponent <GPG_Handler>();
            if (gpgh.isSignedIn())
            {
                gpgh.Post_Score(gameMode, score);
            }
        }

        for (int i = 0; i < 15; i++)
        {
            int currScore = PlayerPrefs.GetInt(gameMode + " score " + i, 0);
            if (currScore == 0)
            {
                //We've hit the end of the list. Place the score here and exit
                PlayerPrefs.SetInt(gameMode + " score " + i, tempScore);
                break;
            }
            else if (currScore <= tempScore)
            {
                //continue looking through the list
                PlayerPrefs.SetInt(gameMode + " score " + i, tempScore);
                tempScore = currScore;
            }
        }
    }
    //this actually fills the list in
    public void Populate_Scores_List()
    {
        if (Lookup_Scope(Scopes.CurrentScreen()) == "Local")
        {
            string gameMode = Lookup_Game_Type(Modes.CurrentScreen());
            for (int i = 0; i < 15; i++)
            {
                int currScore = PlayerPrefs.GetInt(gameMode + " score " + i, 0);
                if (currScore == 0)
                {
                    ScoreList[i].text = (i + 1) + ". -------";
                }
                else
                {
                    ScoreList[i].text = (i + 1) + ". " + currScore;
                }
            }
        }
        else
        {
            //TODO: Implement global and friends lists for real
            for (int i = 0; i < 14; i++)
            {
                ScoreList[i].text = (i + 1) + " -------";
            }
            if (gpgh != null && gpgh.isSignedIn())
            {
                ScoreList[14].text = "Called this";
                ILeaderboard lb = PlayGamesPlatform.Instance.CreateLeaderboard();
                switch (Lookup_Game_Type(Modes.CurrentScreen()))
                {
                case "Wiz":
                    lb.id = GPG_Ids.leaderboard_wiz_split_leaderboard;
                    break;

                case "Quick":
                    lb.id = GPG_Ids.leaderboard_quick_split_leaderboard;
                    break;

                case "Wit":
                    lb.id = GPG_Ids.leaderboard_wit_split_leaderboard;
                    break;

                case "Holy":
                    lb.id = GPG_Ids.leaderboard_holy_split_leaderboard;
                    break;

                default:
                    lb.id = GPG_Ids.leaderboard_wiz_split_leaderboard;
                    break;
                }
                ScoreList[3].text = Lookup_Game_Type(Modes.CurrentScreen());
                lb.LoadScores(ok => {
                    if (ok)
                    {
                        ScoreList[4].text = "Good";
                        LoadUsersandScores(lb);
                    }
                    else
                    {
                        Debug.Log("Error retrieving leaderboardi");
                        ScoreList[4].text = "Error";
                        LoadUsersandScores(null);
                    }
                });
            }
        }
    }