public GameUnlockedData GetCurrentSceneData() { GameUnlockedData temp = null; string curSceneName = ""; int totalScenes = sceneManager.scenes.Count; if (totalScenes > 0) { curSceneName = SceneManager.GetSceneByBuildIndex(sceneManager.scenes[totalScenes - 1]).name; foreach (GameUnlockedData gd in gameList) { if (gd.name == curSceneName) { temp = gd; curGameData = gd; return(temp); } } // if we reach here, no game data found print("No game data found for: " + curSceneName); } return(temp); }
void UpdateMilestones(int stars, bool knowledge, float time) { GameUnlockedData gd = DataHolder.Instance.gameList.Find(o => o == gameData); gd.stars = stars; gd.knowledgeStar = knowledge; gd.timeRecord = time; DataHolder.Instance.SaveData(); }
private void OnLevelWasLoaded(int level) { // check if this is a game scene for showing stars gauge bool isGame = false; var gameName = SceneManager.GetSceneByBuildIndex(level).name; GameUnlockedData gd = DataHolder.Instance.gameList.Find(o => o.name == gameName); if (gd != null) { isGame = true; } if (isGame) { lastScore = 0; } }
public void GameFinished(GameUnlockedData gameData, float finalScore = 0) { // notification that a game is finished, data will be checked and saved // first get the game name string gameName = SceneManager.GetActiveScene().name; // compare it to the database foreach (GameUnlockedData gd in dataHolder.gameList) { if (gd.name == gameName) { if (finalScore >= lastScore) { lastScore = finalScore; } UpdateMilestones(gameData, gameData.stars, gameData.knowledgeStar, lastScore); } } }
void UpdateMilestones(GameUnlockedData gameData, int stars, bool knowledge, float time) { print("updating scores"); GameUnlockedData gd = DataHolder.Instance.gameList.Find(o => o == gameData); if (time >= gd.star1) { stars = 1; } if (time >= gd.star2) { stars = 2; } if (time >= gd.star3) { stars = 3; } gd.stars = stars; gd.knowledgeStar = knowledge; gd.timeRecord = time; DataHolder.Instance.SaveData(); }
new void GetMilestones() { gameData = DataHolder.Instance.GetCurrentSceneData(); }