private void OnReportScore(bool result){ Debug.Log(result); if(waitingLeaderboards.Count > 0){ currentLeaderboard = waitingLeaderboards[0]; waitingLeaderboards.Remove(waitingLeaderboards[0]); SubmitLeaderboardScore(currentLeaderboard); } else{ currentLeaderboard = null; } }
public static void AddUserToLeaderboard(GameObject user) { LeaderboardValue v = new LeaderboardValue(user); m_LeaderboardValues.Add(v); }
public override void OnButtonSelect( string buttonName ){ if(buttonName == "Continue"){ // Make sure time scale is resumed to normal as this // was set to zero for pause mode Time.timeScale = 1.0f; boardManager.state = GameState.Playing; } else if (buttonName == "Main Menu"){ Time.timeScale = 1.0f; Application.LoadLevel("Main Menu"); } else if (buttonName == "Sure Ach"){ showAchievementGUI = false; showLeaderboardGUI = false; showReallyNever = false; // sign the user in and then load the appropriate achievement // may have been signed in since this request if(!Social.localUser.authenticated)Social.localUser.Authenticate(OnAuthCB); boardManager.state = GameState.Playing; } else if (buttonName == "Sure Leader"){ showLeaderboardGUI = false; showAchievementGUI = false; showReallyNever = false; // sign the user in and then load the appropriate achievement // may have been signed in since this request if(!Social.localUser.authenticated)Social.localUser.Authenticate(OnAuthCB); boardManager.state = GameState.Playing; } else if (buttonName == "Not Now"){ // give the user 5 more games until asking about achievements again PlayerPrefs.SetInt("showAchievement", 8); data.showAchievementCountdown = 8; showAchievementGUI = false; showLeaderboardGUI = false; showReallyNever = false; boardManager.state = GameState.Playing; } else if (buttonName == "Never"){ // user doesn't want achievements so don't bother them showLeaderboardGUI = false; showAchievementGUI = false; showReallyNever = true; } else if (buttonName == "Really Never"){ // user doesn't want achievements so don't bother them showLeaderboardGUI = false; showAchievementGUI = false; showReallyNever = false; currentAchievement = null; waitingAchievements.Clear(); currentLeaderboard = null; waitingLeaderboards.Clear(); PlayerPrefs.SetInt ("userAchievements", 0); data.userWantsAchievements = 0; boardManager.state = GameState.Playing; } // testing else if (buttonName == "Achievements"){ if(loginState == GPLoginState.loggedout && !Social.localUser.authenticated){ waitingToShowAchievements = true; // the user needs to sign in Social.localUser.Authenticate(OnAuthCB); } else{ // show the achievements we are signed in Social.ShowAchievementsUI(); } } else if (buttonName == "Leaders"){ if(loginState == GPLoginState.loggedout && !Social.localUser.authenticated){ waitingToShowLeaderboard = true; // the user needs to sign in Social.localUser.Authenticate(OnAuthCB); } else{ // show the actual leaderboard because we are signed in Social.ShowLeaderboardUI(); } } // else if (buttonName=="Signout") // { // ((GooglePlayGames.PlayGamesPlatform) Social.Active).SignOut(); // loginState = GPLoginState.loggedout; // PlayerPrefs.SetInt("logonStatus",0); // } }
void SubmitLeaderboardScore(LeaderboardValue leaderboardScore){ Social.ReportScore(leaderboardScore.score, leaderboardScore.leaderboardID, OnReportScore); }
void Update(){ if (boardManager.state == GameState.GameOver){ if(!sceneEnded){ if (data.showAdCountdown <= 0){ #if UNITY_EDITOR Debug.Log("showing interstitial"); #elif UNITY_ANDROID StartCoroutine(ShowInterstitial()); #endif } bool wantsAchievements = false; if((data.userWantsAchievements != 0) && (data.showAchievementCountdown <= 0)){ wantsAchievements = true; data.showAchievementCountdown = 0; } // increase the games played count PlayerPrefs.SetInt("completed_euro",++data.gameStatsEuro[1]); // check for game completed achievements // No achievements for the EURO board // if ( wantsAchievements ){ // if ( (data.gameStats[1] + data.gameStatsSquare[1]) >= 5){ // if (data.achievements[0] == 0) // waitingAchievements.Add(rookieAchievement); // } // if ( (data.gameStats[1] >= 5) && (data.gameStatsSquare[1]) >= 5){ // if (data.achievements[5] == 0) // waitingAchievements.Add(proPlayerAchievement); // } // } // how many pegs are left andset the text PegController[] pegs = FindObjectsOfType<PegController>(); // update the game stats int index = pegs.Length; if (index <= 3){ Debug.Log("setting peg count: " + index); PlayerPrefs.SetInt(stats[index-1], ++data.gameStatsEuro[5-index]); } //if only one is left see if it is top 5 best time if (index == 1){ int time = (int)(stopWatch*1000.0f); for (int i = 4; i >= 0; i--){ if (time < data.fastestTimesEuro[i] || data.fastestTimesEuro[i] == 0){ data.fastestTimesEuro[i] = time; Array.Sort(data.fastestTimesEuro, CustomSort); PlayerPrefs.SetInt("fastest_euro", data.fastestTimesEuro[0]); PlayerPrefs.SetInt("second_euro", data.fastestTimesEuro[1]); PlayerPrefs.SetInt("third_euro", data.fastestTimesEuro[2]); PlayerPrefs.SetInt("fourth_euro", data.fastestTimesEuro[3]); PlayerPrefs.SetInt("fifth_euro", data.fastestTimesEuro[4]); // break the loop so we don't overwrite them all break; } } } // peg count achievements // less than 3 if (wantsAchievements) { //games completed leaderboard waitingLeaderboards.Add (new LeaderboardValue(leaderboard2, data.gameStats[1]+data.gameStatsSquare[1]+data.gameStatsEuro[1])); // no achievements for this board yet // if (index <= 3){ // if(data.achievements[6]==0) // waitingAchievements.Add(threeSquaredAchievement); // } // if (index <= 2){ // if(data.achievements[7]==0) // waitingAchievements.Add(twiceAsNiceAchievement); // } if (index <= 1){ // if(data.achievements[8]==0) // waitingAchievements.Add(holeInOneAchievement); // fastest times leaderboard waitingLeaderboards.Add (new LeaderboardValue(leaderboard1, (int)(stopWatch*1000.0f))); // most times leaving one peg leaderboard waitingLeaderboards.Add (new LeaderboardValue(leaderboard3, data.gameStatsEuro[4])); // no achievements for this board style yet // if (stopWatch <= 60.0f) // { // //1 peg under 60 seconds achievmenet // if(data.achievements[9]==0) // waitingAchievements.Add (quickDrawAchievement); // } } if(waitingAchievements.Count > 0){ if (!Social.localUser.authenticated){ //ask user to sign in currentAchievement = waitingAchievements[0]; waitingAchievements.Remove(waitingAchievements[0]); showAchievementGUI = true; boardManager.state = GameState.OtherGUI; } else { currentAchievement = waitingAchievements[0]; waitingAchievements.Remove(waitingAchievements[0]); UserUnlockedAchievement(currentAchievement); } } if(waitingLeaderboards.Count > 0){ if (!Social.localUser.authenticated){ //ask user to sign in currentLeaderboard = waitingLeaderboards[0]; waitingLeaderboards.Remove(waitingLeaderboards[0]); showLeaderboardGUI = true; boardManager.state = GameState.OtherGUI; } else { currentLeaderboard = waitingLeaderboards[0]; waitingLeaderboards.Remove(waitingLeaderboards[0]); SubmitLeaderboardScore(currentLeaderboard); } } data.showAchievementCountdown = 0; } // animate peg left count gameOverText.gameObject.SetActive(true); gameOverText.text = pegs.Length+ " Left\nTry Again"; StartCoroutine(AnimateText()); sceneEnded = true; } } else if (boardManager.state != GameState.OtherGUI) { if(startTimer){ stopWatch += Time.deltaTime; stopWatchText.text = stopWatch.ToString("0.0"); } } }