演武台:添加战场恢复接口
This commit is contained in:
@@ -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');
|
||||
|
||||
@@ -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 }
|
||||
}
|
||||
|
||||
@@ -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 },
|
||||
|
||||
];
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user