From e23a02ac4efac16e727d703c199f477a1341399f Mon Sep 17 00:00:00 2001 From: Meji Date: Tue, 22 Oct 2024 03:42:37 +0200 Subject: Scripts/Orgrimmar: Implement The Art of War (29611) (#30366) --- src/server/scripts/Kalimdor/zone_orgrimmar.cpp | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'src/server/scripts') 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 . */ +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); } -- cgit v1.2.3