aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authoroffl <11556157+offl@users.noreply.github.com>2025-09-14 01:19:03 +0300
committerGitHub <noreply@github.com>2025-09-14 00:19:03 +0200
commitde6a77c535208a4bd71ebe6f508a49ad011d4efe (patch)
tree365c17600b646797908d5790c878f0c05a2a6430 /src/server/scripts/Spells
parent5c6bf610663b620f3eeba41d05082401eb1b995d (diff)
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
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp18
1 files changed, 18 insertions, 0 deletions
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);