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);
    }
Beispiel #2
0
    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();
    }
Beispiel #6
0
 new void GetMilestones()
 {
     gameData = DataHolder.Instance.GetCurrentSceneData();
 }