diff --git a/models/character.model.js b/models/character.model.js index e64acbc..35c0ce6 100644 --- a/models/character.model.js +++ b/models/character.model.js @@ -79,6 +79,10 @@ const Character = sequelize.define('character', { }, activeEffects: { type: DataTypes.JSON, allowNull: true, defaultValue: [] }, equippedItems: { type: DataTypes.ARRAY(DataTypes.INTEGER), allowNull: true, defaultValue: [] }, + enemiesKilled: { + type: DataTypes.INTEGER, + defaultValue: 0 + }, }); module.exports = Character; diff --git a/rpg.js b/rpg.js index 26c3fc0..b752e9d 100644 --- a/rpg.js +++ b/rpg.js @@ -1298,6 +1298,7 @@ rpg.command('giveitem', async (ctx) => { ctx.reply(`Вы успешно купили ${item.name} за ${item.price}₽!`); } ); + //////////////////////////////////////////////////////////////////////////////////////////// CharacterModel.prototype.addEquippedItem = async function (item) { @@ -2175,6 +2176,8 @@ rpg.action(/hit_\d+/, async (ctx) => { await battle.save(); logs(ctx, "Победа персонажа", { enemy, battle }); Exp(ctx, character, enemy.level * 10) + character.enemiesKilled += 1; + await character.save(); let droppedItems = await dropItem(character, enemy.id); logs(ctx, "Предметы с врага", { droppedItems }); if (droppedItems) { @@ -2433,6 +2436,8 @@ rpg.action(/critical_\d+/, async (ctx) => { battle.status = "completed"; await battle.save(); Exp(ctx, character, enemy.level * 11) + character.enemiesKilled += 1; + await character.save(); let droppedItems = await dropItem(character, enemy.id); logs(ctx, "Предметы с врага", { droppedItems }); if (droppedItems) { @@ -2525,37 +2530,4 @@ rpg.action(/miss_\d+/, async (ctx) => { }); -rpg.command("start_battle", async (ctx) => { - const character = await CharacterModel.findOne({ where: { telegram_id: ctx.from.id } }); - - if (!character) { - return ctx.reply("Ваш персонаж не найден. Создайте его, чтобы начать играть!"); - } - - // Поиск или создание новой битвы - const enemy = await Enemy.findByPk(1); // Случайный враг - const battle = await Battle.create({ - character: character.telegram_id, - enemy: enemy.id, - enemy_hp: enemy.hp, - logs: [], - status: "active", - }); - - // Генерация ссылки на Miniapp - const miniappUrl = `https://web-bot.campfiregg.ru/battle?battleId=${battle.id}&playerId=${character.telegram_id}`; - - await ctx.reply( - `⚔️ Битва началась!\nВаш противник: ${enemy.name}\n🛡️ Уровень: ${enemy.level}\n❤️ Здоровье: ${enemy.hp}\n\nПерейдите в мини-приложение, чтобы продолжить:`, - { - reply_markup: { - inline_keyboard: [ - [{ text: "Открыть битву", web_app: { url: miniappUrl } }], - ], - }, - } - ); -}); - - module.exports = rpg;