aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2024-10-22 03:42:37 +0200
committerGitHub <noreply@github.com>2024-10-22 03:42:37 +0200
commite23a02ac4efac16e727d703c199f477a1341399f (patch)
treeeb39a52769e3654c4fc65e05f6f7ecfd293fc518 /src
parentb8df69a4da0d2ed48d3a44f32aa33e4ab4d63371 (diff)
Scripts/Orgrimmar: Implement The Art of War (29611) (#30366)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Kalimdor/zone_orgrimmar.cpp51
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);
}