From 53a962d11e8898e18808b7aed5bdcbee73254249 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 7 May 2019 04:02:15 +0200 Subject: [PATCH] Scripts/BWD: properly remove Parasitic Infection from players after wiping or defeating Magmaw --- .../BlackwingDescent/boss_magmaw.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp index c7f85bfc5a9..54ee47bfaf4 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingDescent/boss_magmaw.cpp @@ -141,6 +141,8 @@ Position const MagmawVehicleExitPos = { -311.4653f, -48.59722f, 212.8065f, 1 Position const NefarianIntroSummonPos = { -390.1042f, 40.88411f, 207.8586f, 0.196609f }; Position const NefarianIntroFlightPos = { -315.9445f, -6.895832f, 246.8446f }; +#define SPELL_PARASITIC_INFECTION_PERIODIC_DAMAGE RAID_MODE(78941, 91913, 94678, 94679) + struct boss_magmaw : public BossAI { boss_magmaw(Creature* creature) : BossAI(creature, DATA_MAGMAW) @@ -214,7 +216,9 @@ struct boss_magmaw : public BossAI _pincer1->CastSpell(_pincer1, SPELL_EJECT_PASSENGER_1, true); _pincer2->CastSpell(_pincer2, SPELL_EJECT_PASSENGER_1, true); - instance->SetData(DATA_MAGMAW, FAIL); + instance->SetBossState(DATA_MAGMAW, FAIL); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PARASITIC_INFECTION_VOMIT); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PARASITIC_INFECTION_PERIODIC_DAMAGE); summons.DespawnAll(); _DespawnAtEvade(); } @@ -223,8 +227,12 @@ struct boss_magmaw : public BossAI { if (_headEngaged) instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, _exposedHead1); - _JustDied(); + + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PARASITIC_INFECTION_VOMIT); + instance->DoRemoveAurasDueToSpellOnPlayers(SPELL_PARASITIC_INFECTION_PERIODIC_DAMAGE); + instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me); + _JustDied(); } void JustSummoned(Creature* summon) override @@ -538,6 +546,7 @@ struct npc_magmaw_lava_parasite : public ScriptedAI void JustDied(Unit* /*killer*/) override { + _events.Reset(); me->DespawnOrUnsummon(2s + 500ms); }