From d692251467153685f9a43765aed8d89de035c06e Mon Sep 17 00:00:00 2001 From: pan Date: Tue, 11 Aug 2026 14:56:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(config):=20=E8=B0=83=E6=95=B4=E8=8B=B1?= =?UTF-8?q?=E9=9B=84=E5=8D=A1=E6=8A=BD=E5=8F=96=E6=9D=83=E9=87=8D=E9=9A=8F?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E9=80=92=E5=87=8F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将原本固定的英雄抽取权重改为按等级几何递减,高等级英雄更难抽取,优化卡池抽取概率梯度 --- assets/script/game/common/config/CardSet.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/assets/script/game/common/config/CardSet.ts b/assets/script/game/common/config/CardSet.ts index ffb666bb..3f3dd603 100644 --- a/assets/script/game/common/config/CardSet.ts +++ b/assets/script/game/common/config/CardSet.ts @@ -102,17 +102,26 @@ function getHeroCost(cardLv: number): number { return 15; } +/** + * 英雄卡按 card_lv 分配抽取权重(几何递减,高等级越稀有)。 + * 梯度:lv1=40, lv2=25, lv3=15, lv4=8, lv5=3 + */ +const HERO_WEIGHT_BY_LV: Record = { + 1: 40, 2: 25, 3: 15, 4: 8, 5: 3, +}; +function getHeroWeight(cardLv: number): number { + return HERO_WEIGHT_BY_LV[cardLv] ?? HERO_WEIGHT_BY_LV[1]; +} + HeroList.forEach(uuid => { const hero = HeroInfo[uuid]; if (!hero) return; - const baseWeight = 25; - CardPoolList.push({ uuid: hero.uuid, type: CardType.Hero, cost: getHeroCost(hero.card_lv ?? 1), - weight: baseWeight, + weight: getHeroWeight(hero.card_lv ?? 1), card_lv: hero.card_lv ?? 1, kind: CKind.Hero, hero_lv: 1,