v5.9.9
Battle Update Prepare
This commit is contained in:
parent
b13335f510
commit
edc03ffd8d
@ -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;
|
||||
|
38
rpg.js
38
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;
|
||||
|
Loading…
Reference in New Issue
Block a user