diff options
| author | offl <11556157+offl@users.noreply.github.com> | 2025-09-14 01:19:03 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-14 00:19:03 +0200 |
| commit | de6a77c535208a4bd71ebe6f508a49ad011d4efe (patch) | |
| tree | 365c17600b646797908d5790c878f0c05a2a6430 /src/server/scripts/Spells | |
| parent | 5c6bf610663b620f3eeba41d05082401eb1b995d (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.cpp | 18 |
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); |
