Commit graph

2 commits

Author SHA1 Message Date
Kelsi
8f72664f6c feat(editor): WAUH JSON round-trip closure
Adds --export-wauh-json / --import-wauh-json with the established
readEnumField template factoring int+name dual encoding for
factionAccess ("both"/"alliance"/"horde"/"neutral"). All 3
presets (stormwind/orgrimmar/bootybay) byte-identical binary
roundtrip OK including the Booty Bay neutral 15%/15% rate
configuration.

Live-tested economic-trap validator: hand-mutated Booty Bay
deposit to 60% + cut to 50% (sum 110%). Validator correctly
errored: "depositRatePct=6000 + cutPct=5000 = 11000 basis
points — seller would lose money on every sale (combined rates
>= 100%)". Catches misconfigured AH rates that would silently
trap players into negative expected returns on every listing.

CLI flag count 1452 -> 1454.
2026-05-10 05:18:42 -07:00
Kelsi
4b63025e4a feat(pipeline): WAUH auction house config catalog (139th open format)
Novel replacement for the implicit per-faction auction-house
policy vanilla WoW carried in AuctionHouse.dbc + the hard-
coded deposit/cut rate constants in the server's AuctionMgr
(the 5% Alliance/Horde rate vs 15% neutral Booty Bay rate
was hard-coded on AH faction id). Each WAUH entry binds one
auction house instance to its faction-access rules,
deposit-rate (% of vendor sell price held as deposit), AH cut
(% taken from final sale price before crediting seller),
allowed listing durations (min/max hours), per-slot copper
fee, and the auctioneer NPC binding.

Three presets capturing canonical vanilla AH instances:
  --gen-auh-stormwind  Alliance Stormwind Trade District AH
                       with 5%/5% deposit/cut rates, 12-48hr
                       listing tiers, NPC Auctioneer Tricket
                       (creatureId 8666)
  --gen-auh-orgrimmar  Horde Orgrimmar Valley of Strength AH
                       with same vanilla rates as Stormwind,
                       NPC Auctioneer Tahesh (9856)
  --gen-auh-bootybay   Neutral Booty Bay AH with the famous
                       15%/15% penalty rates, NPC Auctioneer
                       Beardo (9858)

Validator catches: id+name required, factionAccess 0..3,
depositRatePct + cutPct each in 0..10000 (basis points), no
duplicate ahIds, no duplicate (faction,name) pairs (UI tab
dispatch tie), no duplicate npcAuctioneerId (gossip dispatch
tie), maxListingDurationHours > 0 and minListing <= maxListing.
CRITICAL: combined depositRatePct + cutPct < 10000 (else
seller would lose money on every successful sale — economic
trap). Warns on combined > 50% (sellers may abandon AH;
verify intentional like neutral AH penalty).

Format count 138 -> 139. CLI flag count 1445 -> 1452.
2026-05-10 05:16:25 -07:00