From 2307a2313f87a8575df2f3bc0872c6276733b4c4 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Thu, 30 Jan 2020 05:42:24 +0100 Subject: Scripts/Westfall: scripted Overloarded Harvest Golem visuals * removed somple duplicate spawns and event related spawns that are already spawnt (cherry picked from commit https://github.com/The-Cataclysm-Preservation-Project/TrinityCore/commit/7f6e63f850aaf71668dedd8394f023eff2ef8452) --- .../eastern_kingdoms_script_loader.cpp | 2 + .../scripts/EasternKingdoms/zone_westfall.cpp | 50 ++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/server/scripts/EasternKingdoms/zone_westfall.cpp (limited to 'src') 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 . + */ + +#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& 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); +} -- cgit v1.2.3