public void CraftearLanza() { if (scriptMateriales.DecirMateriales() >= CosteLanza) { scriptMateriales.RestarMateriales(CosteLanza); menuActivo = !menuActivo; menuArmas.SetActive(menuActivo); scriptArmas.CambioArma(1); Debug.Log("Crafteando Lanza"); } }
/// <summary> /// Resta 'cantidad' a la durabilidad actual de la espada. /// En cada ataque, se llama desde la animacion de ataque de la espada /// </summary> /// <param name="cantidad">Puntos de durabilidad a ser descontados</param> public void RestaDurEspada(int cantidad) { durActualEspada -= cantidad; print("Durabilidad Espada: " + durActualEspada); if (durActualEspada <= 0) { scriptarmas.CambioArma(Armas.Martillo); durActualEspada = durMaxEspada; } else { LevelManager.instance.ActualizaDurabilidad(durMaxEspada, durActualEspada); } }
/// <summary> /// Resta 'cantidad' a la durabilidad actual de la lanza /// </summary> /// <param name="cantidad">Puntos de durabilidad a ser descontados</param> public void RestaDurLanza(int cantidad) { durActualLanza -= cantidad; print("Durabilidad Lanza: " + durActualLanza); if (durActualLanza <= 0) { scriptarmas.CambioArma(0); durActualLanza = durMaxLanza; } }
/// <summary> /// Comprueba si la lanza está cerca del jugador y, en ese caso, activa la animación de lanzarla /// </summary> public void LanzarLanza() { if ((transformLanza.localPosition.y > -0.8) && animador.GetCurrentAnimatorStateInfo(0).IsName("LanzaNormal")) //Posicion relativa al jugador, para evitar ataques dobles { Lanzada = Instantiate(Lanza, transform); //crea la lanza que va a ser lanzada Lanzada.GetComponent <SpriteRenderer>().sortingOrder = 1; //cambia la sortingLayer Lanzada.transform.parent = null; //elimina el padre de la lanzaLanzada para evitar que rote con el jugador Vector2 offset = Input.mousePosition - Camera.main.WorldToScreenPoint(transform.position); //Vector entre el mouse y el jugador float angle = Mathf.Atan2(offset.y, offset.x) * Mathf.Rad2Deg; //transforma a ángulos Lanzada.transform.rotation = Quaternion.Euler(0, 0, angle); //aplica la rotación Lanzada.GetComponent <Rigidbody2D>().velocity = Vector2.ClampMagnitude(offset, velocidad); //impulsa la lanza Lanzada.GetComponent <HacerDanoLanzaLanzada>().SetDurabilidad(durActualLanza); //le pasa a la lanza la durabilidad actual durActualLanza = durMaxLanza; //resetea la durabiliad complete de la lanza this.gameObject.SetActive(false); scriptarmas.CambioArma(0); //cambia al martillo } }
/// <summary> /// Resta durabilidad al arma. Si llega a 0, se destruye y cambia al martillo /// </summary> /// <param name="cantidad"></param> public void restaDurTomahawk(int cantidad) { durActualTomahawk -= cantidad; if (durActualTomahawk <= 0) { scriptArmas.CambioArma(0); durActualTomahawk = durMaxTomahawk; } else { LevelManager.instance.ActualizaDurabilidad(durMaxTomahawk, durActualTomahawk); } }