From 11c5705a5f5a764aeb9c177f6b4ad97003396839 Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Mon, 25 Jan 2021 20:23:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=83=85=E8=B0=8A=E5=8A=A9=E6=88=98=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../battle/handler/comBattleHandler.ts | 31 ++++++++++++++++++- shared/consts/statusCode.ts | 1 + shared/db/ComBattleTeam.ts | 5 +++ 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/game-server/app/servers/battle/handler/comBattleHandler.ts b/game-server/app/servers/battle/handler/comBattleHandler.ts index 340e8a965..ce02d5db1 100644 --- a/game-server/app/servers/battle/handler/comBattleHandler.ts +++ b/game-server/app/servers/battle/handler/comBattleHandler.ts @@ -306,7 +306,9 @@ export class ComBattleHandler { return resResult(STATUS.COM_BATTLE_CE_LIMIT); } - isFrd = await getFrd(roleId, quality); + if (!isFrd) { + isFrd = await getFrd(roleId, quality); + } // 加入队伍 let roleStatus = new RoleStatus(roleId, roleName, false, isFrd, headHid, sHid, topFiveCe, lv); const team = await ComBattleTeamModel.addRole(teamCode, roleStatus); @@ -329,6 +331,33 @@ export class ComBattleHandler { return resResult(STATUS.SUCCESS, { teamInfo: teamStatus}); } + /** + * @description 设置是否情谊助战 + * @param {{teamCode: string, isFrd: boolean}} msg 队伍编号;情谊助战要设置的值,true 为情谊助战 + * @param {BackendSession} session + * @returns + * @memberof ComBattleHandler + */ + async setFrdAssistance(msg: {teamCode: string, isFrd: boolean}, session: BackendSession) { + let roleId = session.get('roleId'); + let { isFrd, teamCode } = msg; + const isFrdPre = isFrd; + let teamStatus = this.teamMap.get(teamCode); + if (!teamStatus || teamStatus.status !== COM_TEAM_STATUS.DEFAULT) return resResult(STATUS.COM_BATTLE_TEAM_INVALID); + if (teamStatus.capId === roleId) return resResult(STATUS.COM_BATTLE_SET_FRD_ERR); + if (!isFrd) { + isFrd = await getFrd(roleId, teamStatus.quality); + } + if (isFrd !== isFrdPre) { + return resResult(STATUS.COM_BATTLE_ASSIST_NOT_ENOUGH); + } + teamStatus.roleStatus.forEach(async st => { + st.isFrd = isFrd; + await ComBattleTeamModel.updateRoleStFrd(teamCode, roleId, isFrd); + }); + return resResult(STATUS.SUCCESS, { teamCode, isFrd }); + } + /** * 获取队伍列表-deprecated * @param msg diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 2c85934e2..1ec22a7d9 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -106,6 +106,7 @@ export const STATUS = { COM_BATTLE_REWARD_ERR: { code: 20627, simStr: '不能领取奖励' }, COM_BATTLE_REWARDED: { code: 20628, simStr: '奖励已领取' }, COM_BATTLE_HEROES_ERR: { code: 20629, simStr: '阵容异常' }, + COM_BATTLE_SET_FRD_ERR: { code: 20630, simStr: '设置情谊助战异常' }, // 共斗藏宝图合成 COM_BLUEPRT_QUALITY_CANNOT_COMPOSE: { code: 20630, simStr: '该品质藏宝图不可合成' }, diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index f7970da8e..7c1aee80d 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -144,6 +144,11 @@ export default class ComBattleTeam extends BaseModel { return team; } + public static async updateRoleStFrd(teamCode: string, roleId: string, isFrd: boolean, lean = true) { + const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode, 'roleStatus.roleId': roleId }, { $set: {'roleStatus.$.isFrd': isFrd}}, {new: true}).lean(lean); + return team; + } + public static async removeTeam(teamCode: string, lean = true) { const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndDelete({ teamCode }).lean(lean); return team;