darksouls-names
Version:
Get random Dark Souls I, II and III characters names
87 lines (74 loc) • 2.97 kB
JavaScript
;
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _darksoulsNames = require('./darksouls-names.json');
var _darksoulsNames2 = _interopRequireDefault(_darksoulsNames);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var DsNames = function () {
function DsNames() {
_classCallCheck(this, DsNames);
}
_createClass(DsNames, [{
key: 'all',
/**
* Get All data
*
* @returns Object
* @memberof DsNames
*/
value: function all() {
return _darksoulsNames2.default;
}
/**
* Get a random data
*
* @param {String} version DS version I, II or III
* @param {String} category DS category NPCs, Enemies or Bosses
* @param {Number} number DS category NPCs, Enemies or Bosses
* @memberof DsNames
*/
}, {
key: 'random',
value: function random(version, category, number) {
if (number === undefined) {
return this.__uniqueRandom(_darksoulsNames2.default[version][category]);
} else {
var randomItems = [];
for (var i = 0; i < number; i++) {
randomItems.push(this.__uniqueRandom(_darksoulsNames2.default[version][category]));
}
return randomItems;
}
}
/**
* Return a unique random value
*
* @param {any} arr Value to return
* @returns String
* @memberof DsNames
*/
}, {
key: '__uniqueRandom',
value: function __uniqueRandom(arr) {
var rand = this.__rand(0, arr.length - 1);
return arr[rand];
}
/**
* Make a random value
*
* @param {any} min
* @param {any} max
* @returns
* @memberof DsNames
*/
}, {
key: '__rand',
value: function __rand(min, max) {
var prev;
var num = Math.floor(Math.random() * (max - min + 1) + min);
return prev = num === prev && min !== max ? this.__rand() : num;
}
}]);
return DsNames;
}();
module.exports = new DsNames();