Então, acontece que as fórmulas são javascript, como já comentei em outra ocasião x)
Em JS, o "." representa números de ponto flutuante, isto é, 0.5 é o mesmo que 1/2, 0.25 é o mesmo que 1/4, etc...
Já a vírgula é uma coisa completamente diferente, e é uma sintaxe meio estranha na verdade. Enquanto nós geralmente usamos ela pra representar o que o JS usa o ponto, pra javascript (e todas as linguagens de programação) a vírgula não representa pontos flutuantes, e sim divisão de elementos de alguma natureza.
No JS em específico, qualquer expressão "a, b" executa a, e executa e retorna b. Por exemplo:
4 * (alert(1), 0.5) Colando isso no console do navegador, você deve ver uma caixa de alerta com "1", e o número 2 sendo escrito no console. No seu caso, ele calculava 10 + 0, e depois retornava o que vinha depois da vírgula.
Sobre os colchetes, nada a ver, colchetes representam listas, somar listas com números não dá certo xd
Essa última tentativa (10 + 5%) até que seria interessante, mas a sintaxe da linguagem não suporta esse tipo de coisa. O % em javascript é na verdade o operador de resto de divisão (por ex., 5 % 2 é 1). Provavelmente o dano é 0 porque essa fórmula da erro (você passou um % sem nada à direita!).
A forma correta de adicionar 50% ao dano total da fórmula seria simplesmente multiplicar o resultado final por 1.5, por exemplo:
(10 + Math.max(0, a.atk - b.def)) * 1.5Espero ter ajudado \o
P.S Para mexer com essas fórmulas, recomendo bastante que dê uma estudada em javascript. Não precisa ser nada avançado, só o básico de variáveis e aritmética já te dá uma base ótima.
Tem
esse tópico na RMWeb que ensina legal a mexer também.