Lotes mistos
Combine fórmulas genéricas e rolagens de sistema em um único lote.
Separador de lote
rollMixedDice() separa segmentos de nível superior por ;. Cada segmento genérico aceita a gramática completa, inclusive N#. + continua a somar dentro do segmento. Chamadas especiais de sistema também podem ocupar um segmento.
2d20+5; 4d6kh3
2d20+5; v5(7,3,4); fate(4)
assim(d6=2,d10=1,d12=1,keep=2); daggerheart(modifier=2,difficulty=15)
| Sistema | Forma posicional | Forma nomeada |
|---|---|---|
| Vampiro V5 | v5(7,3,4) |
v5(pool=7,hunger=3,difficulty=4) |
| Fate | fate() ou fate(4) |
fate(dice=4) |
| Assimilação | assim(2,1,1,1) |
assim(d6=2,d10=1,d12=1,keep=1) |
| Daggerheart | dh() ou dagger(2,15) |
daggerheart(modifier=2,difficulty=15) |
Aliases: vampiro, vampire, vampirev5; fatedice; AS, assimilacao, assimilation; dagger e dh. Nomes são normalizados sem distinção de maiúsculas e acentos. Argumentos são literais inteiros, posicionais ou nomeados, sem misturar os formatos.
Resultado para interfaces 3D
O lote tem rolls discriminados por kind e dice achatados com IDs únicos, physicalValue e, nos sistemas, profileId/faceKey. Ele não possui total geral porque contagens, símbolos e totais numéricos não são somáveis entre si. detail: 'compact' compacta somente baseRoll dos sistemas; os segmentos genéricos permanecem completos.
import { rollMixedDice } from '@erpg/dicecore/systems/mixed'
const batch = rollMixedDice('d20+5; fate(4)', { seed: 'sessao-42' })
const again = rollMixedDice(batch.input, { replay: batch.replay })
Teste os exemplos
Testar 2d20+5;v5(7,3,4) · Testar fate(4);daggerheart(2,15) · Testar assim(d6=2,d10=1,d12=1,keep=2)