예제 #1
0
    public void AdicionarEfeito(string nome)
    {
        if (this.pv == 0)
        {
            return;
        }
        bool   jaExiste = false;
        Efeito novo     = DefinesEfeitos.efeitos[nome];

        foreach (var e in efeitos)
        {
            if (e.nome == nome)
            {
                //se efeito já existe, reiniciar a contagem da duração
                //melhoria possível - efeito pode ter uma função informando o que fazer (nada, resetar, stack)
                e.duracao = novo.duracao;
                jaExiste  = true;
            }
        }
        if (!jaExiste)
        {
            efeitos.Add(novo);
            print(nome);
            GerenciadorScript gs    = GameObject.Find("Gerenciador").GetComponent <GerenciadorScript>();
            string            texto = this.nome + " agora está sob efeito de " + novo.nome + "!";
            List <Action <GerenciadorDialogo> > mensagem = new List <Action <GerenciadorDialogo> > {
                gd => { gd.Dialogo("Efeito", texto); }
            };
            gs.mensagensPendentes.Add(mensagem);
        }
    }
예제 #2
0
 public Artefato(int id, string nome, string descricao, Efeito efeito, Sprite icone)
 {
     this.id        = id;
     this.nome      = nome;
     this.descricao = descricao;
     this.efeito    = efeito;
     this.icone     = icone;
 }
예제 #3
0
 public Item(int id, string nome, string descricao, Efeito efeito, Sprite imagem)
 {
     this.id        = id;
     this.nome      = nome;
     this.descricao = descricao;
     this.efeito    = efeito;
     this.imagem    = imagem;
     this.tipo      = EnumTipoItem.Artefato;
 }
예제 #4
0
        private void btnConverter_Click(object sender, EventArgs e)
        {
            Bitmap bdest1 = new Bitmap(image);
            Bitmap bdest2 = new Bitmap(image);

            imageBitmap = (Bitmap)image;
            Efeito.convert_to_grayDMA(imageBitmap, bdest1);
            Efeito.afinamento(bdest1, bdest2);
            p2.Image = bdest2;
        }
예제 #5
0
        private void button4_Click(object sender, EventArgs e)
        {
            Fator fator = new Fator();

            fator = Globals.GetFator(comboBox1.Text);
            if (fator != null)
            {
                Efeito efeito = new Efeito(fator, comboBox2.Text, float.Parse(textBox1.Text));
                efeitos.Add(efeito);
                lisBoxEfeitos.Items.Add(efeito.Fator.Nome + " " + efeito.Operaçao.ToString() + " " + efeito.Valor.ToString());
            }
        }
예제 #6
0
 public Especial(Efeito efeito, ImageBrush img, Cor cor) : base(img)
 {
     this.efeito     = efeito;
     base.frontImage = img;
     this.cor        = cor;
 }
예제 #7
0
 public Coringa(ImageBrush img, Efeito buycards) : base(img)
 {
     base.frontImage = img;
     this.efeito     = buycards;
 }
예제 #8
0
    public IEnumerator Efeito(Efeito efeito)
    {
        efeito.cartaQueInvoca.gameObject.transform.localScale = new Vector3(0.28f, 0.28f, 1);
        if (efeito.escolheAlvoCarta == true)
        {
            Configuracoes.admJogo.efeitoAtual = eventoAtivador.cartaQueAtivouEvento.efeito;
            Configuracoes.admJogo.DefinirEstado(usandoEfeito);
            yield return(new WaitWhile(() => efeito.cartaAlvo == null));
        }
        if (efeito.tipoEfeito == tipoUnico)
        {
            //efeito afeta apenas jogadores
            if (efeito.ativacao == ativacaoAtiva)
            {
                if (efeito.modoDeExecucao == alterarMagiaJogador)
                {
                    efeito.jogadorAlvo.magia += efeito.alteracaoMagia;
                    efeito.jogadorAlvo.CarregarInfoUIJogador();
                    efeito.jogadorQueInvoca.CarregarInfoUIJogador();
                }
                if (efeito.modoDeExecucao == alterarVidaJogador)
                {
                    if (efeito.alteracaoVida > 0)
                    {
                        StartCoroutine(efeito.jogadorAlvo.infoUI.AnimacaoCura(efeito.alteracaoVida));
                    }
                    else
                    {
                        StartCoroutine(efeito.jogadorAlvo.infoUI.AnimacaoDano(efeito.alteracaoVida));
                    }

                    yield return(new WaitForSeconds(Configuracoes.admJogo.tempoAnimacaoCuraDano));

                    efeito.jogadorAlvo.vida += efeito.alteracaoVida;
                    efeito.jogadorAlvo.CarregarInfoUIJogador();
                    efeito.jogadorQueInvoca.CarregarInfoUIJogador();
                    Configuracoes.admJogo.ChecaVidaJogadores();
                }
                if (efeito.modoDeExecucao == silenciarJogador)
                {
                    Configuracoes.admJogo.GetComponent <AudioSource>().clip = audioSilencio;
                    Configuracoes.admJogo.GetComponent <AudioSource>().Play();
                    efeito.jogadorAlvo.podeUsarEfeito = false;
                    efeito.jogadorAlvo.silenciado     = true;
                    efeito.jogadorAlvo.CarregarInfoUIJogador();
                }
                if (efeito.modoDeExecucao == alterarPoderCarta)
                {
                    if (efeito.afetaTodasCartas)
                    {
                        if (efeito.alteracaoPoder > 0)
                        {
                            foreach (InstanciaCarta c in efeito.jogadorQueInvoca.cartasBaixadas)
                            {
                                StartCoroutine(c.AnimacaoCura(efeito.alteracaoPoder));
                                c.poder += efeito.alteracaoPoder;
                                c.infoCarta.CarregarCarta(c.infoCarta.carta);
                            }
                        }
                        else if (efeito.alteracaoPoder < 0)
                        {
                            foreach (InstanciaCarta c in Configuracoes.admJogo.jogadorInimigo.cartasBaixadas)
                            {
                                if (c.podeSofrerEfeito)
                                {
                                    StartCoroutine(c.AnimacaoDano(efeito.alteracaoPoder));
                                    c.poder += efeito.alteracaoPoder;
                                    c.infoCarta.CarregarCarta(c.infoCarta.carta);
                                }
                            }
                        }
                        yield return(new WaitForSeconds(Configuracoes.admJogo.tempoAnimacaoCuraDano));

                        efeito.jogadorQueInvoca.CarregarInfoUIJogador();
                        foreach (InstanciaCarta c in Configuracoes.admJogo.jogadorInimigo.cartasBaixadas)
                        {
                            if (c.poder <= 0)
                            {
                                Configuracoes.admJogo.MatarCarta(c, c.jogadorDono);
                            }
                            if (Configuracoes.admJogo.jogadorInimigo.cartasBaixadas.Count == 0)
                            {
                                break;
                            }
                        }
                    }
                    else
                    {
                        if (!efeito.podeUsarEmSi && efeito.cartaAlvo == efeito.cartaQueInvoca)
                        {
                            yield return(null);
                        }
                        else
                        {
                            if (efeito.alteracaoPoder > 0)
                            {
                                StartCoroutine(efeito.cartaAlvo.AnimacaoCura(efeito.alteracaoPoder));
                            }
                            else
                            {
                                StartCoroutine(efeito.cartaAlvo.AnimacaoDano(efeito.alteracaoPoder));
                            }
                            efeito.cartaAlvo.poder += efeito.alteracaoPoder;
                            efeito.cartaAlvo.infoCarta.CarregarCarta(efeito.cartaAlvo.infoCarta.carta);
                            efeito.jogadorQueInvoca.CarregarInfoUIJogador();
                            if (efeito.cartaAlvo.poder <= 0)
                            {
                                Configuracoes.admJogo.MatarCarta(efeito.cartaAlvo, efeito.cartaAlvo.jogadorDono);
                            }
                        }
                    }
                    yield return(new WaitForSeconds(Configuracoes.admJogo.tempoAnimacaoCuraDano));

                    if (Configuracoes.admJogo.tutorial && efeito.name == "Aboio" && efeito.cartaAlvo.carta.name == "Boiuna")
                    {
                        aboioEmBoiuna.Raise();
                    }
                }
                if (efeito.modoDeExecucao == cartaAtacaDuasVezes)
                {
                    efeito.cartaAlvo.podeAtacarNesteTurno = true;
                }
                if (efeito.modoDeExecucao == paralisarCarta)
                {
                    if (efeito.cartaAlvo != null)
                    {
                        efeito.cartaAlvo.podeAtacarNesteTurno = false;
                    }
                }
                if (efeito.modoDeExecucao == protegerLenda)
                {
                    efeito.cartaAlvo.protegido           = true;
                    efeito.cartaAlvo.infoCarta.protegido = true;
                    efeito.cartaAlvo.podeSerAtacada      = false;
                    efeito.cartaAlvo.podeSofrerEfeito    = false;
                    Configuracoes.admJogo.GetComponent <AudioSource>().clip = audioProtegido;
                    Configuracoes.admJogo.GetComponent <AudioSource>().Play();
                    efeito.cartaAlvo.infoCarta.CarregarCarta(efeito.cartaAlvo.carta);
                }
                if (efeito.modoDeExecucao == silenciarCarta)
                {
                    efeito.cartaAlvo.podeAtacarNesteTurno = false;
                }
                if (efeito.modoDeExecucao == puxarCarta)
                {
                    Configuracoes.admJogo.PuxarCarta(efeito.jogadorQueInvoca);
                    Configuracoes.admJogo.PuxarCarta(efeito.jogadorQueInvoca);
                }
                if (efeito.modoDeExecucao == reviverCarta)
                {
                    // Debug.Log("vou reviver do cemitério");
                }
                if (efeito.cartaQueInvoca.infoCarta.carta.tipoCarta.nomeTipo == "Feitiço")
                {
                    efeito.jogadorQueInvoca.fezAlgumaAcao    = true;
                    efeito.cartaQueInvoca.jogadorDono.magia -= efeito.cartaQueInvoca.custo;
                    efeito.jogadorQueInvoca.CarregarInfoUIJogador();
                    Configuracoes.admJogo.DefinirEstado(emSeuTurno);
                    efeito.jogadorQueInvoca.ColocarCartaNoCemiterio(efeito.cartaQueInvoca);
                }
                efeito.cartaQueInvoca.efeitoUsado = true;
            }
            if (efeito.ativacao == ativacaoReativa)
            {
            }
        }
        if (efeito.tipoEfeito == tipoPassivo)
        {
        }
        efeito.cartaQueInvoca.infoCarta.CarregarCarta(efeito.cartaQueInvoca.carta);
        if (efeito.cartaAlvo != null)
        {
            efeito.cartaAlvo.infoCarta.CarregarCarta(efeito.cartaAlvo.carta);
        }

        yield return(null);
    }
예제 #9
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);
            }
        }
    }
예제 #10
0
 public Curinga(ImageBrush img, Efeito buycards, string id) : base(img, id)
 {
     base.frontImage = img;
     this.efeito     = buycards;
 }
예제 #11
0
 public void adicionarEfeito(Efeito novoEfeito)
 {
     efeitos.Add(novoEfeito);
 }