make a "level" system
This commit is contained in:
parent
fc0bd392c7
commit
ad707cf9d4
1 changed files with 68 additions and 33 deletions
|
@ -1,27 +1,15 @@
|
||||||
// TODO:
|
// TODO:
|
||||||
// Make a level system per user and increasse difficutly based on the level
|
// Higher the level the less time you have to complete it
|
||||||
// higher the level the more ingredient required
|
// Make the command less shit
|
||||||
// higher the level the less time you have to complete it
|
|
||||||
const { Command } = require('discord-akairo');
|
const { Command } = require('discord-akairo');
|
||||||
const { MessageEmbed } = require('discord.js');
|
const { MessageEmbed } = require('discord.js');
|
||||||
|
const borgar = require('../../models').borgar;
|
||||||
|
|
||||||
class borgarCommand extends Command {
|
class borgarCommand extends Command {
|
||||||
constructor() {
|
constructor() {
|
||||||
super('borgar', {
|
super('borgar', {
|
||||||
aliases: ['borgar', 'hamburgor', 'hamborgar', 'burger', 'hamburger', 'borger'],
|
aliases: ['borgar', 'hamburgor', 'hamborgar', 'burger', 'hamburger', 'borger'],
|
||||||
category: 'minigame',
|
category: 'minigame',
|
||||||
args: [
|
|
||||||
{
|
|
||||||
id: 'ingredientNumber',
|
|
||||||
type: 'number',
|
|
||||||
default: 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 'time',
|
|
||||||
type: 'number',
|
|
||||||
default: 10
|
|
||||||
}
|
|
||||||
],
|
|
||||||
description: {
|
description: {
|
||||||
content: 'Make amborgar,,,,,,,,,, ( MINI GAME VERY WIP, NO LEVEL YET )',
|
content: 'Make amborgar,,,,,,,,,, ( MINI GAME VERY WIP, NO LEVEL YET )',
|
||||||
usage: '[number of ingredient] [time]',
|
usage: '[number of ingredient] [time]',
|
||||||
|
@ -30,19 +18,48 @@ class borgarCommand extends Command {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async exec(message, args) {
|
async exec(message) {
|
||||||
if (args.time <= 0) args.time = 1;
|
let level;
|
||||||
const ingredients = [ 'bun', 'beef', 'salade', 'tomato', 'cheese', 'pickle', 'onion', 'garlic', 'basil', 'lettuce'];
|
let curxp;
|
||||||
|
let xp = Math.floor((Math.random() * 23) + 1);
|
||||||
|
|
||||||
|
const userInfo = await borgar.findOne({where: {userID:message.author.id}});
|
||||||
|
|
||||||
|
if (userInfo) {
|
||||||
|
curxp = userInfo.get('xp');
|
||||||
|
|
||||||
|
if (curxp < 100) {
|
||||||
|
level = 1;
|
||||||
|
} else if (curxp >= 100) {
|
||||||
|
level = 2;
|
||||||
|
} else if (curxp >= 200) {
|
||||||
|
level = 3;
|
||||||
|
} else if (curxp >= 300) {
|
||||||
|
level = 4;
|
||||||
|
} else if (curxp >= 400) {
|
||||||
|
level = 5;
|
||||||
|
} else if (curxp >= 500) {
|
||||||
|
level = 6;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
curxp = 0;
|
||||||
|
level = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
const ingredients = ['beef', 'salade', 'tomato', 'cheese', 'pickle', 'onion', 'garlic', 'basil', 'lettuce'];
|
||||||
let hamIngredient = [];
|
let hamIngredient = [];
|
||||||
for (let i = 0; i < args.ingredientNumber; i++) {
|
hamIngredient.push('bun');
|
||||||
|
|
||||||
|
for (let i = 1; i < level + Math.floor(Math.random() * 2) + 1; i++) {
|
||||||
hamIngredient[i] = ingredients[Math.floor(Math.random() * ingredients.length)];
|
hamIngredient[i] = ingredients[Math.floor(Math.random() * ingredients.length)];
|
||||||
}
|
}
|
||||||
|
hamIngredient.push('bun');
|
||||||
|
|
||||||
|
|
||||||
let borgarEmbed = new MessageEmbed()
|
let borgarEmbed = new MessageEmbed()
|
||||||
.setTitle('hamborger delivery')
|
.setTitle('hamborger info')
|
||||||
.setDescription(`could you do me an **amborgar** that contain **${hamIngredient}**`)
|
.setDescription(`could you do me an **amborgar** that contain **${hamIngredient}**`)
|
||||||
.setFooter(`Level 0 | Once the ingredients dissapear you have ${args.time} seconds to do it!`)
|
.setFooter(`Level ${level} | Once the ingredients dissapear you have 10 seconds to do it!`)
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
|
|
||||||
message.util.send(borgarEmbed)
|
message.util.send(borgarEmbed)
|
||||||
|
@ -51,25 +68,43 @@ class borgarCommand extends Command {
|
||||||
borgarEmbed = new MessageEmbed()
|
borgarEmbed = new MessageEmbed()
|
||||||
.setTitle('hamborger delivery')
|
.setTitle('hamborger delivery')
|
||||||
.setDescription('You have to put each ingredients in seperate messages!')
|
.setDescription('You have to put each ingredients in seperate messages!')
|
||||||
.setFooter(`Level 0 | you have ${args.time} seconds to make that hamborgor`)
|
.setFooter(`Level ${level} | you have 10 seconds to make that hamborgor`)
|
||||||
.setTimestamp();
|
.setTimestamp();
|
||||||
message.util.edit(borgarEmbed);
|
message.util.edit(borgarEmbed);
|
||||||
|
|
||||||
const filter = m => m.content && m.author.id == message.author.id;
|
const filter = m => m.content && m.author.id == message.author.id;
|
||||||
message.channel.awaitMessages(filter, {time: args.time * 1000, max: hamIngredient.length, errors: ['time'] })
|
message.channel.awaitMessages(filter, {time: 10 * 1000, max: hamIngredient.length, errors: ['time'] })
|
||||||
.then(messages => {
|
.then(messages => {
|
||||||
let userIngredient = messages.map(messages => messages.content);
|
let userIngredient = messages.map(messages => messages.content);
|
||||||
|
let body;
|
||||||
|
|
||||||
if (userIngredient.toString().toLowerCase() == hamIngredient.toString()) {
|
if (userIngredient.toString().toLowerCase() == hamIngredient.toString().toLowerCase()) {
|
||||||
return message.reply('u won bro,,,, that\'s kinda epic if i do say so myself');
|
let totalXP = curxp + xp;
|
||||||
} else if (userIngredient.length == hamIngredient.length) {
|
body = {userID: message.author.id, level: level, xp: totalXP};
|
||||||
return message.reply(`you failed noob... you were supposed to make **${hamIngredient}**`);
|
if (curxp == 0) {
|
||||||
} else if (userIngredient.length > hamIngredient.length) {
|
message.reply(`u won bro,,,, that's kinda epic if i do say so myself\n**you gained ${xp} xp.**`);
|
||||||
return message.reply('Too much ingredient...');
|
} else {
|
||||||
|
message.reply(`u won bro,,,, that's kinda epic if i do say so myself\n**you gained ${xp} xp. you now have ${totalXP} xp**`);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let totalXP = curxp - xp;
|
||||||
|
body = {userID: message.author.id, level: level, xp: totalXP};
|
||||||
|
if (curxp == 0) {
|
||||||
|
message.reply(`you failed noob... you were supposed to make **${hamIngredient}**`);
|
||||||
|
} else {
|
||||||
|
message.reply(`you failed noob... you were supposed to make **${hamIngredient}**\n**you lost ${xp} xp. you now have ${totalXP} xp**`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curxp == 0) {
|
||||||
|
borgar.create(body);
|
||||||
|
} else {
|
||||||
|
borgar.update(body, {where: {userID:message.author.id}});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(err => {
|
||||||
return message.reply('You ran out of time noob...');
|
console.error(err);
|
||||||
|
return message.reply('You ran out of time noob... ( or an error occured )');
|
||||||
});
|
});
|
||||||
}, 3000);
|
}, 3000);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue