Example #1
0
    public Tile(int x, int y)
    {
        _position.x = x;
        _position.y = y;

        BoardPosition = new Vector2Int(x, y);


        if (y == 0 || y == 1 || y == 6 || y == 7)
        {
            _currentPiece = GameObject.Find(x.ToString() + " " + y.ToString()).GetComponent <Piece>();
            _currentPiece.InitialPosition = RobotOperations.getInitialBoardPosition(BoardPosition);
            NetworkManager.Instance.AddMessage(RobotOperations.StartMove(_currentPiece.InitialPosition, BoardPosition));
        }
    }
Example #2
0
    public void Clean()
    {
        var board       = GameObject.Find("Board");
        var blackPieces = board.transform.Find("BlackPieces");
        var whitePieces = board.transform.Find("WhitePieces");

        foreach (Transform piece in blackPieces.transform)
        {
            int x = (int)piece.GetComponent <Piece>().position.x;
            int y = (int)piece.GetComponent <Piece>().position.y;
            NetworkManager.Instance.AddMessage(RobotOperations.Remove(new Vector2Int(x, y), piece.GetComponent <Piece>().InitialPosition));
        }

        foreach (Transform piece in whitePieces.transform)
        {
            int x = (int)piece.GetComponent <Piece>().position.x;
            int y = (int)piece.GetComponent <Piece>().position.y;
            NetworkManager.Instance.AddMessage(RobotOperations.Remove(new Vector2Int(x, y), piece.GetComponent <Piece>().InitialPosition));
        }
    }
Example #3
0
    // Проект 01. Шахматы

    public void SwapPieces(Move move)
    {
        GameObject[] objects = GameObject.FindGameObjectsWithTag("Highlight");
        foreach (GameObject o in objects)
        {
            Destroy(o);
        }

        Tile firstTile  = move.firstPosition;
        Tile secondTile = move.secondPosition;

        UpdateRochade(move);

        firstTile.CurrentPiece.MovePiece(new Vector3(-move.secondPosition.Position.x, 0, move.secondPosition.Position.y));

        if (secondTile.CurrentPiece != null)
        {
            if (secondTile.CurrentPiece.Type == Piece.pieceType.KING)
            {
                Time.timeScale   = 0;
                endGameText.text = "YOU WIN";
                _kingDead        = true;
                return;
            }
            NetworkManager.Instance.AddMessage(RobotOperations.Remove(secondTile.BoardPosition, secondTile.CurrentPiece.InitialPosition));
            Destroy(secondTile.CurrentPiece.gameObject);
        }

        NetworkManager.Instance.AddMessage(RobotOperations.Move(firstTile.BoardPosition, secondTile.BoardPosition));


        secondTile.CurrentPiece          = move.pieceMoved;
        firstTile.CurrentPiece           = null;
        secondTile.CurrentPiece.position = secondTile.Position;
        secondTile.CurrentPiece.HasMoved = true;

        if (move.move == null)
        {
            playerTurn = !playerTurn;
        }
    }