@randsum/dice
Version:
A flexible, type-safe dice roller for tabletop RPGs, game development, and probability simulations
23 lines (18 loc) • 514 B
text/typescript
import { coreRandom } from './coreRandom'
import { generateNumericFaces } from './generateNumericFaces'
export function coreSpreadRolls<F extends string | number>(
quantity: number,
max: number,
faces?: F[]
): F[] {
const facesArr = (faces ?? generateNumericFaces(max)) as F[]
const result = new Array<F>(quantity)
for (let i = 0; i < quantity; i++) {
const randomIndex = coreRandom(max)
const face = facesArr[randomIndex]
if (face) {
result[i] = face
}
}
return result
}