Ejemplo n.º 1
0
    public void Clicked()
    {
        if (!Board.PlayerCanMove ||
            currentStrenght == TileType.BlockedTile ||
            currentStrenght == TileType.TodoExtraStrong ||
            currentStrenght == TileType.TodoStrong ||
            currentStrenght == TileType.TodoSuperStrong)
        {
            Debug.Log("Current Strenght=" + currentStrenght);
            return;
        }
        _Gp1 = GridPositions.GetGridPosition(new Vector2(myTransform.position.x, myTransform.position.y));
        if (_Gp1.x != -1 && Board.ActivePiece.x == -1)
        {
            Board.ActivePiece = _Gp1;
        }
        else if (_Gp1.x != -1)
        {
            if (Board.Instance.gameStyle == GameStyle.Standard && Mathf.Abs(_Gp1 - Board.ActivePiece) > 1)
            {
                Board.ActivePiece = _Gp1;
                return;
            }

            if (
                (!Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX(_Gp1.x, _Gp1.y, Board.ActivePiece.x, Board.ActivePiece.y, true)) ||
                  (Board.Instance.CheckTileMatchX(Board.ActivePiece.x, Board.ActivePiece.y, _Gp1.x, _Gp1.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp1.x, _Gp1.y, Board.ActivePiece.x, Board.ActivePiece.y, true)) ||
                  (Board.Instance.CheckTileMatchY(Board.ActivePiece.x, Board.ActivePiece.y, _Gp1.x, _Gp1.y, true)))) ||
                (Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX4(_Gp1.x, _Gp1.y, Board.ActivePiece.x, Board.ActivePiece.y, true)) ||
                  (Board.Instance.CheckTileMatchX4(Board.ActivePiece.x, Board.ActivePiece.y, _Gp1.x, _Gp1.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp1.x, _Gp1.y, Board.ActivePiece.x, Board.ActivePiece.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(Board.ActivePiece.x, Board.ActivePiece.y, _Gp1.x, _Gp1.y, true))))
                )
            {
                MoveTo(Board.ActivePiece.x, Board.ActivePiece.y);
                Board.PlayingPieces[Board.ActivePiece.x, Board.ActivePiece.y].pieceScript.MoveTo(_Gp1.x, _Gp1.y);
                Board.PlayingPieces[_Gp1.x, _Gp1.y].Active = true;
                Board.PlayingPieces[Board.ActivePiece.x, Board.ActivePiece.y].Active = false;
                PlayingPiece tmp = Board.PlayingPieces[_Gp1.x, _Gp1.y];
                Board.PlayingPieces[_Gp1.x, _Gp1.y] = Board.PlayingPieces[Board.ActivePiece.x, Board.ActivePiece.y];
                Board.PlayingPieces[Board.ActivePiece.x, Board.ActivePiece.y] = tmp;
                Board.ActivePiece   = _Gp1;
                Board.PlayerCanMove = false;
                GetComponent <AudioSource>().PlayOneShot(moveSound);
                if (Board.Instance.gameStyle == GameStyle.Standard)
                {
                    Board.ActivePiece.x = -1;
                }
            }
            else if (Board.Instance.gameStyle == GameStyle.Standard)
            {
                Board.ActivePiece = _Gp1;
            }
        }
    }
Ejemplo n.º 2
0
    void OnMouseDrag()
    {
        if ((!Board.PlayerCanMove) || (Board.Instance.gameStyle != GameStyle.Standard) ||
            currentStrenght != TileType.Normal)
        {
            return;
        }
        dragDelay += Time.deltaTime;
        if (dragDelay < 0.2f)
        {
            return;
        }
        dragDelay    = 0f;
        prevPoint    = currentPoint;
        currentPoint = Input.mousePosition;
        _Gp          = GridPositions.GetGridPosition(new Vector2(myTransform.position.x, myTransform.position.y));

        Vector3 dir = currentPoint - prevPoint;

        if (dir.x < -FLOAT_DragDetection)
        {
            if ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchX(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)))
            {
                MoveTo(_Gp.x - 1, _Gp.y);
                Board.PlayingPieces[_Gp.x - 1, _Gp.y].pieceScript.MoveTo(_Gp.x, _Gp.y);

                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x - 1, _Gp.y];
                Board.PlayingPieces[_Gp.x - 1, _Gp.y] = tmp;

                Board.PlayerCanMove = false;
                //GetComponent<AudioSource>().PlayOneShot(moveSound);

                dragDelay = 0f;
                return;
            }
        }
        if (dir.x > FLOAT_DragDetection)
        {
            if ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchX(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)))
            {
                MoveTo(_Gp.x + 1, _Gp.y);
                Board.PlayingPieces[_Gp.x + 1, _Gp.y].pieceScript.MoveTo(_Gp.x, _Gp.y);

                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x + 1, _Gp.y];
                Board.PlayingPieces[_Gp.x + 1, _Gp.y] = tmp;

                Board.PlayerCanMove = false;
                //GetComponent<AudioSource>().PlayOneShot(moveSound);

                dragDelay = 0f;
                return;
            }
        }

        if (dir.y > FLOAT_DragDetection)
        {
            if ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)) ||
                (Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)))
            {
                MoveTo(_Gp.x, _Gp.y - 1);
                Board.PlayingPieces[_Gp.x, _Gp.y - 1].pieceScript.MoveTo(_Gp.x, _Gp.y);

                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x, _Gp.y - 1];
                Board.PlayingPieces[_Gp.x, _Gp.y - 1] = tmp;

                Board.PlayerCanMove = false;
                //GetComponent<AudioSource>().PlayOneShot(moveSound);

                dragDelay = 0f;
                return;
            }
        }

        if (dir.y < -FLOAT_DragDetection)
        {
            if ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)) ||
                (Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true)) ||
                (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)))
            {
                MoveTo(_Gp.x, _Gp.y + 1);
                Board.PlayingPieces[_Gp.x, _Gp.y + 1].pieceScript.MoveTo(_Gp.x, _Gp.y);

                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x, _Gp.y + 1];
                Board.PlayingPieces[_Gp.x, _Gp.y + 1] = tmp;

                Board.PlayerCanMove = false;
                //GetComponent<AudioSource>().PlayOneShot(moveSound);

                dragDelay = 0f;
                return;
            }
        }
    }
Ejemplo n.º 3
0
    void OnMouseDrag()
    {
        if (
            (!Board.PlayerCanMove || (Board.Instance.gameStyle != GameStyle.Standard)) ||
            currentStrenght == TileType.BlockedTile ||
            currentStrenght == TileType.TodoExtraStrong ||
            currentStrenght == TileType.TodoStrong ||
            currentStrenght == TileType.TodoSuperStrong
            )
        {
            return;
        }
        dragDelay += Time.deltaTime;
        if (dragDelay < 0.2f)
        {
            return;
        }
        dragDelay    = 0;
        prevPoint    = currentPoint;
        currentPoint = Input.mousePosition;
        _Gp          = GridPositions.GetGridPosition(new Vector2(myTransform.position.x, myTransform.position.y));
        Vector3 dir = currentPoint - prevPoint;

        if (dir.x < -FLOAT_DragDetection)
        {
            if (
                (!Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchX(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true))
                 )) ||
                (Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchX4(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y, _Gp.x - 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x - 1, _Gp.y, _Gp.x, _Gp.y, true))
                 ))
                )
            {
                MoveTo(_Gp.x - 1, _Gp.y);
                Board.PlayingPieces[_Gp.x - 1, _Gp.y].pieceScript.MoveTo(_Gp.x, _Gp.y);
                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x - 1, _Gp.y];
                Board.PlayingPieces[_Gp.x - 1, _Gp.y] = tmp;
                Board.ActivePiece.x = -1;
                Board.PlayerCanMove = false;
                GetComponent <AudioSource>().PlayOneShot(moveSound);
                mouseClick = false;
                mouseDown  = false;
                dragDelay  = 0f;
                return;
            }
        }
        if (dir.x > FLOAT_DragDetection)
        {
            if (
                (!Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchX(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true))
                 )) ||
                (Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchX4(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y, _Gp.x + 1, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x + 1, _Gp.y, _Gp.x, _Gp.y, true))
                 ))
                )
            {
                MoveTo(_Gp.x + 1, _Gp.y);
                Board.PlayingPieces[_Gp.x + 1, _Gp.y].pieceScript.MoveTo(_Gp.x, _Gp.y);
                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x + 1, _Gp.y];
                Board.PlayingPieces[_Gp.x + 1, _Gp.y] = tmp;
                Board.ActivePiece.x = -1;
                Board.PlayerCanMove = false;
                GetComponent <AudioSource>().PlayOneShot(moveSound);
                dragDelay  = 0f;
                mouseClick = false;
                mouseDown  = false;
                return;
            }
        }
        if (dir.y > FLOAT_DragDetection)
        {
            if (
                (!Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)) ||
                  (Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true))
                 )) ||
                (Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)) ||
                  (Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y, _Gp.x, _Gp.y - 1, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y - 1, _Gp.x, _Gp.y, true))
                 ))
                )
            {
                MoveTo(_Gp.x, _Gp.y - 1);
                Board.PlayingPieces[_Gp.x, _Gp.y - 1].pieceScript.MoveTo(_Gp.x, _Gp.y);
                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x, _Gp.y - 1];
                Board.PlayingPieces[_Gp.x, _Gp.y - 1] = tmp;
                Board.ActivePiece.x = -1;
                Board.PlayerCanMove = false;
                GetComponent <AudioSource>().PlayOneShot(moveSound);
                dragDelay  = 0f;
                mouseClick = false;
                mouseDown  = false;
                return;
            }
        }
        if (dir.y < -FLOAT_DragDetection)
        {
            if (
                (!Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)) ||
                  (Board.Instance.CheckTileMatchX(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)) ||
                  (Board.Instance.CheckTileMatchY(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true))
                 )) ||
                (Board.Instance.isMatch4 &&
                 ((Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)) ||
                  (Board.Instance.CheckTileMatchX4(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y, _Gp.x, _Gp.y + 1, true)) ||
                  (Board.Instance.CheckTileMatchY4(_Gp.x, _Gp.y + 1, _Gp.x, _Gp.y, true))
                 ))
                )
            {
                MoveTo(_Gp.x, _Gp.y + 1);
                Board.PlayingPieces[_Gp.x, _Gp.y + 1].pieceScript.MoveTo(_Gp.x, _Gp.y);
                PlayingPiece tmp = Board.PlayingPieces[_Gp.x, _Gp.y];
                Board.PlayingPieces[_Gp.x, _Gp.y]     = Board.PlayingPieces[_Gp.x, _Gp.y + 1];
                Board.PlayingPieces[_Gp.x, _Gp.y + 1] = tmp;
                Board.ActivePiece.x = -1;
                Board.PlayerCanMove = false;
                GetComponent <AudioSource>().PlayOneShot(moveSound);
                dragDelay  = 0f;
                mouseClick = false;
                mouseDown  = false;
                return;
            }
        }
    }