Exemple #1
0
    IEnumerator FadeVencedorTurno(SeguradorDeJogador jogadorVencedorTurno)
    {
        aoPararDeOlharCarta.Raise();
        GameObject.Find("/Screen Overlay Canvas/Interface do Usuário/Fundo turno/Turno").GetComponent <Text>().color = jogadorVencedorTurno.corJogador;
        GameObject.Find("/Screen Overlay Canvas/Interface do Usuário/Fundo turno/Turno").GetComponent <Text>().text  = jogadorVencedorTurno.nomeJogador + "\nVenceu a Rodada";
        ImagemTextoTurno.GetComponent <Image>().sprite = jogadorVencedorTurno.textoTurnoImage;
        ImagemTextoTurno.gameObject.SetActive(true);
        pause = true;
        yield return(new WaitForSeconds(2));

        pause = false;
        ImagemTextoTurno.gameObject.SetActive(false);
        if (jogadorInimigo.barrasDeVida <= 0)
        {
            StartCoroutine(FimDeJogo(jogadorAtual));
        }
        if (jogadorAtual.barrasDeVida <= 0)
        {
            StartCoroutine(FimDeJogo(jogadorInimigo));
        }
        TrocarJogadorAtual();
        jogadorAtual.rodada.IniciarRodada();
        jogadorInimigo.rodada.IniciarRodada();
        if (jogadorAtual != jogadorVencedorTurno)
        {
            TrocarJogadorAtual();
        }
    }
    public void CarregarCartasJogador(SeguradorDeJogador seguradorJogador, InfoUIJogador InfoUIJogador)
    {
        foreach (InstanciaCarta c in seguradorJogador.cartasBaixadas)
        {
            Configuracoes.DefinirPaiCarta(c.infoCarta.gameObject.transform, gridCartasBaixadas.valor.transform);
        }
        foreach (InstanciaCarta c in seguradorJogador.cartasMao)
        {
            Configuracoes.DefinirPaiCarta(c.infoCarta.gameObject.transform, gridMao.valor.transform);
        }
        foreach (InstanciaCarta c in seguradorJogador.cartasCemiterio)
        {
            Configuracoes.DefinirPaiCarta(c.infoCarta.gameObject.transform, gridCemiterio.valor.transform);
            Vector3 posicao = Vector3.zero;
            posicao.x = seguradorJogador.cartasCemiterio.Count * 10;
            posicao.z = seguradorJogador.cartasCemiterio.Count * 10;

            c.transform.localPosition = posicao;
            c.transform.localRotation = Quaternion.identity;
            c.transform.localScale    = Vector3.one;
        }
        foreach (InstanciaCarta c in Configuracoes.admJogo.jogadorInimigo.cartasMao)
        {
            c.transform.Find("Fundo da Carta").gameObject.SetActive(true);
        }
        foreach (InstanciaCarta c in Configuracoes.admJogo.jogadorAtual.cartasMao)
        {
            c.transform.Find("Fundo da Carta").gameObject.SetActive(false);
        }
        seguradorJogador.infoUI = InfoUIJogador;
        seguradorJogador.CarregarInfoUIJogador();
    }
Exemple #3
0
    public IEnumerator FimDeJogo(SeguradorDeJogador jogadorVencedor)
    {
        telaFimDeJogo.gameObject.SetActive(true);
        telaFimDeJogo.transform.Find("Retrato Jogador").GetComponent <Image>().sprite = jogadorVencedor.retratoJogador;
        telaFimDeJogo.transform.Find("Moldura").GetComponent <Image>().sprite         = jogadorVencedor.moldura;
        yield return(new WaitForSeconds(2));

        telaFimDeJogo.gameObject.SetActive(false);
        Pausar();
    }
Exemple #4
0
 public override void Executar(SeguradorDeJogador jogador)
 {
     foreach (InstanciaCarta instCarta in jogador.cartasBaixadas)
     {
         if (instCarta.podeAtacarNesteTurno == false)
         {
             instCarta.podeAtacarNesteTurno = true;
             instCarta.gameObject.transform.Find("Sombra").gameObject.SetActive(false);
             instCarta.gameObject.transform.Find("Frente da Carta").GetComponent <Image>().sprite = instCarta.infoCarta.spritePodeAtacar;
         }
     }
 }
Exemple #5
0
    public IEnumerator FadeTextoTurno(SeguradorDeJogador jogador)
    {
        aoPararDeOlharCarta.Raise();
        if (jogador.passouRodada == false)
        {
            GameObject.Find("/Screen Overlay Canvas/Interface do Usuário/Fundo turno/Turno").GetComponent <Text>().color = jogador.corJogador;
            GameObject.Find("/Screen Overlay Canvas/Interface do Usuário/Fundo turno/Turno").GetComponent <Text>().text  = "Turno de\n" + jogador.nomeJogador;
            ImagemTextoTurno.GetComponent <Image>().sprite = jogador.textoTurnoImage;
            ImagemTextoTurno.gameObject.SetActive(true);
            pause = true;
            yield return(new WaitForSeconds(1));

            pause = false;
            ImagemTextoTurno.gameObject.SetActive(false);
        }
    }
Exemple #6
0
 public void MatarCarta(InstanciaCarta c, SeguradorDeJogador jogador)
 {
     if (jogador.cartasBaixadas.Count == 0)
     {
         return;
     }
     foreach (InstanciaCarta carta in jogador.cartasBaixadas)
     {
         if (jogador.cartasBaixadas.Contains(c))
         {
             c.gameObject.SetActive(false);
             jogador.ColocarCartaNoCemiterio(c);
             jogador.cartasBaixadas.Remove(c);
             break;
         }
     }
 }
Exemple #7
0
    public void TrocarJogadorAtual()
    {
        //se na hora da troca o jogador de baixo for o Player
        if (jogadorAtual == jogadorLocal)
        {
            jogadorAtual   = jogadorInimigo;
            jogadorInimigo = jogadorLocal;
        }
        else
        {
            jogadorAtual   = jogadorLocal;
            jogadorInimigo = jogadorIA;
        }
        jogadorAtual.seguradorCartas   = seguradorCartasJogadorAtual;
        jogadorInimigo.seguradorCartas = seguradorCartasJogadorInimigo;
        seguradorCartasJogadorAtual.CarregarCartasJogador(jogadorAtual, infoJogadorAtual);
        seguradorCartasJogadorInimigo.CarregarCartasJogador(jogadorInimigo, infoJogadorInimigo);

        jogadorAtual.rodada.turno.IniciarTurno();
    }
    public override bool condicaoValida()
    {
        AdmJogo            admJogo      = AdmJogo.singleton;
        SeguradorDeJogador jogadorAtual = admJogo.jogadorAtual;
        int cont = jogadorAtual.cartasBaixadas.Count;

        for (int i = 0; i < jogadorAtual.cartasBaixadas.Count; i++)
        {
            if (!jogadorAtual.cartasBaixadas[i].podeAtacarNesteTurno)
            {
                cont--;
            }
        }

        if (cont > 0)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Exemple #9
0
    public IEnumerator Atacar()
    {
        //Atacar uma carta
        if (cartaAtacada != null && cartaAtacante != null)
        {
            cartaAtacante.gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 1);
            int poderCartaAtacanteAntes = cartaAtacante.poder;
            int poderCartaAtacadaAntes  = cartaAtacada.poder;
            StartCoroutine(cartaAtacada.AnimacaoDano(poderCartaAtacanteAntes * -1));
            StartCoroutine(cartaAtacante.AnimacaoDano(poderCartaAtacadaAntes * -1));
            yield return(new WaitForSeconds(tempoAnimacaoCuraDano));

            cartaAtacada.poder  -= poderCartaAtacanteAntes;
            cartaAtacante.poder -= poderCartaAtacadaAntes;
            int poderCartaAtacanteDepois = cartaAtacante.poder;
            int poderCartaAtacadaDepois  = cartaAtacada.poder;

            if (poderCartaAtacadaDepois <= 0)
            {
                cartaMatou.cartaQueAtivouEvento        = cartaAtacante;
                Configuracoes.admEfeito.eventoAtivador = cartaMatou;
                cartaMatou.Raise();
                MatarCarta(cartaAtacada, cartaAtacada.jogadorDono);
            }
            if (poderCartaAtacanteDepois <= 0)
            {
                MatarCarta(cartaAtacante, cartaAtacante.jogadorDono);
            }
            cartaAtacante.infoCarta.CarregarCarta(cartaAtacante.infoCarta.carta);
            cartaAtacada.infoCarta.CarregarCarta(cartaAtacada.infoCarta.carta);
            if (tutorial && cartaAtacante.carta.name == "Boiuna" && cartaAtacada.carta.name == "Lobisomem")
            {
                boiunaAtacouLobis.Raise();
            }
            cartaAtacante.podeAtacarNesteTurno = false;
            cartaAtacada  = null;
            cartaAtacante = null;
        }
        //Atacar um jogador
        if (cartaAtacante != null && jogadorAtacado != null)
        {
            cartaAtacante.gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 1);
            int poderCartaAtacanteAntes = cartaAtacante.poder;
            StartCoroutine(jogadorAtacado.infoUI.AnimacaoDano(poderCartaAtacanteAntes * -1));
            StartCoroutine(cartaAtacante.AnimacaoDano(-1));
            yield return(new WaitForSeconds(tempoAnimacaoCuraDano));

            jogadorAtacado.vida -= poderCartaAtacanteAntes;
            cartaAtacante.poder--;
            jogadorAtacado.infoUI.AtualizarVida();
            cartaAtacante.infoCarta.CarregarCarta(cartaAtacante.infoCarta.carta);
            if (cartaAtacante.poder <= 0)
            {
                MatarCarta(cartaAtacante, cartaAtacante.jogadorDono);
            }
            if (tutorial && cartaAtacante.carta.name == "Boitatá")
            {
                boitataAtacouJogador.Raise();
            }
            cartaAtacante.podeAtacarNesteTurno = false;
            cartaAtacante  = null;
            jogadorAtacado = null;
            ChecaVidaJogadores();
        }
        yield return(null);
    }
Exemple #10
0
    public void PuxarCarta(SeguradorDeJogador jogador)
    {
        if (jogador.cartasMao.Count < numMaxCartasMao)
        {
            AdmRecursos     ar        = Configuracoes.GetAdmRecursos();                                                      //precisamos acessar o admRecursos
            GameObject      carta     = Instantiate(prefabCarta) as GameObject;                                              //instanciamos a carta de acordo com o prefab
            ExibirInfoCarta e         = carta.GetComponent <ExibirInfoCarta>();                                              //pegamos todas as informações atribuidas de texto e posição dela
            InstanciaCarta  instCarta = carta.GetComponent <InstanciaCarta>();
            e.CarregarCarta(ar.obterInstanciaCarta(jogador.baralho.cartasBaralho[jogador.baralho.cartasBaralho.Count - 1])); //e por fim dizemos que os textos escritos serão os da carta na mão do jogador
            instCarta.carta = e.carta;
            instCarta.SetPoderECusto();
            e.CarregarCarta(instCarta.carta);
            instCarta.logicaAtual = jogador.logicaMao;//define a lógica pra ser a lógica da mão
            if (instCarta.carta.efeito != null)
            {
                Efeito novoEfeito = ScriptableObject.CreateInstance("Efeito") as Efeito;
                // novoEfeito = instCarta.carta.efeito;
                novoEfeito.name = instCarta.carta.efeito.name;
                novoEfeito.afetaApenasSeuJogador = instCarta.carta.efeito.afetaApenasSeuJogador;
                novoEfeito.afetaTodasCartas      = instCarta.carta.efeito.afetaTodasCartas;
                novoEfeito.alteracaoMagia        = instCarta.carta.efeito.alteracaoMagia;
                novoEfeito.alteracaoPoder        = instCarta.carta.efeito.alteracaoPoder;
                novoEfeito.alteracaoVida         = instCarta.carta.efeito.alteracaoVida;
                novoEfeito.apenasJogador         = instCarta.carta.efeito.apenasJogador;
                novoEfeito.ativacao         = instCarta.carta.efeito.ativacao;
                novoEfeito.cartaAlvo        = instCarta.carta.efeito.cartaAlvo;
                novoEfeito.cartaQueInvoca   = instCarta;
                novoEfeito.condicaoAtivacao = instCarta.carta.efeito.condicaoAtivacao;
                novoEfeito.escolheAlvoCarta = instCarta.carta.efeito.escolheAlvoCarta;
                novoEfeito.eventoAtivador   = instCarta.carta.efeito.eventoAtivador;
                novoEfeito.jogadorAlvo      = instCarta.carta.efeito.jogadorAlvo;
                novoEfeito.jogadorQueInvoca = jogador;
                novoEfeito.modoDeExecucao   = instCarta.carta.efeito.modoDeExecucao;
                novoEfeito.podeUsarEmSi     = instCarta.carta.efeito.podeUsarEmSi;
                novoEfeito.tipoEfeito       = instCarta.carta.efeito.tipoEfeito;
                instCarta.efeito            = novoEfeito;

                if (instCarta.efeito.apenasJogador)
                {
                    //afeta vc
                    if (instCarta.efeito.afetaApenasSeuJogador)
                    {
                        instCarta.efeito.jogadorAlvo = jogador;
                    }
                    else//afeta o inimigo
                    {
                        if (jogador == jogadorIA)
                        {
                            instCarta.efeito.jogadorAlvo = jogadorLocal;
                        }
                        else
                        {
                            instCarta.efeito.jogadorAlvo = jogadorIA;
                        }
                    }
                }
            }
            instCarta.jogadorDono = jogador;
            Configuracoes.DefinirPaiCarta(carta.transform, jogador.seguradorCartas.gridMao.valor);//joga as cartas fisicamente na mão do jogador
            jogador.cartasMao.Add(instCarta);
            jogador.baralho.cartasBaralho.RemoveAt(jogador.baralho.cartasBaralho.Count - 1);
            if (jogador == jogadorAtual)
            {
                carta.transform.Find("Fundo da Carta").gameObject.SetActive(false);
            }

            else
            {
                carta.transform.Find("Fundo da Carta").gameObject.SetActive(true);
            }
        }
    }
Exemple #11
0
 public abstract void Executar(SeguradorDeJogador jogador);