@randomgeekdom/rollbard
Version:
Libraries and generators for fantasy/scifi worldbuilding
47 lines • 2.48 kB
JavaScript
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
;