diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index 116a688ec51..e071fdf1f19 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -27,9 +27,19 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "ScriptedGossip.h" +#include "Spell.h" #include "SpellScript.h" #include "TemporarySummon.h" +namespace StormwindCity +{ + namespace Spells + { + static constexpr uint32 MOPAllianceIntroMoviePlay = 130805; + static constexpr uint32 FadeToBlack = 130411; + } +} + enum TidesOfWarData { QUEST_TIDES_OF_WAR = 46727, @@ -494,6 +504,56 @@ private: EventMap _events; }; +// 130804 - The King's Command Movie Aura +class spell_the_kings_command_movie_aura : public SpellScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ + StormwindCity::Spells::FadeToBlack + }); + } + + void HandleHitTarget(SpellEffIndex /*effIndex*/) const + { + Unit* hitUnit = GetHitUnit(); + + hitUnit->CastSpell(hitUnit, StormwindCity::Spells::FadeToBlack, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, + .OriginalCastId = GetSpell()->m_castId + }); + } + + void Register() override + { + OnEffectHitTarget += SpellEffectFn(spell_the_kings_command_movie_aura::HandleHitTarget, EFFECT_0, SPELL_EFFECT_APPLY_AURA); + } +}; + +class spell_the_kings_command_movie_aura_aura : public AuraScript +{ + bool Validate(SpellInfo const* /*spellInfo*/) override + { + return ValidateSpellInfo({ + StormwindCity::Spells::MOPAllianceIntroMoviePlay + }); + } + + void HandleAfterEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) const + { + Unit* target = GetTarget(); + + target->CastSpell(target, StormwindCity::Spells::MOPAllianceIntroMoviePlay, CastSpellExtraArgsInit{ + .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR + }); + } + + void Register() override + { + AfterEffectRemove += AuraEffectRemoveFn(spell_the_kings_command_movie_aura_aura::HandleAfterEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_stormwind_city() { // Creature @@ -515,4 +575,5 @@ void AddSC_stormwind_city() // Spells RegisterSpellScript(spell_despawn_sailor_memory); RegisterSpellScript(spell_kultiras_skip_intro); + RegisterSpellAndAuraScriptPair(spell_the_kings_command_movie_aura, spell_the_kings_command_movie_aura_aura); } |