Você pode aplicar uma condição nas fórmulas.
a.atk * 4 - b.def * 2 <= 0 ? 1 : a.atk * 4 - b.def * 2Acima a fórmula funciona da seguinte maneira: Cálculo de dano é menor ou igual a zero? 1, do contrário, cálculo de dano.
> condição ? se verdadeiro : se falso
Você também pode deixar de uma maneira que reduza o número de cálculos, da seguinte forma:
var a = a.atk * 4 - b.def * 2; return a <= 0 ? 1 : a;Isso evita que o computador faça 2 cálculos desnecessários, fazendo apenas 1 ao invés.
A caixinha de fórmulas de dano é simplesmente um código Javascript (no MV) ou Ruby (no Ace) a ser avaliado, então qualquer expressão será transformada em um código. Você pode tirar proveito disso e criar fórmulas de dano bem complexas.
Eu já me deparei com esse problema no passado, é realmente frustrante você receber 0 de dano de um inimigo.