Example #1
0
    private void Awake()
    {
        // populate list with saved data
        string s = PlayerPrefs.GetString("stats");

        if (!s.Equals(""))
        {
            ScoreDataList <ScoreData> leaderboards = JsonUtility.FromJson <ScoreDataList <ScoreData> >(s);
            List <ScoreData>          scores       = new List <ScoreData>(leaderboards.items);
            scores.Sort(new ScoreDataComparer());
            foreach (ScoreData i in scores)
            {
                if (!i.name.Equals(""))
                {
                    GameObject g = Instantiate(textPrefab, textHolder);
                    Text       t = g.GetComponent <Text>();
                    t.text = string.Format("{0}\nHigh Score: {1}\nTrees Saved: {2}\nTowns Saved: {3}\nFastest Time: {4} minutes\nTime Flown: {5} minutes", i.name, i.highScore, i.treesSaved, i.peopleSaved, i.fastestTime, i.totalMinutesFlown);
                }
            }
        }
        else
        {
            GameObject g = Instantiate(textPrefab, textHolder);
            Text       t = g.GetComponent <Text>();
            t.text = "No Scores Yet!";
        }
    }
Example #2
0
    public void loadData()
    {
        if (!File.Exists(Application.dataPath + "/dataset.json"))
        {
            Debug.Log("No settings file found, creating new one.");


            sdatalist = new ScoreDataList();
            string jsonExport = JsonUtility.ToJson(sdatalist);
            File.WriteAllText(Application.dataPath + "/dataset.json", jsonExport);
        }
        else
        {
            Debug.Log("Settings file found, loading settings.");

            string jsonImport = File.ReadAllText(Application.dataPath + "/dataset.json");
            sdatalist = JsonUtility.FromJson <ScoreDataList>(jsonImport);

            foreach (ScoreData scoredata in sdatalist.scoredatalist)
            {
                updateDatainUI(scoredata);
            }
        }
    }
Example #3
0
    public void EndGame()
    {
        gameEnded = true;

        Time.timeScale = 0;
        hud.enabled    = false;
        FadeOut();

        // 9 trees per forest tile
        int treesSaved = 9 * map.GetTilesInState(MapTile.TileState.healthy, MapTile.TileType.forest);
        int treesTotal = 9 * map.GetTilesOfType(MapTile.TileType.forest);

        int townsSaved = map.GetTilesInState(MapTile.TileState.healthy, MapTile.TileType.town);
        int townsTotal = map.GetTilesOfType(MapTile.TileType.town);

        int minutesPassed = (int)FindObjectOfType <SkyManager>().GetTimePassed();

        treeText.text   = string.Format("Trees saved: {0}/{1}", treesSaved, treesTotal, treesSaved, treesSaved * 100);
        peopleText.text = string.Format("Towns saved: {0}/{1}", townsSaved, townsTotal, townsSaved, townsSaved * 5000);
        timeText.text   = string.Format("Time: {0} minutes", minutesPassed);

        int score = treesSaved * 100 + townsSaved * 5000;

        totalScore.text = string.Format("Score: {0} points", score);

        winScreen.enabled = true;

        // Save Scores
        string playerName = PlayerPrefs.GetString("name", "Human");
        string statstr    = PlayerPrefs.GetString("stats", "");

        if (!statstr.Equals(""))
        {
            ScoreDataList <ScoreData> scoreData = JsonUtility.FromJson <ScoreDataList <ScoreData> >(statstr);
            List <ScoreData>          items     = new List <ScoreData>(scoreData.items);

            ScoreData newScore = new ScoreData();

            foreach (ScoreData item in items.ToArray())
            {
                if (item.name.Equals(playerName))
                {
                    newScore = item;
                    items.Remove(item);
                }
            }


            newScore.name               = playerName;
            newScore.highScore          = score > newScore.highScore ? score : newScore.highScore;
            newScore.fastestTime        = (minutesPassed < newScore.fastestTime || newScore.fastestTime == 0) ? minutesPassed : newScore.fastestTime;
            newScore.totalMinutesFlown += minutesPassed;
            newScore.treesSaved        += 9 * treesSaved;
            newScore.peopleSaved       += townsSaved;

            items.Add(newScore);
            scoreData.items = items.ToArray();

            string serialized = JsonUtility.ToJson(scoreData);

            Debug.LogFormat("saving scores: {0}", serialized);

            PlayerPrefs.SetString("stats", serialized);
            PlayerPrefs.Save();
        }
        else
        {
            List <ScoreData> items = new List <ScoreData>();

            ScoreData newScore = new ScoreData();

            newScore.name               = playerName;
            newScore.highScore          = score > newScore.highScore ? score : newScore.highScore;
            newScore.fastestTime        = (minutesPassed < newScore.fastestTime || newScore.fastestTime == 0) ? minutesPassed : newScore.fastestTime;
            newScore.totalMinutesFlown += minutesPassed;
            newScore.treesSaved        += 9 * treesSaved;
            newScore.peopleSaved       += townsSaved;

            items.Add(newScore);
            ScoreDataList <ScoreData> scoreData = new ScoreDataList <ScoreData>();
            scoreData.items = items.ToArray();

            string serialized = JsonUtility.ToJson(scoreData);

            Debug.LogFormat("saving scores: {0}", serialized);

            PlayerPrefs.SetString("stats", serialized);
            PlayerPrefs.Save();
        }
    }