From de6a77c535208a4bd71ebe6f508a49ad011d4efe Mon Sep 17 00:00:00 2001 From: offl <11556157+offl@users.noreply.github.com> Date: Sun, 14 Sep 2025 01:19:03 +0300 Subject: Scripts/AQ20: Rewrite Moam (#31216) * New register model * Repeat events instead of scheduling them * Added unique names for enums * Added comments for script names * Added AI for Mana Fiend * Added missing emote * Use all emotes * Create master-script to summon Mana Fiends * Implement & use Zero Mana/Full Health spell * Implement Energize script to end stoned phase * Implement Drain Mana master spell script with correct amount of targets and checks to ensure only players and mana-users will be targeted * Implement Drain Mana visual effect * Now, once all Mana Fiends are dead, stone phase is finished * Rework the way stone phase is started and finished * Moam now drops obsidian mineral once dead * Added a check to ensure all combat spells will be used * Added event to handle Arcane Eruption instead of trying to cast it every update tick Credit for a lot of things goes to CMaNGOS --- src/server/scripts/Spells/spell_generic.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/server/scripts/Spells') diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index ab852ecba75..22028fa1d39 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -3922,6 +3922,23 @@ private: uint32 _text; }; +// 23777 - Zero Mana/Full Health DND +class spell_gen_zero_mana_full_health : public SpellScript +{ + PrepareSpellScript(spell_gen_zero_mana_full_health); + + void HandleDummy(SpellEffIndex /*effIndex*/) + { + GetCaster()->SetFullHealth(); + GetCaster()->SetPower(POWER_MANA, 0); + } + + void Register() override + { + OnEffectHit += SpellEffectFn(spell_gen_zero_mana_full_health::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); + } +}; + class spell_gen_eject_all_passengers : public SpellScript { PrepareSpellScript(spell_gen_eject_all_passengers); @@ -4828,6 +4845,7 @@ void AddSC_generic_spell_scripts() RegisterSpellScriptWithArgs(spell_gen_whisper_to_controller_random, "spell_future_you_whisper_to_controller_random", WHISPER_FUTURE_YOU); RegisterSpellScriptWithArgs(spell_gen_whisper_to_controller_random, "spell_wyrmrest_defender_whisper_to_controller_random", WHISPER_DEFENDER); RegisterSpellScriptWithArgs(spell_gen_whisper_to_controller_random, "spell_past_you_whisper_to_controller_random", WHISPER_PAST_YOU); + RegisterSpellScript(spell_gen_zero_mana_full_health); RegisterSpellScript(spell_gen_eject_all_passengers); RegisterSpellScript(spell_gen_eject_passenger); RegisterSpellScriptWithArgs(spell_gen_eject_passenger_with_seatId, "spell_gen_eject_passenger_1", 0); -- cgit v1.2.3