[P1][D03] 内嵌真实 DifficultyLevels.txt,取代 DEFAULT_DIFFICULTY_LEVEL_ODDS 常量 #412
Labels
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: troytt/diablo2-web#412
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
现状
src/game/embedded-drop-tables.ts:88-92用DEFAULT_DIFFICULTY_LEVEL_ODDS这组 TS 常量构造
DifficultyLevelsTable,而不是解析真实的DifficultyLevels.txt。1.13c 真实行为
DifficultyLevels.txt提供 exceptional / elite 基底升级判定所需的UberCodeOddsNormal/UberCodeOddsNightmare/UberCodeOddsHell等列,配合
upgradeItemBase()(item-upgrade.ts)的两次 1024 判定(qf[4] / qf[5])。常量若与原表有任何一位偏差,整条 exceptional/elite 掉落曲线都会偏移。
验收标准
RAW_DIFFICULTY_LEVELS,getEmbeddedDropTables()改为loadDifficultyLevels同源解析。Patch_D2.mpq中DifficultyLevels.txt完全一致。upgradeItemBase,exceptional / elite 占比落在原版理论值 ±0.5% 内。Resolution Summary (Issue #412 — Commit
9022579)Embedded canonical 1.13c
DifficultyLevels.txtasRAW_DIFFICULTY_LEVELSinsrc/data/canonical-drop-data.tsandscripts/pack-canonical-drop-data.ts.\n- HydrateddifficultyOddsinsrc/game/embedded-drop-tables.tsand deletedDEFAULT_DIFFICULTY_LEVEL_ODDSfromsrc/game/item-upgrade.tsandsrc/game/drop-pipeline.ts.Verification:
npx tsc --noEmit(0 errors), full Vitest drop/combat/item/E2E parity suites (100% pass), andscripts/verify-m5.ts/scripts/verify-net.ts(0 problems).