Skip to content

Spells/Warlock: Fix Summon Sayaad effect handler - #32050

Draft
ialbahub wants to merge 2 commits into
TrinityCore:masterfrom
ialbahub:fix/warlock-summon-sayaad
Draft

ialbahub wants to merge 2 commits into
TrinityCore:masterfrom
ialbahub:fix/warlock-summon-sayaad

Conversation

@ialbahub

@ialbahub ialbahub commented Oct 8, 2026 •

Copy link
Copy Markdown

Changes proposed:

  • Fix the effect handler for Summon Sayaad (366222). Effect 0 is SPELL_EFFECT_SUMMON_PET, but the script registers SPELL_EFFECT_DUMMY, so its handler is not called.
  • Prevent the default summon and cast the existing Succubus or Incubus variant selected by the script.
  • Add a regression test for the registered script's effect hook and default-effect suppression.

Issues addressed:

Summon Sayaad does not run its scripted Succubus/Incubus selection. No linked issue.

Tests performed:

  • Builds with Clang 18 and MySQL, with warnings treated as errors: worldserver, bnetserver and tests.
  • All 36 CTests pass in Release with static scripts and Debug with dynamic scripts and no PCH. The regression passes 5 assertions and fails without the fix.
  • Checked effect 0 against client build 12.1.0.69933 and verified the existing spell_warl_summon_sayaad binding. No SQL update is needed.

Known issues and TODO list:

  • Test pet creation and dismissal in-game. The automated test covers effect dispatch and default-effect suppression; it does not check pet creation or the random distribution.

Please review the effect hook, default-effect suppression and test fixture.

The current client spell 366222 has a summon-pet effect at index 0. The dummy-effect hook never runs, leaving the Incubus selection path unreachable. Register the current effect and prevent the original summon before casting the selected variant.

Add a regression through the registered script and real effect dispatcher. It fails on upstream and passes after the fix. Existing world bindings continue to apply.
@aquadeus

aquadeus commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

close this

The fixture script is compiled into the test executable. A custom context makes dynamic builds look up a shared script module that does not exist. Register it under the standard static context so script initialization also works with dynamic libraries.

Reproduced the dynamic-build assertion locally, verified the correction and passed all 36 CTests in the Debug MySQL build without precompiled headers.
@ialbahub ialbahub changed the title Scripts/Warlock: Handle Summon Sayaad through its summon-pet effect Spells/Warlock: Fix Summon Sayaad effect handler Oct 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants