魔法/稀有词缀数值 roll 缺少区间保护,元素伤害区间与触发技能参数被破坏 #128
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?
问题描述 (Issue B2)
src/game/drop-pipeline.ts中createDroppedItem为 Unique/Set 定义了NON_RANDOM_RANGE_CODES(dmg-fire,dmg-cold,dmg-ltng,dmg-mag,dmg-pois,dmg-norm,dmg-elem,hit-skill,att-skill,gethit-skill,kill-skill,death-skill,levelup-skill,charged,skill-rand)。src/game/affix-generator.ts的rollAffixMods对所有 mod 一律执行rng.randRange(mod.min, mod.max),缺少区间保护。dmg-firemin=1, max=6)被随机成一个标量value=4,且在进入显示层或rolledProps时若min/max未被保留或被覆盖,会导致Adds 1-6 Fire Damage被错误压缩为Adds 4 Fire Damage。hit-skill,att-skill,gethit-skill,其中par=技能、min=触发几率%、max=技能等级)与聚气技能(charged,par=技能、min=聚气次数、max=技能等级)被当成[min, max]区间随机,破坏了触发率与技能等级!解决方案
src/game/affix-generator.ts(或共享常量)中导出统一的NON_RANDOM_RANGE_CODES与resolveItemPropValue。rollAffixMods中对NON_RANDOM_RANGE_CODES内的属性停止rng.randRange(mod.min, mod.max),保持value = mod.min且完整保留min: mod.min, max: mod.max, param: mod.param。createDroppedItem中为magic和rare品质同步构建rolledProps(使 Unique/Set/Rare/Magic 四种品质都拥有结构一致的rolledProps),并确保item-tooltip.ts读取 Magic/Rare 时完整保留dmg-fire/hit-skill/charged的[min, max]区间与参数。Fixed in commit
72eb7de(merged into main). Verified with tests/parity-1.13c.test.ts (11 passed) and tests/affix-generator.test.ts (14 passed).