コード例 #1
0
    // Changes the game state as levels get harder
    void UpdateProcGenBehaviour()
    {
        // Increase range every 20 score
        if (interval >= intervalMax)
        {
            ++level;
            interval -= intervalMax;

            // Every 1 interval
            ProcGenManager.IncreaseStartRange(1, 2);
            ProcGenManager.IncreaseEndRange(1, 2);

            // Every 2 intervals (even intervals)
            if (level % 2 == 0)
            {
                ProcGenManager.IncreaseGridSize(1, 1);
                ProcGenManager.IncreaseStartSpawnNum(1, 0);
                //ProcGenManager.IncreaseEndSpawnNum(1, 0);
            }

            // Every 2 intervals (odd intervals)
            if (level % 2 == 1)
            {
                ProcGenManager.IncreaseStartSpawnNum(0, 1);
                ProcGenManager.IncreaseEndSpawnNum(1, 1);
            }
        }
    }
コード例 #2
0
    public void LoadProcGenScene(int level)
    {
        //currentLevel = level;
        currentLevel = 14;
        lineMan.ResetLines();
        lineMan.currentLineBeingDrawn = null;

        // Hand crafted levels
        //gridMan.ConstructLevel(LevelData.puzzleData[currentLevel]);

        // Full random level gen
        //PuzzleData puzzle = ProcGenManager.RandomGenLevel();

        // Proc. queued level gen
        // Remove used start blocks here
        for (int i = 0; i < currentPuzzle.startBlocks.Count; ++i)
        {
            NodeBlock        startB = currentPuzzle.startBlocks[i];
            StartBlockScript sbs    = grid[(int)startB.pos.x][(int)startB.pos.y].GetComponent <StartBlockScript>();

            if (sbs.isInUse)
            {
                currentPuzzle.startBlocks.Remove(startB);
                --i;
            }
        }
        currentPuzzle = ProcGenManager.RandomGenQueuedLevel(currentPuzzle);

        gridMan.ConstructLevel(currentPuzzle);
        uiMan.UpdateLevelUI();

        // Reset number of objects intersection
        objsIntersect  = 0;
        levelCompleted = false;
    }
コード例 #3
0
    public void RestartProcGenScene()
    {
        ProcGenManager.LoadInitPGW();
        currentPuzzle = new PuzzleData();
        currentPuzzle = ProcGenManager.RandomGenQueuedLevel(currentPuzzle);
        scoreMan.ResetScoreMan();

        ResetProcGenScene();
    }
コード例 #4
0
    void Update()
    {
        // Testing
        if (Input.GetKey(KeyCode.Z))
        {
            ProcGenManager.IncreaseGridSize(1, 1);
            LoadNextScene();
        }
        if (Input.GetKey(KeyCode.Q) || Input.GetKeyDown(KeyCode.W))
        {
            LoadNextScene();
        }
        // Reset level
        if (Input.GetKeyDown(KeyCode.R))
        {
            //LoadScene(currentLevel);
            ResetProcGenScene();
        }
        // Restart game
        if (Input.GetKey(KeyCode.LeftShift) && Input.GetKeyDown(KeyCode.R))
        {
            RestartProcGenScene();
        }

        if (Input.GetKeyDown(KeyCode.Escape))
        {
            Application.Quit();
        }

        StateUpdate();

        // Check for level change
        if (levelCompleted)
        {
            if (Input.anyKeyDown)
            {
                LoadNextScene();
            }
        }
    }
コード例 #5
0
    void Start()
    {
        endBlocks   = new List <GameObject>();
        mouseCursor = (GameObject)Instantiate(Resources.Load("Prefabs/DrawingIcon"));
        DontDestroyOnLoad(mouseCursor);
        currentLevel = 0;

        uiMan    = GameObject.Find("UI").GetComponent <UIManager>();
        lineMan  = GameObject.Find("LineManager").GetComponent <LineManager>();
        gridMan  = GameObject.Find("GridManager").GetComponent <GridManager>();
        scoreMan = gameObject.AddComponent <ScoreManager>();

        //ChangeUserState(USER_STATE.IDLE);
        // Init. state for mouse feedback
        lineMan.RemoveMousePointFromLine();
        mouseCursor.GetComponent <SpriteRenderer>().enabled = false;

        // Differing behaviour for differing scenes
        if (SceneManager.GetActiveScene().name == "tutorial_scene")
        {
            currentPuzzle = LevelData.puzzleData[currentLevel];
            gridMan.ConstructLevel(currentPuzzle);
        }
        else if (SceneManager.GetActiveScene().name == "puzzle_scene")
        {
            // Init proc. gen. variables
            ProcGenManager.InitSequentialGen();
            ProcGenManager.CaptureInitPGW();
            currentPuzzle = new PuzzleData();
            currentPuzzle = ProcGenManager.RandomGenQueuedLevel(currentPuzzle);
            gridMan.ConstructLevel(currentPuzzle);
        }

        // Initialize ui
        uiMan.UpdateLevelUI();
    }