Ejemplo n.º 1
0
    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;
    }
Ejemplo n.º 2
0
    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();
    }