La respuesta en la que uso /testfor @e[type=mooshroom] {Health:10s} es un método que tras probarlo varias veces me di cuenta que no funciona en versiones superiores a la 1.8Spoiler para ocultar:
tienes que usar este comando:
/testfor @e[type=mooshroom] {Health:10s}
Al ser la única forma actualmente que permite detectar la vida es bastante limitado y no se puede detectar cuando un mob esta por debajo de x vida, para ello tienes que utilizar varias veces este comando detectando cada vez menos vida
Ejemplo:
/testfor @e[type=mooshroom] {Health:10s}
/testfor @e[type=mooshroom] {Health:9s}
/testfor @e[type=mooshroom] {Health:8s}
/testfor @e[type=mooshroom] {Health:7s}
/testfor @e[type=mooshroom] {Health:6s}
Puedes enlazar esa serie de comandos a un mismo resultado, quiero decir, si la vaca seta tiene una vida entre 10 y 6, que todos los command block activen un mismo comando.
Tras investigar un poco mas a fondo descubrí un método el cual si que funciona actualmente (esta vez lo he probado antes de responder xd)
Este método requiere de scoreboards y es más simple de usar, para empezar necesitas estos comandos:
/scoreboard objectives add DamageDealt stat.damageDealt
-Este comando servirá para detectar el daño que hace el jugador sobre un mob.
/scoreboard objectives add vida dummy
/summon mooshroom ~ ~1 ~ {Attributes:[{Name:generic.maxHealth,Base:50}],Health:50.0f}
-Este comando tendrías que reemplazarlo por el summon que utilizas tú en tu mapa para la vaca seta, este en concreto lo uso como ejemplo para lo que diré.
/scoreboard players set @e[type=mushroom] vida 500
-Vale, utilizando el ejemplo de la vaca que puse anteriormente, si el mob del cual quieres detectar la vida tiene por ejemplo 50 de vida, en este comando tendras que poner 500, es decir que tienes que multiplicar la vida por 10.
(Este comando lo tienes que activar despues del summon)
Los siguientes comandos tienen que estar activados constantemente./execute @a[score_DamageDealt_min=1] ~ ~ ~ /scoreboard players operation @e[type=mushroom] vida -= @p DamageDealt
-Sinceramente no soy ningún experto en scoreboard y las operaciones matemáticas de estos, pero este comando sirve para que en base del daño que hagas
se resten puntos al scoreboard "vida" de la vaca seta.
/scoreboard players set @a[score_DamageDealt_min=1] DamageDealt 0
-con esto simplemente se resetea el scoreboard de DamageDealt al jugador.
/execute @e[type=mushroom,score_vida=-100] ~ ~ ~ /setblock 381 51 569 minecraft:redstone_block
-Y finalmente este es el comando que tendrías que usar para que cuando tenga x vida se activen los comandos que quieras; summon, effect, etc.... (date cuenta que en este comando se esta detectando una puntuación negativa en el scoreboard de vida)
-El setblock lo usarías para que se activara el circuito con los summon o lo que quieras que ocurra durante la batalla.
Ya con esto por fin termino de explicar como detectar la vida de un mob xd al final me complique contestando a tu pregunta por no comprobar si el primer metodo funcionaba
Espero que te sirva