diff options
| author | offl <11556157+offl@users.noreply.github.com> | 2025-05-09 01:10:43 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-09 00:10:43 +0200 |
| commit | 5ed83ed27c676ae2dcf661409550ce0fcbffe5c8 (patch) | |
| tree | 111c87a9626a542fec10a6b41cecba7b0d353784 /src/server/scripts/Outland | |
| parent | 7b0d1f09135999958e850dd67ed9c5b1eaf16536 (diff) | |
Scripts/Spells: Get rid of some database spell scripts (#30915)
Diffstat (limited to 'src/server/scripts/Outland')
6 files changed, 240 insertions, 0 deletions
diff --git a/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.cpp b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.cpp new file mode 100644 index 00000000000..c52b5a398a7 --- /dev/null +++ b/src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.cpp @@ -0,0 +1,58 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#include "ScriptMgr.h" +#include "SpellScript.h" +#include "Unit.h" + +enum +{ + SPELL_SUMMON_ARCANE_FIEND_1 = 32349, + SPELL_SUMMON_ARCANE_FIEND_2 = 32353 +}; + +// 32348 - Summon Arcane Fiends +class spell_mana_tombs_summon_arcane_fiends : public SpellScript +{ + PrepareSpellScript(spell_mana_tombs_summon_arcane_fiends); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo( + { + SPELL_SUMMON_ARCANE_FIEND_1, + SPELL_SUMMON_ARCANE_FIEND_2 + }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + Unit* caster = GetCaster(); + caster->CastSpell(caster, SPELL_SUMMON_ARCANE_FIEND_1); + caster->CastSpell(caster, SPELL_SUMMON_ARCANE_FIEND_2); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_mana_tombs_summon_arcane_fiends::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +void AddSC_mana_tombs() +{ + RegisterSpellScript(spell_mana_tombs_summon_arcane_fiends); +} diff --git a/src/server/scripts/Outland/outland_script_loader.cpp b/src/server/scripts/Outland/outland_script_loader.cpp index 68a1ed7591a..c5eec083978 100644 --- a/src/server/scripts/Outland/outland_script_loader.cpp +++ b/src/server/scripts/Outland/outland_script_loader.cpp @@ -25,6 +25,7 @@ void AddSC_instance_auchenai_crypts(); void AddSC_boss_pandemonius(); void AddSC_boss_nexusprince_shaffar(); void AddSC_instance_mana_tombs(); +void AddSC_mana_tombs(); // Auchindoun - Sekketh Halls void AddSC_boss_darkweaver_syth(); @@ -148,6 +149,7 @@ void AddOutlandScripts() AddSC_boss_pandemonius(); AddSC_boss_nexusprince_shaffar(); AddSC_instance_mana_tombs(); + AddSC_mana_tombs(); // Auchindoun - Sekketh Halls AddSC_boss_darkweaver_syth(); diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index f6a31d4ba6c..d91c3d320bb 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -1013,6 +1013,36 @@ class spell_oscillating_field : public SpellScriptLoader } }; +/*###### +## Quest 10556: Scratches +######*/ + +enum Scratches +{ + SPELL_LASHHAN_CHANNELING = 36904 +}; + +// 37028 - Dispelling Analysis +class spell_bem_dispelling_analysis : public SpellScript +{ + PrepareSpellScript(spell_bem_dispelling_analysis); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_LASHHAN_CHANNELING }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->RemoveAurasDueToSpell(SPELL_LASHHAN_CHANNELING); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_bem_dispelling_analysis::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + void AddSC_blades_edge_mountains() { new npc_nether_drake(); @@ -1022,4 +1052,5 @@ void AddSC_blades_edge_mountains() new go_apexis_relic(); new npc_oscillating_frequency_scanner_master_bunny(); new spell_oscillating_field(); + RegisterSpellScript(spell_bem_dispelling_analysis); } diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index b77262e6f4e..5e080361e20 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -850,6 +850,39 @@ class spell_hellfire_peninsula_send_vengeance_to_player : public SpellScript } }; +enum Translocation +{ + SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_DOWN = 30140, + SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_UP = 30141 +}; + +// 25650 - Translocate +// 25652 - Translocate +class spell_hellfire_peninsula_translocation_falcon_watch : public SpellScript +{ + PrepareSpellScript(spell_hellfire_peninsula_translocation_falcon_watch); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ _triggeredSpellId }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_hellfire_peninsula_translocation_falcon_watch::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + + uint32 _triggeredSpellId; + +public: + explicit spell_hellfire_peninsula_translocation_falcon_watch(Translocation triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { } +}; + void AddSC_hellfire_peninsula() { new npc_colonel_jules(); @@ -860,4 +893,6 @@ void AddSC_hellfire_peninsula() RegisterCreatureAI(npc_fear_controller); RegisterSpellScript(spell_hellfire_peninsula_send_vengeance); RegisterSpellScript(spell_hellfire_peninsula_send_vengeance_to_player); + RegisterSpellScriptWithArgs(spell_hellfire_peninsula_translocation_falcon_watch, "spell_hellfire_peninsula_translocation_falcon_watch_tower_down", SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_DOWN); + RegisterSpellScriptWithArgs(spell_hellfire_peninsula_translocation_falcon_watch, "spell_hellfire_peninsula_translocation_falcon_watch_tower_up", SPELL_TRANSLOCATION_FALCON_WATCH_TOWER_UP); } diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index f2ff3e921af..0267fa947bf 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -1662,6 +1662,75 @@ class spell_shadowmoon_quest_credit_crazed_colossus : public SpellScript } }; +/*###### +## Quest 10637, 10688: A Necessary Distraction +######*/ + +enum ANecessaryDistraction +{ + SPELL_BANISH_AZALOTH = 37833 +}; + +// 37834 - Unbanish Azaloth +class spell_shadowmoon_unbanish_azaloth : public SpellScript +{ + PrepareSpellScript(spell_shadowmoon_unbanish_azaloth); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ SPELL_BANISH_AZALOTH }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->RemoveAurasDueToSpell(SPELL_BANISH_AZALOTH); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_shadowmoon_unbanish_azaloth::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } +}; + +/*###### +## Quest 10672: Frankly, It Makes No Sense... +######*/ + +enum FranklyItMakesNoSense +{ + SPELL_ARCANO_SCORP_CONTROL_01 = 37868, + SPELL_ARCANO_SCORP_CONTROL_02 = 37893, + SPELL_ARCANO_SCORP_CONTROL_03 = 37895 +}; + +// 37867 - Arcano-Scorp Control +// 37892 - Arcano-Scorp Control +// 37894 - Arcano-Scorp Control +class spell_shadowmoon_arcano_scorp_control : public SpellScript +{ + PrepareSpellScript(spell_shadowmoon_arcano_scorp_control); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ _triggeredSpellId }); + } + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_shadowmoon_arcano_scorp_control::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } + + uint32 _triggeredSpellId; + +public: + explicit spell_shadowmoon_arcano_scorp_control(uint32 triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { } +}; + void AddSC_shadowmoon_valley() { new npc_invis_infernal_caster(); @@ -1678,4 +1747,8 @@ void AddSC_shadowmoon_valley() new npc_shadowmoon_tuber_node(); RegisterSpellScript(spell_shadowmoon_illidari_agent_illusion); RegisterSpellScript(spell_shadowmoon_quest_credit_crazed_colossus); + RegisterSpellScript(spell_shadowmoon_unbanish_azaloth); + RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_01", SPELL_ARCANO_SCORP_CONTROL_01); + RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_02", SPELL_ARCANO_SCORP_CONTROL_02); + RegisterSpellScriptWithArgs(spell_shadowmoon_arcano_scorp_control, "spell_shadowmoon_arcano_scorp_control_03", SPELL_ARCANO_SCORP_CONTROL_03); } diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index a7c1e94fb72..31df4f40c06 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -317,6 +317,43 @@ class spell_terokkar_cancel_shadowy_disguise : public SpellScript } }; +enum Translocation +{ + SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_DOWN = 32572, + SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_UP = 32568, + SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_DOWN = 32569, + SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_UP = 32571 +}; + +// 25143 - Translocate +// 29128 - Translocate +// 29129 - Translocate +// 25140 - Translocate +class spell_terokkar_translocation_firewing_point : public SpellScript +{ + PrepareSpellScript(spell_terokkar_translocation_firewing_point); + + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ _triggeredSpellId }); + } + + void HandleScript(SpellEffIndex /*effIndex*/) + { + GetHitUnit()->CastSpell(GetHitUnit(), _triggeredSpellId); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_terokkar_translocation_firewing_point::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT); + } + + uint32 _triggeredSpellId; + +public: + explicit spell_terokkar_translocation_firewing_point(Translocation triggeredSpellId) : _triggeredSpellId(triggeredSpellId) { } +}; + void AddSC_terokkar_forest() { new npc_unkor_the_ruthless(); @@ -326,4 +363,8 @@ void AddSC_terokkar_forest() RegisterSpellScript(spell_terokkar_shadowy_disguise_cast_from_questgiver); RegisterSpellScript(spell_terokkar_shadowy_disguise); RegisterSpellScript(spell_terokkar_cancel_shadowy_disguise); + RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_building_down", SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_DOWN); + RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_building_up", SPELL_TRANSLOCATION_FIREWING_POINT_BUILDING_UP); + RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_tower_down", SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_DOWN); + RegisterSpellScriptWithArgs(spell_terokkar_translocation_firewing_point, "spell_terokkar_translocation_firewing_point_tower_up", SPELL_TRANSLOCATION_FIREWING_POINT_TOWER_UP); } |
