Kelsidavis-WoWee/tools/editor/cli_battleground_rewards_catalog.hpp
Kelsi a10497a026 feat(pipeline): WBRD battleground reward stages catalog (140th open format)
Novel replacement for the per-BG per-bracket reward
configuration vanilla WoW carried in BattlemasterList.dbc +
the hard-coded honor table in the server's BattlegroundMgr
(the "Mark of Honor" item granted on win/loss was hard-coded
per-BG type with no formal data-driven scaling). Each WBRD
entry binds one (battlegroundId, levelBracket) pair to its
win/loss honor amounts, win/loss marks, the mark itemId, an
optional weekly-bonus item, and a minimum-players-to-start
gate.

Three presets covering canonical vanilla BGs:
  --gen-brd-av   Alterac Valley reward ladder for brackets
                 5-6 (51-69 only — AV was endgame). 20
                 players/side, Mark of AV item 17502
  --gen-brd-wsg  Warsong Gulch ladder for all 6 brackets
                 (10-69), 10 players/side, Mark of WSG item
                 20558, monotonically scaling honor
                 (50/100/200/350/500/750)
  --gen-brd-ab   Arathi Basin ladder for brackets 2-6
                 (20-69), 15 players/side, Mark of AB item
                 20559, includes weekly bonus quest token
                 (placeholder itemId 20560)

Validator catches: id+battlegroundId required, bracketIndex
1..6 (vanilla), no duplicate rewardIds, no duplicate
(bgId,bracket) pairs (runtime reward-lookup tie),
bonusItemCount > 0 requires non-zero bonusItemId, minPlayers
ToStart > 0 (else BG queue would never start a match).
CRITICAL: lossHonor <= winHonor (else losing rewards more
than winning, no incentive to play to win — would degenerate
into AFK farming). Warns on winMarks=0 with markItemId set
(vanilla wins always granted at least 1 mark).

Format count 139 -> 140. CLI flag count 1454 -> 1461.
2026-05-10 05:24:26 -07:00

12 lines
253 B
C++

#pragma once
namespace wowee {
namespace editor {
namespace cli {
bool handleBattlegroundRewardsCatalog(int& i, int argc, char** argv,
int& outRc);
} // namespace cli
} // namespace editor
} // namespace wowee