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);