Improved Letters distribution. Added conundrum to mash.
This commit is contained in:
@@ -9,9 +9,38 @@ const getWordKey = require('../utils/get-word-key');
|
||||
const pickRandom = require('../utils/pick-random');
|
||||
const words = require('../../assets/mash-words.json');
|
||||
|
||||
// http://www.thecountdownpage.com/letters.htm
|
||||
const availableLetters = {
|
||||
vowel: ['a', 'e', 'i', 'o', 'u'],
|
||||
consonant: ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'], // Countdown regards y as a consonant
|
||||
vowel: [
|
||||
...Array.from({ length: 15 }, () => 'a'),
|
||||
...Array.from({ length: 21 }, () => 'e'),
|
||||
...Array.from({ length: 13 }, () => 'i'),
|
||||
...Array.from({ length: 13 }, () => 'o'),
|
||||
...Array.from({ length: 5 }, () => 'u'),
|
||||
],
|
||||
consonant: [
|
||||
...Array.from({ length: 2 }, () => 'b'),
|
||||
...Array.from({ length: 3 }, () => 'c'),
|
||||
...Array.from({ length: 6 }, () => 'd'),
|
||||
...Array.from({ length: 2 }, () => 'f'),
|
||||
...Array.from({ length: 3 }, () => 'g'),
|
||||
...Array.from({ length: 2 }, () => 'h'),
|
||||
...Array.from({ length: 1 }, () => 'j'),
|
||||
...Array.from({ length: 1 }, () => 'k'),
|
||||
...Array.from({ length: 5 }, () => 'l'),
|
||||
...Array.from({ length: 4 }, () => 'm'),
|
||||
...Array.from({ length: 8 }, () => 'n'),
|
||||
...Array.from({ length: 4 }, () => 'p'),
|
||||
...Array.from({ length: 1 }, () => 'q'),
|
||||
...Array.from({ length: 9 }, () => 'r'),
|
||||
...Array.from({ length: 9 }, () => 's'),
|
||||
...Array.from({ length: 9 }, () => 't'),
|
||||
...Array.from({ length: 1 }, () => 'v'),
|
||||
...Array.from({ length: 1 }, () => 'w'),
|
||||
...Array.from({ length: 1 }, () => 'x'),
|
||||
...Array.from({ length: 1 }, () => 'y'), // Countdown regards Y as a consonant
|
||||
...Array.from({ length: 1 }, () => 'z'),
|
||||
],
|
||||
};
|
||||
|
||||
const types = { v: 'vowel', c: 'consonant' };
|
||||
@@ -74,9 +103,11 @@ function stop(context, aborted) {
|
||||
game.ac.abort();
|
||||
games.delete(context.room.id);
|
||||
|
||||
if (aborted) {
|
||||
context.sendMessage(`The game was stopped by ${style.cyan(`${config.usernamePrefix}${context.user.username}`)}. Best players: ${getLeaders(game.points)}`, context.room.id);
|
||||
}
|
||||
const wrap = aborted
|
||||
? `The game was stopped by ${style.cyan(`${config.usernamePrefix}${context.user.username}`)}.`
|
||||
: style.bold('Time\'s up!');
|
||||
|
||||
context.sendMessage(`${wrap} Best players: ${getLeaders(game.points)}`, context.room.id);
|
||||
}
|
||||
|
||||
async function play(context) {
|
||||
@@ -95,8 +126,6 @@ async function play(context) {
|
||||
context.sendMessage(`${getBoard(context)} You have ${style.bold(style.green(`${Math.round(settings.timeout / 3)} seconds`))} left`, context.room.id);
|
||||
|
||||
await timers.setTimeout((settings.timeout / 3) * 1000, null, { signal: game.ac.signal });
|
||||
context.sendMessage(`${style.bold('Time\'s up!')} Best players: ${getLeaders(game.points)}`, context.room.id);
|
||||
|
||||
stop(context);
|
||||
} catch (error) {
|
||||
// abort expected, probably not an error
|
||||
|
||||
Reference in New Issue
Block a user