public void HacerDMG(HandleAction accion) { HeroeBase heroe; EnemigoBase enemigo; int daño = 0; AtaqueBase ataque = accion.ataque; float modificadorFuerza = 0.5f; float modificadorInteligencia = 0.5f; if (accion.atacanteGameObj.CompareTag("Player")) { heroe = accion.atacanteGameObj.GetComponent <HeroeStateMachine>().heroe; enemigo = accion.objetivoGameObj.GetComponent <EnemigoStateMachine>().enemigo; if (accion.ataque.tipoAtaque.Equals(AtaqueBase.TipoAtaque.FISICO)) { daño = Mathf.RoundToInt((((heroe.fuerza * modificadorFuerza) + accion.ataque.damage) - (enemigo.resistenciaF))); } else if (accion.ataque.tipoAtaque.Equals(AtaqueBase.TipoAtaque.MAGICO)) { daño = Mathf.RoundToInt((((heroe.inteligencia * modificadorInteligencia) + accion.ataque.damage) - (enemigo.resistenciaM)) * calcularModificador(ataque, enemigo)); } if (daño < 0) { daño = 0; } accion.damage = daño; accion.objetivoGameObj.GetComponent <EnemigoStateMachine>().enemigo.vidaActual -= accion.damage; if (accion.objetivoGameObj.GetComponent <EnemigoStateMachine>().enemigo.vidaActual < 0) { accion.objetivoGameObj.GetComponent <EnemigoStateMachine>().enemigo.vidaActual = 0; } accion.objetivoGameObj.GetComponent <EnemigoStateMachine>().AnimacionRecibirDMG(); statHandler.ActualizarInfo(); } else if (accion.atacanteGameObj.CompareTag("Enemigo")) { enemigo = accion.atacanteGameObj.GetComponent <EnemigoStateMachine>().enemigo; heroe = accion.objetivoGameObj.GetComponent <HeroeStateMachine>().heroe; if (accion.ataque.tipoAtaque.Equals(AtaqueBase.TipoAtaque.FISICO)) { daño = Mathf.RoundToInt((((enemigo.fuerza * modificadorFuerza) + accion.ataque.damage) - (heroe.resistenciaF))); } else if (accion.ataque.tipoAtaque.Equals(AtaqueBase.TipoAtaque.MAGICO)) { daño = Mathf.RoundToInt((((enemigo.inteligencia * modificadorInteligencia) + accion.ataque.damage) - (heroe.resistenciaM))); } if (daño < 0) { daño = 0; } accion.damage = daño; accion.objetivoGameObj.GetComponent <HeroeStateMachine>().heroe.vidaActual -= accion.damage; if (accion.objetivoGameObj.GetComponent <HeroeStateMachine>().heroe.vidaActual < 0) { accion.objetivoGameObj.GetComponent <HeroeStateMachine>().heroe.vidaActual = 0; } accion.objetivoGameObj.GetComponent <HeroeStateMachine>().AnimacionRecibirDMG(); } SpawnDMG(daño, accion.objetivoGameObj, "daño"); sistemaMenus.sistemaBreak.IncrementarBarra(daño * 0.015f); }