[P0][D07] 精英怪 mlvl 修正:champion +2、unique / minion / superunique +3 #416

Closed
opened 2026-09-24 03:25:57 +00:00 by troytt · 1 comment
Owner

现状

src/game/monsters.ts:1506-1510 的 planLevelMonsters 对随机生成的 champion / unique
一律使用 monsterLevelFor(..., plan.monsterLevel),没有按 rank 加成。
只有 SuperUnique 分支显式传了 plan.monsterLevel + 3。

event.monsterLevel 直接作为 nLevel 流入管线,因此:

  • ilvl 偏低 → ItemRatio 的 (ilvl - qlvl) / divisor 惩罚项算错,unique/set/rare 概率偏低;
  • TC 组提升(resolveTreasureClassGroup)的 nLevel 上限偏低 → 拿不到更高层的 TC;
  • 金币公式 randRange(ilvl/2, ilvl*6)(drop-pipeline.ts:928-932)连带偏低。

1.13c 真实行为

单位 mlvl
Normal 区域 mlvl
Champion mlvl + 2
Unique / Minion / SuperUnique mlvl + 3

(Nightmare / Hell 下 mlvl 先按 Levels.txt 的 MonLvl 钳制,再加上述加成。)

验收标准

  • planLevelMonsters 按 group.rank 注入 +2 / +3。
  • Minion 继承宿主 unique 的 +3,而非各自重算。
  • vitest:同一区域同 seed 下,champion.mlvl − normal.mlvl === 2,unique.mlvl − normal.mlvl === 3。
  • vitest:NM/Hell 下先钳制到区域 MonLvl 再加成,顺序不可颠倒。
## 现状 `src/game/monsters.ts:1506-1510` 的 `planLevelMonsters` 对随机生成的 champion / unique 一律使用 `monsterLevelFor(..., plan.monsterLevel)`,**没有按 rank 加成**。 只有 SuperUnique 分支显式传了 `plan.monsterLevel + 3`。 `event.monsterLevel` 直接作为 `nLevel` 流入管线,因此: - ilvl 偏低 → ItemRatio 的 `(ilvl - qlvl) / divisor` 惩罚项算错,unique/set/rare 概率偏低; - TC 组提升(`resolveTreasureClassGroup`)的 `nLevel` 上限偏低 → 拿不到更高层的 TC; - 金币公式 `randRange(ilvl/2, ilvl*6)`(`drop-pipeline.ts:928-932`)连带偏低。 ## 1.13c 真实行为 | 单位 | mlvl | |---|---| | Normal | 区域 mlvl | | Champion | mlvl + 2 | | Unique / Minion / SuperUnique | mlvl + 3 | (Nightmare / Hell 下 mlvl 先按 `Levels.txt` 的 MonLvl 钳制,再加上述加成。) ## 验收标准 - [ ] `planLevelMonsters` 按 `group.rank` 注入 +2 / +3。 - [ ] Minion 继承宿主 unique 的 +3,而非各自重算。 - [ ] vitest:同一区域同 seed 下,champion.mlvl − normal.mlvl === 2,unique.mlvl − normal.mlvl === 3。 - [ ] vitest:NM/Hell 下先钳制到区域 MonLvl 再加成,顺序不可颠倒。
troytt added this to the [M18] 打怪掉落物品:怪物死亡掉落全链路 1.13c 还原 milestone 2026-09-24 03:25:57 +00:00
Author
Owner

Resolution Summary (Issue #416 — Commit 9022579)

  • Enforced 1.13c elite mlvl modifiers (+2 for Champion, +3 for Unique/Minion/SuperUnique) in src/game/monsters.ts and level reversion in demoteToNormal in src/scene/act-scene.ts.

  • Verification: npx tsc --noEmit (0 errors), full Vitest drop/combat/item/E2E parity suites (100% pass), and scripts/verify-m5.ts / scripts/verify-net.ts (0 problems).

### Resolution Summary (Issue #416 — Commit `9022579`) - Enforced 1.13c elite mlvl modifiers (+2 for Champion, +3 for Unique/Minion/SuperUnique) in `src/game/monsters.ts` and level reversion in `demoteToNormal` in `src/scene/act-scene.ts`. - **Verification**: `npx tsc --noEmit` (0 errors), full Vitest drop/combat/item/E2E parity suites (100% pass), and `scripts/verify-m5.ts` / `scripts/verify-net.ts` (0 problems).
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#416
No description provided.