支持戒指、项链、珠宝等物品的同代码多图标变体 (ItemTypes VarInvGfx) #375
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?
问题背景与需求
在暗黑破坏神 2 原版 1.13c 机制中,部分基础物品类型支持多种不同的外观贴图(同一个物品代码对应多个图标)。目前护身符(Charms:
cm1、cm2、cm3共 9 种变体)已在 Issue #149 落地支持,戒指、项链、珠宝等品类需后续跟进支持多图标随机变体。原版 1.13c 规范 (Ground Truth)
依据
ItemTypes.txt数据表定义:rin):VarInvGfx = 5,对应 5 种贴图变体(invrin1~invrin5)amu):VarInvGfx = 3,对应 3 种贴图变体(invamu1~invamu3)jewl):VarInvGfx = 6,对应 6 种贴图变体(invjw1~invjw6)在原版 D2 掉落与存档(
.d2s)中,物品生成时由一个 3-bit 字段graphic(0 ~ VarInvGfx-1)随机决定其具体外观变体。待实现方案
scripts/pack-ui.ts):ItemTypes.txt中的InvGfx1~InvGfx6,将 MPQ 内实际存在的invrin1..5、invamu1..3、invjw1..6全部收录并烘焙进items-atlas.png。src/game/drop.ts/items.ts):VarInvGfx随机分配变体编号并赋予相应invFile。src/ui/inventory.ts):resolveItemSpriteRect中为戒指/项链/珠宝建立品类变体白名单与实例定向映射,未指定时默认回退至 1 号基准贴图。