diff --git a/commands/games/math-game.js b/commands/games/math-game.js index 6dd2dac6..ab4c6ea7 100644 --- a/commands/games/math-game.js +++ b/commands/games/math-game.js @@ -1,21 +1,20 @@ const Command = require('../../structures/Command'); const { MessageEmbed } = require('discord.js'); -const math = require('mathjs'); const { list } = require('../../structures/Util'); const difficulties = ['easy', 'medium', 'hard', 'extreme', 'impossible']; -const operations = { - easy: ['+', '-'], - medium: ['+', '-'], - hard: ['-', '*'], - extreme: ['*', '/'], - impossible: ['/', '^'] +const operations = ['addition', 'subtraction', 'multiplication', 'division']; +const operationDisplay = { + addition: '+', + subtraction: '-', + multiplication: '*', + division: 'รท' }; const maxValues = { - easy: 5, - medium: 10, - hard: 50, - extreme: 75, - impossible: 100 + easy: 10, + medium: 100, + hard: 500, + extreme: 1000, + impossible: 1000000 }; module.exports = class MathGameCommand extends Command { @@ -27,6 +26,16 @@ module.exports = class MathGameCommand extends Command { description: 'See how fast you can answer a math problem in a given time limit.', clientPermissions: ['EMBED_LINKS'], args: [ + { + key: 'operation', + prompt: `Which operation should be used for the game? Either ${list(operations, 'or')}.`, + type: 'string', + validate: operation => { + if (operations.includes(operation.toLowerCase())) return true; + return `Invalid operation, please enter either ${list(operations, 'or')}.`; + }, + parse: operation => operation.toLowerCase() + }, { key: 'difficulty', prompt: `What should the difficulty of the game be? Either ${list(difficulties, 'or')}.`, @@ -42,23 +51,25 @@ module.exports = class MathGameCommand extends Command { } async run(msg, args) { - const { difficulty } = args; - const operation = operations[difficulty][Math.floor(Math.random() * operations[difficulty].length)]; + const { operation, difficulty } = args; const value1 = Math.floor(Math.random() * maxValues[difficulty]) + 1; const value2 = Math.floor(Math.random() * maxValues[difficulty]) + 1; - const expression = `${value1} ${operation} ${value2}`; - const answer = math.eval(expression).toString(); + let answer; + if (operation === 'addition') answer = value1 + value2; + else if (operation === 'subtraction') answer = value1 - value2; + else if (operation === 'multiplication') answer = value1 * value2; + else if (operation === 'division') answer = value1 / value2; const embed = new MessageEmbed() .setTitle('You have 10 seconds to answer:') .setColor(0x9797FF) - .setDescription(expression); + .setDescription(`${value1} ${operationDisplay[operation]} ${value2}`); await msg.embed(embed); const msgs = await msg.channel.awaitMessages(res => res.author.id === msg.author.id, { max: 1, time: 10000 }); if (!msgs.size) return msg.say(`Time! It was ${answer}, sorry!`); - if (msgs.first().content !== answer) return msg.say(`Nope, sorry, it's ${answer}.`); + if (msgs.first().content !== answer.toString()) return msg.say(`Nope, sorry, it's ${answer}.`); return msg.say('Nice job! 10/10! You deserve some cake!'); } }; diff --git a/commands/num-edit/math.js b/commands/num-edit/math.js deleted file mode 100644 index be0678c9..00000000 --- a/commands/num-edit/math.js +++ /dev/null @@ -1,30 +0,0 @@ -const Command = require('../../structures/Command'); -const math = require('mathjs'); - -module.exports = class MathCommand extends Command { - constructor(client) { - super(client, { - name: 'math', - group: 'num-edit', - memberName: 'math', - description: 'Evaluates math expressions.', - args: [ - { - key: 'expression', - prompt: 'What do you want to answer?', - type: 'string' - } - ] - }); - } - - run(msg, args) { - const { expression } = args; - try { - const solved = math.eval(expression).toString(); - return msg.say(solved).catch(() => msg.say('Invalid statement.')); - } catch (err) { - return msg.say('Invalid statement.'); - } - } -}; diff --git a/package.json b/package.json index cc2c381c..c6ec0716 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiaobot", - "version": "33.0.3", + "version": "34.0.0", "description": "Your personal server companion.", "main": "Shard.js", "scripts": { @@ -36,7 +36,6 @@ "discord.js": "github:hydrabolt/discord.js", "discord.js-commando": "github:gawdl3y/discord.js-commando", "erlpack": "github:hammerandchisel/erlpack", - "mathjs": "^3.16.3", "moment": "^2.18.1", "moment-duration-format": "^1.3.0", "node-opus": "^0.2.6",