From dccfde1156b638a9681cfd0a1aa5eeca0466b393 Mon Sep 17 00:00:00 2001 From: zhangxk Date: Mon, 11 Sep 2023 15:27:53 +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=E5=A4=8D=E5=9C=A3=E7=89=A9=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E5=AF=B9=E7=89=B9=E6=80=A7=E5=8D=A1=E6=9D=83=E9=87=8D?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/services/battle/rougeService.ts | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/game-server/app/services/battle/rougeService.ts b/game-server/app/services/battle/rougeService.ts index 48b9b0c36..d4ea9d4e8 100644 --- a/game-server/app/services/battle/rougeService.ts +++ b/game-server/app/services/battle/rougeService.ts @@ -601,7 +601,22 @@ export async function getPassiveCardPlan(passiveCardPlan: number, passiveCardRan let newCards = []; let cardsMap = await getCardCount(gameCode, ROUGE_LIKE_CARD_TYPE.PASSIVE); const { chooseCardsMap, noChooseCardsMap } = await getIsChooseCard(gameCode); - const holyAddWeight = await getAddPassiveWeight(roleId, gameCode, type); + + let isHolyAddWeight = false; + for (let obj of cards) { + let { cardId, weight } = obj || {}; + let passiveCardData = gameData.rougePassiveCard.get(cardId); + if (!passiveCardData || !passiveCardData.authorType) continue; + if (passiveCardData.authorType == type) { + isHolyAddWeight = true; + break; + } + } + let holyAddWeight = 0; + if (isHolyAddWeight) { + holyAddWeight = await getAddPassiveWeight(roleId, gameCode, type); + } + for (let obj of cards) { let weightRecord: { originalWight?: number, passiveRedWight?: number, holyAddWeight?: number, passiveLableNum?: number, authorAddWeight?: number, passiveLableNumAddWeight?: number, finalWeight?: number } = {}; if (!obj) continue; @@ -624,12 +639,11 @@ export async function getPassiveCardPlan(passiveCardPlan: number, passiveCardRan weightRecord.passiveRedWight = Math.floor(weight * ROUGELIKE.RANDOM_PASSIVECARD_WEIGHT / 100); } - - weight += holyAddWeight; - weightRecord.holyAddWeight = holyAddWeight; - const { authorType = 0, quality = 0, lv = 0 } = passiveCardData; if (authorType == type) { + weight += holyAddWeight; + weightRecord.holyAddWeight = holyAddWeight; + const passiveWeightData = gameData.rougePassiveWeight.get(authorType + '_' + quality + '_' + lv); if (passiveWeightData && passiveWeightData.authorTypeWeightAdd) { weight += passiveWeightData.authorTypeWeightAdd;