feat(combat/pvp): 完善 PvP 对决机制与受击减免完整流水线(1/6伤害惩罚、元素吸收、DTGM与护盾分流) #40
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 #24(里程碑 M9)中,项目已完整实现了核心战斗数学库
src/game/formulas.ts与独立测试对决擂台arena.html:在玩家对抗玩家(PvP / 对决 Duel)以及高阶角色受击减免(Damage Taken Pipeline)场景中,原版《暗黑破坏神 II》具有一套极其严密且独特的平衡性衰减与计算顺序。为确保后续多人联机对决(Net / PvP)及高阶配装与伤害抵御的真实还原,需在本 Issue 中立项跟踪与实现。
需补充的 PvP 与高阶受击减免机制清单
1. PvP 1/6 (17%) 伤害衰减惩罚 (PvP Handicap / Penalty)
17\%(1.10+ 官方规定的1/6惩罚因子)。2. 完整的 8 层受击伤害结算管线 (Damage Taken Pipeline)
原版中在判定攻击命中并击穿格挡后,受到伤害的扣除顺序有着严格的法律级先后次序(The Amazon Basin 权威顺序):
40\%。先扣减该伤害,并在随后等额回复玩家生命。\text{Net Damage} = \text{Incoming Damage} - 2 \times \text{Absorbed Damage}(若吸血超过伤害,净结算为治疗,但生命不可超过 MaxHP)。X\%伤害直接转化为法力扣除,是法师 PvP 的核心生存机制。3. 格挡硬直与格挡帧率 (Faster Block Rate, FBR)
4. 受击硬直帧率档位表 (Faster Hit Recovery, FHR Breakpoints)
MaxHP/16触发硬直的概率。5. 无法被冻结 (Cannot Be Frozen, CBF) 与 冻结减半 (Half Freeze Duration)
6. 对远程攻击防御力 (Defense vs. Missile)
交付目标与实施建议
src/game/formulas.ts中扩展:calculatePvPDamage(damage, isTargetPlayerOrMerc):应用 1/6 伤害衰减。calculateDamageAbsorb(damage, pctAbsorb, flatAbsorb):实现百分比与固定吸收及回血净值结算。calculateDamageTakenGoesToMana(damageDealtToLife, dtgmPercent):实现实际扣血转法力。calculateFhrFrames(charClass, fhrPercent)与calculateFbrFrames(charClass, fbrPercent, hasHolyShield):加入标准动画档位表。arena.html中:Player PvP时,自动在推导日志中展示 PvP 1/6 惩罚与吸收抵御细节。