private void prepRound(bool increaseDifficulty = false) { //delete old block if (targetBlock != null) { Destroy(targetBlock); } //get current round data from level manager RoundData round = levelManager.getRound(); if (increaseDifficulty) { round.difficulty = Mathf.Clamp((round.difficulty + 1), 0, 5); } //special acse reset for our first random level if (levelManager.CurrentRound == 0 && levelManager.CurrentLevel == 3 && !unlockDifficulty) { round.reset(); } //initalize round os we can grab data int oldKnives = knives; do { round.init(); }while(oldKnives == round.Knives); knives = round.Knives; //make new block GameObject blockStyle = round.BlockPrefab; if (blockStyle == null) { targetBlock = Instantiate(blockPrefab, blockSpawn.position, blockSpawn.rotation); } else { targetBlock = Instantiate(blockStyle, blockSpawn.position, blockSpawn.rotation); } targetBlock.GetComponent <Block_Break>().init(knives, woodParticles); targetBlock.GetComponent <Block_Rotator>().init(round.RotationCurve, round.RotationSpeed, round.InvertRotationCurve); //init tokens knifeToken_parent.initTokens(knives); //spawn inital knife spawnKnife(); gameState = GAME_STATE.PLAY; round.cleanup(); }