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); } } }
//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; } } } }