From 9c6a561404f83e96f7f04bbe83295a77057acbf3 Mon Sep 17 00:00:00 2001 From: Skjalf <47818697+Nyeriah@users.noreply.github.com> Date: Sun, 9 Apr 2023 17:37:12 -0300 Subject: [PATCH] fix(Scripts/Steamvault): Despawn Thespia's adds on death (#15898) * fix(Scripts/Steamvault): Despawn Thespia's adds on death * stuff --- .../SteamVault/boss_hydromancer_thespia.cpp | 44 +++++++------------ .../SteamVault/instance_steam_vault.cpp | 5 ++- .../SteamVault/steam_vault.h | 5 ++- 3 files changed, 22 insertions(+), 32 deletions(-) diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp index a27e68485..3a83692b8 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_hydromancer_thespia.cpp @@ -29,11 +29,7 @@ enum HydromancerThespia SPELL_LIGHTNING_CLOUD = 25033, SPELL_LUNG_BURST = 31481, - SPELL_ENVELOPING_WINDS = 31718, - - EVENT_SPELL_LIGHTNING = 1, - EVENT_SPELL_LUNG = 2, - EVENT_SPELL_ENVELOPING = 3 + SPELL_ENVELOPING_WINDS = 31718 }; struct boss_hydromancer_thespia : public BossAI @@ -44,47 +40,39 @@ struct boss_hydromancer_thespia : public BossAI { _JustDied(); Talk(SAY_DEAD); + + instance->DoForAllMinions(DATA_HYDROMANCER_THESPIA, [&](Creature* creature) { + creature->DespawnOrUnsummon(); + }); } void KilledUnit(Unit* victim) override { if (victim->IsPlayer()) + { Talk(SAY_SLAY); + } } void JustEngagedWith(Unit* /*who*/) override { Talk(SAY_AGGRO); _JustEngagedWith(); - events.ScheduleEvent(EVENT_SPELL_LIGHTNING, 9800); - events.ScheduleEvent(EVENT_SPELL_LUNG, 13300); - events.ScheduleEvent(EVENT_SPELL_ENVELOPING, 14500); - } - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - switch (events.ExecuteEvent()) + scheduler.Schedule(9800ms, [this](TaskContext context) { - case EVENT_SPELL_LIGHTNING: Talk(SAY_SPELL); DoCastRandomTarget(SPELL_LIGHTNING_CLOUD); - events.RepeatEvent(urand(12100, 14500)); - break; - case EVENT_SPELL_LUNG: + context.Repeat(12100ms, 14500ms); + }).Schedule(13300ms, [this](TaskContext context) + { DoCastRandomTarget(SPELL_LUNG_BURST); - events.RepeatEvent(urand(21800, 25400)); - break; - case EVENT_SPELL_ENVELOPING: + context.Repeat(21800ms, 25400ms); + }).Schedule(14500ms, [this](TaskContext context) + { DoCastRandomTarget(SPELL_ENVELOPING_WINDS); - events.RepeatEvent(urand(30000, 40000)); - break; - } - - DoMeleeAttackIfReady(); + context.Repeat(30s, 40s); + }); } }; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp index 693b12a78..f171e8d7f 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp @@ -27,8 +27,9 @@ enum MainChambersAccessPanelSays MinionData const minionData[] = { - { NPC_NAGA_DISTILLER, DATA_WARLORD_KALITHRESH }, - { 0, 0 } + { NPC_NAGA_DISTILLER, DATA_WARLORD_KALITHRESH }, + { NPC_THESPIA_WATER_ELEMENTAL, DATA_HYDROMANCER_THESPIA }, + { 0, 0 } }; class go_main_chambers_access_panel : public GameObjectScript diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h index 997b0b568..af2e2c427 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/steam_vault.h @@ -51,9 +51,10 @@ enum steamVaultNPCGO NPC_DOOR_CONTROLLER = 20926 }; -enum NagaDistiller +enum Creatures { - NPC_NAGA_DISTILLER = 17954 + NPC_NAGA_DISTILLER = 17954, + NPC_THESPIA_WATER_ELEMENTAL = 17917 }; template