コード例 #1
0
	private void OnReportScore(bool result){
		Debug.Log(result);
		if(waitingLeaderboards.Count > 0){
			currentLeaderboard = waitingLeaderboards[0];
			waitingLeaderboards.Remove(waitingLeaderboards[0]);
			SubmitLeaderboardScore(currentLeaderboard);
		}
		else{
			currentLeaderboard = null;
		}
		
	}
コード例 #2
0
ファイル: scr_Leaderboard.cs プロジェクト: mxarc/MarbleRace
 public static void AddUserToLeaderboard(GameObject user)
 {
     LeaderboardValue v = new LeaderboardValue(user);
     m_LeaderboardValues.Add(v);
 }
コード例 #3
0
	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);
//		}

	}
コード例 #4
0
	void SubmitLeaderboardScore(LeaderboardValue leaderboardScore){
		Social.ReportScore(leaderboardScore.score, leaderboardScore.leaderboardID, OnReportScore);
	}
コード例 #5
0
	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");
			}
		}
	}