protected ServicesManager() { MissionsManager = new MissionsManager(); LevelDataCollection = new LevelDataCollection(); PlayerModel = new PlayerModel(LevelDataCollection.LevelDataList.Count); TriesManager = new TriesManager(); }
private void UpdateLevelDataCollection() { // Get all active game objects and sort them into the right place in the updatedDataCollection. LevelDataCollection updatedDataCollection = new LevelDataCollection(); Item[] items = GetComponentsInChildren <Item>(); for (int i = 0; i < items.Length; i++) { updatedDataCollection.levelItems.Add(items[i]); } LevelElement[] levelElements = GetComponentsInChildren <LevelElement>(); for (int i = 0; i < levelElements.Length; i++) { updatedDataCollection.levelElements.Add(levelElements[i]); } Enemy[] enemies = PersonController.instance.GetComponentsInChildren <Enemy>(); for (int i = 0; i < enemies.Length; i++) { updatedDataCollection.enemies.Add(enemies[i]); } levelDataCollection = updatedDataCollection; }
// Loads a level pack and initializes the level choosing screen void InitLevelPack(string packPath) { packPath = levelsPath + packPath; string jsonData = File.ReadAllText(packPath); Debug.Log("Got raw JSON data for " + packPath + " :" + jsonData.Replace("\n", " ").Replace("\r", "")); levelData = JsonUtility.FromJson <LevelDataCollection>(jsonData); // First, clear all levels from the level list. foreach (Transform child in levelSelectPanel.transform) { Destroy(child.gameObject); } for (int idx = 0; idx < levelData.levels.Length; idx++) { LevelData level = levelData.levels[idx]; GameObject newbtn = Instantiate(levelSelectButtonTemplate); // Set up the button corresponding to that level. LevelSelectButton lsb = newbtn.GetComponentInChildren <LevelSelectButton>(); lsb.levelName = level.path; lsb.levelNum = idx; // TODO: replace the button BG with a thumbnail // Set the text related to the level entry: the level name and the level count. Utils.SetText(newbtn.transform.GetChild(0).GetChild(0).gameObject, (idx + 1).ToString()); Utils.SetText(newbtn.transform.GetChild(1).gameObject, level.name); newbtn.transform.SetParent(levelSelectPanel.transform); } }
/// <summary> /// Loads the level and all related GameObjects like <c>LevelElement</c>s using the <c>ILevelLoader</c> /// </summary> public void LoadLevel() { if (MainMenuPlayerPreferences.InLevelCreationMode) { dataProvider = DeserializeLevel(); levelLoader = new BasicLevelLoader(dataProvider); } // Execute the following in try catch blocks, because levelLoader could be null. try { levelDataCollection = new LevelDataCollection(); level = levelLoader.LoadLevel(); levelDataCollection.levelElements = levelLoader.LoadLevelElements(transform); levelDataCollection.levelItemsData = levelLoader.LoadItemsData(); levelDataCollection.levelItems = levelLoader.LoadItems(transform, levelDataCollection.levelItemsData); if (MainMenuPlayerPreferences.InLevelCreationMode) { levelDataCollection.enemyData = dataProvider.GetEnemyData(); levelDataCollection.enemies = LoadEnemies(levelDataCollection.enemyData); JsonDataProvider jsonDataProvider = (JsonDataProvider)dataProvider; levelDataCollection.playerData = jsonDataProvider.GetPlayerData(); } } catch (NullReferenceException ex) { Debug.LogError("Cannot load level. No ILevelLoader assigned!"); throw new NullReferenceException("Cannot load level. No ILevelLoader assigned!", ex); } }
public void LoadLevelData() { TextAsset textAsset = Resources.Load("Data/Levels/LevelData") as TextAsset; var serializer = new System.Xml.Serialization.XmlSerializer(typeof(LevelDataCollection)); using (var reader = new System.IO.StringReader(textAsset.text)) { this.levelDataCollection = (LevelDataCollection)serializer.Deserialize(reader); } for (int i = 0; i < levelDataCollection.ListLevelData.Count; i++) { levelDataCollection.ListLevelData [i].LevelIndex = i + 1; } lastLevel = ObscuredPrefs.GetInt("LastLevel", 0); lastLevel = 40; //test totalLevel = levelDataCollection.ListLevelData.Count; levelDataCollectionNormal = DeepClone(levelDataCollection); levelDataCollectionHard = DeepClone(levelDataCollection); GetLevelDataNormal(); GetLevelDataHard(); GetLevelInfo(); if (lastLevel >= totalLevel) { isUnlockedHardLevel = true; } }
public void Save(LevelDataCollection levelDataCollection) { string path = Application.dataPath + "/Resources/Data/Levels/LevelData.xml"; var serializer = new XmlSerializer(typeof(LevelDataCollection)); using (var stream = new FileStream(path, FileMode.Create)) { serializer.Serialize(stream, levelDataCollection); Debug.Log("Saved XML to " + path); } }
public void ConvertGameObjects(LevelDataCollection levelData) { List <Enemy> enemies = new List <Enemy>(levelData.enemies); List <ILevelElement> levelElements = new List <ILevelElement>(levelData.levelElements); List <Item> items = new List <Item>(levelData.levelItems); PlayerData playerData = levelData.playerData; ConvertEnemies(enemies); ConvertLevelElements(levelElements); ConvertWeapons(items); SpawnPlayer(playerData, level); }
public void OnLoadLevelSelection() { SwitchState(null); bool levelSelected = ShowLoadGameWindow(); if (!levelSelected) { return; } ResetLevel(); levelController.LoadLevel(); level = levelController.GetLevel(); LevelDataCollection levelData = levelController.GetLevelDataCollection(); levelController.SetLevelDataCollection(null); SetupLevel(); startupModule.ConvertGameObjects(levelData); }
public void LoadLevelData() { TextAsset textAsset = Resources.Load("Data/Levels/LevelData") as TextAsset; var serializer = new System.Xml.Serialization.XmlSerializer(typeof(LevelDataCollection)); using (var reader = new System.IO.StringReader(textAsset.text)) { this.levelDataCollection = (LevelDataCollection)serializer.Deserialize(reader); } for (int i = 0; i < levelDataCollection.ListLevelData.Count; i++) { levelDataCollection.ListLevelData[i].LevelIndex = i + 1; } lastLevel = ObscuredPrefs.GetInt("LastLevel", 0); totalLevel = levelDataCollection.ListLevelData.Count; // lastLevel = 2; }
public void InitializeLevelData() { levelData = new LevelDataCollection(); }
public void SetLevelDataCollection(LevelDataCollection levelDataCollection) { this.levelDataCollection = levelDataCollection; }