fix(tooltip/affix): 补全未映射的原始词条代码并对齐官方游戏描述(消除 rep-dur 等未翻译代码) #124
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/item-tooltip.ts的formatPropertyCode函数中,仅对部分最基础的属性(如str,dex,hp,mana,res-fire等)进行了硬编码格式化。对于大量其它合法的暗黑2属性代码,全部回退到default:分支:导致在掉落的暗金、套装及魔法/稀有装备卡片上,暴露出大量游戏引擎底层的属性代号,严重影响游戏原版沉浸感。例如:
rep-dur: 0 (5)-> 应该格式化为Repairs 1 Durability in 5 Seconds(或每5秒回复1点耐久度)rep-quant: 0 (33)-> 应该格式化为Replenishes Quantityease: -20-> 应该格式化为Requirements -20%ethereal: 1-> 应该格式化为Ethereal (Cannot be Repaired)thorns: 14-> 应该格式化为Attacker Takes Damage of 14res-pois-len: -75-> 应该格式化为Poison Length Reduced by 75%mana-kill: 2-> 应该格式化为+2 to Mana After Each Killno-heal: 1-> 应该格式化为Prevent Monster Healcast-skill,hit-skill)、充能量技能 (charged) 等。暗黑2 1.13c 原版规范 (Ground Truth)
在 Diablo II 1.13c 数据架构中:
Properties.txt(268 行)定义了所有物品词条代码(code)及其映射的目标状态(stat1..stat7)。ItemStatCost.txt(359 行)通过descfunc、descval、descstrpos、descstrneg和descstr2明确指定了每个属性在 UI 面板上的标准排版格式。rep-dur映射到 statitem_replenish_durability,其对应的官方字符串定义为Repairs 1 Durability In %d Seconds(其中参数 %d 为回复间隔秒数)。待实现功能清单 (TODOs)
Properties.txt与ItemStatCost.txt全面补充formatPropertyCode中的属性映射表:rep-dur(Repairs 1 Durability in X Seconds),rep-quant(Replenishes Quantity)ease(Requirements X%),ethereal(Ethereal)thorns(Attacker Takes Damage of X),no-heal(Prevent Monster Heal),rip(Slain Monsters Rest in Peace)mana-kill(+X to Mana After Each Kill),hp-kill(+X to Life After Each Kill)res-pois-len(Poison Length Reduced by X%),abs-fire,abs-cold,abs-ltng,abs-maghit-skill,cast-skill,chargedhowl(Hit Causes Monster to Flee X%),blind(Hit Blinds Target),knock(Knockback)修复完成并验证通过 (Commit
2cf5acb)Properties.txt->ItemStatCost.txt->.tbl->D2Client.dlldescFunc 1..28):rep-dur(item_replenish_durability, ID 252,descFunc = 11,ModStre9t/ModStre9u):par代表每 100 秒回复耐久度点数,按公式seconds = Math.floor(100 / par)计算间隔秒数(如Sandstorm Trekpar=5->Repairs 1 durability in 20 seconds,Skullder's Irepar=20->Repairs 1 durability in 5 seconds,of Self-Repairpar=3->Repairs 1 durability in 33 seconds)。Skills.txt+SkillDesc.txt+ENG .tbl):Wearwolf->Werewolf (Druid Only)、Summon Fenris->Summon Dire Wolf、Plague Poppy->Poison Creeper、Eruption->Fissure、197->Firestorm)。CharStats.txt21 个技能系 (StrSkillTab1..3+StrClassOnly) 与MonStats.txt复生怪物表 (reanimate)。tests/item-tooltip-124.test.ts扫描UniqueItems.txt、SetItems.txt、Sets.txt、MagicPrefix.txt、MagicSuffix.txt、AutoMagic.txt共 182 个属性代码,验证 Unmapped = 0,全量 1619 项单测 100% 通过。