aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Outland
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-05-09 01:10:43 +0300
committerGitHub <noreply@github.com>2025-05-09 00:10:43 +0200
commit5ed83ed27c676ae2dcf661409550ce0fcbffe5c8 (patch)
tree111c87a9626a542fec10a6b41cecba7b0d353784 /src/server/scripts/Outland
parent7b0d1f09135999958e850dd67ed9c5b1eaf16536 (diff)
Scripts/Spells: Get rid of some database spell scripts (#30915)
Diffstat (limited to 'src/server/scripts/Outland')
-rw-r--r--src/server/scripts/Outland/Auchindoun/ManaTombs/mana_tombs.cpp58
-rw-r--r--src/server/scripts/Outland/outland_script_loader.cpp2
-rw-r--r--src/server/scripts/Outland/zone_blades_edge_mountains.cpp31
-rw-r--r--src/server/scripts/Outland/zone_hellfire_peninsula.cpp35
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp73
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp41
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);
}