Superior / Low Quality / Ethereal / Socket 生成缺失及稀有槽位与毒伤换算对齐 #131
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 A3, A4, A5, B3, C4, C5)
Superior (超强) 品质零属性 (A3):
createDroppedItem在qualityTier === 'superior'时仅将名称改为Superior ${base.name},未生成任何属性词条。ac%(+5%..+15% Enhanced Defense) 和/或dur%(+10%..+15% Increase Maximum Durability);武器随机获得dmg%(+5%..+15% Enhanced Damage)、att(+1..+3 Attack Rating) 和/或dur%(+10%..+15%)。Low Quality (劣质) 硬编码
Cracked且无属性惩罚 (A4):Cracked,且基础伤害/防御/耐久未受 1.13c 劣质惩罚(1.13c 从Low Quality,Cracked,Crude,Damaged4 种前缀随机抽取,且基础防御/伤害为floor(base * 75 / 100)、最大耐久度降低至约floor(baseDur / 3))。缺失 Ethereal (无形) 与 Socket (凹槽) 生成 (A5):
5%(1/20) 概率生成为 Ethereal (ItemFlag.ETHEREAL):防具基础防御floor(baseDef * 1.5),武器基础伤害floor(baseDmg * 1.5),力量/敏捷需求-10,最大耐久度floor(baseDur / 2) + 1,并在 Tooltip 底部显示Ethereal (Cannot be Repaired)。ItemTypes.txt的maxSock1(ilvl 1..24)、maxSock25(ilvl 25..39)、maxSock40(ilvl 40+) 与底模gemsockets的较小值生成凹槽 (ItemFlag.SOCKETED,sockets),并在 Tooltip 显示Socketed (N)。Rare 稀有词缀槽位分配结构差异 (B3):
rollRareAffixes对totalAffixes(3..6) 的每个槽位逐次执行rng.rand(2)决定选前缀还是后缀(若一侧已满 3 个则自动选另一侧),而非先预分targetPrefixCount。毒伤显示与
rolledProps路径统一 (C4, C5):formatItemTooltip从item.rolledProps取数,并确保毒伤(dmg-pois/pois-min+pois-max+pois-len)当存储为每帧 bit 率(或直接伤害值)时秒数Math.round(len / 25)与总伤害显示准确一致。Fixed in commit
75eb4f4(merged into main). Verified with tests/parity-1.13c.test.ts (21 passed), tests/affix-generator.test.ts (14 passed), and tests/drop-pipeline.test.ts (19 passed).