Esempio n. 1
0
    // 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;
    }
Esempio n. 2
0
    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;
            }
        }
    }
Esempio n. 3
0
    // 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;
        }
    }
Esempio n. 4
0
    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");
                }
            }
        }
    }
Esempio n. 5
0
    // 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;
            }
        }
    }