From 3085f7f3aa2e5f8971fc264c6f24489de7b8dab2 Mon Sep 17 00:00:00 2001 From: zhangxk Date: Wed, 13 Sep 2023 17:02:00 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(=E7=A8=B7=E4=B8=8B=E5=AD=A6?= =?UTF-8?q?=E5=AE=AB):=20=E6=96=B0=E5=A2=9E=E5=88=9D=E5=A7=8B=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=8D=A1=E5=88=B7=E6=96=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/battle/handler/rougeHandler.ts | 27 +++++++++++++++++++ game-server/app/services/checkParam.ts | 7 ++++- shared/db/RougelikeChara.ts | 5 ++++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/game-server/app/servers/battle/handler/rougeHandler.ts b/game-server/app/servers/battle/handler/rougeHandler.ts index b5f3167b4..0b26d301b 100644 --- a/game-server/app/servers/battle/handler/rougeHandler.ts +++ b/game-server/app/servers/battle/handler/rougeHandler.ts @@ -111,6 +111,33 @@ export class RougeHandler { return resResult(STATUS.SUCCESS, { gameCode, ...result }) } + /** + * 角色卡刷新 + * @param msg + * @param session + * @returns + */ + async refreshInitCharaCard(msg: { gameCode: string }, session: BackendSession) { + const roleId = session.get('roleId'); + + const { gameCode } = msg; + + let dbRecord = await RougelikeRecordModel.findByGameCode(gameCode) + if (!dbRecord) return resResult(STATUS.NO_ROUGELIKE_GAME); + const { type = 0, grade = 0 } = dbRecord; + + await RougelikeCharaModel.deleteCharaByRoleId(roleId); + const charaCards = getInitCharaCard() || []; + let handleAddFun = new HandleAddCard(session, gameCode); + for (let ele of charaCards) { + handleAddFun.pushChara(ele.id, await getMaxHp(roleId, gameCode, ele.id, type, grade), []); + } + let result = await handleAddFun.save(); + + return resResult(STATUS.SUCCESS, { gameCode, charas: result?.addCharas || [] }) + } + + /** * 开启一场游戏 * @param msg diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index 6e4c97832..6217e2292 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -878,7 +878,12 @@ export function checkRouteParam(route: string, msg: any) { if (!checkNaturalNumbers(type, grade)) return false; break; } - + case "battle.rougeHandler.refreshInitCharaCard": + { + let { gameCode } = msg + if (!checkNaturalStrings(gameCode)) return false; + break; + } case "battle.rougeHandler.startGame": { let { gameCode, authorType } = msg; diff --git a/shared/db/RougelikeChara.ts b/shared/db/RougelikeChara.ts index 64519246d..3a04a9010 100644 --- a/shared/db/RougelikeChara.ts +++ b/shared/db/RougelikeChara.ts @@ -127,6 +127,11 @@ export default class RougelikeChara extends BaseModel { })) } + public static async deleteCharaByRoleId(roleId: string) { + let result = await RougelikeCharaModel.deleteMany({ roleId }); + return result; + } + }; export const RougelikeCharaModel = getModelForClass(RougelikeChara);