mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-11 11:33:52 +00:00
feat(editor): add WPTT (Pet Talent Tree) — 107th open format
Novel replacement for the PetTalent.dbc + PetTalentTab.dbc pair that defined the Hunter pet talent system added in WotLK. Each entry is one talent in one of the three pet trees (Cunning/utility, Ferocity/DPS, Tenacity/tank), placed at a (tier, column) grid position with a per-rank spell ID array, an optional prerequisite-talent edge, and a legacy loyalty-level requirement carried over from Vanilla pet happiness mechanics. Combines three patterns previously seen separately into one format: variable-length payload (spellIdsByRank[] mirroring WCMR's members[]), graph edge (prerequisiteTalentId mirroring WBAB's previousRankId), and grid placement (tier+column — first format with explicit 2D layout coordinates the renderer can use to draw the talent tree UI). Three preset emitters one per tree: makeFerocity (6 talents tiers 0-3 with prereq chain CobraReflexes -> SpikedCollar -> SpidersBite plus parallel Serpent -> Boars -> Rabid), makeCunning (5 talents Dash/Owls/ Recovery/Cornered/Phoenix), makeTenacity (5 talents Charge/Stamina/Stomp/Taunt/LastStand). Validator's most novel checks combine grid + graph constraints unique to talent-tree formats: - (tree, tier, column) cell uniqueness — two talents in the same cell would render on top of each other - prereq must resolve to an existing talent IN THE SAME TREE (cross-tree prereqs are illegal) - prereq tier must be STRICTLY LESS than this tier (talents only depend on earlier tiers, no same-tier or backward dependencies) - spellIdsByRank.size() must EQUAL maxRank exactly - no zero spell IDs within the rank array Plus the standard: id+name required, treeKind 0..2, tier 0..6 (7 tiers), column 0..2 (3 columns), maxRank 1..5, no duplicate talentIds, no self-referencing prereqs. Format count 106 -> 107. CLI flag count 1170 -> 1175.
This commit is contained in:
parent
3c69f33465
commit
81070c470c
10 changed files with 840 additions and 0 deletions
|
|
@ -131,6 +131,7 @@ constexpr FormatRow kFormats[] = {
|
|||
{"WSPM", ".wspm", "spellfx", "AreaTrigger.dbc + decal blob", "Spell persistent marker catalog (AoE ground decals)"},
|
||||
{"WLDN", ".wldn", "server", "TutorialPopup + LevelMilestone msgs","Learning notification catalog (level-up milestones)"},
|
||||
{"WCRE", ".wcre", "creatures", "creature_template resist + immunity","Creature resist + CC-immunity profile catalog"},
|
||||
{"WPTT", ".wptt", "pets", "PetTalent.dbc + PetTalentTab.dbc", "Hunter pet talent tree catalog (3 trees, grid+graph)"},
|
||||
|
||||
// Additional pipeline catalogs without the alternating
|
||||
// gen/info/validate CLI surface (loaded by the engine
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue