diff options
| author | Meji <alvaro.megias@outlook.com> | 2025-01-02 21:43:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-02 21:43:06 +0100 |
| commit | 98206bf7e8ce423e266283758155464431c2bd8d (patch) | |
| tree | 4c4956cce3bb3f7faffbd82d0b609e8ebfc404e0 /src/server/scripts/Kalimdor | |
| parent | 7fbdedfd9a472752ff53e1c16eb77580a4274649 (diff) | |
Scripts/StormwindCity: Implement quest "The Mission" (29548) (#30557)
Diffstat (limited to 'src/server/scripts/Kalimdor')
| -rw-r--r-- | src/server/scripts/Kalimdor/zone_durotar.cpp | 45 | ||||
| -rw-r--r-- | src/server/scripts/Kalimdor/zone_orgrimmar.cpp | 28 |
2 files changed, 40 insertions, 33 deletions
diff --git a/src/server/scripts/Kalimdor/zone_durotar.cpp b/src/server/scripts/Kalimdor/zone_durotar.cpp index 9e69f784319..9e979057641 100644 --- a/src/server/scripts/Kalimdor/zone_durotar.cpp +++ b/src/server/scripts/Kalimdor/zone_durotar.cpp @@ -29,14 +29,16 @@ #include "PassiveAI.h" #include "ObjectAccessor.h" -namespace Durotar +namespace Scripts::Kalimdor::Durotar { - namespace Spells - { - static constexpr uint32 PhasePlayer = 130750; - static constexpr uint32 TeleportTimer = 132034; - static constexpr uint32 TeleportPlayerToCrashSite = 102930; - } +namespace Spells +{ + // All Aboard! + static constexpr uint32 PhasePlayer = 130750; + + // Into the Mists + static constexpr uint32 TeleportTimer = 132034; + static constexpr uint32 TeleportPlayerToCrashSite = 102930; } /*###### @@ -1231,7 +1233,7 @@ public: bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { - player->CastSpell(player, Durotar::Spells::PhasePlayer, CastSpellExtraArgsInit{ + player->CastSpell(nullptr, Spells::PhasePlayer, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, }); return true; @@ -1239,18 +1241,18 @@ public: bool OnExit(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override { - player->RemoveAurasDueToSpell(Durotar::Spells::PhasePlayer); + player->RemoveAurasDueToSpell(Spells::PhasePlayer); return true; } }; // 130810 - Teleport Prep -class spell_teleport_prep : public SpellScript +class spell_teleport_prep_horde : public SpellScript { bool Validate(SpellInfo const* /*spellInfo*/) override { return ValidateSpellInfo({ - Durotar::Spells::TeleportTimer + Spells::TeleportTimer }); } @@ -1258,7 +1260,8 @@ class spell_teleport_prep : public SpellScript { Unit* hitUnit = GetHitUnit(); - hitUnit->CastSpell(hitUnit, Durotar::Spells::TeleportTimer, CastSpellExtraArgsInit{ + hitUnit->CancelMountAura(); + hitUnit->CastSpell(nullptr, Spells::TeleportTimer, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, .OriginalCastId = GetSpell()->m_castId }); @@ -1266,17 +1269,17 @@ class spell_teleport_prep : public SpellScript void Register() override { - OnEffectHitTarget += SpellEffectFn(spell_teleport_prep::HandleHitTarget, EFFECT_0, SPELL_EFFECT_APPLY_AURA); + OnEffectHitTarget += SpellEffectFn(spell_teleport_prep_horde::HandleHitTarget, EFFECT_0, SPELL_EFFECT_APPLY_AURA); } }; // 132034 - Teleport Timer -class spell_teleport_timer : public AuraScript +class spell_teleport_timer_horde : public AuraScript { bool Validate(SpellInfo const* /*spellInfo*/) override { return ValidateSpellInfo({ - Durotar::Spells::TeleportPlayerToCrashSite + Spells::TeleportPlayerToCrashSite }); } @@ -1284,19 +1287,23 @@ class spell_teleport_timer : public AuraScript { Unit* target = GetTarget(); - target->CastSpell(target, Durotar::Spells::TeleportPlayerToCrashSite, CastSpellExtraArgsInit{ + target->CancelTravelShapeshiftForm(); + target->CastSpell(nullptr, Spells::TeleportPlayerToCrashSite, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR }); } void Register() override { - AfterEffectRemove += AuraEffectRemoveFn(spell_teleport_timer::HandleAfterEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + AfterEffectRemove += AuraEffectRemoveFn(spell_teleport_timer_horde::HandleAfterEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } }; +} void AddSC_durotar() { + using namespace Scripts::Kalimdor::Durotar; + new npc_lazy_peon(); RegisterSpellScript(spell_voodoo); RegisterCreatureAI(npc_mithaka); @@ -1340,6 +1347,6 @@ void AddSC_durotar() new at_hellscreams_fist_gunship(); // Spells - RegisterSpellScript(spell_teleport_prep); - RegisterSpellScript(spell_teleport_timer); + RegisterSpellScript(spell_teleport_prep_horde); + RegisterSpellScript(spell_teleport_timer_horde); } diff --git a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp index 83c2e6711b6..34667e18522 100644 --- a/src/server/scripts/Kalimdor/zone_orgrimmar.cpp +++ b/src/server/scripts/Kalimdor/zone_orgrimmar.cpp @@ -22,13 +22,13 @@ #include "SpellScript.h" #include "Unit.h" -namespace Orgrimmar +namespace Scripts::Kalimdor::Orgrimmar { - namespace Spells - { - static constexpr uint32 MOPHordeIntroMoviePlay = 130409; - static constexpr uint32 FadeToBlack = 130411; - } +namespace Spells +{ + // The Art of War + static constexpr uint32 MOPHordeIntroMoviePlay = 130409; + static constexpr uint32 FadeToBlack = 130411; } // 130412 - Art of War Movie Aura @@ -37,15 +37,13 @@ class spell_art_of_war_movie_aura : public SpellScript bool Validate(SpellInfo const* /*spellInfo*/) override { return ValidateSpellInfo({ - Orgrimmar::Spells::FadeToBlack + Spells::FadeToBlack }); } void HandleHitTarget(SpellEffIndex /*effIndex*/) const { - Unit* hitUnit = GetHitUnit(); - - hitUnit->CastSpell(hitUnit, Orgrimmar::Spells::FadeToBlack, CastSpellExtraArgsInit{ + GetHitUnit()->CastSpell(nullptr, Spells::FadeToBlack, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR, .OriginalCastId = GetSpell()->m_castId }); @@ -57,20 +55,19 @@ class spell_art_of_war_movie_aura : public SpellScript } }; +// 130412 - Art of War Movie Aura class spell_art_of_war_movie_aura_aura : public AuraScript { bool Validate(SpellInfo const* /*spellInfo*/) override { return ValidateSpellInfo({ - Orgrimmar::Spells::MOPHordeIntroMoviePlay + Spells::MOPHordeIntroMoviePlay }); } void HandleAfterEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) const { - Unit* target = GetTarget(); - - target->CastSpell(target, Orgrimmar::Spells::MOPHordeIntroMoviePlay, CastSpellExtraArgsInit{ + GetTarget()->CastSpell(nullptr, Spells::MOPHordeIntroMoviePlay, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR }); } @@ -80,9 +77,12 @@ class spell_art_of_war_movie_aura_aura : public AuraScript AfterEffectRemove += AuraEffectRemoveFn(spell_art_of_war_movie_aura_aura::HandleAfterEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); } }; +} void AddSC_orgrimmar() { + using namespace Scripts::Kalimdor::Orgrimmar; + // Spells RegisterSpellAndAuraScriptPair(spell_art_of_war_movie_aura, spell_art_of_war_movie_aura_aura); } |
