Notação Dice Core
Mapa completo da gramática, atalhos e páginas por tipo de rolagem.
Comece por um tipo
Cada tópico abaixo tem regras detalhadas e exemplos abertos diretamente no playground.
Forma de uma expressão
NdX rola N dados de X lados; operadores e funções montam expressões. Os modificadores são sufixos do dado: 4d6kh3. Uma sequência de expressões entre chaves forma um grupo: {d8,d10}kh1. N# repete uma fórmula; ; separa segmentos de um lote misto, incluindo sistemas especiais. A escrita sem espaços é convencional, mas espaços podem ser usados na entrada.
2d20+5
4d6kh3
{d8,d10}kh1
2#d20+5
d20+5; v5(7,3,4)
Operadores de comparação
Os modificadores condicionais aceitam =, !=/<>, <, <=, > e >= com um literal numérico, inclusive com sinal. r<3 rerrola 1 ou 2 em um d20; !>=5 explode em 5 ou 6 num d6; >=8f=1 conta sucesso e falha. Após o dado, ! é o operador de explosão, por isso d6!=3 significa “explodir se igual a 3”; para target “diferente de 3”, use d6<>3.
Atalhos de normalização
d vira d20; f vira 4dF; 2f vira 2dF; ei6 vira !>=6; km vira kl1; k vira k1. -pool(N) vira pool(-N), +step(N) vira step(+N). normalizeRpgDiceNotation() devolve a escrita normalizada; inspectRpgDiceNotation() valida sem consumir RNG.
import { normalizeRpgDiceNotation, inspectRpgDiceNotation } from '@erpg/dicecore/core'
console.log(normalizeRpgDiceNotation('d + 2f')) // d20+2dF
console.log(inspectRpgDiceNotation('4d6kh3').isValid) // true
Os modificadores de runtime têm ordem fixa: min, max, explode, reroll, unique, keep, drop, target, crítico de sucesso, crítico de falha e sort. Modificadores estruturais pool, adv, dis e step são resolvidos antes. Quando um modificador do mesmo tipo aparece mais de uma vez, o último prevalece.