diff options
author | Meji <alvaro.megias@outlook.com> | 2024-10-22 03:42:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-22 03:42:37 +0200 |
commit | e23a02ac4efac16e727d703c199f477a1341399f (patch) | |
tree | eb39a52769e3654c4fc65e05f6f7ecfd293fc518 /src | |
parent | b8df69a4da0d2ed48d3a44f32aa33e4ab4d63371 (diff) |
Scripts/Orgrimmar: Implement The Art of War (29611) (#30366)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Kalimdor/zone_orgrimmar.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 6010576f876..2a17d9feda7 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -15,6 +15,57 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ +namespace Orgrimmar +{ + namespace Spells + { + static constexpr uint32 MOPHordeIntroMoviePlay = 130409; + static constexpr uint32 FadeToBlack = 130411; + } +} + +// 130412 - Art of War Movie Aura +class spell_art_of_war_movie_aura : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ + Orgrimmar::Spells::MOPHordeIntroMoviePlay, + Orgrimmar::Spells::FadeToBlack + }); + } + + void HandleAfterEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const + { + Unit* caster = GetCaster(); + if (!caster) + return; + + caster->CastSpell(GetTarget(), Orgrimmar::Spells::FadeToBlack, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .TriggeringAura = aurEff + }); + } + + void HandleAfterEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + Unit* caster = GetCaster(); + if (!caster) + return; + + caster->CastSpell(GetTarget(), Orgrimmar::Spells::MOPHordeIntroMoviePlay, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR + }); + } + + void Register() override + { + AfterEffectApply += AuraEffectApplyFn(spell_art_of_war_movie_aura::HandleAfterEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK); + AfterEffectRemove += AuraEffectRemoveFn(spell_art_of_war_movie_aura::HandleAfterEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_orgrimmar() { + RegisterSpellScript(spell_art_of_war_movie_aura); } |