/* * 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); }