aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Outland
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2023-11-24 21:08:00 +0100
committerGitHub <noreply@github.com>2023-11-24 21:08:00 +0100
commit3f6f683ce4b5f4a95a2d70921de2c80de6b3a8fe (patch)
treef5601a0099a13aacef4bb115679ac51858ac9e42 /src/server/scripts/Outland
parentb299902881cb6525b5a6cc08c5721c0c1c7401ab (diff)
Core/Waypoints: Drop waypoint_scripts table (#29437)
Diffstat (limited to 'src/server/scripts/Outland')
-rw-r--r--src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp16
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp25
-rw-r--r--src/server/scripts/Outland/zone_nagrand.cpp19
3 files changed, 57 insertions, 3 deletions
diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
index 38a7fd78d66..d7d3c6245c7 100644
--- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
+++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_blackheart_the_inciter.cpp
@@ -57,6 +57,11 @@ enum BlackheartEvents
EVENT_WAR_STOMP
};
+enum BlackheartPaths
+{
+ PATH_BLACKHEART_IDLE = 5354960,
+};
+
class BlackheartCharmedPlayerAI : public SimpleCharmedPlayerAI
{
using SimpleCharmedPlayerAI::SimpleCharmedPlayerAI;
@@ -161,6 +166,17 @@ struct boss_blackheart_the_inciter : public BossAI
DoMeleeAttackIfReady();
}
+
+ void WaypointReached(uint32 waypointId, uint32 pathId) override
+ {
+ if (pathId != PATH_BLACKHEART_IDLE)
+ return;
+
+ if (waypointId == 2)
+ Talk(SAY_DEATH); // ?
+ else if (waypointId == 3)
+ Talk(SAY_AGGRO); // ?
+ }
};
struct boss_blackheart_the_inciter_mc_dummy : public NullCreatureAI
diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
index 2330a2f75ba..3aa3f7c4541 100644
--- a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
+++ b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp
@@ -35,7 +35,7 @@ like lack of delays between packets makes it work differently too.
Of course as was said above player can be pulled towards 2 times in a row but that looks like a rare case.
*/
-enum Spells
+enum BlackStalkerSpells
{
SPELL_LEVITATE = 31704,
SPELL_CHAIN_LIGHTNING = 31717,
@@ -52,7 +52,7 @@ enum Spells
SPELL_SUMMON_SPORE_STRIDER = 38755
};
-enum Events
+enum BlackStalkerEvents
{
EVENT_LEASH_CHECK = 1,
EVENT_LEVITATE,
@@ -61,6 +61,11 @@ enum Events
EVENT_SUMMON_SPORE_STRIDER
};
+enum BlackStalkerPaths
+{
+ PATH_BLACK_STALKER_IDLE = 4346960,
+};
+
struct boss_the_black_stalker : public BossAI
{
boss_the_black_stalker(Creature* creature) : BossAI(creature, DATA_THE_BLACK_STALKER), _summons(creature) { }
@@ -68,6 +73,8 @@ struct boss_the_black_stalker : public BossAI
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
+ scheduler.CancelAll();
+
_events.ScheduleEvent(EVENT_LEASH_CHECK, 5s);
_events.ScheduleEvent(EVENT_LEVITATE, 8s, 18s);
_events.ScheduleEvent(EVENT_CHAIN_LIGHTNING, 0s, 3s);
@@ -130,6 +137,20 @@ struct boss_the_black_stalker : public BossAI
DoMeleeAttackIfReady();
}
+ void WaypointReached(uint32 waypointId, uint32 pathId) override
+ {
+ if (pathId != PATH_BLACK_STALKER_IDLE)
+ return;
+
+ if (waypointId == 2 || waypointId == 4 || waypointId == 6)
+ {
+ scheduler.Schedule(2s, [this](TaskContext /*task*/)
+ {
+ me->HandleEmoteCommand(EMOTE_ONESHOT_EAT);
+ });
+ }
+ }
+
private:
EventMap _events;
SummonList _summons;
diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp
index 1bbf80b84e9..c13395e9adc 100644
--- a/src/server/scripts/Outland/zone_nagrand.cpp
+++ b/src/server/scripts/Outland/zone_nagrand.cpp
@@ -429,7 +429,9 @@ enum PlantBannerQuests
NPC_KIL_SORROW_DEATHSWORN = 17148,
NPC_GISELDA_THE_CRONE = 18391,
NPC_WARMAUL_REAVER = 17138,
- NPC_WARMAUL_SHAMAN = 18064
+ NPC_WARMAUL_SHAMAN = 18064,
+
+ PATH_NAGRAND_BANNER = 4816480,
};
class npc_nagrand_banner : public CreatureScript
@@ -474,6 +476,21 @@ public:
return bannered;
}
+ void WaypointReached(uint32 waypointId, uint32 pathId) override
+ {
+ if (pathId != PATH_NAGRAND_BANNER)
+ return;
+
+ if (waypointId == 11)
+ me->HandleEmoteCommand(EMOTE_ONESHOT_APPLAUD);
+ else if (waypointId == 4 || waypointId == 8)
+ me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);
+ else if (waypointId == 10)
+ me->HandleEmoteCommand(EMOTE_ONESHOT_POINT);
+ else if (waypointId == 3 || waypointId == 7)
+ me->HandleEmoteCommand(EMOTE_STATE_USE_STANDING);
+ }
+
protected:
TaskScheduler scheduler;