void andaCriature4() { if (criature == null) { criature = GetComponent <umCriature> (); } if ( (Time.time - H.tempoDoUltimoUsoDeItem < H.intervaloParaUsarItem || temGolpeEmRecarga(criature.X)) && !hudRecarga ) { hudRecarga = Camera.main.gameObject.AddComponent <HUDRecarga>(); hudRecarga.H1 = H; } if (Input.GetButtonDown("paraCriature") && heroi.emLuta == false) { alternancia a = GetComponent <alternancia>(); a.retornaAoHeroi(); } criatureVerificaTrocaGolpe(criature.X); criatureScroll(); //bool grounded = noChao(.distanciaFundamentadora ); // Forward vector relative to the camera along the x-z plane float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); int temMedo = statusTemporarioBase.contemStatus(tipoStatus.amedrontado, criature.X); if (temMedo > -1) { Vector2 embaralhamento = embaralhaDeMedo(criature.X, temMedo, h, v); h = embaralhamento.x; v = embaralhamento.y; } Vector3 forward = direcaoInduzida(h, v); forward.y = 0; forward = forward.normalized; // Right vector relative to the camera // Always orthogonal to the forward vector Vector3 right = new Vector3(forward.z, 0, -forward.x); Vector3 direcaoAlvo = (h * right + v * forward); float targetSpeed = Mathf.Min(direcaoAlvo.magnitude, 1.0f); targetSpeed *= criature.X.velocidadeAndando; if (Input.GetButtonDown("Jump") && noChao(criature.X.distanciaFundamentadora)) { ultimoYFundamentado = transform.position.y; pulo = true; controle.Move(Vector3.up * (criature.X.distanciaFundamentadora + 0.05f)); } if (noChao(criature.X.distanciaFundamentadora)) { pulo = false; if (Input.GetButtonDown("acao") || Input.GetButtonDown("acaoAlt") ) { Criature daki = criature.X; if (daki.Golpes[daki.golpeEscolhido].CustoPE <= daki.cAtributos[1].Corrente) { aplicaGolpe(daki); } else { usaItemEmLuta.mensagemDuranteALuta(bancoDeTextos.falacoes[heroi.lingua]["encontros"][4]); } } maisUmAtualizaSuavemente(v, h, criature.X, direcaoAlvo); direcaoMovimento = direcaoMovimento * 3 * targetSpeed + Vector3.down * criature.X.gravidade; // + criature.X.apliqueGravidade(Vector3.zero, direcaoMovimento ); if (statusTemporarioBase.contemStatus(tipoStatus.paralisado, criature.X) > -1) { direcaoMovimento /= 10; } controle.Move((direcaoMovimento) * Time.deltaTime); } else { if (statusTemporarioBase.contemStatus(tipoStatus.paralisado, criature.X) > -1) { direcaoAlvo /= 10; } verificaPulo(direcaoAlvo, criature.X); } if (noChao(criature.X.distanciaFundamentadora)) { if (Mathf.Abs(v) > 0.3f || Mathf.Abs(h) > 0.3f) { transform.rotation = Quaternion.LookRotation(new Vector3(direcaoMovimento.x, 0, direcaoMovimento.z)); } } else { Vector3 xzMove = direcaoMovimento * Time.deltaTime; xzMove.y = 0; if (xzMove.sqrMagnitude > 0.001f) { transform.rotation = Quaternion.LookRotation(xzMove); } } animator.SetBool("noChao", noChao(criature.X.distanciaFundamentadora)); animator.SetBool("pulo", pulo); animator.SetFloat("velocidade", Mathf.Abs(v) + Mathf.Abs(h)); }
void andaCriature4() { if(criature == null) criature = GetComponent<umCriature> (); if( (Time.time - H.tempoDoUltimoUsoDeItem<H.intervaloParaUsarItem || temGolpeEmRecarga(criature.X)) && !hudRecarga ) { hudRecarga = Camera.main.gameObject.AddComponent<HUDRecarga>(); hudRecarga.H1 = H; } if(Input.GetButtonDown("paraCriature")&&heroi.emLuta==false) { alternancia a = GetComponent<alternancia>(); a.retornaAoHeroi(); } criatureVerificaTrocaGolpe(criature.X); criatureScroll(); //bool grounded = noChao(.distanciaFundamentadora ); // Forward vector relative to the camera along the x-z plane float h = Input.GetAxis ("Horizontal"); float v = Input.GetAxis ("Vertical"); int temMedo = statusTemporarioBase.contemStatus (tipoStatus.amedrontado,criature.X); if(temMedo >-1) { Vector2 embaralhamento = embaralhaDeMedo(criature.X,temMedo,h,v); h = embaralhamento.x; v = embaralhamento.y; } Vector3 forward= direcaoInduzida(h,v); forward.y = 0; forward = forward.normalized; // Right vector relative to the camera // Always orthogonal to the forward vector Vector3 right= new Vector3(forward.z, 0, -forward.x); Vector3 direcaoAlvo = (h * right + v * forward); float targetSpeed= Mathf.Min(direcaoAlvo.magnitude, 1.0f); targetSpeed *= criature.X.velocidadeAndando; if(Input.GetButtonDown("Jump") && noChao(criature.X.distanciaFundamentadora )) { ultimoYFundamentado = transform.position.y; pulo = true; controle.Move(Vector3.up*(criature.X.distanciaFundamentadora+0.05f )); } if (noChao (criature.X.distanciaFundamentadora)) { pulo = false; if (Input.GetButtonDown ("acao") || Input.GetButtonDown ("acaoAlt") ) { Criature daki = criature.X; if(daki.Golpes[daki.golpeEscolhido].CustoPE<=daki.cAtributos[1].Corrente){ aplicaGolpe(daki); }else { usaItemEmLuta. mensagemDuranteALuta( bancoDeTextos.falacoes[heroi.lingua]["encontros"][4]); } } maisUmAtualizaSuavemente(v,h,criature.X,direcaoAlvo); direcaoMovimento = direcaoMovimento * 3*targetSpeed+ Vector3.down * criature.X.gravidade; // + criature.X.apliqueGravidade(Vector3.zero, direcaoMovimento ); if(statusTemporarioBase.contemStatus(tipoStatus.paralisado,criature.X)>-1) direcaoMovimento/=10; controle.Move ((direcaoMovimento) * Time.deltaTime); }else { if(statusTemporarioBase.contemStatus(tipoStatus.paralisado,criature.X)>-1) direcaoAlvo/=10; verificaPulo(direcaoAlvo,criature.X); } if (noChao(criature.X.distanciaFundamentadora)) { if(Mathf.Abs(v)>0.3f||Mathf.Abs(h)>0.3f) transform.rotation = Quaternion.LookRotation(new Vector3(direcaoMovimento.x,0,direcaoMovimento.z)); } else { Vector3 xzMove= direcaoMovimento*Time.deltaTime; xzMove.y = 0; if (xzMove.sqrMagnitude > 0.001f) { transform.rotation = Quaternion.LookRotation(xzMove); } } animator.SetBool("noChao",noChao(criature.X.distanciaFundamentadora)); animator.SetBool("pulo",pulo); animator.SetFloat("velocidade",Mathf.Abs(v)+Mathf.Abs(h)); }