aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Northrend')
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp6
-rw-r--r--src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp127
-rw-r--r--src/server/scripts/Northrend/VioletHold/violet_hold.cpp119
3 files changed, 145 insertions, 107 deletions
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index 8bc988e8560..f2f259e102b 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -70,12 +70,6 @@ struct boss_erekem : public BossAI
DoCast(me, SPELL_EARTH_SHIELD);
}
- void MovementInform(uint32 type, uint32 pointId) override
- {
- if (type == EFFECT_MOTION_TYPE && pointId == POINT_INTRO)
- me->SetFacingTo(4.921828f);
- }
-
void JustReachedHome() override
{
BossAI::JustReachedHome();
diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
index bc68f6b08d3..a055f79ce6f 100644
--- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp
@@ -23,9 +23,10 @@
#include "Map.h"
#include "MotionMaster.h"
#include "Player.h"
-#include "TaskScheduler.h"
#include "ScriptMgr.h"
+#include "TaskScheduler.h"
#include "TemporarySummon.h"
+#include "WaypointDefines.h"
/*
* TODO:
@@ -69,70 +70,94 @@ Position const PortalIntroPositions[PortalIntroPositionsSize] = // sniff
uint32 const EncouterPortalsCount = PortalPositionsSize + PortalElitePositionsSize;
-uint32 const MoraggPathSize = 3;
-Position const MoraggPath[MoraggPathSize] = // sniff
+WaypointPath const MoraggPath = // sniff
{
- { 1893.895f, 728.1261f, 47.75016f },
- { 1892.997f, 738.4987f, 47.66684f },
- { 1889.76f, 758.1089f, 47.66684f }
+ POINT_INTRO,
+ {
+ { 0, 1893.895f, 728.1261f, 47.75016f },
+ { 1, 1892.997f, 738.4987f, 47.66684f },
+ { 2, 1889.76f, 758.1089f, 47.66684f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const ErekemPathSize = 3;
-Position const ErekemPath[ErekemPathSize] = // sniff
+WaypointPath const ErekemPath = // sniff
{
- { 1871.456f, 871.0361f, 43.41524f },
- { 1874.948f, 859.5452f, 43.33349f },
- { 1877.245f, 851.967f, 43.3335f }
+ POINT_INTRO,
+ {
+ { 0, 1871.456f, 871.0361f, 43.41524f },
+ { 1, 1874.948f, 859.5452f, 43.33349f },
+ { 2, 1877.245f, 851.967f, 43.3335f, 4.921828f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const ErekemGuardLeftPathSize = 3;
-Position const ErekemGuardLeftPath[ErekemGuardLeftPathSize] = // sniff
+WaypointPath const ErekemGuardLeftPath = // sniff
{
- { 1853.752f, 862.4528f, 43.41614f },
- { 1866.931f, 854.577f, 43.3335f },
- { 1872.973f, 850.7875f, 43.3335f }
+ POINT_INTRO,
+ {
+ { 0, 1853.752f, 862.4528f, 43.41614f },
+ { 1, 1866.931f, 854.577f, 43.3335f },
+ { 2, 1872.973f, 850.7875f, 43.3335f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const ErekemGuardRightPathSize = 3;
-Position const ErekemGuardRightPath[ErekemGuardRightPathSize] = // sniff
+WaypointPath const ErekemGuardRightPath = // sniff
{
- { 1892.418f, 872.2831f, 43.41563f },
- { 1885.639f, 859.0245f, 43.3335f },
- { 1882.432f, 852.2423f, 43.3335f }
+ POINT_INTRO,
+ {
+ { 0, 1892.418f, 872.2831f, 43.41563f },
+ { 1, 1885.639f, 859.0245f, 43.3335f },
+ { 2, 1882.432f, 852.2423f, 43.3335f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const IchoronPathSize = 5;
-Position const IchoronPath[IchoronPathSize] = // sniff
+WaypointPath const IchoronPath = // sniff
{
- { 1942.041f, 749.5228f, 30.95229f },
- { 1930.571f, 762.9065f, 31.98814f },
- { 1923.657f, 770.6718f, 34.07256f },
- { 1910.631f, 784.4096f, 37.09015f },
- { 1906.595f, 788.3828f, 37.99429f }
+ POINT_INTRO,
+ {
+ { 0, 1942.041f, 749.5228f, 30.95229f },
+ { 1, 1930.571f, 762.9065f, 31.98814f },
+ { 2, 1923.657f, 770.6718f, 34.07256f },
+ { 3, 1910.631f, 784.4096f, 37.09015f },
+ { 4, 1906.595f, 788.3828f, 37.99429f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const LavanthorPathSize = 3;
-Position const LavanthorPath[LavanthorPathSize] = // sniff
+WaypointPath const LavanthorPath = // sniff
{
- { 1844.557f, 748.7083f, 38.74205f },
- { 1854.618f, 761.5295f, 38.65631f },
- { 1862.17f, 773.2255f, 38.74879f }
+ POINT_INTRO,
+ {
+ { 0, 1844.557f, 748.7083f, 38.74205f },
+ { 1, 1854.618f, 761.5295f, 38.65631f },
+ { 2, 1862.17f, 773.2255f, 38.74879f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const XevozzPathSize = 3;
-Position const XevozzPath[XevozzPathSize] = // sniff
+WaypointPath const XevozzPath = // sniff
{
- { 1908.417f, 845.8502f, 38.71947f },
- { 1905.557f, 841.3157f, 38.65529f },
- { 1899.453f, 832.533f, 38.70752f }
+ POINT_INTRO,
+ {
+ { 0, 1908.417f, 845.8502f, 38.71947f },
+ { 1, 1905.557f, 841.3157f, 38.65529f },
+ { 2, 1899.453f, 832.533f, 38.70752f }
+ },
+ WaypointMoveType::Walk
};
-uint32 const ZuramatPathSize = 3;
-Position const ZuramatPath[ZuramatPathSize] = // sniff
+WaypointPath const ZuramatPath = // sniff
{
- { 1934.151f, 860.9463f, 47.29499f },
- { 1927.085f, 852.1342f, 47.19214f },
- { 1923.226f, 847.3297f, 47.15541f }
+ POINT_INTRO,
+ {
+ { 0, 1934.151f, 860.9463f, 47.29499f },
+ { 1, 1927.085f, 852.1342f, 47.19214f },
+ { 2, 1923.226f, 847.3297f, 47.15541f }
+ },
+ WaypointMoveType::Walk
};
enum Yells
@@ -553,7 +578,7 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(3), [this](TaskContext task)
{
if (Creature* moragg = GetCreature(DATA_MORAGG))
- moragg->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, MoraggPath, MoraggPathSize, true);
+ moragg->GetMotionMaster()->MovePath(MoraggPath, false);
task.Schedule(Seconds(8), [this](TaskContext /*task*/)
{
@@ -575,12 +600,12 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(5), [this](TaskContext task)
{
if (Creature* erekem = GetCreature(DATA_EREKEM))
- erekem->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemPath, ErekemPathSize, true);
+ erekem->GetMotionMaster()->MovePath(ErekemPath, false);
if (Creature* guard = instance->GetCreature(GetGuidData(DATA_EREKEM_GUARD_1)))
- guard->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemGuardLeftPath, ErekemGuardLeftPathSize, true);
+ guard->GetMotionMaster()->MovePath(ErekemGuardLeftPath, false);
if (Creature* guard = instance->GetCreature(GetGuidData(DATA_EREKEM_GUARD_2)))
- guard->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemGuardRightPath, ErekemGuardRightPathSize, true);
+ guard->GetMotionMaster()->MovePath(ErekemGuardRightPath, false);
task.Schedule(Seconds(6), [this](TaskContext task)
{
@@ -614,7 +639,7 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(3), [this](TaskContext task)
{
if (Creature* ichoron = GetCreature(DATA_ICHORON))
- ichoron->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, IchoronPath, IchoronPathSize, true);
+ ichoron->GetMotionMaster()->MovePath(IchoronPath, false);
task.Schedule(Seconds(14), [this](TaskContext /*task*/)
{
@@ -636,7 +661,7 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(3), [this](TaskContext task)
{
if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR))
- lavanthor->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, LavanthorPath, LavanthorPathSize, true);
+ lavanthor->GetMotionMaster()->MovePath(LavanthorPath, false);
task.Schedule(Seconds(8), [this](TaskContext /*task*/)
{
@@ -663,7 +688,7 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(4), [this](TaskContext task)
{
if (Creature* xevozz = GetCreature(DATA_XEVOZZ))
- xevozz->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, XevozzPath, XevozzPathSize, true);
+ xevozz->GetMotionMaster()->MovePath(XevozzPath, false);
task.Schedule(Seconds(4), [this](TaskContext /*task*/)
{
@@ -689,7 +714,7 @@ class instance_violet_hold : public InstanceMapScript
task.Schedule(Seconds(6), [this](TaskContext task)
{
if (Creature* zuramat = GetCreature(DATA_ZURAMAT))
- zuramat->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ZuramatPath, ZuramatPathSize, true);
+ zuramat->GetMotionMaster()->MovePath(ZuramatPath, false);
task.Schedule(Seconds(4), [this](TaskContext /*task*/)
{
diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
index 5111e238054..aa674a17e91 100644
--- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
+++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp
@@ -15,19 +15,20 @@
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "ScriptMgr.h"
+#include "violet_hold.h"
#include "GameObject.h"
+#include "GameObjectAI.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
#include "Player.h"
-#include "GameObjectAI.h"
+#include "ScriptMgr.h"
#include "ScriptedEscortAI.h"
#include "ScriptedGossip.h"
#include "SpellAuraEffects.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
-#include "violet_hold.h"
+#include "WaypointDefines.h"
/*
* TODO:
@@ -294,55 +295,79 @@ Position const DefaultPortalWPs[] =
{ 1843.567017f, 804.288208f, 44.139091f }
};
-Position const SaboteurMoraggPath[] = // sniff
+static WaypointPath const SaboteurMoraggPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1885.71f, 799.8929f, 38.37241f },
- { 1889.505f, 762.3288f, 47.66684f },
- { 1894.542f, 742.1829f, 47.66684f },
- { 1894.603f, 739.9231f, 47.66684f },
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1885.71f, 799.8929f, 38.37241f },
+ { 2, 1889.505f, 762.3288f, 47.66684f },
+ { 3, 1894.542f, 742.1829f, 47.66684f },
+ { 4, 1894.603f, 739.9231f, 47.66684f }
+ },
+ WaypointMoveType::Run
};
-Position const SaboteurErekemPath[] = // sniff
+static WaypointPath const SaboteurErekemPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1881.047f, 829.6866f, 38.64856f },
- { 1877.585f, 844.6685f, 38.49014f },
- { 1876.085f, 851.6685f, 42.99014f },
- { 1873.747f, 864.1373f, 43.33349f }
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1881.047f, 829.6866f, 38.64856f },
+ { 2, 1877.585f, 844.6685f, 43.33349f },
+ { 3, 1876.085f, 851.6685f, 42.99014f },
+ { 4, 1873.747f, 864.1373f, 43.33349f }
+ },
+ WaypointMoveType::Run
};
-Position const SaboteurIchoronPath[] = // sniff
+static WaypointPath const SaboteurIchoronPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1888.672f, 801.2348f, 38.42305f },
- { 1901.987f, 793.3254f, 38.65126f }
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1888.672f, 801.2348f, 38.42305f },
+ { 2, 1901.987f, 793.3254f, 38.65126f }
+ },
+ WaypointMoveType::Run
};
-Position const SaboteurLavanthorPath[] = // sniff
+static WaypointPath const SaboteurLavanthorPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1867.925f, 778.8035f, 38.64702f },
- { 1853.304f, 759.0161f, 38.65761f }
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1867.925f, 778.8035f, 38.64702f },
+ { 2, 1853.304f, 759.0161f, 38.65761f }
+ },
+ WaypointMoveType::Run
};
-Position const SaboteurXevozzPath[] = // sniff
+static WaypointPath const SaboteurXevozzPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1889.096f, 810.0487f, 38.43871f },
- { 1896.547f, 823.5473f, 38.72863f },
- { 1906.666f, 842.3111f, 38.63351f }
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1889.096f, 810.0487f, 38.43871f },
+ { 2, 1896.547f, 823.5473f, 38.72863f },
+ { 3, 1906.666f, 842.3111f, 38.63351f }
+ },
+ WaypointMoveType::Run
};
-Position const SaboteurZuramatPath[] = // sniff
+static WaypointPath const SaboteurZuramatPath = // sniff
{
- { 1886.251f, 803.0743f, 38.42326f },
- { 1889.69f, 807.0032f, 38.39914f },
- { 1906.91f, 818.2574f, 38.86596f },
- { 1929.03f, 824.2713f, 46.09165f },
- { 1928.441f, 842.8891f, 47.15078f },
- { 1927.454f, 851.6091f, 47.19094f },
- { 1927.947f, 852.2986f, 47.19637f }
+ POINT_INTRO,
+ {
+ { 0, 1886.251f, 803.0743f, 38.42326f },
+ { 1, 1889.69f, 807.0032f, 38.39914f },
+ { 2, 1906.91f, 818.2574f, 38.86596f },
+ { 3, 1929.03f, 824.2713f, 46.09165f },
+ { 4, 1928.441f, 842.8891f, 47.15078f },
+ { 5, 1927.454f, 851.6091f, 47.19094f },
+ { 6, 1927.947f, 852.2986f, 47.19637f }
+ },
+ WaypointMoveType::Run
};
Position const SinclariPositions[] = // sniff
@@ -563,33 +588,27 @@ struct npc_azure_saboteur : public ScriptedAI
_bossId = _instance->GetData(DATA_2ND_BOSS);
}
- template <size_t N>
- void StartSmoothPath(Position const (&path)[N])
- {
- me->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, &path[0], N, false);
- }
-
void StartMovement()
{
switch (_bossId)
{
case DATA_MORAGG:
- StartSmoothPath(SaboteurMoraggPath);
+ me->GetMotionMaster()->MovePath(SaboteurMoraggPath, false);
break;
case DATA_EREKEM:
- StartSmoothPath(SaboteurErekemPath);
+ me->GetMotionMaster()->MovePath(SaboteurErekemPath, false);
break;
case DATA_ICHORON:
- StartSmoothPath(SaboteurIchoronPath);
+ me->GetMotionMaster()->MovePath(SaboteurIchoronPath, false);
break;
case DATA_LAVANTHOR:
- StartSmoothPath(SaboteurLavanthorPath);
+ me->GetMotionMaster()->MovePath(SaboteurLavanthorPath, false);
break;
case DATA_XEVOZZ:
- StartSmoothPath(SaboteurXevozzPath);
+ me->GetMotionMaster()->MovePath(SaboteurXevozzPath, false);
break;
case DATA_ZURAMAT:
- StartSmoothPath(SaboteurZuramatPath);
+ me->GetMotionMaster()->MovePath(SaboteurZuramatPath, false);
break;
}
}
@@ -603,9 +622,9 @@ struct npc_azure_saboteur : public ScriptedAI
});
}
- void MovementInform(uint32 type, uint32 pointId) override
+ void WaypointPathEnded(uint32 /*waypointId*/, uint32 pathId) override
{
- if (type == EFFECT_MOTION_TYPE && pointId == POINT_INTRO)
+ if (pathId == POINT_INTRO)
{
_scheduler.Schedule(0s, [this](TaskContext task)
{