void SetUpNewPlayerData() { ChapterPlayerDataList = new List <ChapterPlayerData>(); for (int i = 0; i < 4; i++) { ChapterPlayerData nextChapter = new ChapterPlayerData(); nextChapter.ChapterNumber = i + 1; List <LevelPlayerData> newLevels = new List <LevelPlayerData>(); for (int j = 0; j < 10; j++) { LevelPlayerData nextLevel = new LevelPlayerData(); nextLevel.ChapterNumber = nextChapter.ChapterNumber; nextLevel.LevelNumber = j + 1; nextLevel.HighScore = 0; nextLevel.MaxStarsEarned = 0; nextLevel.Wins = 0; nextLevel.Losses = 0; newLevels.Add(nextLevel); if (i == 0 && j == 0) { nextLevel.LevelIsOpen = true; } else { nextLevel.LevelIsOpen = false; } } nextChapter.LevelPlayerDataList = newLevels; ChapterPlayerDataList.Add(nextChapter); } }
JSONArray GetPlayerChaptersData(JSONArray baseArray) { for (int i = 0; i < ChapterPlayerDataList.Count; i++) { JSONClass newNode = new JSONClass(); ChapterPlayerData currentChapter = ChapterPlayerDataList[i]; newNode["ChapterNumber"].AsInt = currentChapter.ChapterNumber; newNode["Levels"] = GetPlayerLevelsData(new JSONArray(), currentChapter); baseArray.Add(newNode); } return(baseArray); }
JSONArray GetPlayerLevelsData(JSONArray newArray, ChapterPlayerData currentChapter) { for (int i = 0; i < currentChapter.LevelPlayerDataList.Count; i++) { LevelPlayerData currentLevel = currentChapter.LevelPlayerDataList[i]; JSONClass newNode = new JSONClass(); newNode["LevelNumber"].AsInt = currentLevel.LevelNumber; newNode["HighScore"].AsInt = currentLevel.HighScore; newNode["MaxStarsEarned"].AsInt = currentLevel.MaxStarsEarned; newNode["LevelIsOpen"].AsBool = currentLevel.LevelIsOpen; newNode["Wins"].AsInt = currentLevel.Wins; newNode["Losses"].AsInt = currentLevel.Losses; newArray.Add(newNode); } return(newArray); }
void SetUpPlayerData(string playerData) { JSONNode json = JSONNode.Parse(playerData); //simple check to see if data is OK if (json.Count == expectedChapters) { for (int i = 0; i < json.Count; i++) { ChapterPlayerData nextChapter = new ChapterPlayerData(); nextChapter.ChapterNumber = json[i]["ChapterNumber"].AsInt; nextChapter.LevelPlayerDataList = SetUpPlayerLevels(json[i]["Levels"], nextChapter.ChapterNumber); ChapterPlayerDataList.Add(nextChapter); } } //player data is not OK, rebuild it else { print("PlayerData Json is damaged-- setting up new player data"); SetUpNewPlayerData(); } }