// 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); } } }
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; }
public void RestartProcGenScene() { ProcGenManager.LoadInitPGW(); currentPuzzle = new PuzzleData(); currentPuzzle = ProcGenManager.RandomGenQueuedLevel(currentPuzzle); scoreMan.ResetScoreMan(); ResetProcGenScene(); }
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(); } } }
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(); }