Commit graph

1 commit

Author SHA1 Message Date
Kelsi
b66e41df87 feat(pipeline): WCST combat stats baseline catalog (130th open format)
Novel replacement for the per-class per-level base-stat scaling
table that vanilla WoW scattered across CharBaseInfo.dbc +
CharStartOutfit.dbc + GtChanceTo*.dbc + the hard-coded HP/mana-
per-level constants in the server's StatSystem. Each WCST entry
binds one (classId, level) pair to base health, mana, armor, and
the five primary stats (Str/Agi/Sta/Int/Spi).

Sparse design: presets emit ~6 sample levels per class with the
runtime stat-interpolator computing intermediate levels.

Three presets:
  --gen-cst-warrior   Warrior (classId=1) sparse sample at L1/
                      10/20/30/40/60. baseMana=0 across all
                      entries (Warrior uses Rage)
  --gen-cst-mage      Mage (classId=8) same 6 levels with mana
                      growth tracking Intellect
  --gen-cst-starting  All 9 vanilla classes at level 1 — shows
                      per-class flat starting differences
                      (Warrior/Paladin high Str; Hunter/Rogue
                      high Agi; Mage/Priest/Warlock high Int;
                      Shaman/Druid balanced)

Validator catches: id+classId+level required, classId 1..11,
level 1..60, zero baseHealth (player would die instantly),
duplicate statIds, duplicate (classId,level) pairs (runtime
stat-lookup tie). Warns on classId 6/10 (DK/Monk gap unused
in vanilla), Warrior/Rogue baseMana > 0 (these classes use
Rage/Energy not mana), and per-class monotonicity violations
across all 8 stats — sorts by level, walks adjacent pairs,
flags any stat that regresses as level increases (typo guard).

Format count 129 -> 130. CLI flag count 1364 -> 1371.
2026-05-10 04:08:41 -07:00