[动画系统 TODO] 实现完整 1.13c IAS / EIAS 攻击速度公式 #142
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?
背景
动画系统实施计划在 Q3 决策中选择先做基础速度:动画节奏直接取
AnimData.D2的animationSpeed字段,按在 25 Hz sim tick 下播放(8.8 定点累加器,
frameIndex = acc >> 8)。本 issue 追踪的遗留项
实现完整的 1.13c 攻击速度链路,让装备上的 IAS 词条在视觉动画与实际攻速上都真实生效:
EIAS = floor(120 × IAS / (120 + IAS))Weapons.txt第 20 列speedAnimationSpeed = 256 × BaseRate × (100 + EIAS - WSM) / 100,并做[?, 175%]上限钳制AnimData帧事件 code=1)在加速后的实际 tick 落点seqtrans/seqnum/seqinput列交互现有接口预留
src/game/actor-animator.ts的tick(speedScale = 256)已经预留了速度缩放入口,且实现保证加速时不会漏掉帧事件(对(index, next]区间内每一帧按序查表)。本 issue 只需要计算出正确的speedScale并接线。已验证的输入数据
Weapons.txt列位:name=0, type=1, code=3, speed=20 (WSM), StrBonus=21, 2handed=13, wclass=37, 2handedwclass=38(src/game/weapons.ts已解析)AnimData.D2基础速度实测样本:SOWLHTH256、SONUHTH128、SOTNHTH80、BAWL1HS168、BARN1HS216、PAWL1HS288、SKA1HTH208约束
严格按 D2 v1.13c 反编译行为实现,不得编造公式。