diff --git a/data/sql/updates/pending_db_world/rev_1785717459312692100.sql b/data/sql/updates/pending_db_world/rev_1785717459312692100.sql new file mode 100644 index 0000000000..d5eeb765e3 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1785717459312692100.sql @@ -0,0 +1,3 @@ +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 64132; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (64132, 'spell_yogg_saron_constrictor_tentacle'); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp index 96d3387f78..ecc5d85c6c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yoggsaron.cpp @@ -2820,6 +2820,24 @@ class spell_yogg_saron_target_selectors : public SpellScript } }; +// 64132 - Constrictor Tentacle +class spell_yogg_saron_constrictor_tentacle : public SpellScript +{ + PrepareSpellScript(spell_yogg_saron_constrictor_tentacle); + + void FilterTargets(std::list& targets) + { + // The tentacle erupts at the marked player's feet, so skip players below + // the platform (illusion realms and brain room). + targets.remove_if([](WorldObject* target) { return target->GetPositionZ() <= 300.0f; }); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_yogg_saron_constrictor_tentacle::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENEMY); + } +}; + // 64132 - Constrictor Tentacle class spell_yogg_saron_constrictor_tentacle_aura : public AuraScript { @@ -2993,7 +3011,7 @@ void AddSC_boss_yoggsaron() RegisterSpellScript(spell_yogg_saron_empowering_shadows); RegisterSpellScript(spell_yogg_saron_in_the_maws_of_the_old_god); RegisterSpellScript(spell_yogg_saron_target_selectors); - RegisterSpellScript(spell_yogg_saron_constrictor_tentacle_aura); + RegisterSpellAndAuraScriptPair(spell_yogg_saron_constrictor_tentacle, spell_yogg_saron_constrictor_tentacle_aura); RegisterSpellScript(spell_yogg_saron_squeeze_aura); RegisterSpellScript(spell_yogg_saron_grim_reprisal_aura);