diff options
Diffstat (limited to 'src/server/scripts')
-rw-r--r-- | src/server/scripts/EasternKingdoms/eastern_kingdoms_script_loader.cpp | 2 | ||||
-rw-r--r-- | src/server/scripts/EasternKingdoms/zone_westfall.cpp | 50 |
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); +} |