@randomgeekdom/rollbard
Version:
Libraries and generators for fantasy/scifi worldbuilding
52 lines • 1.93 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var Randomizer_1 = require("../Services/Randomizer");
var GenderGenerator_1 = require("./GenderGenerator");
var NameGenerator_1 = require("./NameGenerator");
var CityNameGenerator = /** @class */ (function () {
function CityNameGenerator(randomizer, nameGenerator, genderGenerator) {
if (randomizer === void 0) { randomizer = Randomizer_1.default.Get(); }
if (nameGenerator === void 0) { nameGenerator = NameGenerator_1.default.Get(); }
if (genderGenerator === void 0) { genderGenerator = GenderGenerator_1.default.Get(); }
this.randomizer = randomizer;
this.nameGenerator = nameGenerator;
this.genderGenerator = genderGenerator;
this.prefixes = [
"Saint ",
"San ",
"Fort ",
"New ",
"Old ",
"North ",
"South ",
"East ",
"West "
];
this.suffixes = [
" Town",
"ville",
"ton",
"polis",
" City",
"wall",
"grad"
];
}
CityNameGenerator.prototype.Generate = function () {
var name = this.nameGenerator.GenerateName(this.genderGenerator.GetGender());
switch (this.randomizer.GetRandomInt(3)) {
case 0: //suffix
return name + this.randomizer.GetRandomElement(this.suffixes);
case 1: //prefix
return this.randomizer.GetRandomElement(this.prefixes) + name;
default:
return name;
}
};
CityNameGenerator.Get = function () {
return new CityNameGenerator(Randomizer_1.default.Get());
};
return CityNameGenerator;
}());
exports.default = CityNameGenerator;
//# sourceMappingURL=CityNameGenerator.js.map
;