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)