From 6b53166e945bc471884e65e6e191de1d2a0ebb4e Mon Sep 17 00:00:00 2001 From: zhangxk Date: Sat, 16 Sep 2023 16:00:49 +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=E9=80=89=E6=8B=A9=E9=A2=98=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E5=89=94=E9=99=A4=E6=9D=A1=E4=BB=B6=E5=9C=A3?= =?UTF-8?q?=E7=89=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/battle/handler/rougeHandler.ts | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/game-server/app/servers/battle/handler/rougeHandler.ts b/game-server/app/servers/battle/handler/rougeHandler.ts index 2128eee04..7a076b297 100644 --- a/game-server/app/servers/battle/handler/rougeHandler.ts +++ b/game-server/app/servers/battle/handler/rougeHandler.ts @@ -14,7 +14,7 @@ import { RougelikeCollectionModel } from '../../../db/RougelikeCollection'; import { RougelikeLayerModel, RougelikeLayerType } from '../../../db/RougelikeLayer'; import { RoleModel } from '../../../db/Role'; import { gameData } from '../../../pubUtils/data'; -import { chooseNode, getGame, getInitCharaCard, getLayerNodeReward, getLayerRewardOneData, getMap, getMaxHp, getRandomSpirit, getRougeData, repaireSendScoreReward, updateChalleng, updateMaxHp } from '../../../services/battle/rougeService'; +import { chooseNode, getCardCount, getGame, getInitCharaCard, getLayerNodeReward, getLayerRewardOneData, getMap, getMaxHp, getRandomSpirit, getRougeData, repaireSendScoreReward, updateChalleng, updateMaxHp } from '../../../services/battle/rougeService'; import { checkPreRougeTech, getCurTechData, updateEffectId } from '../../../services/battle/rougeTechService'; import { BattleRecordModel } from '../../../db/BattleRecord'; import { HeroModel } from '../../../db/Hero'; @@ -751,11 +751,21 @@ export class RougeHandler { question.EventOptions.push(id); checkAfterGroup = afterGroup; - let cardId = 0; const rougeHolyCardPlanData = gameData.rougeHolyCardPlan.get(holyCardPlan); if (!rougeHolyCardPlanData || rougeHolyCardPlanData.length == 0) continue; - if (rougeHolyCardPlanData.length == 1) cardId = rougeHolyCardPlanData[0].cardId; - else cardId = getRandEelmWithWeight(rougeHolyCardPlanData).dic.cardId; + let newCards = []; + let cardsMap = await getCardCount(gameCode, ROUGE_LIKE_CARD_TYPE.HOLY); + for (let obj of rougeHolyCardPlanData) { + let holyCardData = gameData.rougeHolyCard.get(obj.cardId); + if (!holyCardData) continue; + const getLimit = cardsMap.get(obj.cardId) || 0; + if (getLimit >= (holyCardData?.getLimit || 0)) continue; //处理限制获取数量 + newCards.push(obj); + } + let cardId = 0; + if (newCards.length > 0) { + cardId = getRandEelmWithWeight(newCards).dic.cardId; + } handleAddFun.pushHolyCard(cardId); }