Example #1
0
    private void Awake()
    {
        // Generate game objects
        GeneratePlayer();
        currentLevel = GenerateLevel();
        currentLevel.AddPlayer(player);

        RefreshUI();
    }
Example #2
0
    public void ReturnToPrevLevel()
    {
        if (currentLevel.index - 1 >= 0)
        {
            // Deactivate the current
            currentLevel.gameObject.SetActive(false);

            // Return to the previous level
            currentLevel = levels[currentLevel.index - 1];
            currentLevel.gameObject.SetActive(true);
            currentLevel.AddPlayer(player);

            RefreshUI();
        }
    }
Example #3
0
    private LevelMB GenerateLevel()
    {
        // Instantiate the level
        LevelMB level = Instantiate(levelPrefab).GetComponent <LevelMB>();

        Assert.IsTrue(currentLevel != null);

        // Initialize the level
        level.index = levels.Count;
        level.Generate();
        levels.Add(level);

        // Set enter position
        if (currentLevel != null)
        {
            level.enterXY = currentLevel.exitXY;
        }

        return(level);
    }
Example #4
0
    public void ProceedToNextLevel()
    {
        if (currentLevel.index + 1 <= GameConstants.MAX_NUM_LEVELS)
        {
            // Deactivate the current level
            currentLevel.gameObject.SetActive(false);

            // Generate the next level
            currentLevel = currentLevel.index + 1 < levels.Count ? levels[currentLevel.index + 1] : GenerateLevel();

            // Activate the next level
            currentLevel.gameObject.SetActive(true);
            currentLevel.AddPlayer(player);

            RefreshUI();
        }
        else
        {
            GameManagerMB.Instance.ProceedToWinScreen();
        }
    }