feat(combat/pve): 补全 PvE 深度机制(破免1/5法则、怪物生命自愈、PMH阻止自愈、体型击退与盲目恐吓) #39
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:通过检索 The Amazon Basin、d2mods.info 以及原版《暗黑破坏神 II》(1.10+) 官方机制,在 PvE(怪物与环境战斗交互) 领域,还有以下关键深度机制未涵盖,需在本 Issue 中立项跟踪与实现。
需补充的 PvE 深度机制清单
1. 免疫破除与 1/5 衰减法则 (Breaking Immunities - 1/5th Rule)
\ge 100\%时,审判光环 (Conviction,如符文之语「无限」) 与降低抗性诅咒 (Lower Resist) 的减抗效果强制缩减为 1/5 (20% 效能)。-85\%电抗,打在110\%电抗怪物身上只能降低85 / 5 = 17\%,怪物抗性变为93\%(成功破免)。100\%以下,装备减抗就会 100% 全额生效,带来毁灭性爆发。2. 怪物自然生命回复与阻止怪物自愈 (Prevent Monster Heal, PMH)
3. 怪物击退体型判定与 Boss 免疫 (Knockback vs Monster Size & Boss Immunity)
100\%击退几率;50\%击退几率;25\%击退几率。4. 减速目标机制 (Slows Target by X%)
90\%;对暗金 Boss 与精英怪最高封顶50\%。可与冰冷减速、衰老诅咒协同叠加。5. 状态异常:使目标盲目 (HBT) 与 击中使怪物逃跑 (HCMTF)
6. 离体增伤 (Off-Weapon ED) 与 绝对基础增伤 (Flat +Damage)
+340\sim400绝对伤害直接加在内层基础武器伤害上,再被防具(刚毅 300% ED)、力量和光环技能乘算放大,是物理系输出计算的核心支柱。7. 毒素伤害的时间片与堆叠法则 (Poison Bit Rates & Averaging)
1/256点/帧的速率(Bit Rate)与总帧数(Duration)结算。\text{Total BitRate} = \sum \text{BitRate},\text{Duration} = \frac{\sum \text{Duration}}{N}(速率求和,时间取均值)。交付目标与实施建议
src/game/formulas.ts中扩展:calculateMonsterRegeneration(maxHp, regenRate, hasOW, hasPMH)calculateKnockbackSuccess(attackerKnockback, defenderSize, isBoss)calculateSlowTarget(currentSlowPercent, isBoss)calculateResistanceReduction(enemyRes, convictionRes, lowerRes, itemMinusRes)(含 1/5 破免判定)arena.html中为怪物增加:体型选择(Small/Medium/Large)、自愈速率、PMH 状态指示。✅ PvE 深度战斗机制 (Issue #39) 已在提交
93a854d中完整实装并通过全量自动化测试!1. 核心算法与数学公式实装 (
src/game/formulas.ts)calculateResistanceReduction):-20%电抗、彩虹刻面-5%等)。Res >= 100%),审判与降低抗性按 1/5 效率(Math.floor(TotalSkillPenalty / 5))扣减;若扣减后抗性仍>= 100%,装备直减抗 完全不生效。99%或以下),装备直减抗以 100% 满额 继续扣减(最低至-100%)。calculateMonsterRegeneration&evaluatePreventMonsterHeal):RegenPerFrame = (MaxHP * RegenRate) / 4096(25 fps)。calculateKnockbackSuccess):calculateSlowTarget):calculateHitBlindsTarget&calculateHitCausesFlee):50 + (AttackerLvl + Bonus*4 - DefenderLvl)*2(远程 1/3),持续Bonus*4 + 4秒,Boss 免疫。calculatePhysicalWeaponDamage):+Damage) 与 离体增伤 (Off-Weapon ED%,如刚毅、狂热光环、力量/敏捷加成) 的分层放大:TotalPhys = floor((WeaponBase * (1 + OnWeaponED%) + FlatDamage) * (1 + OffWeaponED% + StatBonus%))。calculatePoisonStack):2. 对决测试擂台 (
arena.html&src/arena.ts)[🚫PMH]、[🐌-X%]、[👁️BLIND]、[😱FLEE]、[❄️FROZEN]、[🩸OW]及破免浮动文字提示与详细数学推导日志。3. 测试验证 (
tests/formulas.test.ts)tests/formulas.test.ts共 75/75 全部通过,全仓 625 项测试 100% 绿灯通过。