演武台:添加战场恢复接口

This commit is contained in:
luying
2022-02-12 11:20:58 +08:00
parent 74d9129f5b
commit 597911448a
4 changed files with 25 additions and 4 deletions

View File

@@ -112,13 +112,13 @@ export class GuildHandler {
return resResult(STATUS.GUILD_SCRIPT_IS_BATTLED);
}
let { code: bossCode, warId, ranks, bossHp } = bossInstance;
let { code: bossCode, warId, ranks, bossHp, encourageCnt } = bossInstance;
const battleCode = genCode(8); // 关卡唯一值
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
$set: {
roleId, roleName, battleId: warId,
status: 0,
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp },
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp, encourageCnt },
}
}, true);
const serverId: number = parseInt(session.get('serverId'));
@@ -135,6 +135,24 @@ export class GuildHandler {
return resResult(STATUS.SUCCESS, { battleCode, bossCode: bossInstance.code, myChallengeCnt: newMyChallengeCnt });
}
async getBossInstanceByBattleCode(msg: guildInter & { battleCode: string }, session: BackendSession) {
const { battleCode, myUserGuild: userGuild } = msg;
let result = {
status: 0,
bossInfo: null
};
let battleRecord = await BattleRecordModel.getBattleRecordByCode(battleCode);
if(battleRecord && battleRecord.record && battleRecord.record.bossInstanceCode) {
let bossInstance = await BossInstanceModel.findByCode(battleRecord.record.bossInstanceCode);
if(bossInstance) {
let info = await getBossInstanceInfoByData(bossInstance, userGuild);
result.status = bossInstance.status;
result.bossInfo = info.bossInfo && { ...info.bossInfo, encourageCnt: battleRecord.record.encourageCnt }
}
}
return resResult(STATUS.SUCCESS, result);
}
async action(msg: guildInter & { bossCode: string, damage: number, battleCode: string }, session: BackendSession) {
const { battleCode, damage, myUserGuild: userGuild, bossCode } = msg;
const roleId: string = session.get('roleId');

View File

@@ -38,10 +38,10 @@ export async function getBossInstanceInfoByData(bossInstance: BossInstanceType,
let bossInfo = null;
if(bossInstance) {
let { warId, ranks, bossHp, bossTotalHp, bossLv, encourageCnt } = bossInstance;
let { code, warId, ranks, bossHp, bossTotalHp, bossLv, encourageCnt } = bossInstance;
let dicBossBase = gameData.bossBaseByBossLv.get(bossLv);
let rankInfo = getRanks(ranks, userGuild.roleId);
bossInfo = { warId, ...rankInfo, bossHp, bossTotalHp, bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum };
bossInfo = { bossCode: code, warId, ...rankInfo, bossHp, bossTotalHp, bossLv, encourageCnt, encourageMax: dicBossBase.encourageSum };
}
return { status, bossInfo, ...refObj }
}

View File

@@ -163,6 +163,7 @@ export const GUILD_ROUTE_OPERATE = [
{ route: 'guild.raceActivityHandler.useItem', operate: GUILD_OPERATE.RACE_ACTIVITY, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF_WITH_SESSION },
{ route: 'guild.raceActivityHandler.battleEnd', operate: GUILD_OPERATE.RACE_ACTIVITY, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF_WITH_SESSION },
{ route: 'guild.guildBossHandler.encourage', operate: GUILD_OPERATE.BOSS_BATTLE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF },
{ route: 'guild.guildBossHandler.getBossInstanceByBattleCode', operate: GUILD_OPERATE.BOSS_BATTLE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF },
];

View File

@@ -35,6 +35,8 @@ class Record {
bossHp?: number;
@prop({ required: false })
bossDamage?: number; // boss本造成的伤害
@prop({ required: false })
encourageCnt?: number;
}
export default class BattleRecord extends BaseModel {