Kelsidavis-WoWee/tools/editor/cli_learning_notifications_catalog.hpp

13 lines
257 B
C++
Raw Normal View History

feat(editor): add WLDN (Learning Notification) — 105th open format Novel replacement for the hardcoded server-side milestone messages that fire when a player crosses a progression threshold ("You can now learn Apprentice Riding" at level 20, "Dual specialization is now available", "You have unlocked the auction house"). Each entry binds one trigger condition (LevelReach / FactionStanding / ItemAcquired / QuestComplete / SpellLearned / ZoneEntered) to a delivery channel (RaidWarning banner / SystemMsg / Subtitle / Tutorial popup / MOTDAppend) and an optional fanfare sound. The triggerValue field is polymorphic — its semantics depend on triggerKind. The validator enforces per-kind ranges: LevelReach 1-80 (current cap), FactionStanding +/-42000 (Hated to Exalted bounds), ItemAcquired/ QuestComplete/SpellLearned/ZoneEntered must be a positive id (>0). This is the first format to use per-trigger discriminated value validation. Three preset emitters: makeLevelMilestones (5 LevelReach unlocks at canonical thresholds 20/30/40/60/ 80), makeAccountUnlocks (4 mixed-kind notifications: first-mail tutorial gated to <2hr playtime, Stormwind auction-house location subtitle, dual-spec activation on spell-learn, transmog vendor unlock on quest- complete), makeReputation (3 FactionStanding milestones at Honored/Revered/Exalted standings). minTotalTimePlayed gates first-time-only tutorials — the auction-house location subtitle fires only for characters with <2hr total time so veterans don't get spammed. Format count 104 -> 105. CLI flag count 1155 -> 1160.
2026-05-10 01:35:40 -07:00
#pragma once
namespace wowee {
namespace editor {
namespace cli {
bool handleLearningNotificationsCatalog(int& i, int argc, char** argv,
int& outRc);
} // namespace cli
} // namespace editor
} // namespace wowee