private void SendAnalyticsEvent() { LevelData levelData = LevelDataManager.manager.GetCurrentLevelData(); Analytics.CustomEvent("EndLevelEvent", new Dictionary <string, object> { { "Level Name", levelData.GetLevelName() }, { "First Completion", firstComplete }, { "Deaths", LevelManager.manager.numDeaths }, { "No Death Challenge Complete", levelData.NoDeathsChallengeHasBeenCompleted() }, { "Crates", LevelManager.manager.collected }, { "Crate Challenge Complete", levelData.AllCollectablesHaveBeenCollected() } }); firstComplete = false; }
public void LevelComplete() { LevelData levelData = LevelDataManager.manager.GetCurrentLevelData(); title.text = levelData.GetLevelName(); displayList.Clear(); //set up summary and update save data //level complete AddToDisplayList(levelCompleteTitleText); //crates AddToDisplayList(supplyCrateTitleText); cratesFoundText.text = LevelManager.manager.GetNumCollectablesFoundAsString(); AddToDisplayList(cratesFoundText); //goldenball AddToDisplayList(numberDeathsTitleText); numDeathsText.text = LevelManager.manager.GetNumDeathsAsString(); AddToDisplayList(numDeathsText); //stars and records levelCompleteStar.sprite = collectedStar; if (!levelData.HasBeenCompleted()) { firstComplete = true; levelData.Complete(); AddToDisplayList(levelCompleteStarEarned); } AddToDisplayList(levelCompleteStar); if (levelData.GetNumCollectablesFound() < LevelManager.manager.collected) { levelData.SetNumCollectablesFound(LevelManager.manager.collected); AddToDisplayList(cratesNewBest); if (levelData.AllCollectablesHaveBeenCollected()) { AddToDisplayList(cratesStarEarned); } } supplyCratesStar.sprite = levelData.AllCollectablesHaveBeenCollected() ? collectedStar : uncollectedStar; AddToDisplayList(supplyCratesStar); if (!levelData.NoDeathsChallengeHasBeenCompleted() && LevelManager.manager.numDeaths == 0) { levelData.SetNoDeathsCompleted(); AddToDisplayList(noDeathsStarEarned); } noDeathsStar.sprite = levelData.NoDeathsChallengeHasBeenCompleted() ? collectedStar : uncollectedStar; AddToDisplayList(noDeathsStar); //check for new level unlocks //unlock next level if it isn't already LevelData nextLevel = LevelDataManager.manager.GetNextLevelData(); if (nextLevel == null) { //hide the next button. TODO take this out to allow movement to a new world if there ever is one nextButton.gameObject.SetActive(false); } else { nextButton.gameObject.SetActive(true); if (!nextLevel.IsUnlocked()) { Debug.Log("Unlocking " + nextLevel.GetLevelName()); nextLevel.Unlock(); AddToDisplayList(newLevelUnlockedText); } else //if the next level is already unlocked, it is possible the player has earnt enough stars to unlock a level even further ahead { if (LevelDataManager.manager.CheckForNewStarUnlocks() > 0) { AddToDisplayList(newLevelUnlockedText); Debug.Log("Unlocked new level based on stars"); } } } LevelDataManager.manager.Save(); SendAnalyticsEvent(); RequestToBeShown(); }