From e2bf207ae4d13a32c0f5db9ef7ea32c9ae0b3539 Mon Sep 17 00:00:00 2001 From: UltraNix <80540499+UltraNix@users.noreply.github.com> Date: Tue, 6 Dec 2022 13:42:17 +0100 Subject: [PATCH] =?UTF-8?q?fix(Scripts/Spells):=20Apple=20Trap=20should=20?= =?UTF-8?q?not=20activate=20without=20the=20playe=E2=80=A6=20(#13868)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix(Scripts/Spells): Apple Trap should not activate without the player being on a Rental Ram. Fixes #13186 --- .../updates/pending_db_world/rev_1668859642898150700.sql | 2 ++ src/server/scripts/Events/brewfest.cpp | 9 +++++++++ 2 files changed, 11 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1668859642898150700.sql diff --git a/data/sql/updates/pending_db_world/rev_1668859642898150700.sql b/data/sql/updates/pending_db_world/rev_1668859642898150700.sql new file mode 100644 index 000000000..5ad86131f --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1668859642898150700.sql @@ -0,0 +1,2 @@ +-- +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=43450; diff --git a/src/server/scripts/Events/brewfest.cpp b/src/server/scripts/Events/brewfest.cpp index c4678dcc7..b32fdbfeb 100644 --- a/src/server/scripts/Events/brewfest.cpp +++ b/src/server/scripts/Events/brewfest.cpp @@ -1009,6 +1009,14 @@ class spell_brewfest_apple_trap : public SpellScript { PrepareSpellScript(spell_brewfest_apple_trap); + void FilterTargets(std::list& targets) + { + targets.remove_if(Acore::UnitAuraCheck(false, SPELL_RAM_FATIGUE)); + + if (targets.empty()) + FinishCast(SPELL_FAILED_CASTER_AURASTATE); + } + void HandleDummyEffect(SpellEffIndex /*effIndex*/) { if (Unit* target = GetHitUnit()) @@ -1018,6 +1026,7 @@ class spell_brewfest_apple_trap : public SpellScript void Register() override { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_brewfest_apple_trap::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY); OnEffectHitTarget += SpellEffectFn(spell_brewfest_apple_trap::HandleDummyEffect, EFFECT_0, SPELL_EFFECT_DUMMY); } };