diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-04-25 00:42:16 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-04-25 00:42:16 +0200 |
| commit | dad976beb4f1a865e5df5d6f03da1d00d266e1fc (patch) | |
| tree | 165190844b4094fd023d67f70529e0b002121647 /src/server/scripts/EasternKingdoms/ScarletMonastery | |
| parent | e0e1b6a4098badb6f48ba1d5cb1cc1739e310959 (diff) | |
Core/Movement: Migrate scripts using GetMotionMaster()->MoveSmoothPath to GetMotionMaster()->MovePath and kill it (they now have the same capabilities)
Diffstat (limited to 'src/server/scripts/EasternKingdoms/ScarletMonastery')
| -rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp | 78 |
1 files changed, 44 insertions, 34 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 44688f980e5..23719d2a0f7 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -34,6 +34,7 @@ #include "SpellAuraEffects.h" #include "SpellScript.h" #include "SpellInfo.h" +#include "WaypointDefines.h" enum HeadlessHorsemanSays { @@ -152,29 +153,33 @@ enum HeadlessHorsemanMisc QUEST_CALL_THE_HEADLESS_HORSEMAN = 11405 }; -uint32 const HorsemanPathSize = 20; -Position const HeadlessHorsemanFlightPoints[HorsemanPathSize] = +WaypointPath const HeadlessHorsemanFlightPoints = { - { 1765.00f, 1347.00f, 19.00f }, - { 1784.00f, 1346.80f, 25.40f }, - { 1803.30f, 1347.60f, 33.00f }, - { 1824.00f, 1350.00f, 42.60f }, - { 1838.80f, 1353.20f, 49.80f }, - { 1852.00f, 1357.60f, 55.70f }, - { 1861.30f, 1364.00f, 59.40f }, - { 1866.30f, 1374.80f, 61.70f }, - { 1864.00f, 1387.30f, 63.20f }, - { 1854.80f, 1399.40f, 64.10f }, - { 1844.00f, 1406.90f, 64.10f }, - { 1824.30f, 1411.40f, 63.30f }, - { 1801.00f, 1412.30f, 60.40f }, - { 1782.00f, 1410.10f, 55.50f }, - { 1770.50f, 1405.20f, 50.30f }, - { 1765.20f, 1400.70f, 46.60f }, - { 1761.40f, 1393.40f, 41.70f }, - { 1759.10f, 1386.70f, 36.60f }, - { 1757.80f, 1378.20f, 29.00f }, - { 1758.00f, 1367.00f, 19.51f } + POINT_HORSEMAN_FINISH_PATH, + { + { 0, 1765.00f, 1347.00f, 19.00f }, + { 1, 1784.00f, 1346.80f, 25.40f }, + { 2, 1803.30f, 1347.60f, 33.00f }, + { 3, 1824.00f, 1350.00f, 42.60f }, + { 4, 1838.80f, 1353.20f, 49.80f }, + { 5, 1852.00f, 1357.60f, 55.70f }, + { 6, 1861.30f, 1364.00f, 59.40f }, + { 7, 1866.30f, 1374.80f, 61.70f }, + { 8, 1864.00f, 1387.30f, 63.20f }, + { 9, 1854.80f, 1399.40f, 64.10f }, + { 10, 1844.00f, 1406.90f, 64.10f }, + { 11, 1824.30f, 1411.40f, 63.30f }, + { 12, 1801.00f, 1412.30f, 60.40f }, + { 13, 1782.00f, 1410.10f, 55.50f }, + { 14, 1770.50f, 1405.20f, 50.30f }, + { 15, 1765.20f, 1400.70f, 46.60f }, + { 16, 1761.40f, 1393.40f, 41.70f }, + { 17, 1759.10f, 1386.70f, 36.60f }, + { 18, 1757.80f, 1378.20f, 29.00f }, + { 19, 1758.00f, 1367.00f, 19.51f } + }, + WaypointMoveType::Run, + WaypointPathFlags::FlyingPath }; std::vector<uint32> HeadlessHorsemanRandomLaughSound = { SOUNDID_MANIACAL_LAUGH, SOUNDID_MANIACAL_LAUGH_2, SOUNDID_MANIACAL_LAUGH_3 }; @@ -411,7 +416,7 @@ struct boss_headless_horseman : public ScriptedAI case ACTION_HORSEMAN_EVENT_START: DoCastSelf(SPELL_HEADLESS_HORSEMAN_YELL_TIMER, true); DoCastSelf(SPELL_HEADLESS_HORSEMAN_MANIACAL_LAUGH, true); - me->GetMotionMaster()->MoveSmoothPath(POINT_HORSEMAN_FINISH_PATH, HeadlessHorsemanFlightPoints, HorsemanPathSize, false); + me->GetMotionMaster()->MovePath(HeadlessHorsemanFlightPoints, false); break; case ACTION_HORSEMAN_REQUEST_BODY: me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_C_BODY_REGEN_CONFUSE); @@ -512,21 +517,11 @@ struct boss_headless_horseman : public ScriptedAI void MovementInform(uint32 type, uint32 id) override { - if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE) + if (type != POINT_MOTION_TYPE) return; switch (id) { - case POINT_HORSEMAN_FINISH_PATH: - _introDone = true; - me->SetImmuneToPC(false); - me->SetDisableGravity(false); - me->SetHover(false); - me->SetHomePosition(me->GetPosition()); - DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_BODY_STAGE_1); - me->SetReactState(REACT_AGGRESSIVE); - DoZoneInCombat(); - break; case POINT_HEAD: me->SetWalk(false); me->RemoveAurasDueToSpell(SPELL_HEADLESS_HORSEMAN_C_HORSEMANS_WHIRLWIND); @@ -537,6 +532,21 @@ struct boss_headless_horseman : public ScriptedAI } } + void WaypointPathEnded(uint32 /*waypointId*/, uint32 pathId) override + { + if (pathId != POINT_HORSEMAN_FINISH_PATH) + return; + + _introDone = true; + me->SetImmuneToPC(false); + me->SetDisableGravity(false); + me->SetHover(false); + me->SetHomePosition(me->GetPosition()); + DoCastSelf(SPELL_HEADLESS_HORSEMAN_C_BODY_STAGE_1); + me->SetReactState(REACT_AGGRESSIVE); + DoZoneInCombat(); + } + void UpdateAI(uint32 diff) override { if (!UpdateVictim()) |
