Esempio n. 1
0
    private void MovePiece(UICasa origem, UICasa destino)
    {
        var movimento = Peca.ValidarMovimento(new Movimento(origem: origem.casa, destino: destino.casa));

        UIPiece captured = null;

        if (destino.casa.PecaAtual != null)
        {
            captured = destino.CurrentUIPiece();
        }
        else if (movimento.pecaCapturada != null)
        {
            var uiTabuleiro = FindObjectOfType <UITabuleiro>();
            captured = uiTabuleiro.GetUICasa(movimento.pecaCapturada.CasaAtual).CurrentUIPiece();
        }

        if (captured != null)
        {
            Destroy(captured.gameObject);
        }

        Piece.RealizaMovimento(movimento);

        VisuallyMove(movimento);
    }
Esempio n. 2
0
    public void SelectCasa(UICasa highlightObject2)
    {
        /*if (this.highlightObject2 != null) {
         * this.highlightObject2.StopHighlight();
         * }*/

        this.highlightObject2 = highlightObject2;
        this.highlightObject2.StartHighlight();
    }
Esempio n. 3
0
    public void TryMovePiece(UICasa origem, UICasa destino, Tabuleiro tabuleiro)
    {
        var movimento = new Movimento(origem: origem.casa, destino: destino.casa);

        if (Piece.PodePercorrer(movimento, tabuleiro))
        {
            if ((origem.casa.PecaAtual.jDono == tabuleiro.partida.JogadorDaVez()))
            {
                MovePiece(origem, destino);
                tabuleiro.partida.PassarAVez();
            }
        }
    }
Esempio n. 4
0
    public void TryMove(UICasa origem, UICasa destino)
    {
        if (origem == destino)
        {
            return;
        }

        UIPiece uiPiece = origem.CurrentUIPiece();

        if (uiPiece == null)
        {
            return;
        }

        uiPiece.TryMovePiece(origem, destino, Tabuleiro);
    }
Esempio n. 5
0
    public void UpdatePositionOnBoard(UITabuleiro uiTabuleiro)
    {
        UICasa casa = uiTabuleiro.GetUICasa(Piece.CasaAtual);

        if (casa == null)
        {
            return;
        }

        float x, y, z;

        // Fica nas mesmas coordenadas da casa, mas acima dela.
        x = casa.transform.position.x;
        y = casa.transform.position.y + casa.GetComponent <Collider>().bounds.size.y / 2;
        z = casa.transform.position.z;

        this.transform.position = new Vector3(x, y, z);
    }
Esempio n. 6
0
 public void NoSelectCasa(UICasa highlightObject2)
 {
     this.highlightObject2.StopHighlight();
 }
Esempio n. 7
0
    private void Update()
    {
        //if
        {
            if (Input.GetMouseButtonDown(0))
            {
                if (!clicked)
                {                  //verifica se o menu está ativo
                    SelectColor(); //selecionou a cor
                }
                else
                {
                    if (promovendoPeaoIA)
                    {
                        pAtual    = movimentoPromocao.destino.PecaAtual;
                        valorPeca = 1;
                        if (valorPeca != 0)
                        {
                            pUIAtual   = pAtual.uiP;
                            pAtual     = pAtual.PromoverPeao(movimentoPromocao, valorPeca);
                            pAtual.uiP = pUIAtual;
                            mudaPeca(pAtual);
                            promovendoPeaoIA = false;
                            if (movimentoPromocao.destino.Tabuleiro.partida.Jogador2.Cor == 'b')
                            {
                                movimentoPromocao.destino.PecaAtual.Cor = 'p';
                                Debug.Log(movimentoPromocao.destino.PecaAtual.Cor);
                                Debug.Log(movimentoPromocao.destino.PecaAtual.Cor);
                            }
                        }
                    }
                    if (promovendoPeao)
                    {
                        pAtual    = movimentoPromocao.destino.PecaAtual;
                        valorPeca = SelectPeca();
                        if (valorPeca != 0)
                        {
                            pUIAtual   = pAtual.uiP;
                            pAtual     = pAtual.PromoverPeao(movimentoPromocao, valorPeca);
                            pAtual.uiP = pUIAtual;
                            mudaPeca(pAtual);
                            DestroyMenuPromo();
                            promovendoPeao = false;
                            if (movimentoPromocao.destino.Tabuleiro.partida.Jogador1.Cor == 'p')
                            {
                                movimentoPromocao.destino.PecaAtual.Cor = 'b';
                                Debug.Log(movimentoPromocao.destino.PecaAtual.Cor);
                                Debug.Log(movimentoPromocao.destino.PecaAtual.Cor);
                            }
                            Tabuleiro.partida.PassarAVez();
                        }
                    }
                    else
                    {
                        startDrag = GetSpaceUnderMouse();
                    }
                }
            }

            if (Input.GetMouseButtonUp(0) && startDrag)
            {
                UICasa endDrag = GetSpaceUnderMouse();
                if (endDrag != null)
                {
                    TryMove(startDrag, endDrag);
                }

                startDrag = null;
            }
        }
    }