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))); } }
public override void Start(movimentoBasico mB, IA_inimigo IA, Transform T, Animator A, acaoDeGolpe aG) { base.Start(mB, IA, T, A, aG); Y = aG.GetComponent <umCriature>().criature(); acaoDeGolpeRegenerate.impactoBasico(nomeID.ToString(), mB, IA, T, A); }
public static void adicionaOColisor(acaoDeGolpe aG, Transform T, float tempoDecorrido, nomesGolpes nomeColisor, string nomeTrail, float tempoDestroy, bool parentearNoOsso, Quaternion Q = default(Quaternion), string noImpacto = "impactoComum") { adicionaOColisor(aG, T, tempoDecorrido, nomeColisor, nomeTrail, tempoDestroy, noImpacto, parentearNoOsso, Q); }
protected void facaImpacto(GameObject emQ, bool colocaImpactos = false, bool destroiAqui = true, bool noTransform = false) { if (emQ.gameObject.tag == "eventoComGolpe") { eventoComGolpe eCG = emQ.GetComponent <eventoComGolpe>(); acaoDeGolpe aG2 = dono.GetComponent <acaoDeGolpe>(); if (eCG && aG2) { eCG.disparaEvento(aG2.ativa.nomeID); } } GameObject impacto = GameObject.Find("elementosDoJogo").GetComponent <elementosDoJogo>().retorna(noImpacto); GameObject impacto2 = null; if (!noTransform) { impacto2 = (GameObject)Instantiate(impacto, transform.position, Qparticles); } umCriature umC = emQ.transform.GetComponent <umCriature>(); if (umC) { if (umC.criature().cAtributos[0].Corrente > 0) { if (dono.GetComponent <acaoDeGolpe>()) { acaoDeGolpe aG = dono.GetComponent <acaoDeGolpe>(); aG.tomaDanoUm(emQ.transform); if (noTransform) { impacto2 = (GameObject)Instantiate(impacto, umC.transform.position, Qparticles); } if (colocaImpactos) { aG.impactos++; } } } } if (impacto2) { Destroy(impacto2, 1.5f); } if (destroiAqui) { Destroy(gameObject); } }
public static void adicionaOColisor(acaoDeGolpe aG, Transform T, float tempoDecorrido, nomesGolpes nomeColisor, string nomeTrail, float tempoDestroy, string noImpacto = "impactoComum", bool parentearNoOsso = true, Quaternion Q = default(Quaternion)) { GameObject view = elementosDoJogo.el.retornaColisor(nomeTrail); // print(nomeColisor); colisor C = pegueOColisor(nomeColisor, aG.GetComponent <umCriature>().X); // = new colisor(); if (C.osso == "erroColisor") { return; } GameObject view2 = aG.facaInstantiate(view, C.deslColisor, Q); if (parentearNoOsso) { view2.transform.parent = T.Find(C.osso).transform; } else { view2.transform.parent = T; } view2.transform.localPosition = C.deslTrail; view2.transform.localRotation = view.transform.rotation; view2.GetComponent <BoxCollider>().center = C.deslColisor; view2.name = "colisor" + nomeColisor; /* * PARA DESTUIR O COLISOR . * QUANDO O GOLPE ERA INTERROMPIDO * O COLISOR PERMANECIA NO PERSONAGEM */ aG.facaDestroy(view2, tempoDestroy - tempoDecorrido); /*************************************************************/ projetil proj = view2.AddComponent <projetil>(); proj.velocidadeProjetil = 0f; proj.noImpacto = noImpacto; proj.dono = T.gameObject; // proj.forcaDoDano = 25f; //addView = true; }
//[System.NonSerialized]protected movimentoBasico mB; //[System.NonSerialized]protected IA_inimigo IA; //[System.NonSerialized]protected Animator A; public virtual void Start(movimentoBasico mB, IA_inimigo IA, Transform T, Animator A, acaoDeGolpe aG) { //this.mB = mB; //this.IA = IA; this.T = T; //this.A = A; this.aG = aG; procurouAlvo = false; addView = false; tempoDecorrido = 0; retorno = false; }
void OnTriggerEnter(Collider emQ) { if (emQ.tag == "Criature" || emQ.tag == "Player") { bool dano = true; bool deFogo = false; if (emQ.tag == "Criature") { string[] Tipos = emQ.transform.GetComponent <umCriature>().criature().meusTipos; for (int i = 0; i < Tipos.Length; i++) { if (Tipos[i] == tipoImune.ToString()) { dano = false; deFogo = true; } } } else { dano = false; } if (!deFogo) { GameObject G = elementosDoJogo.el.retorna(noImpacto); G = (GameObject)Instantiate(G, emQ.transform.position, Quaternion.identity); Destroy(G, 0.75f); } if (dano) { acaoDeGolpe aG = gameObject.AddComponent <acaoDeGolpe>(); aG.ativa = new golpe(); aG.tomaDanoUm(emQ.transform); } if (!deFogo) { Destroy(gameObject); } } }
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; }