dicelang
Version:
JavaScript interpreter of the Roll20 dice language
555 lines (525 loc) • 113 kB
JavaScript
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 12);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.INT53_UPPER_MASK = 0x1FFFFF;
exports.MAX_JS_INT = 9007199254740991;
exports.MAX_UINT_32 = 4294967295;
exports.POW_2_32 = 4294967296;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9Db25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBYSxRQUFBLGdCQUFnQixHQUFHLFFBQVEsQ0FBQztBQUs1QixRQUFBLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztBQUs5QixRQUFBLFdBQVcsR0FBRyxVQUFVLENBQUM7QUFFekIsUUFBQSxRQUFRLEdBQUcsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IElOVDUzX1VQUEVSX01BU0sgPSAweDFGRkZGRjtcclxuXHJcbi8qKlxyXG4gKiBFcXVhbCB0byBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiwgb3IgMl41MyAtIDEuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFYX0pTX0lOVCA9IDkwMDcxOTkyNTQ3NDA5OTE7XHJcblxyXG4vKipcclxuICogRXF1YWwgdG8gMl4zMiAtIDEuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFYX1VJTlRfMzIgPSA0Mjk0OTY3Mjk1O1xyXG5cclxuZXhwb3J0IGNvbnN0IFBPV18yXzMyID0gNDI5NDk2NzI5NjtcclxuIl19
/***/ }),
/* 1 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Constants_1 = __webpack_require__(0);
var Random_1 = __webpack_require__(6);
var DiceMod_1 = __webpack_require__(7);
var Dice = (function () {
function Dice(diceExpr, binding) {
this._minRoll = 1;
this._fate = false;
this._rolls = [];
this._rawRolls = [];
if (!diceExpr) {
this._d = 20;
this._n = 1;
this._mod = new DiceMod_1.DiceMod();
}
else {
var parseResult = Dice.diceRegExp.exec(diceExpr);
if (parseResult == null) {
throw new Error("\"" + diceExpr + "\" is not a valid expression.");
}
this._mod = new DiceMod_1.DiceMod(parseResult[3]);
if (parseResult[1] === undefined) {
this._n = 1;
}
else {
var n = parseInt(parseResult[1], 10);
Dice.checkN(n);
this._n = n;
}
if (parseResult[2] === 'f' || parseResult[2] === 'F') {
this.fate = true;
}
else {
var d = parseInt(parseResult[2], 10);
Dice.checkD(d);
this._fate = false;
this._d = d;
}
}
}
Object.defineProperty(Dice, "maxD", {
get: function () {
return Constants_1.MAX_JS_INT;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice, "maxN", {
get: function () {
return Constants_1.MAX_JS_INT;
},
enumerable: true,
configurable: true
});
Dice.roll = function (d, n) {
Dice.checkD(d);
if (n === undefined) {
n = 1;
}
Dice.checkN(n);
var result = [];
for (var i = 0; i < n; ++i) {
result.push(Random_1.getRandomInt(1, d));
}
return result;
};
Object.defineProperty(Dice, "diceRegExp", {
get: function () {
return /^(\d+)?d(f|\d+)(.*)$/ig;
},
enumerable: true,
configurable: true
});
Dice.checkD = function (d) {
if (d < 0 || d > Dice.maxD) {
throw new Error("The value of n must be between 0 and " + Dice.maxD + " inclusive (got " + d + ")");
}
};
Dice.checkN = function (n) {
if (n < 0 || n > Dice.maxN) {
throw new Error("The value of n must be between 0 and " + Dice.maxN + " inclusive (got " + n + ")");
}
};
Object.defineProperty(Dice.prototype, "n", {
get: function () {
return this._n;
},
set: function (value) {
value = Math.round(value);
Dice.checkN(value);
this._n = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice.prototype, "d", {
get: function () {
if (this._fate) {
return 3;
}
else {
return this._d;
}
},
set: function (value) {
value = Math.round(value);
Dice.checkD(value);
this._d = value;
this._fate = false;
this._minRoll = 1;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice.prototype, "fate", {
get: function () {
return this._fate;
},
set: function (value) {
value = !!value;
if (value !== this._fate) {
this._fate = value;
if (value) {
this._d = 1;
this._minRoll = -1;
}
else {
this._d = 3;
this._minRoll = 1;
}
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice.prototype, "minRoll", {
get: function () {
return this._minRoll;
},
enumerable: true,
configurable: true
});
Dice.prototype.roll = function (n) {
if (n === void 0) { n = this.n; }
Dice.checkN(n);
var rolls = [];
this._rolls.length = 0;
this._rawRolls.length = 0;
for (var i = 0; i < n; ++i) {
var roll = Random_1.getRandomInt(this._minRoll, this._d);
this._rawRolls.push(roll);
this._mod.rolled(roll, rolls, this);
}
this._result = this._mod.modResult(rolls);
this._rolls = rolls;
return this.result;
};
Object.defineProperty(Dice.prototype, "result", {
get: function () {
return this._result;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice.prototype, "rolls", {
get: function () {
return this._rolls.slice();
},
enumerable: true,
configurable: true
});
Object.defineProperty(Dice.prototype, "rawRolls", {
get: function () {
return this._rawRolls.slice();
},
enumerable: true,
configurable: true
});
Dice.prototype.toString = function () {
return this._n + "d" + (this._fate ? 'F' : this._d) + this._mod.toString();
};
Dice.prototype.toStringPlaintext = function () {
return "Roll " + this._n + " " + (this._fate ? 'fate dice' : "d" + this._d + (this._n > 1 ? 's' : '')) + ". " + this._mod.toStringPlaintext();
};
return Dice;
}());
exports.Dice = Dice;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9EaWNlL0RpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxpREFBOEQ7QUFDOUQsMkNBQWdEO0FBRWhELHFDQUFvQztBQWtCcEM7SUEwRUUsY0FBbUIsUUFBaUIsRUFBRSxPQUFnQjtRQW5COUMsYUFBUSxHQUFXLENBQUMsQ0FBQztRQUdyQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBSXZCLFdBQU0sR0FBYSxFQUFFLENBQUM7UUFDdEIsY0FBUyxHQUFhLEVBQUUsQ0FBQztRQVkvQixFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFPLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNuRCxFQUFFLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFJLFFBQVEsa0NBQThCLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBR0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGlCQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFHeEMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLElBQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxX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Qzs7O09BQUE7SUFFRCxzQkFBVywwQkFBUTthQUFuQjtZQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7OztPQUFBO0lBRU0sdUJBQVEsR0FBZjtRQUNFLE1BQU0sQ0FBSSxJQUFJLENBQUMsRUFBRSxVQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUksQ0FBQztJQUMzRSxDQUFDO0lBRU0sZ0NBQWlCLEdBQXhCO1FBQ0UsTUFBTSxDQUFDLFVBQVEsSUFBSSxDQUFDLEVBQUUsVUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsR0FBRyxNQUFJLElBQUksQ0FBQyxFQUFFLElBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBRSxXQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUksQ0FBQztJQUNsSSxDQUFDO0lBQ0gsV0FBQztBQUFELENBQUMsQUF2T0QsSUF1T0M7QUF2T1ksb0JBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNQVhfSlNfSU5ULCBNQVhfVUlOVF8zMiB9IGZyb20gJy4uL0NvbW1vbi9Db25zdGFudHMnO1xyXG5pbXBvcnQgeyBnZXRSYW5kb21JbnQgfSBmcm9tICcuLi9Db21tb24vUmFuZG9tJztcclxuXHJcbmltcG9ydCB7IERpY2VNb2QgfSBmcm9tICcuL0RpY2VNb2QnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGljZSB7XHJcbiAgbjogbnVtYmVyO1xyXG4gIGQ6IG51bWJlcjtcclxuICBmYXRlOiBib29sZWFuO1xyXG4gIG1pblJvbGw6IG51bWJlcjtcclxuICByZXN1bHQ6IG51bWJlcjtcclxuICByb2xsczogbnVtYmVyW107XHJcbiAgcmF3Um9sbHM6IG51bWJlcltdO1xyXG4gIHJvbGwobj86IG51bWJlcik6IG51bWJlcjtcclxuICB0b1N0cmluZygpOiBzdHJpbmc7XHJcbiAgdG9TdHJpbmdQbGFpbnRleHQoKTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50YXRpb24gb2YgYSBkaWNlIHJvbGwuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGljZSBpbXBsZW1lbnRzIElEaWNlIHtcclxuICAvKipcclxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIG9mIGQsIHdoaWNoIGlzIGVxdWFsIHRvIHRoZSBsYXJnZXN0IHJlcHJlc2VudGFibGVcclxuICAgKiBpbnRlZ2VyIGluIEphdmFTY3JpcHQgKDkwMDcxOTkyNTQ3NDA5OTEsIG9yIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKS5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIGdldCBtYXhEKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTUFYX0pTX0lOVDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgb2Ygbiwgd2hpY2ggaXMgZXF1YWwgdG8gdGhlIGxhcmdlc3QgcmVwcmVzZW50YWJsZVxyXG4gICAqIGludGVnZXIgaW4gSmF2YVNjcmlwdCAoOTAwNzE5OTI1NDc0MDk5MSwgb3IgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIgaW5cclxuICAgKiBFUzYpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IG1heE4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNQVhfSlNfSU5UO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyZm9ybSBhIHNpbXBsZSBkaWNlIHJvbGwuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IGQgVGhlIG51bWJlciBvZiBmYWNlcyB0aGUgZGljZSBzaG91bGQgaGF2ZS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGRpY2UgdG8gcm9sbC4gRGVmYXVsdHMgdG8gMSBpZiBub3QgZ2l2ZW4uXHJcbiAgICogQHRocm93cyBJZiB0aGUgdmFsdWUgb2YgbiBpcyBub3QgYmV0d2VlbiAwIGFuZCBEaWNlLm1heE4gaW5jbHVzaXZlLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIGQgaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhEIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgc3RhdGljIHJvbGwoZDogbnVtYmVyLCBuPzogbnVtYmVyKTogbnVtYmVyW10ge1xyXG4gICAgRGljZS5jaGVja0QoZCk7XHJcbiAgICBpZiAobiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG4gPSAxO1xyXG4gICAgfVxyXG4gICAgRGljZS5jaGVja04obik7XHJcblxyXG4gICAgY29uc3QgcmVzdWx0OiBudW1iZXJbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuOyArK2kpIHtcclxuICAgICAgcmVzdWx0LnB1c2goZ2V0UmFuZG9tSW50KDEsIGQpKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3RhdGljIGdldCBkaWNlUmVnRXhwKCk6IFJlZ0V4cCB7XHJcbiAgICByZXR1cm4gL14oXFxkKyk/ZChmfFxcZCspKC4qKSQvaWc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBjaGVja0QoZDogbnVtYmVyKSB7XHJcbiAgICBpZiAoZCA8IDAgfHwgZCA+IERpY2UubWF4RCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSB2YWx1ZSBvZiBuIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAke0RpY2UubWF4RH0gaW5jbHVzaXZlIChnb3QgJHtkfSlgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGNoZWNrTihuOiBudW1iZXIpIHtcclxuICAgIGlmIChuIDwgMCB8fCBuID4gRGljZS5tYXhOKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHZhbHVlIG9mIG4gbXVzdCBiZSBiZXR3ZWVuIDAgYW5kICR7RGljZS5tYXhOfSBpbmNsdXNpdmUgKGdvdCAke259KWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbWluUm9sbDogbnVtYmVyID0gMTtcclxuICBwcml2YXRlIF9uOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2ZhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9tb2Q6IERpY2VNb2Q7XHJcbiAgcHJpdmF0ZSBfYmluZGluZzogYW55O1xyXG4gIHByaXZhdGUgX3Jlc3VsdDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX3JvbGxzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3Jhd1JvbGxzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYSBuZXcgZGljZSBmcm9tIHRoZSBnaXZlbiBhdG9taWMgZXhwcmVzc2lvbi5cclxuICAgKiBAcGFyYW0gez9zdHJpbmd9IGRpY2VFeHByIFRoZSBhdG9taWMgZGljZSBleHByZXNzaW9uIHRvIGNyZWF0ZSB0aGUgZGljZVxyXG4gICAqIGZyb20uIElmIG5vdCBnaXZlbiwgdGhlIGRpY2UgaXMgaW5pdGlhbGl6ZWQgYXMgXCIxZDIwXCIuXHJcbiAgICogQHBhcmFtIHs/b2JqZWN0fSBiaW5kaW5nIEFuIG9iamVjdCB0byBiaW5kIHRvIGlmIHRoZSBleHByZXNzaW9uIGluY2x1ZGVzXHJcbiAgICogYmluZGluZ3MuXHJcbiAgICogQHRocm93cyBJZiB0aGUgdmFsdWUgb2YgbiBpcyBub3QgYmV0d2VlbiAwIGFuZCBEaWNlLm1heE4gaW5jbHVzaXZlLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIGQgaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhEIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgY29uc3RydWN0b3IoZGljZUV4cHI/OiBzdHJpbmcsIGJpbmRpbmc/OiBvYmplY3QpIHtcclxuICAgIGlmICghZGljZUV4cHIpIHtcclxuICAgICAgdGhpcy5fZCA9IDIwO1xyXG4gICAgICB0aGlzLl9uID0gMTtcclxuICAgICAgdGhpcy5fbW9kID0gbmV3IERpY2VNb2QoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHBhcnNlUmVzdWx0ID0gRGljZS5kaWNlUmVnRXhwLmV4ZWMoZGljZUV4cHIpO1xyXG4gICAgICBpZiAocGFyc2VSZXN1bHQgPT0gbnVsbCkge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgXCIke2RpY2VFeHByfVwiIGlzIG5vdCBhIHZhbGlkIGV4cHJlc3Npb24uYCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFBhcnNlIHRoZSBtb2RzIHRvIGZhaWwtZmFzdCBpZiB0aGVyZSBpcyBhIHByb2JsZW0gd2l0aCB0aGUgbW9kc3RyaW5nLlxyXG4gICAgICB0aGlzLl9tb2QgPSBuZXcgRGljZU1vZChwYXJzZVJlc3VsdFszXSk7XHJcblxyXG4gICAgICAvLyBQYXJzZSB0aGUgdmFsdWUgb2YgblxyXG4gICAgICBpZiAocGFyc2VSZXN1bHRbMV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX24gPSAxO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IG4gPSBwYXJzZUludChwYXJzZVJlc3VsdFsxXSwgMTApO1xyXG4gICAgICAgIERpY2UuY2hlY2tOKG4pO1xyXG4gICAgICAgIHRoaXMuX24gPSBuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBQYXJzZSB0aGUgdmFsdWUgb2YgZC5cclxuICAgICAgaWYgKHBhcnNlUmVzdWx0WzJdID09PSAnZicgfHwgcGFyc2VSZXN1bHRbMl0gPT09ICdGJykge1xyXG4gICAgICAgIC8vIFVzZSB0aGUgZmF0ZSBzZXR0ZXIuXHJcbiAgICAgICAgdGhpcy5mYXRlID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBkID0gcGFyc2VJbnQocGFyc2VSZXN1bHRbMl0sIDEwKTtcclxuICAgICAgICBEaWNlLmNoZWNrRChkKTtcclxuICAgICAgICB0aGlzLl9mYXRlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZCA9IGQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgdmFsdWUgb2Ygbiwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZC1zaWRlZCBkaWNlIGlzIHJvbGxlZFxyXG4gICAqIHdoZW4gcm9sbCgpIGlzIGNhbGxlZC5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IG4oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiBuLlxyXG4gICAqIEB0aHJvd3MgSWYgdGhlIHZhbHVlIG9mIG4gaXMgbm90IGJldHdlZW4gMCBhbmQgRGljZS5tYXhOIGluY2x1c2l2ZS5cclxuICAgKi9cclxuICBwdWJsaWMgc2V0IG4odmFsdWU6IG51bWJlcikge1xyXG4gICAgdmFsdWUgPSBNYXRoLnJvdW5kKHZhbHVlKTtcclxuICAgIERpY2UuY2hlY2tOKHZhbHVlKTtcclxuICAgIHRoaXMuX24gPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSB2YWx1ZSBvZiBkIGlzIHRoZSBudW1iZXIgb2YgZmFjZXMgb24gdGhpcyBkaWNlLiBJbiB0aGUgY2FzZSBvZiBmYXRlXHJcbiAgICogZGljZSwgcmV0dXJucyAzIChkMykuXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBkKCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5fZmF0ZSkge1xyXG4gICAgICByZXR1cm4gMztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9kO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IHRoZSB2YWx1ZSBvZiBkLiBJZiB0aGUgZGljZSBpcyBhIGZhdGUgZGljZSwgdGhlIGZhdGUgYXR0cmlidXRlIGlzXHJcbiAgICogY2xlYXJlZC5cclxuICAgKiBAdGhyb3dzIElmIHRoZSB2YWx1ZSBvZiBkIGlzIG5vdCBiZXR3ZWVuIDAgYW5kIERpY2UubWF4RCBpbmNsdXNpdmUuXHJcbiAgICovXHJcbiAgcHVibGljIHNldCBkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHZhbHVlID0gTWF0aC5yb3VuZCh2YWx1ZSk7XHJcbiAgICBEaWNlLmNoZWNrRCh2YWx1ZSk7XHJcbiAgICB0aGlzLl9kID0gdmFsdWU7XHJcbiAgICB0aGlzLl9mYXRlID0gZmFsc2U7XHJcbiAgICB0aGlzLl9taW5Sb2xsID0gMTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRydWUgaWYgdGhpcyBkaWNlIGlzIGEgZmF0ZSBkaWNlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZmF0ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mYXRlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGlmIHRoaXMgZGljZSBpcyBhIGZhdGUgZGljZS4gSWYgdGhlIHZhbHVlIGNoYW5nZXMgdG8gdHJ1ZSwgdGhlIHByZXZpb3VzXHJcbiAgICogdmFsdWUgZm9yIGQgaXMgY2xlYXJlZC4gSWYgdGhlIHZhbHVlIGNoYW5nZXMgdG8gZmFsc2UsIHRoZSB2YWx1ZSBvZiBkIGlzXHJcbiAgICogc2V0IHRvIDMgKHRoZSBkaWNlIGJlY29tZXMgYSBkMyBhbmQga2VlcHMgaXRzIHZhbHVlIG9mIG4pLiBJZiB0aGUgbmV3IHZhbHVlXHJcbiAgICogaXMgdGhlIHNhbWUgYXMgdGhlIGRpY2UncyBjdXJyZW50IHZhbHVlLCB0aGVyZSBpcyBubyBlZmZlY3QuXHJcbiAgICovXHJcbiAgcHVibGljIHNldCBmYXRlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB2YWx1ZSA9ICEhdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX2ZhdGUpIHtcclxuICAgICAgdGhpcy5fZmF0ZSA9IHZhbHVlO1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9kID0gMTtcclxuICAgICAgICB0aGlzLl9taW5Sb2xsID0gLTE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fZCA9IDM7XHJcbiAgICAgICAgdGhpcy5fbWluUm9sbCA9IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgbWluUm9sbCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX21pblJvbGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSb2xsIHRoZSBkaWNlLiBSZXR1cm5zIHRoZSBjb21iaW5lZCByZXN1bHQgb2YgdGhlIGRpY2Ugcm9sbC4gSW5kaXZpZHVhbFxyXG4gICAqIHJvbGxzIGFyZSBzdG9yZWQgaW4gdGhlIHJvbGxzIHByb3BlcnR5LlxyXG4gICAqIEBwYXJhbSB7P251bWJlcn0gbiBUaGUgbnVtYmVyIG9mIGRpY2UgdG8gcm9sbC4gSWYgbm90IHN1cHBsaWVkLCBkZWZhdWx0cyB0b1xyXG4gICAqIHRoZSB2YWx1ZSBvZiBuIGdpdmVuIHdoZW4gdGhlIGRpY2Ugd2FzIGNvbnN0cnVjdGVkLlxyXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IFRoZSBjb21iaW5lZCByZXN1bHQgb2YgdGhlIGRpY2Ugcm9sbC5cclxuICAgKiBAdGhyb3dzIElmIHRoZSB2YWx1ZSBvZiBuIGlzIG5vdCBiZXR3ZWVuIDAgYW5kIERpY2UubWF4TiBpbmNsdXNpdmUuXHJcbiAgICogQHRocm93cyBJdCBpcyBwb3NzaWJsZSBmb3IgY2VydGFpbiB0eXBlcyBvZiByb2xsIG1vZGlmaWVycyB0byBjb250aW51ZVxyXG4gICAqIHJvbGxpbmcgaW5maW5pdGVseS4gSW5zdGVhZCBvZiBjcmFzaGluZyB3ZSB0aHJvdyBhbiBlcnJvciBkZXNjcmliaW5nIHdoZXJlXHJcbiAgICogd2Ugc3RvcHBlZCBwcmVtYXR1cmVseS4gVGhlIHZhbHVlIG9mIHRoZSByb2xscyB0aGF0IHdlIGRpZCBleGVjdXRlIGNhblxyXG4gICAqIHN0aWxsIGJlIGFjY2Vzc2VkIHZpYSB0aGUgcm9sbHMgcHJvcGVydHksIGFuZCB0aGUgcmVzdWx0IGNhbiBzdGlsbCBiZVxyXG4gICAqIGFjY2Vzc2VkIHZpYSB0aGUgcmVzdWx0IHByb3BlcnR5LlxyXG4gICAqL1xyXG4gIHB1YmxpYyByb2xsKG46IG51bWJlciA9IHRoaXMubik6IG51bWJlciB7XHJcbiAgICBEaWNlLmNoZWNrTihuKTtcclxuICAgIGNvbnN0IHJvbGxzID0gW107XHJcbiAgICB0aGlzLl9yb2xscy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5fcmF3Um9sbHMubGVuZ3RoID0gMDtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbjsgKytpKSB7XHJcbiAgICAgIGNvbnN0IHJvbGwgPSBnZXRSYW5kb21JbnQodGhpcy5fbWluUm9sbCwgdGhpcy5fZCk7XHJcbiAgICAgIHRoaXMuX3Jhd1JvbGxzLnB1c2gocm9sbCk7XHJcbiAgICAgIHRoaXMuX21vZC5yb2xsZWQocm9sbCwgcm9sbHMsIHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVzdWx0ID0gdGhpcy5fbW9kLm1vZFJlc3VsdChyb2xscyk7XHJcbiAgICB0aGlzLl9yb2xscyA9IHJvbGxzO1xyXG4gICAgcmV0dXJuIHRoaXMucmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZXN1bHQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJvbGxzKCk6IG51bWJlcltdIHtcclxuICAgIHJldHVybiB0aGlzLl9yb2xscy5zbGljZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYXdSb2xscygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmF3Um9sbHMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuX259ZCR7dGhpcy5fZmF0ZSA/ICdGJyA6IHRoaXMuX2R9JHt0aGlzLl9tb2QudG9TdHJpbmcoKX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvU3RyaW5nUGxhaW50ZXh0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYFJvbGwgJHt0aGlzLl9ufSAke3RoaXMuX2ZhdGUgPyAnZmF0ZSBkaWNlJyA6IGBkJHt0aGlzLl9kfSR7dGhpcy5fbiA+IDEgPyAncycgOiAnJ31gfS4gJHt0aGlzLl9tb2QudG9TdHJpbmdQbGFpbnRleHQoKX1gO1xyXG4gIH1cclxufVxyXG4iXX0=
/***/ }),
/* 2 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var index_1 = __webpack_require__(8);
var React = __webpack_require__(9);
var ReactDOM = __webpack_require__(10);
var App = (function (_super) {
__extends(App, _super);
function App(props, context) {
var _this = _super.call(this, props, context) || this;
var dice = new index_1.Dice();
_this.state = {
description: dice.toStringPlaintext(),
dice: dice,
error: null,
lastRolls: null,
lastRollsBeforeMods: null,
lastTotal: null,
normalizedSpec: dice.toString(),
};
return _this;
}
App.prototype.render = function () {
var _this = this;
return (React.createElement("div", { style: { margin: '2em', maxWidth: '100%', wordWrap: 'break-word' } },
React.createElement("div", null,
React.createElement("input", { style: { fontFamily: 'monospace', width: '20em' }, placeholder: "Enter the dice to roll!", onKeyPress: function (e) { return _this.handleKeyDown(e); }, onChange: function (e) { return _this.handleChange(e); } }),
React.createElement("button", { onClick: function () { return _this.roll(); } }, "Roll!")),
React.createElement("div", null,
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Normalized Spec"),
React.createElement("p", null,
React.createElement("code", null, this.state.normalizedSpec || 'n/a')),
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Description"),
React.createElement("p", null,
React.createElement("code", null, this.state.description || 'n/a')),
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Total"),
React.createElement("p", null,
React.createElement("code", null, this.state.lastTotal || 'n/a')),
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Rolls"),
React.createElement("p", null,
React.createElement("code", null, this.state.lastRolls || 'n/a')),
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Last Rolls Before Mods"),
React.createElement("p", null,
React.createElement("code", null, this.state.lastRollsBeforeMods || 'n/a')),
React.createElement("h3", { style: { fontFamily: 'sans-serif' } }, "Errors"),
React.createElement("p", null,
React.createElement("code", null, this.state.error || 'n/a')))));
};
App.prototype.handleChange = function (event) {
try {
var newDice = new index_1.Dice(event.target.value);
this.setState({
description: newDice.toStringPlaintext(),
dice: newDice,
error: null,
normalizedSpec: newDice.toString(),
});
}
catch (e) {
console.error(e);
this.setState({
description: null,
dice: null,
error: e.message,
normalizedSpec: null,
});
}
};
App.prototype.handleKeyDown = function (event) {
if (event.key === 'Enter') {
this.roll();
}
};
App.prototype.roll = function () {
if (this.state.dice) {
try {
this.state.dice.roll();
this.setState({
error: null,
lastRolls: this.state.dice.rolls.join(', '),
lastRollsBeforeMods: this.state.dice.rawRolls.join(', '),
lastTotal: this.state.dice.result,
});
}
catch (e) {
console.error(e);
this.setState({
error: e.message,
lastRolls: null,
lastRollsBeforeMods: null,
lastTotal: null,
});
}
}
};
return App;
}(React.Component));
ReactDOM.render(React.createElement(App, null), document.getElementById('app'));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9leGFtcGxlL2FwcC9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVDO0FBRXZDLDZCQUErQjtBQUMvQixvQ0FBc0M7QUFZdEM7SUFBa0IsdUJBQStCO0lBQy9DLGFBQW1CLEtBQUssRUFBRSxPQUFPO1FBQWpDLFlBQ0Usa0JBQU0sS0FBSyxFQUFFLE9BQU8sQ0FBQyxTQVl0QjtRQVZDLElBQU0sSUFBSSxHQUFHLElBQUksWUFBSSxFQUFFLENBQUM7UUFDeEIsS0FBSSxDQUFDLEtBQUssR0FBRztZQUNYLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDckMsSUFBSSxNQUFBO1lBQ0osS0FBSyxFQUFFLElBQUk7WUFDWCxTQUFTLEVBQUUsSUFBSTtZQUNmLG1CQUFtQixFQUFFLElBQUk7WUFDekIsU0FBUyxFQUFFLElBQUk7WUFDZixjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUNoQyxDQUFDOztJQUNKLENBQUM7SUFFTSxvQkFBTSxHQUFiO1FBQUEsaUJBMkJDO1FBMUJDLE1BQU0sQ0FBQyxDQUNMLDZCQUFLLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFO1lBQ3JFO2dCQUNFLCtCQUNFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUNqRCxXQUFXLEVBQUUseUJBQXlCLEVBQ3RDLFVBQVUsRUFBRSxVQUFDLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQXJCLENBQXFCLEVBQ3hDLFFBQVEsRUFBRSxVQUFDLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQXBCLENBQW9CLEdBQUk7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QUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNO2lCQUNsQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTztvQkFDaEIsU0FBUyxFQUFFLElBQUk7b0JBQ2YsbUJBQW1CLEVBQUUsSUFBSTtvQkFDekIsU0FBUyxFQUFFLElBQUk7aUJBQ2hCLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNILFVBQUM7QUFBRCxDQUFDLEFBNUZELENBQWtCLEtBQUssQ0FBQyxTQUFTLEdBNEZoQztBQUVELFFBQVEsQ0FBQyxNQUFNLENBQUMsb0JBQUMsR0FBRyxPQUFHLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljZSB9IGZyb20gJy4uLy4uL3NyYy9pbmRleCc7XHJcblxyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XHJcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7XHJcblxyXG5pbnRlcmZhY2UgSUFwcFN0YXRlIHtcclxuICBkaWNlOiBEaWNlO1xyXG4gIGVycm9yOiBzdHJpbmc7XHJcbiAgbm9ybWFsaXplZFNwZWM6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGxhc3RUb3RhbDogbnVtYmVyO1xyXG4gIGxhc3RSb2xsczogc3RyaW5nO1xyXG4gIGxhc3RSb2xsc0JlZm9yZU1vZHM6IHN0cmluZztcclxufVxyXG5cclxuY2xhc3MgQXBwIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PGFueSwgSUFwcFN0YXRlPiB7XHJcbiAgcHVibGljIGNvbnN0cnVjdG9yKHByb3BzLCBjb250ZXh0KSB7XHJcbiAgICBzdXBlcihwcm9wcywgY29udGV4dCk7XHJcblxyXG4gICAgY29uc3QgZGljZSA9IG5ldyBEaWNlKCk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICBkZXNjcmlwdGlvbjogZGljZS50b1N0cmluZ1BsYWludGV4dCgpLFxyXG4gICAgICBkaWNlLFxyXG4gICAgICBlcnJvcjogbnVsbCxcclxuICAgICAgbGFzdFJvbGxzOiBudWxsLFxyXG4gICAgICBsYXN0Um9sbHNCZWZvcmVNb2RzOiBudWxsLFxyXG4gICAgICBsYXN0VG90YWw6IG51bGwsXHJcbiAgICAgIG5vcm1hbGl6ZWRTcGVjOiBkaWNlLnRvU3RyaW5nKCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbmRlcigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgc3R5bGU9e3sgbWFyZ2luOiAnMmVtJywgbWF4V2lkdGg6ICcxMDAlJywgd29yZFdyYXA6ICdicmVhay13b3JkJyB9fT5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IGZvbnRGYW1pbHk6ICdtb25vc3BhY2UnLCB3aWR0aDogJzIwZW0nIH19XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtgRW50ZXIgdGhlIGRpY2UgdG8gcm9sbCFgfVxyXG4gICAgICAgICAgICBvbktleVByZXNzPXsoZSkgPT4gdGhpcy5oYW5kbGVLZXlEb3duKGUpfVxyXG4gICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHRoaXMuaGFuZGxlQ2hhbmdlKGUpfSAvPlxyXG4gICAgICAgICAgPGJ1dHRvbiBvbkNsaWNrPXsoKSA9PiB0aGlzLnJvbGwoKX0+Um9sbCE8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGgzIHN0eWxlPXt7IGZvbnRGYW1pbHk6ICdzYW5zLXNlcmlmJyB9fT5Ob3JtYWxpemVkIFNwZWM8L2gzPlxyXG4gICAgICAgICAgPHA+PGNvZGU+e3RoaXMuc3RhdGUubm9ybWFsaXplZFNwZWMgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+RGVzY3JpcHRpb248L2gzPlxyXG4gICAgICAgICAgPHA+PGNvZGU+e3RoaXMuc3RhdGUuZGVzY3JpcHRpb24gfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBUb3RhbDwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0VG90YWwgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBSb2xsczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0Um9sbHMgfHwgJ24vYSd9PC9jb2RlPjwvcD5cclxuICAgICAgICAgIDxoMyBzdHlsZT17eyBmb250RmFtaWx5OiAnc2Fucy1zZXJpZicgfX0+TGFzdCBSb2xscyBCZWZvcmUgTW9kczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5sYXN0Um9sbHNCZWZvcmVNb2RzIHx8ICduL2EnfTwvY29kZT48L3A+XHJcbiAgICAgICAgICA8aDMgc3R5bGU9e3sgZm9udEZhbWlseTogJ3NhbnMtc2VyaWYnIH19PkVycm9yczwvaDM+XHJcbiAgICAgICAgICA8cD48Y29kZT57dGhpcy5zdGF0ZS5lcnJvciB8fCAnbi9hJ308L2NvZGU+PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNoYW5nZShldmVudDogUmVhY3QuQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG5ld0RpY2UgPSBuZXcgRGljZShldmVudC50YXJnZXQudmFsdWUpO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogbmV3RGljZS50b1N0cmluZ1BsYWludGV4dCgpLFxyXG4gICAgICAgIGRpY2U6IG5ld0RpY2UsXHJcbiAgICAgICAgZXJyb3I6IG51bGwsXHJcbiAgICAgICAgbm9ybWFsaXplZFNwZWM6IG5ld0RpY2UudG9TdHJpbmcoKSxcclxuICAgICAgfSk7XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIGRlc2NyaXB0aW9uOiBudWxsLFxyXG4gICAgICAgIGRpY2U6IG51bGwsXHJcbiAgICAgICAgZXJyb3I6IGUubWVzc2FnZSxcclxuICAgICAgICBub3JtYWxpemVkU3BlYzogbnVsbCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUtleURvd24oZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcclxuICAgICAgdGhpcy5yb2xsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJvbGwoKSB7XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5kaWNlKSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS5kaWNlLnJvbGwoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGVycm9yOiBudWxsLFxyXG4gICAgICAgICAgbGFzdFJvbGxzOiB0aGlzLnN0YXRlLmRpY2Uucm9sbHMuam9pbignLCAnKSxcclxuICAgICAgICAgIGxhc3RSb2xsc0JlZm9yZU1vZHM6IHRoaXMuc3RhdGUuZGljZS5yYXdSb2xscy5qb2luKCcsICcpLFxyXG4gICAgICAgICAgbGFzdFRvdGFsOiB0aGlzLnN0YXRlLmRpY2UucmVzdWx0LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGVycm9yOiBlLm1lc3NhZ2UsXHJcbiAgICAgICAgICBsYXN0Um9sbHM6IG51bGwsXHJcbiAgICAgICAgICBsYXN0Um9sbHNCZWZvcmVNb2RzOiBudWxsLFxyXG4gICAgICAgICAgbGFzdFRvdGFsOiBudWxsLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5SZWFjdERPTS5yZW5kZXIoPEFwcCAvPiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FwcCcpKTtcclxuIl19
/***/ }),
/* 3 */
/***/ (function(module, exports) {
var g;
// This works in non-strict mode
g = (function() {
return this;
})();
try {
// This works if eval is allowed (see CSP)
g = g || Function("return this")() || (1,eval)("this");
} catch(e) {
// This works if the window reference is available
if(typeof window === "object")
g = window;
}
// g can still be undefined, but nothing to do about it...
// We return undefined, instead of nothing here, so it's
// easier to handle this case. if(!global) { ...}
module.exports = g;
/***/ }),
/* 4 */
/***/ (function(module, exports, __webpack_require__) {
var window = __webpack_require__(5);
var nodeCrypto = __webpack_require__(11);
function getRandomValues(buf) {
if (window.crypto && window.crypto.getRandomValues) {
return window.crypto.getRandomValues(buf);
}
if (typeof window.msCrypto === 'object' && typeof window.msCrypto.getRandomValues === 'function') {
return window.msCrypto.getRandomValues(buf);
}
if (nodeCrypto.randomBytes) {
if (!(buf instanceof Uint8Array)) {
throw new TypeError('expected Uint8Array');
}
if (buf.length > 65536) {
var e = new Error();
e.code = 22;
e.message = 'Failed to execute \'getRandomValues\' on \'Crypto\': The ' +
'ArrayBufferView\'s byte length (' + buf.length + ') exceeds the ' +
'number of bytes of entropy available via this API (65536).';
e.name = 'QuotaExceededError';
throw e;
}
var bytes = nodeCrypto.randomBytes(buf.length);
buf.set(bytes);
return buf;
}
else {
throw new Error('No secure random number generator available.');
}
}
module.exports = getRandomValues;
/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {
/* WEBPACK VAR INJECTION */(function(global) {if (typeof window !== "undefined") {
module.exports = window;
} else if (typeof global !== "undefined") {
module.exports = global;
} else if (typeof self !== "undefined"){
module.exports = self;
} else {
module.exports = {};
}
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))
/***/ }),
/* 6 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Constants_1 = __webpack_require__(0);
var getRandomValues;
try {
getRandomValues = __webpack_require__(4);
}
catch (e) {
console.error(new Error('Enviroment does not support the crypto API.'));
}
var buff = new ArrayBuffer(8);
function getRandomNumber() {
if (getRandomValues) {
getRandomValues(new Uint8Array(buff));
var view = new Uint32Array(buff);
var lsb = view[1];
var msb = view[0];
msb = msb & Constants_1.INT53_UPPER_MASK;
msb *= Constants_1.POW_2_32;
return (msb + lsb) / Constants_1.MAX_JS_INT;
}
else {
return Math.random();
}
}
exports.getRandomNumber = getRandomNumber;
function getRandomInt(min, max) {
min = Math.round(min);
max = Math.round(max);
if (min === max) {
return min;
}
else if (max < min) {
return 0;
}
else {
return Math.floor(getRandomNumber() * (max - min + 1)) + min;
}
}
exports.getRandomInt = getRandomInt;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmFuZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0NvbW1vbi9SYW5kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FLcUI7QUFFckIsSUFBSSxlQUFlLENBQUM7QUFDcEIsSUFBSSxDQUFDO0lBRUgsZUFBZSxHQUFHLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDLENBQUM7QUFDMUUsQ0FBQztBQUVELElBQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBTWhDO0lBQ0UsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUVwQixlQUFlLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR2xCLEdBQUcsR0FBRyxHQUFHLEdBQUcsNEJBQWdCLENBQUM7UUFHN0IsR0FBRyxJQUFJLG9CQUFRLENBQUM7UUFDaEIsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLHNCQUFVLENBQUM7SUFDbEMsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0FBQ0gsQ0FBQztBQWxCRCwwQ0FrQkM7QUFXRCxzQkFBNkIsR0FBVyxFQUFFLEdBQVc7SUFDbkQsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEIsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckIsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUMvRCxDQUFDO0FBQ0gsQ0FBQztBQVZELG9DQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJTlQ1M19VUFBFUl9NQVNLLFxyXG4gIE1BWF9KU19JTlQsXHJcbiAgTUFYX1VJTlRfMzIsXHJcbiAgUE9XXzJfMzIsXHJcbn0gZnJvbSAnLi9Db25zdGFudHMnO1xyXG5cclxubGV0IGdldFJhbmRvbVZhbHVlcztcclxudHJ5IHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdmFyLXJlcXVpcmVzXHJcbiAgZ2V0UmFuZG9tVmFsdWVzID0gcmVxdWlyZSgnZ2V0LXJhbmRvbS12YWx1ZXMnKTtcclxufSBjYXRjaCAoZSkge1xyXG4gIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKCdFbnZpcm9tZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIGNyeXB0byBBUEkuJykpO1xyXG59XHJcblxyXG5jb25zdCBidWZmID0gbmV3IEFycmF5QnVmZmVyKDgpO1xyXG4vKipcclxuICogR2VuZXJhdGVzIGEgcmFuZG9tIHJlYWwgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUuIFVzZXMgdGhlIEphdmFTY3JpcHRcclxuICogY3J5cHRvIEFQSSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB1c2VzIE1hdGgucmFuZG9tKCkuXHJcbiAqIEByZXR1cm5zIHtudW1iZXJ9IEEgcmFuZG9tIHJlYWwgbnVtYmVyIGJldHdlZW4gMCBhbmQgMSBpbmNsdXNpdmUuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmFuZG9tTnVtYmVyKCk6IG51bWJlciB7XHJcbiAgaWYgKGdldFJhbmRvbVZhbHVlcykge1xyXG4gICAgLy8gR2VuZXJhdGUgNjQgcmFuZG9tIGJpdHMuXHJcbiAgICBnZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQ4QXJyYXkoYnVmZikpO1xyXG4gICAgLy8gV2UgY2FuIG9ubHkgY3JlYXRlIFVpbnQzMiB2aWV3cywgc28gd2UgaGF2ZSAyIFVpbnQzMnMgbm93LlxyXG4gICAgY29uc3QgdmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmKTtcclxuICAgIGNvbnN0IGxzYiA9IHZpZXdbMV07XHJcbiAgICBsZXQgbXNiID0gdmlld1swXTtcclxuICAgIC8vIE1hc2sgdGhlIG1zYiBmb3IgNTMgYml0cyB0b3RhbC5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXHJcbiAgICBtc2IgPSBtc2IgJiBJTlQ1M19VUFBFUl9NQVNLO1xyXG4gICAgLy8gVGhlIE1TQiBuZWVkcyB0byBiZSBzaGlmdGVkIDMyLCBidXQgSlMgdHJlYXRzIGJpdHdpc2Ugb3BzIGFzIDMyIGJpdFxyXG4gICAgLy8gbnVtYmVycywgc28gaXQgd291bGQgb3ZlcmZsb3cuIE11bHRpcGx5IGJ5IDJeMzIgaW5zdGVhZC5cclxuICAgIG1zYiAqPSBQT1dfMl8zMjtcclxuICAgIHJldHVybiAobXNiICsgbHNiKSAvIE1BWF9KU19JTlQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBNYXRoLnJhbmRvbSgpO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIEdldCBhIHJhbmRvbSBpbnRlZ2VyIGJldHdlZW4gbWluIGFuZCBtYXggaW5jbHVzaXZlLiBUaGUgdmFsdWVzIG9mIG1pbiBhbmQgbWF4XHJcbiAqIGFyZSBmaXJzdCByb3VuZGVkIHVzaW5nIE1hdGgucm91bmQoKS4gVGhlIEphdmFTY3JpcHQgY3J5cHRvIEFQSXMgYXJlIHVzZWQgaWZcclxuICogYXZhaWxhYmxlLCBvdGhlcndpc2UgTWF0aC5yYW5kb20oKSBpcyB1c2VkLlxyXG4gKiBAcGFyYW0ge251bWJlcn0gbWluXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBtYXhcclxuICogQHJldHVybnMge251bWJlcn0gQSByYW5kb20gaW50ZWdlciBiZXR3ZWVuIG1pbiBhbmQgbWF4IGluY2x1c2l2ZSwgb3IgMCBpZiBtYXhcclxuICogaXMgbGVzcyB0aGFuIG1pbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRSYW5kb21JbnQobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcclxuICBtaW4gPSBNYXRoLnJvdW5kKG1pbik7XHJcbiAgbWF4ID0gTWF0aC5yb3VuZChtYXgpO1xyXG4gIGlmIChtaW4gPT09IG1heCkge1xyXG4gICAgcmV0dXJuIG1pbjtcclxuICB9IGVsc2UgaWYgKG1heCA8IG1pbikge1xyXG4gICAgcmV0dXJuIDA7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBNYXRoLmZsb29yKGdldFJhbmRvbU51bWJlcigpICogKG1heCAtIG1pbiArIDEpKSArIG1pbjtcclxuICB9XHJcbn1cclxuIl19
/***/ }),
/* 7 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Constants_1 = __webpack_require__(0);
var Dice_1 = __webpack_require__(1);
var DiceMod = (function () {
function DiceMod(modExpr) {
this._successes = null;
this._failures = null;
this._exploding = null;
this._compounding = null;
this._penetrating = null;
this._keepDrop = null;
this._reroll = [];
this._sort = null;
var originalExpr = modExpr;
var result;
var explodeRegExp = DiceMod.explodeModRegExpr;
while (result = explodeRegExp.exec(modExpr)) {
this._parseExplodeResult(result);
modExpr = modExpr.replace(result[0], '');
}
var keepDropRegExp = DiceMod.keepDropModRegExp;
while (result = keepDropRegExp.exec(modExpr)) {
this._parseKeepDropResult(result);
modExpr = modExpr.replace(result[0], '');
}
var rerollRegExp = DiceMod.rerollModRegExp;
while (result = rerollRegExp.exec(modExpr)) {
this._parseRerollResult(result);
modExpr = modExpr.replace(result[0], '');