UNPKG

@randomgeekdom/rollbard

Version:

Libraries and generators for fantasy/scifi worldbuilding

47 lines 2.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var __1 = require(".."); var NPC_1 = require("../Models/NPC"); var CityNameGenerator_1 = require("./CityNameGenerator"); var GenderGenerator_1 = require("./GenderGenerator"); var JobGenerator_1 = require("./JobGenerator"); var TitleGenerator_1 = require("./TitleGenerator"); var VesselGenerator_1 = require("./VesselGenerator"); var NameRoller_1 = require("../Rollers/NameRoller"); var NPCGenerator = /** @class */ (function () { function NPCGenerator(randomizer, genderGenerator, nameRoller, cityNameGenerator, rulerTitleGenerator, jobGenerator, vesselGenerator) { if (randomizer === void 0) { randomizer = __1.Randomizer.Get(); } if (genderGenerator === void 0) { genderGenerator = GenderGenerator_1.default.Get(); } if (nameRoller === void 0) { nameRoller = NameRoller_1.default.Get(); } if (cityNameGenerator === void 0) { cityNameGenerator = CityNameGenerator_1.default.Get(); } if (rulerTitleGenerator === void 0) { rulerTitleGenerator = new TitleGenerator_1.default(__1.Randomizer.Get()); } if (jobGenerator === void 0) { jobGenerator = new JobGenerator_1.default(__1.Randomizer.Get()); } if (vesselGenerator === void 0) { vesselGenerator = new VesselGenerator_1.default(__1.Randomizer.Get()); } this.randomizer = randomizer; this.genderGenerator = genderGenerator; this.nameRoller = nameRoller; this.cityNameGenerator = cityNameGenerator; this.rulerTitleGenerator = rulerTitleGenerator; this.jobGenerator = jobGenerator; this.vesselGenerator = vesselGenerator; } NPCGenerator.prototype.Generate = function () { var npc = new NPC_1.default(); npc.Gender = this.genderGenerator.GetGender(); npc.FirstName = this.nameRoller.GenerateFirstName(npc.Gender); npc.LastName = this.nameRoller.GenerateLastName(); npc.Hometown = this.cityNameGenerator.Generate(); if (this.randomizer.GetRandomBool(5)) { npc.Title = this.rulerTitleGenerator.GetRandomTitle(npc.Gender); npc.Job = "Leader"; } else { npc.Job = this.jobGenerator.Generate(); } npc.Vessel = this.vesselGenerator.Generate(); return npc; }; return NPCGenerator; }()); exports.default = NPCGenerator; //# sourceMappingURL=NPCGenerator.js.map