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;
    }
Beispiel #3
0
    // 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);
        }
    }
Beispiel #5
0
    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;
        }
    }
Beispiel #6
0
    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);
    }
Beispiel #9
0
    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;
    }
Beispiel #10
0
 public void InitializeLevelData()
 {
     levelData = new LevelDataCollection();
 }
 public void SetLevelDataCollection(LevelDataCollection levelDataCollection)
 {
     this.levelDataCollection = levelDataCollection;
 }