public void trocarArma(int id) { gameController.idArma = id; switch (gameController.idClasseArmas[id]) { case 0: //espadas, machados, macas, martelos armas[0].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas1[id]; ArmaInfo tempInfoArma = armas[0].GetComponent <ArmaInfo>(); tempInfoArma.danoMin = gameController.danoMinArma[idArma]; tempInfoArma.danoMax = gameController.danoMaxArma[idArma]; tempInfoArma.tipoDano = gameController.tipoDanoArma[idArma]; armas[1].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas2[id]; tempInfoArma = armas[1].GetComponent <ArmaInfo>(); tempInfoArma.danoMin = gameController.danoMinArma[idArma]; tempInfoArma.danoMax = gameController.danoMaxArma[idArma]; tempInfoArma.tipoDano = gameController.tipoDanoArma[idArma]; armas[2].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas3[id]; tempInfoArma = armas[2].GetComponent <ArmaInfo>(); tempInfoArma.danoMin = gameController.danoMinArma[idArma]; tempInfoArma.danoMax = gameController.danoMaxArma[idArma]; tempInfoArma.tipoDano = gameController.tipoDanoArma[idArma]; break; case 1: arcos[0].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas1[id]; arcos[1].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas2[id]; arcos[2].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas3[id]; break; case 2: staffs[0].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas1[id]; staffs[1].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas2[id]; staffs[2].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas3[id]; staffs[3].GetComponent <SpriteRenderer>().sprite = gameController.spriteArmas4[id]; break; } gameController.idArmaAtual = gameController.idArma; }
void OnTriggerEnter2D(Collider2D col) { if (died == true) { return; // se remover esse bloco e a variável died, o cadáver ainda pode ser espancado } switch (col.gameObject.tag) { case "Arma": if (getHit == false) { getHit = true; barrasVida.SetActive(true); ArmaInfo armaInfo = col.gameObject.GetComponent <ArmaInfo>(); inimigoAnimator.SetTrigger("hit"); float danoArma = Random.Range(armaInfo.danoMin, armaInfo.danoMax); int tipoDano = armaInfo.tipoDano; float danoTomado = danoArma + (danoArma * (ajusteDano[tipoDano] / 100)); vidaAtual -= Mathf.RoundToInt(danoTomado); //reduz da vida a quantidade de dano tomado percVida = (float)vidaAtual / (float)vidaInimigo; if (percVida < 0) { percVida = 0; } hpBar.localScale = new Vector3(percVida, 1, 1); if (vidaAtual <= 0) { //deixar o corpo do inimigo sem poder ser arrastado depois de morto this.gameObject.layer = 12; died = true; inimigoAnimator.SetInteger("idAnimation", 3); StartCoroutine("loot"); } GameObject danoTemp = Instantiate(danoTxtPrefab, transform.position, transform.localRotation); danoTemp.GetComponent <TextMesh>().text = Mathf.RoundToInt(danoTomado).ToString(); //danoTemp.GetComponent<MeshRenderer>().sortingLayerName = "HUD"; //fazer o texto ficar em primeiro plano GameObject fxTemp = Instantiate(gameController.fxDano[tipoDano], transform.position, transform.localRotation); Destroy(fxTemp, 1); int forcaX = 50; if (playerEsquerda == false) { forcaX *= -1; } danoTemp.GetComponent <Rigidbody2D>().AddForce(new Vector2(forcaX, 210)); Destroy(danoTemp, 1f); GameObject knockTemp = Instantiate(knockForcePrefab, knockPosition.position, knockPosition.localRotation); Destroy(knockTemp, 0.02f); StartCoroutine("invuneravel"); this.gameObject.SendMessage("tomeiHit", SendMessageOptions.DontRequireReceiver); } break; } }