Paragon: multidot Devouring Plague, stance/presence clones, advancement SLA

- Allow multiple Devouring Plague DoTs on different targets (core + DK script).

- Warrior stance and DK presence clone spells for Character Advancement; spellbook SkillLineAbility rows and aura/shapeshift attribute fixes.

- World SQL updates 2026_05_12_02 through 07 (mod-paragon db-world).

Client patch-enUS-4/5/6 and Wow.exe ship on the matching GitHub Release (not in repo).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Docker Build
2026-05-12 19:20:13 -04:00
parent da17074a63
commit 87219cb4eb
11 changed files with 224 additions and 33 deletions
@@ -0,0 +1,21 @@
-- Fractured / Paragon: multidot Devouring Plague clone (spell IDs 951000-951008).
-- Spell rows live in the patched client Spell.dbc (see fractured-tooling
-- from-workspace-root/_patch_spell_dbc_paragon_multidot_devouring_plague.py).
-- Deploy the same Spell.dbc into the worldserver `data/dbc/` folder OR import
-- equivalent `spell_dbc` rows from a full exporter; stock SQL cannot express
-- the SpellEntryfmt NA padding columns safely in one INSERT here.
DELETE FROM `spell_ranks` WHERE `first_spell_id` = 951000;
INSERT INTO `spell_ranks` (`first_spell_id`,`spell_id`,`rank`) VALUES
(951000,951000,1),
(951000,951001,2),
(951000,951002,3),
(951000,951003,4),
(951000,951004,5),
(951000,951005,6),
(951000,951006,7),
(951000,951007,8),
(951000,951008,9);
DELETE FROM `paragon_spell_ae_cost` WHERE `spell_id` IN (2944,951000);
INSERT INTO `paragon_spell_ae_cost` (`spell_id`,`ae_cost`) VALUES (951000, 1);
@@ -0,0 +1,15 @@
-- Fractured / Paragon: spellbook tab for multidot Devouring Plague (951000 chain).
-- Shadow priest skill line (78); ClassMask 2064 matches mod-paragon SLA overlay.
-- Client: patched SkillLineAbility.dbc in patch-enUS-4 from the same script.
DELETE FROM `skilllineability_dbc` WHERE `ID` IN (1951000, 1951001, 1951002, 1951003, 1951004, 1951005, 1951006, 1951007, 1951008);
INSERT INTO `skilllineability_dbc` (`ID`,`SkillLine`,`Spell`,`RaceMask`,`ClassMask`,`ExcludeRace`,`ExcludeClass`,`MinSkillLineRank`,`SupercededBySpell`,`AcquireMethod`,`TrivialSkillLineRankHigh`,`TrivialSkillLineRankLow`,`CharacterPoints_1`,`CharacterPoints_2`) VALUES
(1951000,78,951000,0,2064,0,0,1,0,0,0,0,0,0),
(1951001,78,951001,0,2064,0,0,1,0,0,0,0,0,0),
(1951002,78,951002,0,2064,0,0,1,0,0,0,0,0,0),
(1951003,78,951003,0,2064,0,0,1,0,0,0,0,0,0),
(1951004,78,951004,0,2064,0,0,1,0,0,0,0,0,0),
(1951005,78,951005,0,2064,0,0,1,0,0,0,0,0,0),
(1951006,78,951006,0,2064,0,0,1,0,0,0,0,0,0),
(1951007,78,951007,0,2064,0,0,1,0,0,0,0,0,0),
(1951008,78,951008,0,2064,0,0,1,0,0,0,0,0,0);
@@ -0,0 +1,21 @@
-- Fractured / Paragon: Character Advancement stance/presence clones (951010-951015).
-- Client: patched Spell.dbc + SpellShapeshiftForm.dbc + SkillLineAbility.dbc in patch-enUS-4.MPQ.
-- Server: copy Spell.dbc + SpellShapeshiftForm.dbc into `data/dbc/` (SpellShapeshiftForm is not in stock MPQ); SkillLineAbility is DB-driven on server.
DELETE FROM `paragon_spell_ae_cost` WHERE `spell_id` IN (951010,951011,951012,951013,951014,951015);
INSERT INTO `paragon_spell_ae_cost` (`spell_id`,`ae_cost`) VALUES
(951010, 1),
(951011, 1),
(951012, 1),
(951013, 1),
(951014, 1),
(951015, 1);
DELETE FROM `skilllineability_dbc` WHERE `ID` IN (1951020,1951021,1951022,1951023,1951024,1951025);
INSERT INTO `skilllineability_dbc` (`ID`,`SkillLine`,`Spell`,`RaceMask`,`ClassMask`,`ExcludeRace`,`ExcludeClass`,`MinSkillLineRank`,`SupercededBySpell`,`AcquireMethod`,`TrivialSkillLineRankHigh`,`TrivialSkillLineRankLow`,`CharacterPoints_1`,`CharacterPoints_2`) VALUES
(1951020,26,951010,0,2049,0,0,1,0,2,0,0,0,0),
(1951021,257,951011,0,2049,0,0,1,0,0,0,0,0,0),
(1951022,256,951012,0,2049,0,0,1,0,0,0,0,0,0),
(1951023,770,951013,0,2080,0,0,1,0,2,0,0,0,0),
(1951024,771,951014,0,2080,0,0,1,0,0,0,0,0,0),
(1951025,772,951015,0,2080,0,0,1,0,0,0,0,0,0);
@@ -0,0 +1,9 @@
-- Fractured / Paragon: run spell_dk_presence on Character Advancement DK presence clones (951013-951015).
-- Spell.dbc sets SpellFamilyName=0 on these rows (see fractured-tooling/_patch_spell_dbc_paragon_stance_presence_clones.py)
-- so the stock client does not map them onto DK stance buttons; core still needs the aura script for Improved Presence.
DELETE FROM `spell_script_names` WHERE `spell_id` IN (951013, 951014, 951015);
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(951013, 'spell_dk_presence'),
(951014, 'spell_dk_presence'),
(951015, 'spell_dk_presence');
@@ -0,0 +1,8 @@
-- Fractured / Paragon: Character Advancement stance/presence clones — spellbook + client bits.
-- 1) SkillLineAbility: DK presence clones belong on 770/771/772 (Blood/Frost/Unholy tabs), not 760 (General).
-- (760 was an experiment; stance bar visibility is driven by Spell.dbc AttributesEx2 USE_SHAPESHIFT_BAR.)
-- 2) Idempotent if rows already match.
UPDATE `skilllineability_dbc` SET `SkillLine` = 770 WHERE `ID` = 1951023 AND `Spell` = 951013;
UPDATE `skilllineability_dbc` SET `SkillLine` = 771 WHERE `ID` = 1951024 AND `Spell` = 951014;
UPDATE `skilllineability_dbc` SET `SkillLine` = 772 WHERE `ID` = 1951025 AND `Spell` = 951015;