Fixed disproportionate 8 ball answers.

This commit is contained in:
Niels Simenon 2022-10-28 02:22:14 +02:00
parent 5b4b5d3c0f
commit 8617ab9d8b
1 changed files with 10 additions and 6 deletions

View File

@ -13,7 +13,7 @@ const contemplations = [
'Let\'s see...', 'Let\'s see...',
]; ];
const answers = { const answersByType = {
positive: [ positive: [
'It is certain', 'It is certain',
'It is decidedly so', 'It is decidedly so',
@ -42,6 +42,7 @@ const answers = {
], ],
}; };
const answers = Object.entries(answersByType).flatMap(([type, typeAnswers]) => typeAnswers.map((answer) => ({ answer, type })));
const questions = new Map(); const questions = new Map();
function purgeQuestions() { function purgeQuestions() {
@ -65,13 +66,16 @@ async function onCommand(args, context) {
? stringSimilarity.findBestMatch(question, Array.from(questions.keys())).bestMatch ? stringSimilarity.findBestMatch(question, Array.from(questions.keys())).bestMatch
: null; : null;
const answerType = similarQuestion?.rating > 0.5 const similarQuestionType = similarQuestion?.rating > 0.6 && questions.get(similarQuestion.target)?.type;
? questions.get(similarQuestion.target).answerType
: Object.keys(answers)[crypto.randomInt(0, 3)];
const answer = answers[answerType][crypto.randomInt(0, answers[answerType].length)]; const { answer, type } = similarQuestionType
? {
answer: answersByType[similarQuestionType][crypto.randomInt(0, answersByType[similarQuestionType].length)],
type: similarQuestionType,
}
: answers[crypto.randomInt(0, answers.length)];
questions.set(question, { answerType, timestamp: new Date() }); questions.set(question, { type, timestamp: new Date() });
context.sendMessage(`🎱 ${contemplations[crypto.randomInt(0, contemplations.length)]}`, context.room.id, { label: false }); context.sendMessage(`🎱 ${contemplations[crypto.randomInt(0, contemplations.length)]}`, context.room.id, { label: false });