hololive-nick-gen
Version:
Generate unique hololive themed fan nicknames.
83 lines (78 loc) • 1.41 kB
text/typescript
const HOLOJP_FANNAMES = [
'Soratomo',
'Robosa',
'35P',
'Hoshiyomi',
'Kabumin',
'Rosetai',
'Senpai',
'Sukonbu',
'Matsurisu',
'Aqua_Crew',
'Shiokko',
'Human',
'Chocomaid',
'Subatomo',
'Mion_Family',
'Onigiriya',
'Koronesuki',
'Kaitakusha',
'Fandead',
'Elfriend',
'Shirogane',
'Houshou',
'Heimin',
'Tatsunoko',
'Watamate',
'Lu_Knight'
];
const HOLOEN_FANNAMES = [
'Dead_Beat',
'KFP',
'Chimken',
'Takodachi',
'Chumbud',
'Teamate',
'Gator',
'Irystocrat',
'Sapling',
'Kronie',
'Hooman',
'Brat',
'Baerat'
];
const DATASETS = {
ADJECTIVES: [
'Lovely',
'Confident',
'Robust',
'Dynamic',
'Brave',
'Calm',
'Sad',
'Wise',
'Wild',
'Clean',
'Crazy',
'Sneaky',
'Silly',
'Lucid',
'Leader'
],
FANNAMES: HOLOEN_FANNAMES.concat(HOLOJP_FANNAMES)
};
function randomInt({ min = 0, max = 100 }): number {
return Math.floor(Math.random() * (max - min + 1) + min);
}
/**
* Generates a random hololive-themed nickname
* @returns {string} A random nickname consisting of an adjective and a fanname
* @example
* const nickname = generateNickname();
* console.log(nickname); // "Cruel_KFP"
*/
export function generateNickname(): string {
const adjective = DATASETS.ADJECTIVES[randomInt({ max: DATASETS.ADJECTIVES.length - 1 })];
const fanname = DATASETS.FANNAMES[randomInt({ max: DATASETS.FANNAMES.length - 1 })];
return `${adjective}_${fanname}`;
}