From 04010c6d98ada10445c58121f9387326c9bbefa3 Mon Sep 17 00:00:00 2001 From: Tom Wolfe Date: Fri, 23 Mar 2018 14:59:04 +0000 Subject: [PATCH] Fix random provider. --- package-lock.json | 16 ++++++++++++++-- package.json | 6 +++++- src/default-random-provider.ts | 10 ++++++++-- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 502e2f9..aca289d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,20 @@ { "name": "dice-typescript", - "version": "1.1.1", + "version": "1.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@types/jasmine": { "version": "2.8.6", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.6.tgz", - "integrity": "sha512-clg9raJTY0EOo5pVZKX3ZlMjlYzVU73L71q5OV1jhE2Uezb7oF94jh4CvwrW6wInquQAdhOxJz5VDF2TLUGmmA==" + "integrity": "sha512-clg9raJTY0EOo5pVZKX3ZlMjlYzVU73L71q5OV1jhE2Uezb7oF94jh4CvwrW6wInquQAdhOxJz5VDF2TLUGmmA==", + "dev": true + }, + "@types/random-js": { + "version": "1.0.30", + "resolved": "https://registry.npmjs.org/@types/random-js/-/random-js-1.0.30.tgz", + "integrity": "sha512-WjnCxSADI8zNFkwwQYzBbYDOMOsX//gzxS7rLvms4E8dEcHPrKzoi4FZXebYLKlTpaWSSqHT3Fp9TkDAiNW5rw==", + "dev": true }, "abbrev": { "version": "1.0.9", @@ -3813,6 +3820,11 @@ "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, + "random-js": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/random-js/-/random-js-1.0.8.tgz", + "integrity": "sha1-lo/WiabyXWwKrHZig94vaIycGQo=" + }, "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", diff --git a/package.json b/package.json index ffceba5..1056fca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dice-typescript", - "version": "1.2.0", + "version": "1.3.0", "description": "A TypeScript library for parsing dice rolling expressions, most commonly used in tabletop RPGs.", "main": "./dist/index.js", "scripts": { @@ -36,6 +36,7 @@ "homepage": "https://github.com/trwolfe13/dice#readme", "devDependencies": { "@types/jasmine": "^2.8.6", + "@types/random-js": "^1.0.30", "codacy-coverage": "^2.0.2", "istanbul": "^0.4.5", "jasmine-core": "2.5.2", @@ -46,5 +47,8 @@ "rimraf": "^2.6.1", "tslint": "^5.4.3", "typescript": "^2.4.1" + }, + "dependencies": { + "random-js": "^1.0.8" } } diff --git a/src/default-random-provider.ts b/src/default-random-provider.ts index ed7339a..1b3fe34 100644 --- a/src/default-random-provider.ts +++ b/src/default-random-provider.ts @@ -1,9 +1,15 @@ import { RandomProvider } from "./random-provider"; +import * as Random from "random-js"; export class DefaultRandomProvider implements RandomProvider { - constructor() { } + + private random: Random; + + constructor() { + this.random = new Random(Random.engines.mt19937().autoSeed()); + } numberBetween(min: number, max: number) { - return Math.floor(Math.random() * (max - min + 1)) + min; + return this.random.integer(min, max); } }