public static CreatureManager RetornaInimigoEmCampo(encontravel encontrado, CharacterManager manager) { Debug.Log(encontrado.nome); GameObject M = elementosDoJogo.el.criature(encontrado.nome.ToString()); Transform doCriatureAtivo = manager.CriatureAtivo.transform; Vector3 instancia = doCriatureAtivo.position + 10 * doCriatureAtivo.forward; Debug.Log(M); /* * RaycastHit hit = new RaycastHit (); * if(Physics.Linecast(posHeroi,posHeroi+10*tHeroi.forward,out hit)) * { * instancia = hit.point+Vector3.up; * } */ melhoraPos melhoraPF = new melhoraPos(); instancia = melhoraPF.posEmparedado(instancia, doCriatureAtivo.position); instancia = melhoraPF.novaPos(instancia, M.transform.lossyScale.y); GameObject InimigoX = MonoBehaviour.Instantiate(M, instancia, Quaternion.identity) as GameObject; int nivel = Random.Range(encontrado.nivelMin, encontrado.nivelMax); CreatureManager retorno = InimigoX.GetComponent <CreatureManager>(); retorno.MeuCriatureBase = new CriatureBase(encontrado.nome, nivel); retorno.IA = new IA_Agressiva(); retorno.IA.Start(retorno); retorno.Estado = CreatureManager.CreatureState.selvagem; return(retorno); }
void IniciaEncontro() { luta = true; andado = 0; proxEncontro = SorteiaPassosParaEncontro(); encontrado = criatureEncontrado(); gerenteDeEncontro.InicializarEncounterManager(InsereInimigoEmCampo.RetornaInimigoEmCampo(encontrado, manager), manager); AplicadorDeCamera.cam.GetComponent <Camera>().farClipPlane = 100; GameController.g.HudM.MenuDeI.FinalizarHud(); GameController.g.HudM.Btns.btnParaCriature.interactable = false; InsereElementosDoEncontro.encontroPadrao(manager); }
private int nivelandoEncontrado(encontravel encontrado) { int retorno = 0; switch (encontrado.tipo) { case 0: // a fazer (relativo a primeira fase) retorno = 1; break; case 1: retorno = Random.Range(encontrado.nivelMin, encontrado.nivelMax + 1); break; } return(retorno); }
// Update is called once per frame protected void Update() { if (!pausaJogo.pause) { if (!luta) { posHeroi = tHeroi.position; } if (!heroiMB) { heroiMB = tHeroi.GetComponent <movimentoBasico>(); } if (!lugarSeguro() && !luta && heroiMB.noChao(heroiMB.Y.distanciaFundamentadora)) { andado += (posHeroi - posAnterior).magnitude; } if (!luta && andado >= proxEncontro) { print(andado + " : " + proxEncontro); proxEncontro = SorteiaPassosParaEncontro(); // int paraEncontrado = Random.Range(0,10); encontrado = criatureEncontrado(); encontroPadrao(); andado = 0; } posAnterior = posHeroi; passoDoEncontro(); Debug.DrawRay(posHeroi - 40f * tHeroi.forward, 1000f * Vector3.up, Color.yellow); } }
private int nivelandoEncontrado(encontravel encontrado) { int retorno = 0; switch(encontrado.tipo) { case 0: // a fazer (relativo a primeira fase) retorno = 1; break; case 1: retorno = Random.Range(encontrado.nivelMin,encontrado.nivelMax+1); break; } return retorno; }
// Update is called once per frame protected void Update() { if(!pausaJogo.pause){ if(!luta ) posHeroi = tHeroi.position; if(!heroiMB) heroiMB = tHeroi.GetComponent<movimentoBasico>(); if(!lugarSeguro()&& !luta && heroiMB.noChao(heroiMB.Y.distanciaFundamentadora)) { andado += (posHeroi - posAnterior).magnitude; } if(!luta && andado>=proxEncontro) { print(andado+" : "+proxEncontro); proxEncontro = SorteiaPassosParaEncontro(); // int paraEncontrado = Random.Range(0,10); encontrado = criatureEncontrado(); encontroPadrao(); andado = 0; } posAnterior = posHeroi; passoDoEncontro (); Debug.DrawRay (posHeroi-40f*tHeroi.forward,1000f*Vector3.up,Color.yellow); } }