aurinn-train-content-generator
Version:
A custom fork of the fantasy-name-content-generator specifically for Aurinn Train, a custom D&D campaign format.
97 lines (96 loc) • 4.12 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate = void 0;
var Utils = __importStar(require("../utils"));
var names_1 = __importDefault(require("../names"));
var names_json_1 = __importDefault(require("./names.json"));
var names_json_2 = __importDefault(require("../names/names.json"));
var generateName = function (race, gender, cls, seed) {
//if race and class are defined
if (cls != undefined && race != undefined) {
//choose one randomly and base the name on that
if (Utils.rand(0, 3)) {
//class
create(Utils.pick(names_json_1.default[cls]));
}
//race
if (names_json_1.default[race].length == 0)
return create(names_1.default.generate({ race: race, gender: gender, seed: seed }).formattedData.name);
return create(Utils.pick(names_json_1.default[race]));
}
//if class is undefined choose race (if undefined we randomize it)
if (cls == undefined) {
race = race != undefined ? race : Utils.pick(Object.keys(names_json_2.default));
if (names_json_1.default[race] == undefined || names_json_1.default[race].length == 0)
return create(names_1.default.generate({ race: race, gender: gender, seed: seed }).formattedData.name);
return create(Utils.pick(names_json_1.default[race]));
}
//if race is undefined choose class (can't be undefined here)
if (race == undefined) {
return create(Utils.pick(names_json_1.default[cls]));
}
};
exports.generate = function (props) {
var _a;
if (props === void 0) { props = {}; }
var race = props.race, gender = props.gender, cls = props.cls, seed = props.seed;
seed = (_a = seed !== null && seed !== void 0 ? seed : Utils.FantasyContentGeneratorSeed) !== null && _a !== void 0 ? _a : Utils.generateUUID();
return Utils.withSeed(seed, function () {
//race = race ? race : Utils.pick(Object.keys(Data))
//gender = gender ? gender : Utils.randomGender()
var name = generateName(race, gender, cls, seed);
return {
seed: seed,
name: name,
race: race,
gender: gender,
firstName: name,
lastName: undefined,
fromattedData: {
name: name,
race: race ? Utils.formatString(race) : 'undefined',
gender: gender ? Utils.titleCase(gender) : 'undefined',
firstName: Utils.titleCase(name),
lastName: undefined
}
};
});
};
var create = function (input) {
var n = Utils.rand(1, input.length - 2);
var out = input.substring(n).toLowerCase();
return "Quif" + out;
};
var functions = {
generate: exports.generate,
};
Object.keys(names_json_1.default).forEach(function (value) {
functions[value] = function (props) {
props.race = value;
props.class = value;
return exports.generate(props);
};
});
exports.default = functions;