From cd9b20a4ac840c02f032e269ee8ecee556619016 Mon Sep 17 00:00:00 2001 From: zhangxk Date: Sat, 9 Sep 2023 16:06:38 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9E=20fix(=E7=A8=B7=E4=B8=8B=E5=AD=A6?= =?UTF-8?q?=E5=AE=AB):=20=E4=BF=AE=E6=94=B9=E6=81=A2=E5=A4=8Dhp=E6=97=B6?= =?UTF-8?q?=E8=BF=87=E6=BB=A4hp=E4=B8=BA0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/servers/battle/handler/rougeHandler.ts | 3 ++- game-server/app/services/battle/rougeService.ts | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/game-server/app/servers/battle/handler/rougeHandler.ts b/game-server/app/servers/battle/handler/rougeHandler.ts index f15ff05c2..1688e673c 100644 --- a/game-server/app/servers/battle/handler/rougeHandler.ts +++ b/game-server/app/servers/battle/handler/rougeHandler.ts @@ -783,7 +783,8 @@ export class RougeHandler { let updateCharas: RougelikeCharaPara[] = []; let hpRatio = await getRecoveryExtendHp(roleId, gameCode); - for (let { gameCode, charaCode, charaId, cards, hp, maxHp = 0, ap, shield, roundSkill, apSkill } of dbCharas) { + for (let { gameCode, charaCode, charaId, cards, hp = 0, maxHp = 0, ap, shield, roundSkill, apSkill } of dbCharas) { + if (hp == 0) continue; let beforeHp = hp; hp = Math.floor(Math.min(hp + maxHp * ROUGELIKE.RECOVERY_RATIO / 100 + maxHp * hpRatio / 100, maxHp)); updateCharas.push({ gameCode, charaCode, hp }); diff --git a/game-server/app/services/battle/rougeService.ts b/game-server/app/services/battle/rougeService.ts index e5093ab82..d6b8394a1 100644 --- a/game-server/app/services/battle/rougeService.ts +++ b/game-server/app/services/battle/rougeService.ts @@ -961,7 +961,9 @@ export async function updateMaxHp(roleId: string, gameCode: string, type: number if (tempMaxHp == val.maxHp && updateCharasMap && !updateCharasMap.has(val.charaCode)) continue; let preMaxHp = val.maxHp; val.maxHp = tempMaxHp; - val.hp = Math.min(val.hp + tempMaxHp - preMaxHp, tempMaxHp); + if (val.hp > 0) { + val.hp = Math.min(val.hp + tempMaxHp - preMaxHp, tempMaxHp); + } result.push(val); } await RougelikeCharaModel.bulkWriteUpdate(result);