// Animate row public static void PlayClearAnimationFromRow() { float delay = 0f; foreach (int y in GameGrid.whatRowIsFilled) { Debug.Log(y); for (int x = GameGrid.width - 1; x >= 0; x--) { if (SetColor.GetDarkMode() == true) { GameGrid.grid[x, y].gameObject.GetComponentInChildren <Animator>().Play("BlockClearDark", 0, delay); // _name, _layer, _delay delay += .1f; //GameGrid.grid[x, y].gameObject.GetComponentInChildren<Animator>().enabled = false; } else { GameGrid.grid[x, y].gameObject.GetComponentInChildren <Animator>().Play("BlockClearLight", 0, delay); // _name, _layer, _delay delay += .1f; //GameGrid.grid[x, y].gameObject.GetComponentInChildren<Animator>().enabled = false; } } } runAnimationScript = false; }
private static void RunBgCol(MonoBehaviour mono) { float wait = 0.0f; int reset = 0; foreach (int a in bg_cols) { // Run animation float loc = -PlayAtLocation(a / 10); //if (a % 10 == rowLoc) loc += PlayAtLocation(a / 10); if (SetColor.GetDarkMode() == true) { bg_grid[a].GetComponent <Animator>().enabled = true; bg_grid[a].GetComponent <Animator>().Play("BlockClearDark", 0, loc); } else { bg_grid[a].GetComponent <Animator>().enabled = true; bg_grid[a].GetComponent <Animator>().Play("BlockClearLight", 0, loc); } // Delete the changed block on the MeshRender.materal[1] on the bg MeshRenderer bgBlock = bg_grid[a].GetComponent <MeshRenderer>(); mono.StartCoroutine(DeleteColorChange(bgBlock, wait)); mono.StartCoroutine(DisableAnimator(bg_grid[a].GetComponent <Animator>(), wait + 1f).GetEnumerator()); wait += changeTranstionalTime; // Reset the time every col change for multiple clears in one play if (++reset % 10 == 0) { wait = 0.0f; } } }
// Change the grid color for dark / light mode public static void SetGrid() { GameObject[] grid = GameObject.FindGameObjectsWithTag("background_block"); for (int i = 0; i < grid.Length; i++) { MeshRenderer bgBlock = grid[i].GetComponent <MeshRenderer>(); Material[] meshMats = bgBlock.materials; if (SetColor.GetDarkMode() == true) { meshMats[1] = null; meshMats[1] = SetColor.GetMaterial("Grid"); } else { meshMats[1] = null; meshMats[1] = SetColor.GetMaterial("Grid"); } bgBlock.materials = meshMats; } }
void UpdateColor() { // Change BG var camera = (Camera)FindObjectOfType(typeof(Camera)); camera.backgroundColor = SetColor.GetColor("Background"); // Change Grid AnimateGrid.SetGrid(); // Change Icon Color on highscore SpriteRenderer HighScoreIconRender = highScoreIcon.GetComponent <SpriteRenderer>(); if (SetColor.GetDarkMode() == true) { HighScoreIconRender.color = SetColor.GetColor("Font"); } else { HighScoreIconRender.color = SetColor.GetColor("Font"); } // Change ChangeIconImage Image Image changeColorButtonImage = changeColorButton.GetComponent <Image>(); //Debug.Log(changeColorButtonImage); if (SetColor.GetDarkMode() == true) { changeColorButtonImage.sprite = Resources.Load <Sprite>("Images/GridIconAlt"); } else { changeColorButtonImage.sprite = Resources.Load <Sprite>("Images/GridIconDark"); } // Change Labels GameObject[] labels = GameObject.FindGameObjectsWithTag("TextLabel"); foreach (var a in labels) { MeshRenderer bgBlock = a.GetComponent <MeshRenderer>(); Material[] meshMats = bgBlock.materials; if (SetColor.GetDarkMode() == true) { meshMats[0] = null; meshMats[0] = SetColor.GetMaterial("Grid"); } else { meshMats[0] = null; meshMats[0] = SetColor.GetMaterial("Grid"); } bgBlock.materials = meshMats; } // Changel Text on Labels GameObject[] textLabels = GameObject.FindGameObjectsWithTag("ScoreText"); // Set UI Text to objects to access //Debug.Log(objs.Length); foreach (var i in textLabels) { var t = i.GetComponent <Text>(); if (t.name.Equals("HighScore")) { if (SetColor.GetDarkMode() == true) { t.color = SetColor.GetColor("Font"); } else { t.color = SetColor.GetColor("Font"); } } if (t.name.Equals("CurrentScore")) { if (SetColor.GetDarkMode() == true) { t.color = SetColor.GetColor("Font"); } else { t.color = SetColor.GetColor("Font"); } } } }
// Update is called once per frame void Update() { if (Input.GetMouseButtonUp(0) || Input.GetMouseButton(0)) { _canUpdateColor = true; _canUpdateGrid = true; _gatherColorTime = 0f; } // Set the color of the grid if (AnimateGrid.setGrid == false && _updateOnce == true) { //_gatherGridTime += Time.deltaTime; //if (_gatherGridTime > _waitTime) //_canUpdateGrid = false; AnimateGrid.SetGrid(); AnimateGrid.setGrid = true; // Changel Text on Labels GameObject[] textLabels = GameObject.FindGameObjectsWithTag("ScoreText"); // Set UI Text to objects to access //Debug.Log(objs.Length); foreach (var i in textLabels) { var t = i.GetComponent <Text>(); if (t.name.Equals("HighScore")) { if (SetColor.GetDarkMode() == true) { t.color = SetColor.GetColor("Font"); } else { t.color = SetColor.GetColor("Font"); } } if (t.name.Equals("CurrentScore")) { if (SetColor.GetDarkMode() == true) { t.color = SetColor.GetColor("Font"); } else { t.color = SetColor.GetColor("Font"); } } } _updateOnce = false; } // Change colors to Light / Dark mode if (SetColor.WillChangeColor == true && _canUpdateColor == true) { _gatherColorTime += Time.deltaTime; if (_gatherColorTime > _waitTime) { _canUpdateColor = false; } UpdateColor(); SetColor.WillChangeColor = false; } // Restart game if (GameOverInfo.RestartGame == true) { gameOverCanvas.SetActive(false); restartButton.SetActive(false); background.SetActive(false); GameOverInfo.RestartGame = false; AnimateGrid.setGrid = false; SetColor.WillChangeColor = true; _updateOnce = true; SceneManager.LoadScene(SceneManager.GetActiveScene().name); } // Check if Game Over if (DetectPossibleMoves.IsGameOver == true) { if (triggerOnce == true) { GameOver(); //Debug.Log("Game Over"); triggerOnce = false; } } else { if (!checkedAvaliablePieces || DetectPossibleMoves.DidNewBlocksSpawn) { DetectPossibleMoves.SetBooleans(); DetectPossibleMoves.AnalyzeGrid(); DetectPossibleMoves.IsThereAValidMove(); checkedAvaliablePieces = true; GamePieces.HasAnGamePieceBeenPlayedToUpdateScore = true; } // Logic for the grid GamePieces.FindGameBlocks(); GamePieces.FindGamePieces(); GamePieces.WhereAreGamePiecesToPlay(); AnimateGrid.FindBackgroundBlocks(); /* If the left (main) mouse click is released * remove cleared blocks */ if (Input.GetMouseButtonUp(0) || isMouseReleased) { if (GamePieces.isAPlayValid) { GameGrid.UpdatePlayedPiecesOnGrid(this); } UpdateGameLogic(); getRefresh = true; isMouseReleased = false; UpdateAnimation(); } if (GamePieces.isAPlayValid) { if (GamePieces.isAPlayValid) { GameGrid.UpdatePlayedPiecesOnGrid(this); } checkedAvaliablePieces = false; } } }