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: [] },
|
activeEffects: { type: DataTypes.JSON, allowNull: true, defaultValue: [] },
|
||||||
equippedItems: { type: DataTypes.ARRAY(DataTypes.INTEGER), allowNull: true, defaultValue: [] },
|
equippedItems: { type: DataTypes.ARRAY(DataTypes.INTEGER), allowNull: true, defaultValue: [] },
|
||||||
|
enemiesKilled: {
|
||||||
|
type: DataTypes.INTEGER,
|
||||||
|
defaultValue: 0
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = Character;
|
module.exports = Character;
|
||||||
|
38
rpg.js
38
rpg.js
@ -1298,6 +1298,7 @@ rpg.command('giveitem', async (ctx) => {
|
|||||||
ctx.reply(`Вы успешно купили ${item.name} за ${item.price}₽!`);
|
ctx.reply(`Вы успешно купили ${item.name} за ${item.price}₽!`);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
CharacterModel.prototype.addEquippedItem = async function (item) {
|
CharacterModel.prototype.addEquippedItem = async function (item) {
|
||||||
@ -2175,6 +2176,8 @@ rpg.action(/hit_\d+/, async (ctx) => {
|
|||||||
await battle.save();
|
await battle.save();
|
||||||
logs(ctx, "Победа персонажа", { enemy, battle });
|
logs(ctx, "Победа персонажа", { enemy, battle });
|
||||||
Exp(ctx, character, enemy.level * 10)
|
Exp(ctx, character, enemy.level * 10)
|
||||||
|
character.enemiesKilled += 1;
|
||||||
|
await character.save();
|
||||||
let droppedItems = await dropItem(character, enemy.id);
|
let droppedItems = await dropItem(character, enemy.id);
|
||||||
logs(ctx, "Предметы с врага", { droppedItems });
|
logs(ctx, "Предметы с врага", { droppedItems });
|
||||||
if (droppedItems) {
|
if (droppedItems) {
|
||||||
@ -2433,6 +2436,8 @@ rpg.action(/critical_\d+/, async (ctx) => {
|
|||||||
battle.status = "completed";
|
battle.status = "completed";
|
||||||
await battle.save();
|
await battle.save();
|
||||||
Exp(ctx, character, enemy.level * 11)
|
Exp(ctx, character, enemy.level * 11)
|
||||||
|
character.enemiesKilled += 1;
|
||||||
|
await character.save();
|
||||||
let droppedItems = await dropItem(character, enemy.id);
|
let droppedItems = await dropItem(character, enemy.id);
|
||||||
logs(ctx, "Предметы с врага", { droppedItems });
|
logs(ctx, "Предметы с врага", { droppedItems });
|
||||||
if (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;
|
module.exports = rpg;
|
||||||
|
Loading…
Reference in New Issue
Block a user