Пример #1
0
    public void SetAnimacao(float distanciamentoCartasMaximo)
    {
        // formula que leva em conta um valor de distancia do ponto 0 qualquer (distanciamentoDeCartaMaximo), e a quantidade de vezes
        // em que essa distancia é dividida igualmente (Quantidade de cartas). Devolvendo a constante de distanciamento (Levando em conta
        // a imparidade ou paridade da divisão.

        //constante de distanciamento
        distanciamentoCartasMaximo = (cartas.Count < 7) ? distanciamentoCartasMaximo : 175;
        float angulacaoConst = cartas.Count % 2 == 0f ? distanciamentoCartasMaximo / (float)(cartas.Count / 2) : distanciamentoCartasMaximo / (float)((cartas.Count - 1) / 2);
        //distancia inicial
        float concatenador = -distanciamentoCartasMaximo;
        int   index        = 0;

        if (cartas.Count == 1)
        {
            concatenador = 0;
        }
        foreach (var obj in cartas)
        {
            CartaNaMesa atributos = obj.transform.GetChild(0).GetComponent <CartaNaMesa>();
            //setando ID da carta em relação ao baralho
            atributos.PosicaoBaralho = index;
            // Setando posição da carta final e inicial
            atributos.PosicaoInicial = obj.transform.localPosition;
            atributos.PosicaoFinal   = new Vector2(concatenador * latitude, altitude);
            concatenador            += angulacaoConst;
            index++;
        }
        angularBaralho = true;
        x = 0;
    }
Пример #2
0
    void PuxarCartaMesa()
    {
        AtaqueNoInimigo = CartaAtual;
        CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>();

        if (refCard.PodeAtacar)
        {
            seta = Instantiate(Seta);
            seta.transform.SetParent(transform.GetChild(4), false);
            seta.transform.localPosition = CartaAtual.transform.parent.localPosition - new Vector3(10, 80);
        }
    }
Пример #3
0
    //posicao atacar é o index do atacador na mesa do baralho inimigo e posicao inimigo
    //é a posicao da carta do player que sera atacada
    public void AtacarCarta(int posicaoAtacar, int posicaoInimigo)
    {
        MesaBehaviour atacante = transform.GetChild(2).GetComponent <MesaBehaviour>();
        MesaBehaviour defensor = transform.GetChild(1).GetComponent <MesaBehaviour>();

        //if redundante
        if (atacante.cartas.Count > 0 && defensor.cartas.Count > 0)
        {
            CartaNaMesa refCard      = atacante.cartas[posicaoAtacar].transform.GetChild(0).GetComponent <CartaNaMesa>();
            CartaNaMesa enemyRefCard = defensor.cartas[posicaoInimigo].transform.GetChild(0).GetComponent <CartaNaMesa>();
            refCard.QuantidadeAtaque--;
            // passiva do inimigo quando atacado se inicia primeiro do que quando a carta ataca primeiro
            switch (enemyRefCard.AtivarPassivaQuando)
            {
            case Evento.CartaRecebeuDano:
                if (enemyRefCard.Alvo != AlvoPassiva.CartaQueAtacou)
                {
                    this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, enemyRefCard.Alvo, false, defensor.cartas[posicaoInimigo].gameObject);
                }
                else
                {
                    this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, atacante.cartas[posicaoAtacar].gameObject, false, defensor.cartas[posicaoInimigo].gameObject);
                }
                break;
            }
            switch (refCard.AtivarPassivaQuando)
            {
            case Evento.CartaAtaque:
                if (!(refCard.Alvo == AlvoPassiva.CartaAtacada))
                {
                    this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, refCard.Alvo, true, atacante.cartas[posicaoAtacar].gameObject);
                }
                else
                {
                    this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, defensor.cartas[posicaoInimigo].gameObject, true, atacante.cartas[posicaoAtacar].gameObject);
                }
                // nao testei esse else

                break;
            }
            atacante.cartas[posicaoAtacar].transform.GetComponent <Animator>().SetTrigger("Atacar");
            StartCoroutine(DarDano(defensor.cartas[posicaoInimigo], atacante.cartas[posicaoAtacar]));
        }
    }
Пример #4
0
 private void Angular()
 {
     //função
     y = -x * x + 2 * x;
     //velocidade da animação
     x += (velocidadeAnimacao * Time.deltaTime);
     //dado o fim da animação
     if (x >= 1)
     {
         angularBaralho = false;
         return;
     }
     //animando todas as cartas da mão
     //por meio do metodo vector.lerp
     foreach (var obj in cartas)
     {
         CartaNaMesa atributos = obj.transform.GetChild(0).GetComponent <CartaNaMesa>();
         obj.transform.localPosition = Vector2.Lerp(atributos.PosicaoInicial, atributos.PosicaoFinal, y);
     }
 }
Пример #5
0
    public void CriarCartaInicio(float ataq, float def, Sprite img, Evento ev, PassivaComulativa ef, AlvoPassiva alv, AudioClip[] aoMorrer)
    {
        GameObject objCarta = Instantiate(carta);

        objCarta.transform.localPosition = new Vector2(0, -20);
        objCarta.GetComponent <Image>().raycastTarget = false;
        CartaNaMesa obj = objCarta.transform.GetChild(0).GetComponent <CartaNaMesa>();

        objCarta.transform.SetParent(transform, false);
        obj.definirComeco(ataq, def, img, ef, ev, alv);
        obj.AoMorrer = aoMorrer;
        cartas.Add(objCarta);
        distanciamentoCartasMaximo += 20;
        //dispersar cartas na mesa
        SetAnimacao(distanciamentoCartasMaximo);
        switch (obj.AtivarPassivaQuando)
        {
        case Evento.CartaIniciada:
            controller.rodandoPassivasCampoProprio = !(obj.name == "CartaNaMesaInimigo");
            controller.RealizarPassivaEm(obj.Passiva, obj.Alvo, (objCarta.tag == "Player"), objCarta);
            break;
        }
    }
Пример #6
0
    void Atacar()
    {
        foreach (var obj in resultados)
        {
            // carta efeito
            if (isOnEffect && (obj.gameObject.name == "CartaNaMesaInimigo" || obj.gameObject.name == "CartaNaMesa"))
            {
                int barra = goldPlayer.text.IndexOf('/');
                goldPlayer.text = (int.Parse(goldPlayer.text.Substring(0, barra)) - cartaEfeito.Valor).ToString() + "/" + EventControllerBehaviour.ouroMaximo;
                //playerid.CmdAtualizarGold(goldPlayer.text);
                this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(cartaEfeito.Passiva, obj.gameObject.transform.parent.gameObject, true, null);
                //playerid.CmdTirarCartaBaralho(cartaEfeito.PosicaoBaralho);
                //carta ativo não referenciam objetos realizadores
                // playerid.CmdEfeitoRealizado(!(obj.gameObject.name == "CartaNaMesa"),obj.gameObject.GetComponent<CartaNaMesa>().PosicaoBaralho,cartaEfeito.Passiva.quantidade,(int)cartaEfeito.Passiva.efeito);
                SetRaycast(true);
                isOnEffect = false;
                // cartaEfeito = null;
            }
            //atacar carta
            if (obj.gameObject.name == "CartaNaMesaInimigo" && AtaqueNoInimigo)
            {
                CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>();
                if (refCard.QuantidadeAtaque > 0)
                {
                    //playerid.CmdAtacarCarta(refCard.PosicaoBaralho,obj.gameObject.GetComponent<CartaNaMesa>().PosicaoBaralho);
                    AtaqueNoInimigo.transform.parent.GetComponent <Animator>().SetTrigger("Atacar");
                    GameObject  inimigo      = obj.gameObject.transform.parent.gameObject;
                    CartaNaMesa enemyRefCard = obj.gameObject.transform.GetComponent <CartaNaMesa>();
                    // passiva do inimigo quando atacado se inicia primeiro do que quando a carta ataca primeiro
                    switch (enemyRefCard.AtivarPassivaQuando)
                    {
                    case Evento.CartaRecebeuDano:
                        if (enemyRefCard.Alvo != AlvoPassiva.CartaQueAtacou)
                        {
                            this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, enemyRefCard.Alvo, false, inimigo);
                        }
                        else
                        {
                            this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(enemyRefCard.Passiva, AtaqueNoInimigo.transform.parent.gameObject, false, inimigo);
                        }
                        break;
                    }
                    switch (refCard.AtivarPassivaQuando)
                    {
                    case Evento.CartaAtaque:

                        if (refCard.Alvo != AlvoPassiva.CartaAtacada)
                        {
                            this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, refCard.Alvo, true, AtaqueNoInimigo.transform.parent.gameObject);
                        }
                        else
                        {
                            this.gameObject.GetComponent <EventControllerBehaviour>().RealizarPassivaEm(refCard.Passiva, inimigo, true, AtaqueNoInimigo.transform.parent.gameObject);
                        }

                        break;
                    }

                    refCard.QuantidadeAtaque--;

                    StartCoroutine(DarDano(obj.gameObject));
                }
                break;
            }
            //atacar player inimigo
            else if (obj.gameObject.name == "CampoInimigo" && obj.gameObject.GetComponent <MesaBehaviour>().cartas.Count == 0 && AtaqueNoInimigo)
            {
                CartaNaMesa refCard = AtaqueNoInimigo.GetComponent <CartaNaMesa>();
                if (refCard.QuantidadeAtaque > 0)
                {
                    AtaqueNoInimigo.transform.parent.GetComponent <Animator>().SetTrigger("Atacar");
                    //playerid.CmdAtacarPlayer(refCard.PosicaoBaralho);
                    refCard.QuantidadeAtaque--;
                    StartCoroutine(DarDanoInimigo(obj.gameObject));
                }
            }
        }
    }