public void aplicaGolpe(Criature daki) { golpe G = daki.Golpes[daki.golpeEscolhido]; System.GC.Collect(); Resources.UnloadUnusedAssets(); /* * print(G.UltimoUso+" : "+ Time.time+" : "+heroi.tempoNoJogo+" : "+G.TempoReuso); * * print(G.UltimoUso < Time.time - G.TempoReuso); */ if (G.UltimoUso < Time.time - G.TempoReuso) { daki.cAtributos[1].Corrente -= daki.Golpes[daki.golpeEscolhido].CustoPE; G.UltimoUso = Time.time; acaoDeGolpe acao = gameObject.AddComponent <acaoDeGolpe> (); acao.ativa = G; //acao.emissor = emissor; } else if (gameObject.GetComponent <movimentoBasico>()) { mensagemEmLuta mL = GetComponent <mensagemEmLuta>(); if (mL) { mL.fechador(); } mL = gameObject.AddComponent <mensagemEmLuta>(); mL.mensagem = string.Format(textos[1], mostradorDeTempo(G.UltimoUso - (Time.time - G.TempoReuso))); } }
void aprendizadoDeGolpe(nivelGolpe novoGolpe) { golpeAprendido = new pegaUmGolpe(novoGolpe.nome).OGolpe(); if (fim.vencedor.Golpes.Length < 4) { List <golpe> G = new List <golpe>(); G.AddRange(fim.vencedor.Golpes); G.Add(new pegaUmGolpe(novoGolpe.nome).OGolpe()); G[G.Count - 1].Basico += (uint)novoGolpe.mod; G[G.Count - 1].Corrente += (uint)novoGolpe.mod; G[G.Count - 1].Maximo += (uint)(2 * novoGolpe.mod); fim.vencedor.Golpes = G.ToArray(); fim.conteudo = "aprendeuEsse"; fim.aprendeuEsse = G[G.Count - 1]; Invoke("aprendeuGolpe", 0.15f); fim.entrando = false; passoDaAnimaInicial = 0; } else { fim.conteudo = "podeAprender"; fim.aprendeuEsse = golpeAprendido; Invoke("podeAprenderEsse", 0.15f); fim.entrando = false; passoDaAnimaInicial = 0; } }
public static Vector3 useOEmissor(Criature Y, golpe G, Transform T) { float maisEmissao = 0; float acimaDoChao = 0; if (Y.distanciaEmissora != null) { if (Y.distanciaEmissora.ContainsKey(G.nomeID)) { maisEmissao = Y.distanciaEmissora[G.nomeID]; } } if (Y.acimaDoChao != null) { if (Y.acimaDoChao.ContainsKey(G.nomeID)) { acimaDoChao = Y.acimaDoChao[G.nomeID]; } } Vector3 posInicial = T.Find(Y.emissor).position + T.forward * (G.DistanciaDeEmissao + maisEmissao) + Vector3.up * acimaDoChao; return(posInicial); }
public static void aplicaStatus(Transform T,Criature X,golpe ativa,Criature Y) { int numStatus; switch(ativa.nomeID) { case nomesGolpes.agulhaVenenosa: case nomesGolpes.ondaVenenosa: case nomesGolpes.chuvaVenenosa: if(recebeStatus(X,ativa,Y)) { envenenado e; numStatus = statusTemporarioBase.contemStatus(tipoStatus.envenenado,X); if(numStatus==-1) { e = T.gameObject.AddComponent<envenenado>(); e.forcaDoDano = 2; }else { e = T.GetComponent<envenenado>(); e.forcaDoDano++; e.tempoAteOProximoApply*=(14f/15f); X.statusTemporarios[numStatus].forcaDoDano++; X.statusTemporarios[numStatus].tempoAteOProximoApply*=(14f/15f); } } break; case nomesGolpes.olharMal: amedrontado a; numStatus = statusTemporarioBase.contemStatus(tipoStatus.amedrontado,X); if(numStatus == -1) { a = T.gameObject.AddComponent<amedrontado>(); a.tempoAteOProximoApply = 37; a.oAfetado = X; }else { a = T.GetComponent<amedrontado>(); a.tempoAteOProximoApply += 36; } break; case nomesGolpes.olharParalisante: print("aqyui"); paralisado p; numStatus = statusTemporarioBase.contemStatus(tipoStatus.paralisado,X); if(numStatus == -1) { p = T.gameObject.AddComponent<paralisado>(); p.tempoAteOProximoApply = 30; p.oAfetado = X; }else { p = T.GetComponent<paralisado>(); p.tempoAteOProximoApply += 25; } break; } }
public static string nomeEmLinguas(golpe nomeGolpe) { // Debug.Log(itemX.ID); if (heroi.lingua != "pt-br") { return(bancoDeTextos.falacoes[heroi.lingua]["listaDeGolpes"][(int)nomeGolpe.nomeID]); } else { return(nomeGolpe.Nome); } }
public static Vector3 ataqueEmissor( movimentoBasico mB, IA_inimigo IA, Transform T, out Vector3 posInicial, Animator A, golpe G, Criature Y) { acaoDeGolpeRegenerate.paraliseNoTempo(mB, IA); Vector3 forwardInicial = T.forward; posInicial = useOEmissor(Y, G, T); acaoDeGolpeRegenerate.anime("emissor", A); return(forwardInicial); }
public static void ColocaAddView( Vector3 posInicial, Vector3 forwardInicial, Criature Y, golpe G, Transform T, string tipo, float tempoDeAtraso, acaoDeGolpe aG, string nomeProjetil, float velocidade, string impacto = "impactoComum", float tempoDeGolpe = 10, float tempoDeScript = 2) { if (tempoDeAtraso > 0) { useOEmissor(Y, G, T); } GameObject KY = aG.instancieEDestrua(posInicial, forwardInicial, nomeProjetil, tempoDeGolpe, tempoDeScript); Iprojetil proj = null; switch (tipo) { case "rigido": proj = KY.AddComponent <projetilRigido>(); break; case "basico": proj = KY.AddComponent <projetil>(); break; case "status": proj = KY.AddComponent <projetilStatusExpansivel>(); break; case "direcional": projetilDirecional projD = KY.AddComponent <projetilDirecional>(); projD.alvo = (aG.gameObject.name == "inimigo")?GameObject.Find("CriatureAtivo"):GameObject.Find("inimigo"); proj = projD; break; } proj.velocidadeProjetil = velocidade; proj.noImpacto = impacto; proj.dono = aG.gameObject; }
protected golpe[] golpesAtivos(uint nivel, nivelGolpe[] listaGolpes) { List <nivelGolpe> L = new List <nivelGolpe> (); int i = 0; //int N = -1; while (i < listaGolpes.Length) { if (listaGolpes[i].nivel <= nivel && listaGolpes[i].nivel > -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++; } golpe[] Y = new golpe[L.Count]; for (i = 0; i < L.Count; i++) { Y[i] = new pegaUmGolpe(L[i].nome).OGolpe(); Y[i].taxaDeUso = L[i].taxaDeUso; Y[i].mod = L[i].mod; } return(Y); }
// Update is called once per frame protected void Update() { if (!pausaJogo.pause) { coolDown -= Time.deltaTime; if (alvo != null && podeAtualizar && coolDown < 0 && C.cAtributos[0].Corrente > 0 && ( noChao(C.distanciaFundamentadora + 0.5f) || C.Golpes[C.golpeEscolhido].CaracGolpe == caracGolpe.colisaoComPow || C.Golpes[C.golpeEscolhido].CaracGolpe == caracGolpe.colisao) ) { if (criatureAlvo.cAtributos[0].Corrente > 0) { golpe GG = C.Golpes[C.golpeEscolhido]; //print(GG.CaracGolpe+" : "+GG.Nome); if (GG.CaracGolpe == caracGolpe.colisao) { if (statusTemporarioBase.contemStatus(tipoStatus.amedrontado, C) > -1) { afastamento(); } else //print((alvo.position-transform.position).magnitude+" : "+(GG.tempoMoveMax-GG.tempoMoveMin)); if ((alvo.position - transform.position).magnitude > 18f * (GG.tempoMoveMax - GG.tempoMoveMin) ) { retornaOMovimento(); } else { if (siga != null) { siga.enabled = false; if (nav == null) { nav = GetComponent <NavMeshAgent>(); } nav.enabled = false; animator.SetFloat("velocidade", 0); } disparador(); } } else { disparador(); } } } else if (C.cAtributos[0].Corrente <= 0 && GameObject.Find("CriatureAtivo")) { paraMovimento(); animator.CrossFade("cair", 0); } else if (!podeAtualizar) // essas linhas estavam comentadas, descomentei para corrigir o Bug que fazia { paraMovimento(); // o inimigo atacar mesmo tomando dano (nao sei se contribuiu para a soluçao) } else if (GameObject.Find("CriatureAtivo")) { defineAlvo(); } } }
static bool recebeStatus(Criature X/*O que recebe o Status*/,golpe ativa,Criature Y) { bool retorno = false; switch(ativa.nomeID) { case nomesGolpes.agulhaVenenosa: case nomesGolpes.ondaVenenosa: case nomesGolpes.chuvaVenenosa: float ff = ativa.Corrente* Mathf.Max(1, Random.Range(0.75f,1f)*Y.cAtributos[(int)nomesAtributos.Poder].Corrente- Random.Range(0,0.75f)*X.cAtributos[(int)nomesAtributos.Defesa].Corrente); if(X.contraTipos[(int)nomeTipos.Veneno].Mod*ff+Random.Range(0,100)>80) retorno = true; break; } return retorno; }
protected golpe[] golpesAtivos(uint nivel,nivelGolpe[] listaGolpes) { List<nivelGolpe> L = new List<nivelGolpe> (); int i = 0; //int N = -1; while(i<listaGolpes.Length) { if(listaGolpes[i].nivel<=nivel && listaGolpes[i].nivel>-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++; } golpe[] Y = new golpe[L.Count]; for(i = 0;i<L.Count;i++) { Y[i] = new pegaUmGolpe(L[i].nome).OGolpe(); Y[i].taxaDeUso = L[i].taxaDeUso; Y[i].mod = L[i].mod; } return Y; }
public pegaUmGolpe(nomesGolpes nome) { switch(nome) { case nomesGolpes.rajadaDeAgua: G = new rajadaDeAgua(); break; case nomesGolpes.turboDeAgua: G = new turboDeAgua(); break; case nomesGolpes.bolaDeFogo: G = new bolaDeFogo(); break; case nomesGolpes.rajadaDeFogo: G = new rajadaDeFogo(); break; case nomesGolpes.laminaDeFolha: G = new laminaDeFolha(); break; case nomesGolpes.furacaoDeFolhas: G = new furacaoDeFolhas(); break; case nomesGolpes.chifre: G = new Chifre(); break; case nomesGolpes.tapa: G = new tapa(); break; case nomesGolpes.garra: G = new garra(); break; case nomesGolpes.chicoteDeMao: G = new chicoteDeMao(); break; case nomesGolpes.dentada: G = new dentada(); break; case nomesGolpes.bico: G = new bico(); break; case nomesGolpes.ventania: G = new ventania(); break; case nomesGolpes.ventosCortantes: G = new ventosCortantes(); break; case nomesGolpes.gosmaDeInseto: G = new gosmaDeInseto(); break; case nomesGolpes.gosmaAcida: G = new gosmaAcida(); break; case nomesGolpes.chicoteDeCalda: G = new chicoteDeCalda(); break; case nomesGolpes.cabecada: G = new cabecada(); break; case nomesGolpes.eletricidade: G = new eletricidade(); break; case nomesGolpes.eletricidadeConcentrada: G = new eletricidadeConcentrada(); break; case nomesGolpes.agulhaVenenosa: G = new agulhaVenenosa(); break; case nomesGolpes.ondaVenenosa: G = new ondaVenenosa(); break; case nomesGolpes.chute: G = new chute(); break; case nomesGolpes.espada: G = new espada(); break; case nomesGolpes.sobreSalto: G = new sobreSalto(); break; case nomesGolpes.cascalho: G = new cascalho(); break; case nomesGolpes.pedregulho: G = new pedregulho(); break; case nomesGolpes.rajadaDeTerra: G = new rajadaDeTerra(); break; case nomesGolpes.energiaDeGarras: G = new energiaDeGarras(); break; case nomesGolpes.vingancaDaTerra: G = new vingancaDaTerra(); break; case nomesGolpes.psicose: G = new psicose(); break; case nomesGolpes.hidroBomba: G = new hidroBomba(); break; case nomesGolpes.bolaPsiquica: G = new bolaPsiquica(); break; case nomesGolpes.tosteAtaque: G = new tosteAtaque(); break; case nomesGolpes.tempestadeDeFolhas: G = new tempestadeDeFolhas(); break; case nomesGolpes.chuvaVenenosa: G = new chuvaVenenosa(); break; case nomesGolpes.multiplicar: G = new multiplicar(); break; case nomesGolpes.tempestadeEletrica: G = new tempestadeEletrica(); break; case nomesGolpes.avalanche: G = new Avalanche(); break; case nomesGolpes.olharMal: G = new olharMal(); break; case nomesGolpes.anelDoOlhar: G = new anelDoOlhar(); break; case nomesGolpes.cortinaDeTerra: G = new cortinaDeTerra(); break; case nomesGolpes.teletransporte: G = new Teletransporte(); break; case nomesGolpes.olharParalisante: G = new olharParalisante(); break; case nomesGolpes.sobreVoo: G = new sobreVoo(); break; case nomesGolpes.bombaDeGas: G = new bombaDeGas(); break; case nomesGolpes.rajadaDeGas: G = new rajadaDeGas(); break; case nomesGolpes.cortinaDeFumaca: G = new cortinaDeFumaca(); break; case nomesGolpes.bastao: G = new bastao(); break; case nomesGolpes.sabreDeAsa: G = new sabre(); G.Nome = "Sabre de Asa"; break; case nomesGolpes.sabreDeNadadeira: G = new sabre(); G.Nome = "Sabre de Nadadeira"; break; case nomesGolpes.sabreDeEspada: G = new sabre(); G.Nome = "Sabre de Espada"; break; case nomesGolpes.sabreDeBastao: G = new sabre(); G.Nome = "Sabre de Bastao"; break; case nomesGolpes.nulo: case nomesGolpes.cancelado: G = new golpe(); break; } G.nomeID = nome; G.TempoReuso = Mathf.Max(2.5f,G.TempoReuso); }
void aprendizadoDeGolpe(nivelGolpe novoGolpe) { golpeAprendido = new pegaUmGolpe(novoGolpe.nome).OGolpe(); if(fim.vencedor.Golpes.Length< 4) { List<golpe> G = new List<golpe>(); G.AddRange(fim.vencedor.Golpes); G.Add(new pegaUmGolpe(novoGolpe.nome).OGolpe()); G[G.Count-1].Basico += (uint)novoGolpe.mod; G[G.Count-1].Corrente += (uint)novoGolpe.mod; G[G.Count-1].Maximo += (uint)(2*novoGolpe.mod); fim.vencedor.Golpes = G.ToArray(); fim.conteudo = "aprendeuEsse"; fim.aprendeuEsse = G[G.Count-1]; Invoke("aprendeuGolpe",0.15f); fim.entrando = false; passoDaAnimaInicial = 0; }else { fim.conteudo = "podeAprender"; fim.aprendeuEsse = golpeAprendido; Invoke("podeAprenderEsse",0.15f); fim.entrando = false; passoDaAnimaInicial = 0; } }
public pegaUmGolpe(nomesGolpes nome) { switch (nome) { case nomesGolpes.rajadaDeAgua: G = new rajadaDeAgua(); break; case nomesGolpes.turboDeAgua: G = new turboDeAgua(); break; case nomesGolpes.bolaDeFogo: G = new bolaDeFogo(); break; case nomesGolpes.rajadaDeFogo: G = new rajadaDeFogo(); break; case nomesGolpes.laminaDeFolha: G = new laminaDeFolha(); break; case nomesGolpes.furacaoDeFolhas: G = new furacaoDeFolhas(); break; case nomesGolpes.chifre: G = new Chifre(); break; case nomesGolpes.tapa: G = new tapa(); break; case nomesGolpes.garra: G = new garra(); break; case nomesGolpes.chicoteDeMao: G = new chicoteDeMao(); break; case nomesGolpes.dentada: G = new dentada(); break; case nomesGolpes.bico: G = new bico(); break; case nomesGolpes.ventania: G = new ventania(); break; case nomesGolpes.ventosCortantes: G = new ventosCortantes(); break; case nomesGolpes.gosmaDeInseto: G = new gosmaDeInseto(); break; case nomesGolpes.gosmaAcida: G = new gosmaAcida(); break; case nomesGolpes.chicoteDeCalda: G = new chicoteDeCalda(); break; case nomesGolpes.cabecada: G = new cabecada(); break; case nomesGolpes.eletricidade: G = new eletricidade(); break; case nomesGolpes.eletricidadeConcentrada: G = new eletricidadeConcentrada(); break; case nomesGolpes.agulhaVenenosa: G = new agulhaVenenosa(); break; case nomesGolpes.ondaVenenosa: G = new ondaVenenosa(); break; case nomesGolpes.chute: G = new chute(); break; case nomesGolpes.espada: G = new espada(); break; case nomesGolpes.sobreSalto: G = new sobreSalto(); break; case nomesGolpes.cascalho: G = new cascalho(); break; case nomesGolpes.pedregulho: G = new pedregulho(); break; case nomesGolpes.rajadaDeTerra: G = new rajadaDeTerra(); break; case nomesGolpes.energiaDeGarras: G = new energiaDeGarras(); break; case nomesGolpes.vingancaDaTerra: G = new vingancaDaTerra(); break; case nomesGolpes.psicose: G = new psicose(); break; case nomesGolpes.hidroBomba: G = new hidroBomba(); break; case nomesGolpes.bolaPsiquica: G = new bolaPsiquica(); break; case nomesGolpes.tosteAtaque: G = new tosteAtaque(); break; case nomesGolpes.tempestadeDeFolhas: G = new tempestadeDeFolhas(); break; case nomesGolpes.chuvaVenenosa: G = new chuvaVenenosa(); break; case nomesGolpes.multiplicar: G = new multiplicar(); break; case nomesGolpes.tempestadeEletrica: G = new tempestadeEletrica(); break; case nomesGolpes.avalanche: G = new Avalanche(); break; case nomesGolpes.olharMal: G = new olharMal(); break; case nomesGolpes.anelDoOlhar: G = new anelDoOlhar(); break; case nomesGolpes.cortinaDeTerra: G = new cortinaDeTerra(); break; case nomesGolpes.teletransporte: G = new Teletransporte(); break; case nomesGolpes.olharParalisante: G = new olharParalisante(); break; case nomesGolpes.sobreVoo: G = new sobreVoo(); break; case nomesGolpes.bombaDeGas: G = new bombaDeGas(); break; case nomesGolpes.rajadaDeGas: G = new rajadaDeGas(); break; case nomesGolpes.cortinaDeFumaca: G = new cortinaDeFumaca(); break; case nomesGolpes.bastao: G = new bastao(); break; case nomesGolpes.sabreDeAsa: G = new sabre(); G.Nome = "Sabre de Asa"; break; case nomesGolpes.sabreDeNadadeira: G = new sabre(); G.Nome = "Sabre de Nadadeira"; break; case nomesGolpes.sabreDeEspada: G = new sabre(); G.Nome = "Sabre de Espada"; break; case nomesGolpes.sabreDeBastao: G = new sabre(); G.Nome = "Sabre de Bastao"; break; case nomesGolpes.nulo: case nomesGolpes.cancelado: G = new golpe(); break; } G.nomeID = nome; G.TempoReuso = Mathf.Max(2.5f, G.TempoReuso); }