예제 #1
0
    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();
    }
예제 #2
0
    public List <InstanciaCarta> cartasCemiterio = new List <InstanciaCarta>(); // lista de cartas no cemitério

    public void InicializarJogador()
    {
        magia                 = magiaInicial;
        vida                  = vidaInicial;
        barrasDeVida          = 3;
        baralho               = ScriptableObject.CreateInstance("Baralho") as Baralho;
        baralho.cartasBaralho = new List <string>();
        baralho.jogador       = this;
        cartasBaixadas.Clear();
        cartasMao.Clear();
        cartasCemiterio.Clear();
        lendasBaixadasNoTurno   = 0;
        feiticosBaixadosNoTurno = 0;
        podeUsarEfeito          = true;
        podeSerAtacado          = true;
        passouRodada            = false;
        fezAlgumaAcao           = false;
        silenciado = false;

        if (this == Configuracoes.admJogo.jogadorLocal)
        {
            infoUI = Configuracoes.admJogo.infoJogadorAtual;
        }
        else
        {
            infoUI = Configuracoes.admJogo.infoJogadorInimigo;
        }
        foreach (string carta in baralhoInicial.cartasBaralho)
        {
            baralho.cartasBaralho.Add(carta);
        }

        if (jogadorHumano == true)
        {
            seguradorCartas = Configuracoes.admJogo.seguradorCartasJogadorAtual;
        }
        else
        {
            seguradorCartas = Configuracoes.admJogo.seguradorCartasJogadorInimigo;
        }
        CarregarInfoUIJogador();
        PuxarCartasIniciais();
    }
예제 #3
0
    public override void Executar(float d)
    {
        if (Input.GetMouseButtonDown(0))
        {
            List <RaycastResult> resultados = Configuracoes.GetUIObjs();
            foreach (RaycastResult r in resultados)
            {
                //logica para atacar o jogador inimigo
                InfoUIJogador infoJogadorInimigo = r.gameObject.GetComponentInParent <InfoUIJogador>();
                if (infoJogadorInimigo != null)
                {
                    if (infoJogadorInimigo.jogador == Configuracoes.admJogo.jogadorInimigo)
                    {
                        Configuracoes.admJogo.jogadorAtacado = Configuracoes.admJogo.jogadorInimigo;
                        Configuracoes.admJogo.DefinirEstado(jogadorEmSeuTurno);
                        Configuracoes.RegistrarEvento("O alvo " + Configuracoes.admJogo.jogadorAtacado.nomeJogador + " foi selecionado para ser atacado", Color.white);
                        if (gridAreaDropavel != null)
                        {
                            gridAreaDropavel.valor.GetComponent <Image>().raycastTarget = true;
                        }
                        Configuracoes.admJogo.StartCoroutine(Configuracoes.admJogo.Atacar());
                        Configuracoes.admJogo.jogadorAtual.fezAlgumaAcao = true;
                    }
                    else
                    {
                        Configuracoes.admJogo.TocarSomNaoPode();
                    }
                    return;
                }
                //logica para atacar uma carta
                InstanciaCarta instCarta = r.gameObject.GetComponentInParent <InstanciaCarta>();
                if (instCarta != null)
                {
                    if (instCarta == Configuracoes.admJogo.cartaAtacante)
                    {
                        Configuracoes.admJogo.cartaAtacante.gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 1);
                        Configuracoes.RegistrarEvento("O jogador desistiu de atacar", Color.white);
                        Configuracoes.admJogo.estadoAtual = jogadorEmSeuTurno;
                        return;
                    }

                    if (instCarta.podeSerAtacada)
                    {
                        Configuracoes.admJogo.cartaAtacada = instCarta;
                        Configuracoes.admJogo.DefinirEstado(jogadorEmSeuTurno);
                        cartaFoiAtacada.cartaQueAtivouEvento   = instCarta;
                        Configuracoes.admEfeito.eventoAtivador = cartaFoiAtacada;
                        cartaFoiAtacada.Raise();
                        Configuracoes.admJogo.StartCoroutine(Configuracoes.admJogo.Atacar());
                        Configuracoes.admJogo.jogadorAtual.fezAlgumaAcao = true;
                        if (gridAreaDropavel != null)
                        {
                            gridAreaDropavel.valor.GetComponent <Image>().raycastTarget = true;
                        }
                        return;
                    }
                    else
                    {
                        Configuracoes.admJogo.TocarSomNaoPode();
                    }
                }
            }

            if (gridAreaDropavel != null)
            {
                gridAreaDropavel.valor.GetComponent <Image>().raycastTarget = true;
            }
            Configuracoes.admJogo.cartaAtacante.gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 1);
            Configuracoes.admJogo.estadoAtual = jogadorEmSeuTurno;
        }
    }
예제 #4
0
    public override void Executar(float d)
    {
        List <RaycastResult> resultados = Configuracoes.GetUIObjs();

        foreach (RaycastResult r in resultados)
        {
            InfoUIJogador infoJogadorAlvo = r.gameObject.GetComponentInParent <InfoUIJogador>();
            IClicavel     carta           = r.gameObject.GetComponentInParent <InstanciaCarta>();

            if (infoJogadorAlvo != null)
            {
                if (Configuracoes.admJogo.estadoAtual.name == "Atacando" || Configuracoes.admJogo.estadoAtual.name == "Usando Efeito")
                {
                    if (infoJogadorAlvo.jogador == Configuracoes.admJogo.jogadorInimigo)
                    {
                        if (Configuracoes.admJogo.estadoAtual.name == "Atacando")
                        {
                            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoVerde);
                            return;
                        }
                        if (Configuracoes.admJogo.estadoAtual.name == "Usando Efeito" && Configuracoes.admJogo.efeitoAtual.alteracaoVida < 0)
                        {
                            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoVerde);
                        }
                        else
                        {
                            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoVermelho);
                        }
                        return;
                    }
                    else
                    {
                        if (Configuracoes.admJogo.estadoAtual.name == "Usando Efeito" && Configuracoes.admJogo.efeitoAtual.alteracaoVida > 0)
                        {
                            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoVerde);
                        }
                        else
                        {
                            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoVermelho);
                        }
                        return;
                    }
                }
            }
            //se acertou algo, mas não é uma carta
            if (carta != null && Configuracoes.admJogo.estadoAtual != null)
            {
                carta.AoOlhar();
                return;
            }
        }
        if (resultados.Count <= 0)
        {
            if (cartaAtual.valor != null)
            {
                cartaAtual.valor.gameObject.SetActive(true);
                cartaAtual.valor = null;
            }

            if (!Configuracoes.cartaRecemJogada)
            {
                aoPararDeOlharCarta.Raise();
            }
        }
        if (cartaAtual.valor != null)
        {
            cartaAtual.valor.gameObject.SetActive(true);
            cartaAtual.valor = null;
        }
        if (Configuracoes.admJogo.estadoAtual.name == "Em Seu Turno" && Configuracoes.admCursor.sobreBotao == false)
        {
            Configuracoes.admCursor.MudarSprite(cursorIdle);
        }
        if (Configuracoes.admJogo.estadoAtual.name == "Atacando" || Configuracoes.admJogo.estadoAtual.name == "Usando Efeito")
        {
            Configuracoes.admCursor.MudarSprite(Configuracoes.admJogo.cursorAlvoCinza);
        }
    }