Paragon: AE/TE currency, Character Advancement commit/reset, panel SQL

- mod-paragon: Paragon_Essence addon channel (PARAA), commit queue, resets,
  spell chain learn with passive child tracking, silence-window hints for
  cascade learns, trainer exemptions for pet/portal trainers
- SQL: character_paragon_panel_* tables, paragon_spell_ae_cost world data
- Core: Player Paragon class talent learn hook; Trainer skip for Paragon
  where appropriate
- Ignore local build-worldserver.log

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-08 21:42:39 -04:00
parent e2bed00b5c
commit 203356aca8
7 changed files with 1500 additions and 17 deletions
@@ -0,0 +1,34 @@
-- Spells and talents learned only through Character Advancement (Lock In / .paragon learn).
-- Apply to the character database (same as `characters`, `character_spell`, etc.).
CREATE TABLE IF NOT EXISTS `character_paragon_panel_spells` (
`guid` INT UNSIGNED NOT NULL COMMENT 'characters.guid',
`spell_id` INT UNSIGNED NOT NULL,
PRIMARY KEY (`guid`, `spell_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='mod-paragon: spells purchased via Character Advancement';
CREATE TABLE IF NOT EXISTS `character_paragon_panel_talents` (
`guid` INT UNSIGNED NOT NULL COMMENT 'characters.guid',
`talent_id` SMALLINT UNSIGNED NOT NULL,
`rank` TINYINT UNSIGNED NOT NULL,
PRIMARY KEY (`guid`, `talent_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='mod-paragon: talent ranks purchased via Character Advancement';
-- Passive "dependent" spells that AzerothCore's `addSpell` machinery
-- (via spell_learn_spell + SPELL_EFFECT_LEARN_SPELL) auto-grants when a
-- panel-purchased spell is learned. We keep them learned (some are
-- required for the parent ability to function -- e.g. Frost Fever for
-- Icy Touch, Blood Plague for Plague Strike) but record them here so
-- Reset Abilities / Reset Everything can unlearn them alongside the
-- parent. Only passive auto-learns are tracked here; active dependents
-- (Death Coil, Death Grip, ...) are revoked at learn time and never
-- reach this table.
CREATE TABLE IF NOT EXISTS `character_paragon_panel_spell_children` (
`guid` INT UNSIGNED NOT NULL COMMENT 'characters.guid',
`parent_spell_id` INT UNSIGNED NOT NULL COMMENT 'character_paragon_panel_spells.spell_id',
`child_spell_id` INT UNSIGNED NOT NULL COMMENT 'auto-learned passive spell id',
PRIMARY KEY (`guid`, `parent_spell_id`, `child_spell_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
COMMENT='mod-paragon: passive auto-learn dependents to unlearn on reset';