예제 #1
0
 void OnMouseDown()
 {
     if (gm.getTurno() == 1)
     {
         //verifica se é o truno da peça branca
         if (this.tag == "whitePiece")
         {
             bm.clearTiles();
             cleanSelection(true);
             //liga o outline da peça
             this.GetComponent <Outline>().enabled = true;
             //passa para o scrip do player qual peça esta selecionada
             ps.setSelected(this.gameObject);
             //faz as posições possiveis de movimentação dessa peça
             bm.makeTiles(this.gameObject);
         }
     }
     else
     {
         //verifica se é o truno da peça preta
         if (this.tag == "blackPiece")
         {
             bm.clearTiles();
             cleanSelection(true);
             //liga o outline da peça
             this.GetComponent <Outline>().enabled = true;
             //passa para o scrip do player qual peça esta selecionada
             ps.setSelected(this.gameObject);
             //faz as posições possiveis de movimentação dessa peça
             bm.makeTiles(this.gameObject);
         }
     }
 }
예제 #2
0
    //movimenta a peça para a posição do tile desejado
    public void movePiece(GameObject p, GameObject t)
    {
        gm.disableColliders();
        if (p != null)
        {
            piece = p;
        }
        if (t != null)
        {
            tile = t;
        }
        string[] resp = null;
        Vector2  vec  = new Vector2();

        if (piece != null && tile != null)
        {
            pieceToMove = piece;
            posToGo     = tile.transform.position;
            bm.clearTiles();

            string respStr = tile.name;
            resp = respStr.Split(new char[] { ',' });
            float[] respf = new float[2];
            for (int i = 0; i < 2; i++)
            {
                respf[i] = float.Parse(resp[i]);
            }

            vec = new Vector2(respf[0], respf[1]);

            br.AtualizaPosicoes(piece, vec);

            ctrlMove = true;
            toc.Play();

            if (piece.name.Contains("Pawn") && (vec.x == 0 || vec.x == 7))
            {
                podeMudarTurno = false;
                gm.setPromoteToChange(piece);
                //podeMudarTurno = true;
            }

            if (pieceToMove.name.Contains("King") && br.getRoque())
            {
                if (respf[1] == (float)1)
                {
                    // roque curto
                    if (piece.name.StartsWith("White"))
                    {
                        // roque curto do rei branco
                        GameObject torre       = brancas.transform.Find("White Rook 2").gameObject;
                        GameObject tileDaTorre = GameObject.Find("0,2");
                        rookToMove  = torre;
                        rookPosToGo = tileDaTorre.transform.position;
                    }
                    else
                    {
                        // roque curto do rei preto
                        GameObject torre       = pretas.transform.Find("Black Rook 2").gameObject;
                        GameObject tileDaTorre = GameObject.Find("7,2");
                        rookToMove  = torre;
                        rookPosToGo = tileDaTorre.transform.position;
                    }
                    roque = true;
                }
                else if (respf[1] == (float)5)
                {
                    // roque longo
                    if (piece.name.StartsWith("White"))
                    {
                        // roque longo do rei branco
                        GameObject torre       = brancas.transform.Find("White Rook 1").gameObject;
                        GameObject tileDaTorre = GameObject.Find("0,4");
                        rookToMove  = torre;
                        rookPosToGo = tileDaTorre.transform.position;
                    }
                    else
                    {
                        // roque longo do rei preto
                        GameObject torre       = pretas.transform.Find("Black Rook 1").gameObject;
                        GameObject tileDaTorre = GameObject.Find("7,4");
                        rookToMove  = torre;
                        rookPosToGo = tileDaTorre.transform.position;
                    }
                    roque = true;
                }
            }
        }
    }