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(); }
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(); }
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; } } }
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); } }
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; } } }
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); } }
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); }
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); } } }
public abstract void Executar(SeguradorDeJogador jogador);