fix(hud): restore authentic 1.13c monster hover nameplate, species/desc subtext, elite modifiers & immunities #559
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?
Symptom
In
play.html(screenshothttps://screenshot-v2.corp.google.com/0ipug71f0k37o), hovering over a monster (e.g. Fallen,hcIdx = 19) displays rawMON_19in white in the top-center lifebar, with no subtext below the bar (missingDemon/Undead,DescStr, elite modifiers, and immunities), and Elite/Champion/Unique/SuperUnique/Boss/Minion monsters do not display their authentic 1.13c names or colors.Root Causes (1.13c Ground Truth)
clientUnitToMonsterTargetInfoinsrc/client/ui-model/hud-model.tsis an unimplemented stub:monsterDisplayName(\mon_${unit.classId}`, 'ENG')which misses in.tbltables and returns'mon_19'(drawn asMON_19`).unit.classId(hcIdx0..733) viaMONSTER_HCIDX_TO_IDinMonStats.txt(readMonsterKindsfor difficulty0..2) orunit.superUniqueIdinSuperUniques.txt(RAW_SUPERUNIQUES).nameKey,descKey,isDemon,isUndead,isBoss,rank: 'minion' | 'boss', andresistances(base difficulty resistancesResDm..ResPoperD2Client.dll0x6fafd223..0x6fafd290+MonUModbonuses) unset.unit.bossModsas'Mod #5'instead of passing numericMonUModIDs ('5'..'39') expected byMONSTER_UMOD_TBL_KEYSinWorldPanelsHud.decode0xACAssignNpcinsrc/netproto/d2gs/s2c/units.tsaborts bitstream decoding whenhasAnimComp === 1:D2Game.dll(0x6fcaca40,0x6fccf610) andD2Client.dll(0x6fb5e420), whenhasAnimComp === 1, 16 component variant indices (MonStats2.txtHDv..S8v, bit widthcount < 3 ? 1 : bsr(count - 1) + 1per0x6fb50f10) precede thehasMonsterFlagsbit and the boss/champion/superunique/minion block (flags0x04/0x08/0x02/0x10/0x40,superUniqueId, up to 9bossMods,nameSeed,ownerId).ClientUnit(src/client/world/client-unit.ts):isChampion,isUnique,isSuperUnique,superUniqueId,bossMods,nameSeed, andownerIdfromUnitSnapshot.Fix
D2GS 0xACbitstream decoding for all 16 component variant indices (MonStats2.txtHDv..S8v) and the full monster flags/boss block (flags,superUniqueId,bossMods,nameSeed,ownerId).UnitSnapshotandClientUnit.0x6fb55d90), SuperUnique name/mod lookup, and Uber boss subtext suppression (hcIdx704..709,0x6fb6fca0) inHudModel.clientUnitToMonsterTargetInfo.