Kelsidavis-WoWee/tools/editor/cli_combat_stats_catalog.hpp

13 lines
237 B
C++
Raw Normal View History

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
#pragma once
namespace wowee {
namespace editor {
namespace cli {
bool handleCombatStatsCatalog(int& i, int argc, char** argv,
int& outRc);
} // namespace cli
} // namespace editor
} // namespace wowee