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);