public void LevelCompleted() { Time.timeScale = 1f; isGameOver = true; attemptUsed = true; obstacleSpawner.PauseSpawnTimer(true); extraSpawner.PauseSpawnTimer(true); LevelsData levelsData = SaveManager.GetInstance().LoadPersistentData(SaveManager.LEVELSDATA_PATH).GetData <LevelsData>(); levelsData.UnlockLevel(currentLevel.id + 1); levelsData.UpdateLevelScore(currentLevel.id, (int)sessionScore); SaveManager.GetInstance().SavePersistentData <LevelsData>(levelsData, SaveManager.LEVELSDATA_PATH); sessionGravityPoints = GameplayMath.GetInstance().GetGravityPointsFromSession(sessionScore, playerManager.properTime, currentLevel); GradeObtained obt = CheckForGradeBonusGP(); currencyData.gravityPoints = sessionGravityPoints + currentGravityPoints; SaveManager.GetInstance().SavePersistentData <CurrencyData>(currencyData, SaveManager.CURRENCY_PATH); CheckForPlayerLevelUp(obt); HUDManager.GetInstance().EnableHighGravityFieldPanel(false); HUDManager.GetInstance().DisplayLevelCompletedPanel(); }
public void EndSession() { GradeObtained obt = GradeObtained.UNRANKED; isGameOver = true; highScoreReached = false; obstacleSpawner.PauseSpawnTimer(true); extraSpawner.PauseSpawnTimer(true); sessionGravityPoints = GameplayMath.GetInstance().GetGravityPointsFromSession(sessionScore, playerManager.properTime, currentLevel); if (currentLevel.category == Level.LevelCategory.ENDLESS) { LevelsData data = SaveManager.GetInstance().LoadPersistentData(SaveManager.LEVELSDATA_PATH).GetData <LevelsData>(); data.UpdateLevelScore(LevelsData.ENDLESS_ID, (int)sessionScore); SaveManager.GetInstance().SavePersistentData <LevelsData>(data, SaveManager.LEVELSDATA_PATH); obt = CheckForGradeBonusGP(); if (attemptUsed) { sessionGravitons = 0; } else { sessionGravitons = GameplayMath.GetInstance().GetGravitonsFromGame(playerManager.properTime, sessionScore); currencyData.gravitons += sessionGravitons; } } currencyData.gravityPoints = sessionGravityPoints + currentGravityPoints; SaveManager.GetInstance().SavePersistentData <CurrencyData>(currencyData, SaveManager.CURRENCY_PATH); CheckForPlayerLevelUp(obt); if (currentLevel.category == Level.LevelCategory.ENDLESS) { HUDManager.GetInstance().DisplayGameOverPanel(true, true); } else { HUDManager.GetInstance().DisplayGameOverPanel(false, false); } HUDManager.GetInstance().EnableHighGravityFieldPanel(false); }