1 const common = require("./common.js")
2 const pseudoRandom = require("pseudo-random")
3 const hiragana = require("./hiragana.json")
6 for (let k of Object.keys(hiragana))
11 const waifuName = rng => {
22 for (let i = 0; i < r; i++)
23 jp += common.choose(hiraganaList, rng)
27 for (let i = 0; i < r; i++) {
28 const combo = hiragana[jp.slice(i, i + 2)]
34 en += hiragana[jp.slice(i, i + 1)]
38 return `${jp} (${common.uppercase(en)})`
41 const waifuSpecies = rng => common.chooseWeighted([
42 [ null, 100], // Human
50 ["Apache Helicopter", 1],
51 [ "C++ Programmer", 1],
54 const waifuGender = rng => common.chooseWeighted([
65 const waifuHair = rng => common.chooseWeighted([
66 [[ "Brown", "#DDAE92"], 25],
67 [[ "Black", "#433F3A"], 25],
68 [["Blonde", "#ECC87E"], 20],
69 [[ "Red", "#E2887F"], 10],
72 const waifuEyes = rng => common.chooseWeighted([
73 [["Brown", "#463230"], 15],
74 [[ "Blue", "#97C6FE"], 10],
75 [["Green", "#36CC4E"], 5],
78 const waifuAge = rng => {
79 const tab = common.chooseWeighted([
80 [[ 200, 600], 25], // deamon
81 [[1000, 2000], 5], // next level deamon
82 [[ 12, 16], 50], // teen loli
83 [[ 18, 19], 5], // legal loli
84 [[ 5, 9], 5], // true loli
85 [ null, 1], // unknown
88 return tab ? tab[0] + Math.floor(rng.random() * (tab[1] - tab[0] + 1)) : null;
92 const rng = pseudoRandom(id = id || Math.floor(Math.random() * 32767))
97 species: waifuSpecies(rng),
98 gender: waifuGender(rng),
100 eyes: waifuEyes(rng),
105 const formatWaifu = waifu =>
106 `__**${waifu.name}**__
107 **Age:** ${waifu.age || "Unknown"}
108 **Gender:** ${waifu.gender}
109 ${waifu.hair[0]} Hair
110 ${waifu.eyes[0]} Eyes
118 msg.reply(formatWaifu(waifu(parseInt(id))))