personae
Version:
This tool is used to generate a person either NPC or other Edit
45 lines (32 loc) • 1.23 kB
text/typescript
import * as fs from "fs";
import Genetica from "genetica";
import * as path from "path";
import { standardQuestions, sanitizeWizardOpts } from "./common";
import Personae from "./personae";
import Saver from "./saver";
const questions = require("questions");
const colors = require("colors/safe");
const rootDir = path.join(__dirname, "..");
const logo = fs.readFileSync(path.join(rootDir, "logo.txt"), { encoding: "utf-8" });
delete standardQuestions.race;
delete standardQuestions.gender;
const wizardSeed = (outputDir, seedPath) => {
if (outputDir === undefined) { outputDir = "."; }
// output welcome
process.stdout.write(`\n${colors.yellow(logo)}\n`);
// load seed
const seed = Genetica.loadSeed(seedPath);
const { race, gender } = seed;
// ask a few questions
questions.askMany(standardQuestions, (opts) => {
opts.gender = gender;
opts.race = race;
opts.seed = seed;
opts = sanitizeWizardOpts(opts);
const personae = new Personae(opts);
const person = personae.generate();
process.stdout.write(Personae.output(person));
Saver.finish(outputDir, "Would you like to save your person? (y | n)", person, person.name, undefined);
});
};
export default wizardSeed;