UNPKG

@seroh/roll

Version:

An RPG dice-rolling library with a variety of built-in roll mechanics.

25 lines 977 B
export class Randomizer { generate(min, max) { this.validateMinMax(min, max); return this.scaleToRange(this.generator(), min, max); } scaleToRange(rawRoll, min, max) { if (rawRoll >= 0.99) return max; if (rawRoll <= 0) return min; return Math.floor(rawRoll * (max - min + 1)) + min; } validateMinMax(min, max) { if (!Number.isInteger(min) || !Number.isInteger(max)) { throw new Error(`Invalid range: Both minimum (${min}) and maximum (${max}) values must be integers.`); } if (min < 1 || max < 1) { throw new Error(`Invalid range: Both minimum (${min}) and maximum (${max}) values must be positive integers greater than zero.`); } if (min > max) { throw new Error(`Invalid range: The minimum value (${min}) cannot be greater than the maximum value (${max}).`); } } } //# sourceMappingURL=Randomizer.js.map