public void RealizarPassivaEm(PassivaComulativa efeito, AlvoPassiva alvo, bool player1, GameObject realizador)
    {
        EffectBase a = Factory.Criar((int)(efeito.efeito));

        a.quantidadeDoEfeito = efeito.quantidade;
        switch (alvo)
        {
        case AlvoPassiva.CartaAdversaria:
            a.RealizarEfeitoEm(player1?CartasInimigo.cartas:CartasPlayer.cartas, realizador);
            break;

        case AlvoPassiva.CartaAliada:
            a.RealizarEfeitoEm(player1?  CartasPlayer.cartas: CartasInimigo.cartas, realizador);
            break;

        case AlvoPassiva.TodasAsCartas:
            //garantir que nos dois pc rodem as passivas na mesma ordem
            // if(!playerid.isplayer2)
            // {
            //     a.RealizarEfeitoEm(CartasPlayer.cartas,realizador);
            //     a.RealizarEfeitoEm(CartasInimigo.cartas,realizador);
            // }
            // else
            // {
            //     a.RealizarEfeitoEm(CartasInimigo.cartas,realizador);
            //     a.RealizarEfeitoEm(CartasPlayer.cartas,realizador);
            // }
            break;

        case AlvoPassiva.CartaAleatoriaAliada:
            //   if(/*!player1 && CartasInimigo.cartas.Count > 0 ||*/CartasPlayer.cartas.Count > 0)
            //   {
            //       if(rodandoPassivasCampoProprio)
            //       {
            //         var rnd = Random.Range(0,CartasPlayer.cartas.Count);
            //         a.RealizarEfeitoEm(CartasPlayer.cartas[rnd],realizador);
            //         playerid.CmdEfeitoRealizado(false,rnd,efeito.quantidade,(int)(efeito.efeito));
            //       }
            //   }

            break;

        case AlvoPassiva.CartaAleatoriaAdversaria:
            //   if(CartasInimigo.cartas.Count > 0 /*|| !player1 && CartasPlayer.cartas.Count > 0*/)
            //   {
            //       if(rodandoPassivasCampoProprio)
            //       {
            //         var rnd = Random.Range(0,CartasInimigo.cartas.Count);
            //         a.RealizarEfeitoEm(CartasInimigo.cartas[rnd],realizador);
            //         playerid.CmdEfeitoRealizado(true,rnd,efeito.quantidade,(int)(efeito.efeito));
            //       }
            //   }
            break;

        case AlvoPassiva.Carta:
            a.RealizarEfeitoEm(realizador, realizador);
            break;
        }
    }
Beispiel #2
0
 public void definirComeco(float ataq, float def, Sprite img, PassivaComulativa passiva, Evento ativarPassivaQuando, AlvoPassiva alvoDaPassiva)
 {
     Imagem = img;
     AtivarPassivaQuando = ativarPassivaQuando;
     Passiva             = passiva;
     Alvo   = alvoDaPassiva;
     Defesa = def;
     Ataque = ataq;
 }
Beispiel #3
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;
        }
    }