演武台:添加战场恢复接口
This commit is contained in:
@@ -112,13 +112,13 @@ export class GuildHandler {
|
|||||||
return resResult(STATUS.GUILD_SCRIPT_IS_BATTLED);
|
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); // 关卡唯一值
|
const battleCode = genCode(8); // 关卡唯一值
|
||||||
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
await BattleRecordModel.updateBattleRecordByCode(battleCode, {
|
||||||
$set: {
|
$set: {
|
||||||
roleId, roleName, battleId: warId,
|
roleId, roleName, battleId: warId,
|
||||||
status: 0,
|
status: 0,
|
||||||
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp },
|
record: { heroes: [], bossInstanceCode: bossCode, bossHp: bossHp, encourageCnt },
|
||||||
}
|
}
|
||||||
}, true);
|
}, true);
|
||||||
const serverId: number = parseInt(session.get('serverId'));
|
const serverId: number = parseInt(session.get('serverId'));
|
||||||
@@ -135,6 +135,24 @@ export class GuildHandler {
|
|||||||
return resResult(STATUS.SUCCESS, { battleCode, bossCode: bossInstance.code, myChallengeCnt: newMyChallengeCnt });
|
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) {
|
async action(msg: guildInter & { bossCode: string, damage: number, battleCode: string }, session: BackendSession) {
|
||||||
const { battleCode, damage, myUserGuild: userGuild, bossCode } = msg;
|
const { battleCode, damage, myUserGuild: userGuild, bossCode } = msg;
|
||||||
const roleId: string = session.get('roleId');
|
const roleId: string = session.get('roleId');
|
||||||
|
|||||||
@@ -38,10 +38,10 @@ export async function getBossInstanceInfoByData(bossInstance: BossInstanceType,
|
|||||||
let bossInfo = null;
|
let bossInfo = null;
|
||||||
|
|
||||||
if(bossInstance) {
|
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 dicBossBase = gameData.bossBaseByBossLv.get(bossLv);
|
||||||
let rankInfo = getRanks(ranks, userGuild.roleId);
|
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 }
|
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.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.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.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;
|
bossHp?: number;
|
||||||
@prop({ required: false })
|
@prop({ required: false })
|
||||||
bossDamage?: number; // boss本造成的伤害
|
bossDamage?: number; // boss本造成的伤害
|
||||||
|
@prop({ required: false })
|
||||||
|
encourageCnt?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default class BattleRecord extends BaseModel {
|
export default class BattleRecord extends BaseModel {
|
||||||
|
|||||||
Reference in New Issue
Block a user