Commit graph

2 commits

Author SHA1 Message Date
Kelsi
626d9e09fa feat(editor): add WCRR JSON round-trip (export/import sidecar)
Closes the JSON round-trip gap on the combat rating
conversion catalog format shipped last batch.
--export-wcrr-json emits all 10 scalar fields plus a dual
int + name form for ratingKind so hand-edits can use
either representation. --import-wcrr-json defaults
pointsAtL1/L60/L70/L80 to canonical WoW WotLK starter
values when omitted (1 / 14 / 22 / 45) — matches typical
combat rating curves so a sparse sidecar still produces a
working catalog. Verified byte-identical round-trip on all
three preset emitters (starter Hit/Crit/Haste / defensive
Defense+Dodge+Parry+Block / spell SpellPower+Pen+MP5).
870 documented CLI flags.
2026-05-09 21:14:18 -07:00
Kelsi
5865421b00 feat(pipeline): add WCRR (Wowee Combat Rating Conversion) catalog
65th open format — replaces gtCombatRatings.dbc plus the
per-level rating-to-percentage tables in gtRegenHPPerSpt.dbc
and related stat-curve DBCs. Defines per-rating-type
conversion factors at canonical level breakpoints (1 / 60
/ 70 / 80) — the runtime linearly interpolates between
breakpoints for intermediate levels.

pointsAtLevelN is "how many rating points equal 1% of the
benefit at that level." Higher level = more rating needed
for the same %. Standard WoW WotLK example: 14 crit rating
= 1% crit at L60, but 45.91 = 1% at L80.

5 rating kinds (Combat / Defense / Spell / Resilience /
Other) classify what stat resolver category each rating
belongs to.

CLI: --gen-crr (3 essential combat ratings — Hit/Crit/Haste
at canonical WoW WotLK conversion values), --gen-crr-defensive
(4 defensive — Defense/Dodge/Parry/Block with diminishing-
returns soft-cap percentages), --gen-crr-spell (3 spell —
SpellPower direct 1:1, SpellPenetration flat, MP5 mana
regen), --info-wcrr, --validate-wcrr with --json variants.
Validator catches id+name required, kind 0..4, all
pointsAtLN > 0 (otherwise stat resolver would div-by-zero),
maxBenefitPercent > 0 (rating would never grant any
benefit), and non-monotonic conversion curve warning
(rating cost typically ascends with level for non-flat
ratings like SpellPower).

Format graph: 64 → 65 binary formats. CLI flag count: 861
→ 868.
2026-05-09 21:11:26 -07:00