public GolpeBase[] GolpesAtivos(int nivel, GolpePersonagem[] listaGolpes) { List <GolpePersonagem> L = new List <GolpePersonagem>(); int i = 0; //int N = -1; while (i < listaGolpes.Length) { if (listaGolpes[i].NivelDoGolpe <= nivel && listaGolpes[i].NivelDoGolpe > -1) { if (L.Count < 4) { L.Add(listaGolpes[i]); } else { L[0] = L[1]; L[1] = L[2]; L[2] = L[3]; L[3] = listaGolpes[i]; } } i++; } GolpeBase[] Y = new GolpeBase[L.Count]; for (i = 0; i < L.Count; i++) { Y[i] = PegaUmGolpeG2.RetornaGolpe(L[i].Nome); } return(Y); }
protected override void EntraNoModoFinalizacao(CriatureBase C) { Estado = EstadoDeUsoDeItem.emEspera; if (GameController.g.HudM.MenuDePause.EmPause) { Finaliza(); } else if (!esqueceu) { nomesGolpes nomeDoGolpe = GolpePorAprender(C); GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpe), C.NomeEmLinguas, GolpeBase.NomeEmLinguas(nomeDoGolpe)) , 30 ); GameController.g.HudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(nomeDoGolpe)); estadoDoAprendeGolpe = EstadoDoAprendeGolpe.aprendiSemEsquecer; } else if (esqueceu) { GameController.g.StartCoroutine(TerminaDaquiAPouco()); } }
void VerifiqueSigaOuAtaque(GolpeBase GB, Atributos A) { if ((criatureDoJogador.transform.position - meuCriature.transform.position).magnitude > MOD_DISTANCIA_DE_ATAQUE * (GB.TempoDeMoveMax - GB.TempoDeMoveMin) ) { int numStatus = StatusTemporarioBase.ContemStatus(TipoStatus.amedrontado, meuCriature.MeuCriatureBase); if (numStatus > -1) { siga.ModVelocidade = 1 / (float)meuCriature.MeuCriatureBase.StatusTemporarios[numStatus].Quantificador; } else { siga.ModVelocidade = 1; } siga.Update(criatureDoJogador.transform.position); } else { siga.PareAgora(); Disparador(GB, A); } }
public void Aciona(GolpeBase g) { gameObject.SetActive(true); imgGolpe.texture = elementosDoJogo.el.RetornaMini(g.Nome); txtNomeGolpe.text = golpe.nomeEmLinguas(g.Nome); numCusto.text = g.CustoPE.ToString(); txtTipo.text = tipos.NomeEmLinguas(g.Tipo); numPoder.text = g.PotenciaCorrente.ToString(); tempoReg.text = g.TempoDeReuso.ToString() + "s"; }
public void Aciona(GolpeBase g) { gameObject.SetActive(true); imgGolpe.texture = GameController.g.El.RetornaMini(g.Nome); txtNomeGolpe.text = GolpeBase.NomeEmLinguas(g.Nome); numCusto.text = g.CustoPE.ToString(); txtTipo.text = ContraTipos.NomeEmLinguas(g.Tipo); numPoder.text = g.PotenciaCorrente.ToString(); tempoReg.text = g.TempoDeReuso.ToString() + "s"; }
protected override void AplicaIaDeAtaque() { if (PodeAtualizar) { coolDown += Time.deltaTime; } Atributos A = meuCriature.MeuCriatureBase.CaracCriature.meusAtributos; GerenciadorDeGolpes gg = meuCriature.MeuCriatureBase.GerenteDeGolpes; if (criatureDoJogador && A.PV.Corrente > 0 && coolDown > TEMPO_DE_COOLDOWN && gg.meusGolpes.Count > 0 && podeAtualizar ) { GolpeBase GB = gg.meusGolpes[gg.golpeEscolhido]; if (GB.Caracteristica == caracGolpe.colisao || GB.Caracteristica == caracGolpe.colisaoComPow) { { VerifiqueSigaOuAtaque(GB, A); } } else { Disparador(GB, A); } } else if (gg.meusGolpes.Count <= 0) { Debug.Log("lista de golpes vazia. POr que??? nivel" + meuCriature.MeuCriatureBase.CaracCriature.mNivel.Nivel); BugDaListaVazia(); } else if (A.PV.Corrente <= 0) { siga.PareAgora(); } else if (coolDown < TEMPO_DE_COOLDOWN) { AproximeEnquantoEspera(); } else if (!criatureDoJogador && !procurando) { ProcuraCriatureDoJogador(); } }
public void ColocaQuatroGolpesNosCriatures() { CriatureBase[] Cs = Manager.Dados.CriaturesAtivos.ToArray(); for (int i = 0; i < Cs.Length; i++) { GolpeBase duplicado = Cs[i].GerenteDeGolpes.meusGolpes[0]; while (Cs[i].GerenteDeGolpes.meusGolpes.Count < 4) { Cs[i].GerenteDeGolpes.meusGolpes.Add(duplicado); } } }
IEnumerator MensDeGolpeNaoAprendido() { yield return(new WaitForSecondsRealtime(0.5f)); GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.naoAprendeuGolpeNovo), C.NomeEmLinguas, GolpeBase.NomeEmLinguas(golpeNovo)) , 30 ); FinalizadoTentaAprender(false); fase = FasesDaqui.emEspera; }
IEnumerator MensDeGolpeTrocado() { yield return(new WaitForSeconds(0.5f)); PainelMensCriature.p.AtivarNovaMens( string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpeEsquecendo), oNivelado.NomeEmLinguas, oNivelado.GerenteDeGolpes.meusGolpes[indiceParaEsquecer].NomeEmLinguas(), GolpeBase.NomeEmLinguas(gp.Nome)) , 30 ); oNivelado.GerenteDeGolpes.meusGolpes[indiceParaEsquecer] = PegaUmGolpeG2.RetornaGolpe(gp.Nome); fase = FasesDoPassouDeNivel.painelAprendeuGolpeAberto; }
void VerifiqueSigaOuAtaque(GolpeBase GB, Atributos A) { if ((criatureDoJogador.transform.position - meuCriature.transform.position).magnitude > MOD_DISTANCIA_DE_ATAQUE * (GB.TempoDeMoveMax - GB.TempoDeMoveMin) ) { siga.Update(criatureDoJogador.transform.position); } else { siga.PareAgora(); Disparador(GB, A); } }
IEnumerator MensDeGolpeTrocado() { yield return(new WaitForSecondsRealtime(0.5f)); GameController.g.HudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpeEsquecendo), C.NomeEmLinguas, C.GerenteDeGolpes.meusGolpes[indiceParaEsquecer].NomeEmLinguas(), GolpeBase.NomeEmLinguas(golpeNovo)) , 26 ); C.GerenteDeGolpes.meusGolpes[indiceParaEsquecer] = PegaUmGolpeG2.RetornaGolpe(golpeNovo); FinalizadoTentaAprender(true); fase = FasesDaqui.emEspera; }
// Update is called once per frame void Update() { if (GameController.g) { GerenciadorDeGolpes gg = GameController.g.Manager.Dados.CriaturesAtivos[0].GerenteDeGolpes; GolpeBase gb = gg.meusGolpes[gg.golpeEscolhido]; if (-Time.time + gb.UltimoUso + gb.TempoDeReuso > 0) { imgDoTexto.gameObject.SetActive(true); texto.text = comandos.mostradorDeTempo(-Time.time + gb.UltimoUso + gb.TempoDeReuso, "s", false); texto.text = (texto.text == "0") ? "0." : texto.text; } else { imgDoTexto.gameObject.SetActive(false); } } }
void VerificaQualEsquecer(CriatureBase C, System.Action <bool> acao) { Estado = EstadoDeUsoDeItem.emEspera; HudManager hudM = GameController.g.HudM; nomesGolpes nomeDoGolpe = GolpePorAprender(C); hudM.H_Tenta.Aciona(C, nomeDoGolpe, string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.precisaEsquecer), C.NomeEmLinguas) , acao); hudM.Painel.AtivarNovaMens( string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.tentandoAprenderGolpe), C.NomeEmLinguas, GolpeBase.NomeEmLinguas(nomeDoGolpe)) , 24 ); hudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(nomeDoGolpe)); }
void Disparador(GolpeBase GB, Atributos A) { coolDown = TEMPO_DE_COOLDOWN; Vector3 olhe = criatureDoJogador.transform.position - meuCriature.transform.position; olhe = new Vector3(olhe.x, 0, olhe.z); meuCriature.transform.rotation = Quaternion.LookRotation(olhe); if (GB.CustoPE <= A.PE.Corrente) { AplicaGolpe(); } else { ProcureColisao(); } }
public bool Update() { switch (fase) { case FasesDoPassouDeNivel.mostrandoNivel: if (Input.GetMouseButtonDown(0)) { PainelMensCriature.p.EsconderMensagem(); gp = oNivelado.GerenteDeGolpes.VerificaGolpeDoNivel( oNivelado.NomeID, oNivelado.CaracCriature.mNivel.Nivel ); if (gp.Nome != nomesGolpes.nulo) { contadorDeTempo = 0; AprendoOuTentoAprender(); } else { return(true); } } break; case FasesDoPassouDeNivel.aprendeuGolpe: contadorDeTempo += Time.deltaTime; if (contadorDeTempo > 0.5f) { PainelMensCriature.p.AtivarNovaMens( string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpe), oNivelado.NomeEmLinguas, GolpeBase.NomeEmLinguas(gp.Nome)) , 30 ); GameController.g.HudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(gp.Nome)); fase = FasesDoPassouDeNivel.painelAprendeuGolpeAberto; } break; case FasesDoPassouDeNivel.painelAprendeuGolpeAberto: if (Input.GetMouseButtonDown(0)) { fase = FasesDoPassouDeNivel.finalizar; } break; case FasesDoPassouDeNivel.tentandoAprender: contadorDeTempo += Time.deltaTime; if (contadorDeTempo > 0.5f) { PainelMensCriature.p.AtivarNovaMens( string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.tentandoAprenderGolpe), oNivelado.NomeEmLinguas, GolpeBase.NomeEmLinguas(gp.Nome)) , 24 ); HudManager hudM = GameController.g.HudM; hudM.P_Golpe.Aciona(PegaUmGolpeG2.RetornaGolpe(gp.Nome)); hudM.H_Tenta.Aciona(oNivelado.GerenteDeGolpes.meusGolpes.ToArray(), gp.Nome, string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.precisaEsquecer), oNivelado.NomeEmLinguas) , QualGolpeEsquecer); fase = FasesDoPassouDeNivel.emEspera; } break; case FasesDoPassouDeNivel.finalizar: PainelMensCriature.p.EsconderMensagem(); GameController.g.HudM.P_Golpe.gameObject.SetActive(false); return(true); } return(false); }
void QualGolpeEsquecer(int indice) { /*observo que o indice é relacionado com os irmãos dentro do GameObject * pq originalmente foi construida para um painel responsivo * que tinha um elemento desligado que era duplicado de acordo com o número de itens */ indiceParaEsquecer = indice; if (indiceParaEsquecer < 4) { GameController.g.HudM.Confirmacao.AtivarPainelDeConfirmacao(EsquecerEsseGolpe, VoltarAsOpcoesDeEsquecer, string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.certezaEsquecer), oNivelado.GerenteDeGolpes.meusGolpes[indice].NomeEmLinguas(), GolpeBase.NomeEmLinguas(gp.Nome)) ); } else if (indiceParaEsquecer == 4) { GameController.g.HudM.Confirmacao.AtivarPainelDeConfirmacao(NaoQueroAprenderEsse, VoltarAsOpcoesDeEsquecer, string.Format(bancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.naoQueroAprenderEsse), oNivelado.NomeEmLinguas, GolpeBase.NomeEmLinguas(gp.Nome)) ); } BtnsManager.DesligarBotoes(GameController.g.HudM.H_Tenta.gameObject); }
public static GolpeBase RetornaGolpe(nomesGolpes nome) { GolpeBase retorno; switch (nome) { case nomesGolpes.rajadaDeAgua: retorno = new RajadaDeAguaG2(); break; case nomesGolpes.turboDeAgua: retorno = new TurboDeAguaG2(); break; case nomesGolpes.tapa: retorno = new TapaG2(); break; case nomesGolpes.laminaDeFolha: retorno = new LaminaDeFolhaG2(); break; case nomesGolpes.garra: retorno = new GarraG2(); break; case nomesGolpes.furacaoDeFolhas: retorno = new FuracaoDeFolhasG2(); break; case nomesGolpes.bolaDeFogo: retorno = new BolaDeFogoG2(); break; case nomesGolpes.rajadaDeFogo: retorno = new RajadaDeFogoG2(); break; case nomesGolpes.ventania: retorno = new VentaniaG2(); break; case nomesGolpes.bico: retorno = new BicoG2(); break; case nomesGolpes.ventosCortantes: retorno = new VentosCortantesG2(); break; case nomesGolpes.chicoteDeCalda: retorno = new ChicoteDeCaldaG2(); break; case nomesGolpes.gosmaDeInseto: retorno = new GosmaDeInsetoG2(); break; case nomesGolpes.gosmaAcida: retorno = new GosmaAcidaG2(); break; case nomesGolpes.psicose: retorno = new PsicoseG2(); break; case nomesGolpes.bolaPsiquica: retorno = new BolaPsiquicaG2(); break; case nomesGolpes.chicoteDeMao: retorno = new MbChicoteDeMao(); break; case nomesGolpes.dentada: retorno = new MbDentada(); break; case nomesGolpes.sobreSalto: retorno = new MbSobreSalto(); break; case nomesGolpes.agulhaVenenosa: retorno = new MbAgulhaVenenosa(); break; case nomesGolpes.ondaVenenosa: retorno = new MbOndaVenenosa(); break; case nomesGolpes.bastao: retorno = new MbBastao(); break; case nomesGolpes.pedregulho: retorno = new MbPedregulho(); break; case nomesGolpes.cascalho: retorno = new MbCascalho(); break; case nomesGolpes.cabecada: retorno = new MbCabecada(); break; case nomesGolpes.chute: retorno = new MbChute(); break; case nomesGolpes.espada: retorno = new MbEspada(); break; case nomesGolpes.chifre: retorno = new MbChifre(); break; case nomesGolpes.tempestadeDeFolhas: retorno = new MbTespestadeDeFolhas(); break; case nomesGolpes.eletricidade: retorno = new MbEletricidade(); break; case nomesGolpes.eletricidadeConcentrada: retorno = new MbEletricidadeConcentrada(); break; case nomesGolpes.tempestadeEletrica: retorno = new MbTempestadeEletrica(); break; case nomesGolpes.hidroBomba: retorno = new MbHidroBomba(); break; case nomesGolpes.tosteAtaque: retorno = new MbTosteAtaque(); break; case nomesGolpes.chuvaVenenosa: retorno = new MbChuvaVenenosa(); break; case nomesGolpes.rajadaDeTerra: retorno = new MbRajadaDeTerra(); break; case nomesGolpes.vingancaDaTerra: retorno = new MbVingancaDaTerra(); break; case nomesGolpes.cortinaDeTerra: retorno = new MbCortinaDeTerra(); break; case nomesGolpes.rajadaDeGas: retorno = new MbRajadaDeGas(); break; case nomesGolpes.bombaDeGas: retorno = new MbBombaDeGas(); break; case nomesGolpes.cortinaDeFumaca: retorno = new MbCortinaDeFumaca(); break; case nomesGolpes.anelDoOlhar: retorno = new MbAnelDoOlhar(); break; case nomesGolpes.teletransporte: retorno = new MbTeletransporte(); break; case nomesGolpes.avalanche: retorno = new MbAvalanche(); break; case nomesGolpes.multiplicar: retorno = new MbMultiplicar(); break; case nomesGolpes.sobreVoo: retorno = new MbSobreVoo(); break; case nomesGolpes.sabreDeAsa: case nomesGolpes.sabreDeBastao: case nomesGolpes.sabreDeEspada: case nomesGolpes.sabreDeNadadeira: retorno = new Sabre(nome); break; case nomesGolpes.olharMal: retorno = new OlharMal(); break; case nomesGolpes.olharEnfraquecedor: retorno = new OlharEnfraquecedor(); break; default: retorno = new GolpeBase(new ContainerDeCaracteristicasDeGolpe()); break; } return(retorno); }
public void SetarGolpe(nomesGolpes nomeG) { containerDaQuantidade.SetActive(false); imgDoDado.texture = GameController.g.El.RetornaMini(nomeG); txtDoDado.text = GolpeBase.NomeEmLinguas(nomeG); }
void UsarOuNaoUsarMenu(bool usou) { CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indiceDoEscolhido]; esqueceu = usou; if (usou) { GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(TrocouComMenu, string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.aprendeuGolpeEsquecendo), C.NomeEmLinguas, "", GolpeBase.NomeEmLinguas(GolpePorAprender(C)))); } else { GameController.g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(DesistiuDeAprenderComMenu, string.Format(BancoDeTextos.RetornaFraseDoIdioma(ChaveDeTexto.naoAprendeuGolpeNovo), C.NomeEmLinguas, GolpeBase.NomeEmLinguas(GolpePorAprender(C)))); } }
protected override void OpcaoEscolhida(int escolha) { GameController g = GameController.g; CriatureBase C = g.Manager.Dados.CriaturesAtivos[escolha]; nomesGolpes golpePorAprender = GolpePorAprender(C); indiceDoEscolhido = escolha; g.HudM.Painel.EsconderMensagem(); /* * bool foi = false; * g.HudM.Painel.EsconderMensagem(); * * if (golpePorAprender != nomesGolpes.nulo) * foi = true; * * bool jaTem = C.GerenteDeGolpes.TemEsseGolpe(golpePorAprender); */ Usara usara = VerificaUso(C); if (usara.diferenteDeNulo && !usara.jaTem) { if (C.GerenteDeGolpes.meusGolpes.Count >= 4) { VerificaQualEsquecer(C, UsarOuNaoUsar); } else { base.OpcaoEscolhida(escolha); } } else if (usara.jaTem) { g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(() => { Estado = EstadoDeUsoDeItem.finalizaUsaItem; }, string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.itens)[4], C.NomeEmLinguas, NomeEmLinguas(ID), GolpeBase.NomeEmLinguas(golpePorAprender) ) ); } else if (!usara.diferenteDeNulo) { g.HudM.UmaMensagem.ConstroiPainelUmaMensagem(() => { Estado = EstadoDeUsoDeItem.finalizaUsaItem; }, string.Format(BancoDeTextos.RetornaListaDeTextoDoIdioma(ChaveDeTexto.itens)[5], C.NomeEmLinguas, NomeBasico ) ); } g.HudM.Menu_Basico.FinalizarHud(); }
protected override void EscolhiEmQuemUsar(int indice) { indiceDoEscolhido = indice; CriatureBase C = GameController.g.Manager.Dados.CriaturesAtivos[indice]; Atributos A = C.CaracCriature.meusAtributos; Usara usara = VerificaUso(C); if (usara.diferenteDeNulo && !usara.jaTem || A.PV.Corrente <= 0) { if (C.GerenteDeGolpes.meusGolpes.Count >= 4 && A.PV.Corrente > 0) { VerificaQualEsquecer(C, UsarOuNaoUsarMenu); GameController.g.HudM.P_EscolheUsoDeItens.gameObject.SetActive(false); GameController.g.HudM.MenuDePause.EsconderPainelDeItens(); } else { EscolhiEmQuemUsar(indice, A.PV.Corrente > 0, true); } } else if (!usara.diferenteDeNulo) { MensDeUsoDeItem.MensNaoPodeAprenderGolpe(NomeBasico, C.NomeEmLinguas); } else if (usara.jaTem) { MensDeUsoDeItem.MensjaConheceGolpe(C.NomeEmLinguas, NomeEmLinguas(ID), GolpeBase.NomeEmLinguas(GolpePorAprender(C))); } }