diff options
| author | offl <11556157+offl@users.noreply.github.com> | 2025-11-04 23:37:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-04 22:37:06 +0100 |
| commit | d1a2f20b56aebc220b48560dfcd0e6bb72e90f7e (patch) | |
| tree | 1492bf52e03333d62853dcd41970cd4595fad6f9 /src/server/scripts/Outland | |
| parent | 899ac9e04e84192297fdd06278a8a0643f70b47d (diff) | |
Scripts/Spells: Migrate some spell linked spells to spell scripts (#31279)
Diffstat (limited to 'src/server/scripts/Outland')
| -rw-r--r-- | src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp | 29 | ||||
| -rw-r--r-- | src/server/scripts/Outland/zone_hellfire_peninsula.cpp | 31 |
2 files changed, 58 insertions, 2 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 67a3cecfd94..b0c0ecd4b04 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -39,13 +39,16 @@ enum NajentusTexts enum NajentusSpells { SPELL_NEEDLE_SPINE_TARGETING = 39992, - SPELL_NEEDLE_SPINE = 39835, SPELL_TIDAL_BURST = 39878, SPELL_TIDAL_SHIELD = 39872, SPELL_IMPALING_SPINE = 39837, SPELL_CREATE_NAJENTUS_SPINE = 39956, SPELL_HURL_SPINE = 39948, - SPELL_BERSERK = 26662 + SPELL_BERSERK = 26662, + + // Scripts + SPELL_NEEDLE_SPINE = 39835, + SPELL_NEEDLE_SPINE_EXPLOSION = 39968 }; enum NajentusEvents @@ -228,9 +231,31 @@ class spell_najentus_needle_spine : public SpellScript } }; +// 39835 - Needle Spine +class spell_najentus_needle_spine_explosion : public SpellScript +{ + PrepareSpellScript(spell_najentus_needle_spine_explosion); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_NEEDLE_SPINE_EXPLOSION }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), SPELL_NEEDLE_SPINE_EXPLOSION, true); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_najentus_needle_spine_explosion::HandleScript, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_boss_najentus() { RegisterBlackTempleCreatureAI(boss_najentus); RegisterGameObjectAI(go_najentus_spine); RegisterSpellScript(spell_najentus_needle_spine); + RegisterSpellScript(spell_najentus_needle_spine_explosion); } diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 320fb13f989..e387477f185 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -954,6 +954,36 @@ class spell_hellfire_peninsula_absorb_eye_of_grillok : public AuraScript } }; +/*###### +## Quest 10838: The Demoniac Scryer +######*/ + +enum TheDemoniacScryer +{ + SPELL_SUMMON_DEMONAIC_VISITATION = 38991 +}; + +// 38708 - Demonaic Visitation +class spell_hellfire_peninsula_demonaic_visitation : public AuraScript +{ + PrepareAuraScript(spell_hellfire_peninsula_demonaic_visitation); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_SUMMON_DEMONAIC_VISITATION }); + } + + void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + GetTarget()->CastSpell(GetTarget(), SPELL_SUMMON_DEMONAIC_VISITATION, true); + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_hellfire_peninsula_demonaic_visitation::AfterRemove, EFFECT_1, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_hellfire_peninsula() { new npc_colonel_jules(); @@ -968,4 +998,5 @@ void AddSC_hellfire_peninsula() RegisterSpellScriptWithArgs(spell_hellfire_peninsula_translocation_falcon_watch, "spell_hellfire_peninsula_translocation_falcon_watch_tower_up", SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_UP); RegisterSpellScript(spell_hellfire_peninsula_purify_helboar_meat); RegisterSpellScript(spell_hellfire_peninsula_absorb_eye_of_grillok); + RegisterSpellScript(spell_hellfire_peninsula_demonaic_visitation); } |
