// Use this for initialization void Start() { //Subscribing to receive event stateChanged from GameControll, if so, calls gameStateChanged gc = GameObject.Find("GameControl").GetComponent <GameControl>(); player = GameObject.Find("Player").GetComponent <Player>(); gc.stateChanged += gameStateChanged; level1 = GameObject.Find("Level1").GetComponent <Level1>(); //level2 = GameObject.Find("Level2").GetComponent<Level2>(); //level3 = GameObject.Find("Level3").GetComponent<Level3>(); //level4 = GameObject.Find("Level4").GetComponent<Level4>(); //level5 = GameObject.Find("Level5").GetComponent<Level5>(); speed = new Vector2(gc.GameSpeed, 0); timer = 2f; bs = BlockSpawner.Instance; difficulty = level1; st = difficulty.blocks[bs.randomInfluencedIndex(difficulty.blocks)]; nd = difficulty.blocks[bs.randomInfluencedIndex(difficulty.blocks)]; rd = difficulty.blocks[bs.randomInfluencedIndex(difficulty.blocks)]; gridColumn = 0; gridSize = st.grid.GetLength(1); tileCounter = 0; tileCountTriggers = new Queue(); tileCountTriggers.Enqueue((int)DifficultyTriggers._2); tileCountTriggers.Enqueue((int)DifficultyTriggers._3); tileCountTriggers.Enqueue((int)DifficultyTriggers._4); tileCountTriggers.Enqueue((int)DifficultyTriggers._5); currentTrigger = (int)tileCountTriggers.Dequeue(); powerUpCounter = 30; }
// Update is called once per frame void Update() { if (gc.currentGameState != GameControl.GameState.Play) { return; } if (timer <= 0) { if (gridColumn == gridSize) { spawnColumn(generateTransitoryColumn(st, nd)); st = nd; nd = rd; rd = difficulty.blocks[bs.randomInfluencedIndex(difficulty.blocks)]; gridColumn = 0; gridSize = st.grid.GetLength(1); } else { spawnColumn(new int[4] { st.grid[0, gridColumn], st.grid[1, gridColumn], st.grid[2, gridColumn], st.grid[3, gridColumn] }); gridColumn++; } timer = 2f; } else { timer -= (Time.deltaTime * speed.x); } }