aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/zone_westfall.cpp50
2 files changed, 52 insertions, 0 deletions
diff --git a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
index f90d1cb25b5..283eed704a0 100644
--- a/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
+++ b/src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp
@@ -203,6 +203,7 @@ void AddSC_tirisfal_glades();
void AddSC_tol_barad();
void AddSC_undercity();
//void AddSC_western_plaguelands();
+void AddSC_westfall();
// Return to Karazhan
void AddSC_instance_return_to_karazhan();
@@ -402,6 +403,7 @@ void AddEasternKingdomsScripts()
AddSC_tol_barad();
AddSC_undercity();
//AddSC_western_plaguelands();
+ AddSC_westfall();
// Return to Karazhan
AddSC_instance_return_to_karazhan();
diff --git a/src/server/scripts/EasternKingdoms/zone_westfall.cpp b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
new file mode 100644
index 00000000000..17b5a2de406
--- /dev/null
+++ b/src/server/scripts/EasternKingdoms/zone_westfall.cpp
@@ -0,0 +1,50 @@
+/*
+ * 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 "Containers.h"
+#include "ScriptedCreature.h"
+#include "ScriptMgr.h"
+#include "SpellScript.h"
+
+// 79084 - Unbound Energy
+class spell_westfall_unbound_energy : public SpellScript
+{
+ void FilterTargets(std::list<WorldObject*>& targets)
+ {
+ if (targets.empty())
+ return;
+
+ Unit* caster = GetCaster();
+ targets.remove_if([caster](WorldObject const* target) -> bool
+ {
+ return caster->ToWorldObject() == target;
+ });
+
+ if (targets.size() > 1)
+ Trinity::Containers::RandomResize(targets, 1);
+ }
+
+ void Register() override
+ {
+ OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_westfall_unbound_energy::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
+ }
+};
+
+void AddSC_westfall()
+{
+ RegisterSpellScript(spell_westfall_unbound_energy);
+}