From a2f21bd46e1fc89465f6800645d2b4597264f126 Mon Sep 17 00:00:00 2001 From: sudlud Date: Thu, 1 Feb 2024 13:17:17 +0100 Subject: [PATCH] fix(Scripts/Midsummer): Add SpellScript for "Fire Festival Fortitude" (#18246) - implement zone wide buff - Blizzard originally used gameobject 181431 'Fire Festival Fury Trap' for this implementation --- .../rev_1706729918749943200.sql | 4 ++++ src/server/scripts/Events/midsummer.cpp | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 data/sql/updates/pending_db_world/rev_1706729918749943200.sql diff --git a/data/sql/updates/pending_db_world/rev_1706729918749943200.sql b/data/sql/updates/pending_db_world/rev_1706729918749943200.sql new file mode 100644 index 000000000..ba4c827b2 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1706729918749943200.sql @@ -0,0 +1,4 @@ +-- Midsummer - add spell script for 29235 Fire Festival Fortitude +DELETE FROM `spell_script_names` WHERE `spell_id` = 29235; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(29235, 'spell_fire_festival_fortitude'); diff --git a/src/server/scripts/Events/midsummer.cpp b/src/server/scripts/Events/midsummer.cpp index fa88734d7..c450e0576 100644 --- a/src/server/scripts/Events/midsummer.cpp +++ b/src/server/scripts/Events/midsummer.cpp @@ -485,6 +485,27 @@ struct npc_midsummer_torch_target : public ScriptedAI // SPELLS /////////////////////////////// +class spell_fire_festival_fortitude : public SpellScript +{ + PrepareSpellScript(spell_fire_festival_fortitude) + + void SelectTargets(std::list& targets) + { + targets.clear(); + + GetCaster()->GetMap()->DoForAllPlayers([&](Player* p) + { + if (p->GetZoneId() == GetCaster()->GetZoneId()) + targets.push_back(p); + }); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_fire_festival_fortitude::SelectTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); + } +}; + class spell_bonfires_blessing : public AuraScript { PrepareAuraScript(spell_bonfires_blessing) @@ -1249,6 +1270,7 @@ void AddSC_event_midsummer_scripts() RegisterCreatureAI(npc_midsummer_ribbon_pole_target); // Spells + RegisterSpellScript(spell_fire_festival_fortitude); RegisterSpellScript(spell_bonfires_blessing); RegisterSpellScript(spell_gen_crab_disguise); RegisterSpellScript(spell_midsummer_ribbon_pole_firework);