89 lines
2.8 KiB
JavaScript
89 lines
2.8 KiB
JavaScript
const {
|
||
UserModel,
|
||
WorldModel,
|
||
BusinessModel
|
||
} = require('/dev/Telegram/CampFireGameBot/config')
|
||
const {
|
||
rand,
|
||
setCooldown
|
||
} = require('../utils')
|
||
|
||
module.exports = async (ctx) => {
|
||
let user = await UserModel.findByPk(ctx.from.id);
|
||
if (!user) return ctx.reply(`Ошибка #1`);
|
||
let bonustime = user.bonustime
|
||
let cooldown = setCooldown(user, 3600, bonustime)
|
||
if (user.bonustime > cooldown.currentTime) return ctx.reply(`📛 Забрать бонус можно будет через ${cooldown.timeLeftInMinutes} минут(у/ы)`);
|
||
user.bonus = 1;
|
||
user.bonustime = cooldown.endTime
|
||
let world = await WorldModel.findByPk(1)
|
||
let text = ``;
|
||
let money = [100, 200, 300, 400, 500, 1000].random();
|
||
if (user.level >= 5) {
|
||
money += money;
|
||
}
|
||
let r = rand(1, 2);
|
||
let x = rand(2, 7);
|
||
if (r == 1) {
|
||
text += `⏩ ₽${money}\n`;
|
||
}
|
||
if (r == 2) {
|
||
money = money*x
|
||
text += `⏩ ₽${money}\n`;
|
||
}
|
||
switch(user.status){
|
||
case 'bronze':
|
||
user.money += 5000
|
||
text += `⭐ Дополнительный бонус за Bronze:\n⏩ ₽5.000\n`
|
||
break;
|
||
case 'silver':
|
||
user.money += 15000
|
||
text += `⭐ Дополнительный бонус за Silver:\n⏩ ₽15.000\n`
|
||
break;
|
||
case 'gold':
|
||
user.money += 30000
|
||
text += `⭐ Дополнительный бонус за Gold:\n⏩ ₽30.000\n`
|
||
break;
|
||
}
|
||
user.money += money;
|
||
world.balance -= money
|
||
if (user.business.id == 0){
|
||
await user.save();
|
||
await world.save();
|
||
return ctx.reply(`
|
||
⭐ Из ежечасного бонуса Вам выпало:
|
||
${text}
|
||
`)
|
||
}
|
||
let business = await BusinessModel.findOne({
|
||
where: {
|
||
owner: user.business.id.toString()
|
||
}
|
||
})
|
||
if(business != null){
|
||
let mats = rand(3, 10)
|
||
switch(user.status){
|
||
case 'bronze':
|
||
business.materials += 5
|
||
text += `⭐ Дополнительный бонус за Bronze:\n⏩ 5 материалов\n`
|
||
break;
|
||
case 'silver':
|
||
business.materials += 10
|
||
text += `⭐ Дополнительный бонус за Silver:\n⏩ 10 материалов\n`
|
||
break;
|
||
case 'gold':
|
||
business.materials += 20
|
||
text += `⭐ Дополнительный бонус за Gold:\n⏩ 20 материалов\n`
|
||
break;
|
||
}
|
||
text += `⏩ ${mats} материалов в организацию\n`
|
||
business.materials += Number(mats)
|
||
business.save()
|
||
}
|
||
await user.save();
|
||
await world.save();
|
||
return ctx.reply(`
|
||
⭐ Из ежечасного бонуса Вам выпало:
|
||
${text}
|
||
`)
|
||
} |