Skip to content

v0.0.28 — 计算修复与技能引擎整理

Choose a tag to compare

@github-actions github-actions released this 25 Sep 13:04
· 5 commits to master since this release
d275fc4

本版本集中修复计算作用域和条件门控,并整理技能引擎与缓存边界。游戏数据版本仍为 4.5.5.2。

计算修复

  • 辅助宝石等级、品质提供的 MORE/less 修正遵循技能类型限制。
  • 修正徒手暴击单位,以及武器单手、近战和双持条件判断。
  • 数值型 IgnoreArmour 正确削减正护甲,保留负护甲语义;光环持续伤害补齐 AuraEffect 与 Magnitude 缩放。
  • 显式 Exerts 输入下,威吓战吼正确处理覆盖率、双倍伤害、去重及三倍伤害优先级。
  • 重复 DOUBLED 词条共享翻倍上限;Boss 身份条件与通用 Poise 修正仅在 Effective 模式生效。
  • 修复两条当前版本法术压制规则的开头 + 转义,历史数据未改写。

引擎与缓存

  • 将可复用的技能、辅助、光环、召唤物、触发及武器规则集中到核心引擎,整理 BuildData 查询模块。
  • 计算缓存增加容量限制和完整结构键,绑定不可变数据与选项,并复用触发来源子计算。
  • 包含此前合入的 Full DPS 结果复用、查询分配优化、面板懒加载、版本数据复用,以及计算与规划共享的辅助兼容性判定。
  • 计算错误向调用者返回,避免直接 panic;继续提供独立 WASM 发布包。

验证改进

  • 面板 parity 使用同版本 PoB2 COMBAT 参考值,覆盖 18 个构筑、80 项比较;5%/10% 门禁提高到 69/79。Effective 参考值和门禁保持不变。

  • 装备草稿 E2E 显式选择待验证槽位,兼容面板懒加载时的挂载行为。

  • GitHub Actions 全量通过:Rust 2308 项、Web 223 项、Worker 8 项、浏览器 E2E 90 项,以及 doctest、WASM 构建与独立包冒烟。

已知边界

缓存仍是显式启用的结果复用,尚未实现依赖驱动的增量计算。威吓战吼的完整生产 Exerts 输入链、催化剂计算、文档列出的部分作用域问题和 PoB2 GUI 对照仍未完成。

PoBR WASM v0.0.28

Data: 4.5.5.2; JSON schema: 5; source commit: d275fc4.

Component Raw bytes gzip bytes (level 9)
pobr_wasm.js 23664 3647
pobr_wasm_bg.wasm 5077722 1856752
Data bundle (70 files) 61754706 4720593
Disk / transfer comparison MiB
PoBR WASM + JS + compressed data 9.367
pob-web approximate reference (same compression convention) 4.966
PoBR gzip transfer estimate (WASM + JS + data) 6.276
Complete release archive (also includes types, docs, example) 6.259

PoBR / approximate reference: 1.89x.

Reference: krauthaufen/pob-web. User-provided approximate disk sizes; upstream revision and measurement date unknown. Not a live measurement or a feature-parity claim.

The reference is Lua WASM + JS + compressed PoB Lua code/data; PoBR compiles calculation code into WASM.
PoBR includes every JSON from the Web data manifest, including catalogs, localization and derived data.
These scopes and supported mechanics differ. This is a size report, not a performance or parity gate.
gzip estimates assume server compression for JS/WASM; the data file is already compressed.
Disk and compressed transfer sizes do not measure runtime memory.

What's Changed

  • perf: reduce calculation and loading overhead by @ackness in #91
  • refactor: isolate calculation context and share support judgement by @ackness in #92
  • fix: harden calculations and separate skill engine (v0.0.28) by @ackness in #93

Full Changelog: v0.0.27...v0.0.28