mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-30 13:47:23 +01:00
Script/DM: finished initial work on Nightmare phases
*todo: fix calissas resque and nightmare offwearing message and reset nightmare when vanessa evades
This commit is contained in:
@@ -53,7 +53,61 @@
|
||||
|
||||
21:32:49.629 -- ihr habt den mechanischen
|
||||
21:32:51.891 -- vanessa despawn
|
||||
21:32:51.891
|
||||
|
||||
21:33:21.937 -- foe reaper aggro
|
||||
21:33:24.745 -- spirit strike
|
||||
21:33:27.818 -- spirit strike
|
||||
21:33:31.016 -- spirit strike
|
||||
21:33:34.230
|
||||
|
||||
21:33:53.215 -- reaper dead
|
||||
|
||||
21:33:55.789 -- cancel nightmare aura mechanical
|
||||
21:33:55.836 -- despawn platters
|
||||
|
||||
21:33:55.992 -- der alptraum wandelt sich
|
||||
21:33:56.834 -- reaper despawn
|
||||
21:33:58.441 -- spawn ripsnarl and vanessa
|
||||
|
||||
21:34:00.656 -- ripsnarl wasnt always
|
||||
21:34:07.895 -- his name was james harrington
|
||||
21:34:12.497 -- cancel nightmare aura
|
||||
21:34:12.699 -- announce nightmare
|
||||
21:34:12.887 -- open door
|
||||
|
||||
|
||||
21:34:14.899 -- vanessa casts adrenaline
|
||||
21:34:15.227 -- despawn vanessa and ripsnarl
|
||||
|
||||
21:34:12.887 -- spawn emme harrington
|
||||
21:34:12.887 -- emme casts group taunt
|
||||
21:34:24.524 -- group taunt 2
|
||||
|
||||
|
||||
21:34:16.303 -- rette emme harrington
|
||||
|
||||
21:34:35.164 -- emme casts adrenaline
|
||||
21:34:35.164 -- despawn emme
|
||||
|
||||
21:34:39.173 -- announce save erik
|
||||
21:34:40.982 -- spawn worgen and erik
|
||||
21:34:59.625 -- erik despawn
|
||||
|
||||
21:34:59.827 -- spawn calissa
|
||||
21:35:03.259 -- announce save
|
||||
|
||||
21:35:15.287 -- james, please, I love you
|
||||
21:35:16.504
|
||||
|
||||
21:35:24.897 -- announce calissa dies
|
||||
|
||||
21:35:27.190 -- ripsnarl death
|
||||
21:35:27.096 -- cancel nightmare elixir
|
||||
21:35:27.346 -- announce
|
||||
|
||||
21:35:29.530 -- despawn both
|
||||
|
||||
21:35:31.527 -- spawn boss
|
||||
*/
|
||||
|
||||
|
||||
@@ -82,6 +136,10 @@ UPDATE `creature_template` SET `ScriptName`= 'npc_deadmines_glubtok_nightmare' W
|
||||
UPDATE `creature_template` SET `unit_flags`= 33600, `ScriptName`= 'npc_deadmines_helix_nightmare' WHERE `entry`= 49674;
|
||||
-- Lightning Platters
|
||||
UPDATE `creature_template` SET `InhabitType`= 4, `flags_extra`= 128 WHERE `entry` IN (49520, 49521);
|
||||
-- Foe Reaper 5000 Illusion
|
||||
UPDATE `creature_template` SET `ScriptName`= 'npc_deadmines_foe_reaper_5000_nightmare' WHERE `entry`= 49681;
|
||||
-- James Harrington
|
||||
UPDATE `creature_template` SET `VehicleId`= 1403 WHERE `entry`= 49539;
|
||||
|
||||
-- Template Addons
|
||||
DELETE FROM `creature_template_addon` WHERE `entry` IN (49564, 51594, 49671, 49670, 92201);
|
||||
@@ -102,7 +160,7 @@ INSERT INTO `gossip_menu_option` (`MenuId`, `OptionID`, `OptionIcon`, `OptionTex
|
||||
(12504, 0, 0, 'Continue reading... <Note: This will alert Vanessa to your presence!>', 49641, 1, 1, 12505);
|
||||
|
||||
-- Texts
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` IN (49429, 49564, 49454, 49671, 49674);
|
||||
DELETE FROM `creature_text` WHERE `CreatureID` IN (49429, 49564, 49454, 49671, 49674, 49539, 49536, 49541);
|
||||
DELETE FROM `creature_text` WHERE `CreatureID`= 45979 AND `GroupID` NOT IN (0, 1, 2, 3);
|
||||
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `Comment`) VALUES
|
||||
-- Vanessa VanCleef Intro
|
||||
@@ -120,9 +178,18 @@ INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Lan
|
||||
-- General Purpose Bunny JMF
|
||||
(45979, 4, 0, 'The Nightmare Elixir takes hold!', 41, 0, 100, 0, 0, 0, 49705, 'General Purpose Bunny JMF to Steam Valve'),
|
||||
(45979, 5, 0, 'The nightmare shifts!', 41, 0, 100, 0, 0, 0, 49707, 'General Purpose Bunny JMF to Player'),
|
||||
(45979, 6, 0, 'Save Emme Harrington!', 41, 0, 100, 0, 0, 0, 49711, 'General Purpose Bunny JMF to Player'),
|
||||
(45979, 7, 0, 'Save Erik Harrington!', 41, 0, 100, 0, 0, 0, 49712, 'General Purpose Bunny JMF'),
|
||||
(45979, 8, 0, 'Save Calissa Harrington!', 41, 0, 100, 0, 0, 0, 49713, 'General Purpose Bunny JMF'),
|
||||
(45979, 9, 0, 'The Nightmare Elixir wears off!', 41, 0, 100, 0, 0, 0, 49714, 'General Purpose Bunny JMF'),
|
||||
-- Helix Gearbreaker
|
||||
(49674, 0, 0, 'You have entered Helix''s nightmare!', 41, 0, 100, 0, 0, 0, 49708, 'Helix Gearbreaker to Player'),
|
||||
(49674, 1, 0, 'Nightmare spiders appear in the darkness! Kill Helix before his nightmare overwhelms you!', 41, 0, 100, 0, 0, 0, 50871, 'Helix Geabreaker to Player'),
|
||||
-- James Harrington
|
||||
(49539, 0, 0, 'Calissa...I am so sorry...', 12, 0, 100, 0, 0, 0, 49761, 'James Harrington'),
|
||||
-- Calissa Harrington
|
||||
(49536, 0, 0, 'James...please...I love you...', 12, 0, 100, 0, 0, 0, 49762, 'Calissa Harrington'),
|
||||
(49536, 1, 0, 'Calissa is dying!', 41, 0, 100, 0, 0, 0, 49763, 'Calissa Harrington'),
|
||||
-- Vanessa VanCleef Nightmare
|
||||
(49671, 0, 0, 'Poor Glubtok. When his powers manifested, his own ogre mound was the first to burn.', 12, 0, 100, 1, 0, 24602, 49715, 'Vanessa van Cleef to Steam Valve'),
|
||||
(49671, 1, 0, 'Deep within his soul, the one thing he feared most of all was...himself.', 12, 0, 100, 1, 0, 24603, 49716, 'Vanessa van Cleef to Steam Valve'),
|
||||
@@ -132,7 +199,22 @@ INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Lan
|
||||
(49671, 5, 0, 'You never know what skitters in the darkness.', 12, 0, 100, 1, 0, 24605, 49724, 'Vanessa van Cleef to Player'),
|
||||
(49671, 6, 0, 'Can you imagine the life of a machine?', 12, 0, 100, 1, 0, 24606, 49725, 'Vanessa van Cleef to Player'),
|
||||
(49671, 7, 0, 'A simple spark can mean the difference between life...and death.', 12, 0, 100, 1, 0, 24607, 49726, 'Vanessa van Cleef to Player'),
|
||||
(49671, 8, 0, 'You have entered the mechanical nightmare!', 41, 0, 100, 0, 0, 0, 49709, 'Vanessa van Cleef to Player');
|
||||
(49671, 8, 0, 'You have entered the mechanical nightmare!', 41, 0, 100, 0, 0, 0, 49709, 'Vanessa van Cleef to Player'),
|
||||
(49671, 9, 0, 'Ripsnarl wasn''t always a bloodthirsty savage. Once, he even had a family.', 12, 0, 100, 1, 0, 24608, 49742, 'Vanessa van Cleef to Player'),
|
||||
(49671, 10, 0, 'He was called James Harrington. A tragedy in three parts.', 12, 0, 100, 1, 0, 24609, 49745, 'Vanessa van Cleef to Player'),
|
||||
(49671, 11, 0, 'You have entered Ripsnarl''s nightmare!', 41, 0, 100, 0, 0, 0, 49710, 'Vanessa van Cleef to Player'),
|
||||
-- Vanessa VanCleef
|
||||
(49541, 0, 0, 'I will not share my father''s fate! Your tale ends here!', 14, 0, 100, 0, 0, 24599, 49748, 'Vanessa van Cleef to Player'),
|
||||
(49541, 1, 0, 'The first of many.', 14, 0, 100, 0, 0, 24620, 49749, 'Vanessa van Cleef'),
|
||||
(49541, 2, 0, 'Did you really think I would come to this fight alone?', 14, 0, 100, 0, 0, 24620, 49750, 'Vanessa van Cleef'),
|
||||
(49541, 3, 0, 'Fools! This entire ship is rigged with explosives! Enjoy your fiery deaths!', 14, 0, 100, 0, 0, 24621, 49751, 'Vanessa van Cleef'),
|
||||
(49541, 4, 0, 'Vanessa has detonated charges on the ship! Get to the ropes at the side of the boat!', 41, 0, 100, 0, 0, 0, 49755, 'Vanessa van Cleef'),
|
||||
(49541, 5, 0, 'You didn''t honestly think I would only plant ONE set of explosives, did you?', 14, 0, 100, 0, 0, 24622, 50706, 'Vanessa van Cleef'),
|
||||
(49541, 6, 0, 'Vanessa is detonating more charges! Get to the ropes at the side of the boat!', 41, 0, 100, 0, 0, 0, 49756, 'Vanessa van Cleef'),
|
||||
(49541, 7, 0, 'ENOUGH! I will not give you the pleasure!', 14, 0, 100, 274, 0, 24610, 49753, 'Vanessa van Cleef'),
|
||||
(49541, 8, 0, 'If I''m going to die, I''m taking you all with me!', 14, 0, 100, 15, 0, 24611, 49752, 'Vanessa van Cleef'),
|
||||
(49541, 9, 0, 'Vanessa pulls out a final barrel of mining powder and ignites it! RUN!', 41, 0, 100, 0, 0, 0, 49757, 'Vanessa van Cleef'),
|
||||
(49541, 10, 0, 'MY FATE IS MY OWN!', 14, 0, 100, 397, 0, 24612, 49754, 'Vanessa van Cleef');
|
||||
|
||||
UPDATE `creature_template` SET `npcflag`= 16777216 WHERE `entry`= 49520;
|
||||
|
||||
@@ -177,36 +259,29 @@ INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_
|
||||
(@ENTRY, 0, 1, 2, 60, 0, 100, 1, 3200, 3200, 0, 0, 11, 92201, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Every 0 and 0 ms (for the first time, timer between 3200 and 3200 ms) - Self: Cast spell Icicle (92201) on Self // "),
|
||||
(@ENTRY, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 92202, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, " Linked - Self: Cast spell Icicle (92202) on Self // ");
|
||||
|
||||
-- Creature Emme Harrington 49534 SAI
|
||||
SET @ENTRY := 49534;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`= @ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(@ENTRY, 0, 0, 0, 60, 0, 100, 0, 1, 1, 5000, 5000, 11, 92308, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Every 5000 and 5000 ms (for the first time, timer between 1 and 1 ms) - Self: Cast spell Group Taunt (92308) on Self // ");
|
||||
|
||||
-- Creature Erik Harrington 49535 SAI
|
||||
SET @ENTRY := 49535;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`= @ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(@ENTRY, 0, 0, 0, 60, 0, 100, 0, 1, 1, 5000, 5000, 11, 92308, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Every 5000 and 5000 ms (for the first time, timer between 1 and 1 ms) - Self: Cast spell Group Taunt (92308) on Self // ");
|
||||
|
||||
/*
|
||||
(49454, @GROUP_ID+0, @ID+, 'Aktiviert die Dampfventile, um Euch zu befreien!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa''s Trap Bunny to Player'),
|
||||
(49536, @GROUP_ID+0, @ID+, 'James... bitte... Ich liebe dich...', 12, 0, 100, 0, 0, 0, UNKNOWN, 'Calissa Harrington'),
|
||||
(49536, @GROUP_ID+1, @ID+, 'Calissa stirbt!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Calissa Harrington'),
|
||||
(49539, @GROUP_ID+0, @ID+, 'Calissa... Es tut mir so leid...', 12, 0, 100, 0, 0, 0, UNKNOWN, 'James Harrington'),
|
||||
(49541, @GROUP_ID+0, @ID+, 'Ich werde meines Vaters Schicksal nicht teilen! Eure Geschichte endet hier!', 14, 0, 100, 0, 0, 24599, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49541, @GROUP_ID+1, @ID+, 'Habt Ihr wirklich gedacht, ich würde allein zu diesem Kampf erscheinen?', 14, 0, 100, 0, 0, 24620, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+2, @ID+, 'Narren! Hahahah! Das ganze Schiff ist mit Sprengstoff gespickt! Erfreut Euch an Eurem feurigen Tod!', 14, 0, 100, 0, 0, 24621, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+3, @ID+, 'Vanessa hat Sprengladungen auf dem Schiff detonieren lassen! Los, schnell zu den Seilen an Steuerbord!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+4, @ID+, 'Ha! Ihr hattet doch nicht wirklich gedacht, dass ich nur EINE Reihe Sprengstoff legen würde, oder?', 14, 0, 100, 0, 0, 24622, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+5, @ID+, 'Vanessa lässt weitere Sprengsätze detonieren! Los, schnell zu den Seilen an Steuerbord!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+6, @ID+, 'GENUG! Diese Freude werde ich Euch nicht machen!', 14, 0, 100, 274, 0, 24610, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+7, @ID+, 'Wenn ich schon sterbe, werde ich Euch alle mitnehmen!', 14, 0, 100, 15, 0, 24611, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+8, @ID+, 'Vanessa zieht ein letztes Fass mit Bergbausprengstoff hervor und entzündet es! RENNT!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49541, @GROUP_ID+9, @ID+, 'ÜBER MEIN SCHICKSAL ENTSCHEIDE NUR ICH!', 14, 0, 100, 397, 0, 24612, UNKNOWN, 'Vanessa van Cleef'),
|
||||
(49564, @GROUP_ID+0, @ID+, 'Eine Notiz fällt zu Boden!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Eine Nachricht von Vanessa to Player'),
|
||||
(49671, @GROUP_ID+0, @ID+, 'Armer Glubtok. Als sich seine Kräfte manifestierten, war sein Ogerhort der erste, der brannte.', 12, 0, 100, 1, 0, 24602, UNKNOWN, 'Vanessa van Cleef to Dampfventil'),
|
||||
(49671, @GROUP_ID+1, @ID+, 'In den Tiefen seiner Seele war das, was er am meisten fürchtete... er selbst.', 12, 0, 100, 1, 0, 24603, UNKNOWN, 'Vanessa van Cleef to Dampfventil'),
|
||||
(49671, @GROUP_ID+2, @ID+, 'Ihr habt Glubtoks Alptraum betreten!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef to Dampfventil'),
|
||||
(49671, @GROUP_ID+3, @ID+, 'Geht zum Schiff zurück!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef to Dampfventil'),
|
||||
(49671, @GROUP_ID+4, @ID+, 'Die meisten Schurken bevorzugen die Schatten, Helix jedoch nicht.', 12, 0, 100, 1, 0, 24604, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+5, @ID+, 'Man weiß nie, was in der Dunkelheit rumkriecht.', 12, 0, 100, 1, 0, 24605, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+6, @ID+, 'Könnt Ihr Euch das Leben einer Maschine vorstellen?', 12, 0, 100, 1, 0, 24606, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+7, @ID+, 'Ein einzelner Funke... kann den Unterschied zwischen Leben und Tod ausmachen.', 12, 0, 100, 1, 0, 24607, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+8, @ID+, 'Ihr habt den mechanischen Alptraum betreten!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+9, @ID+, 'Knurrreißer war nicht immer ein blutrünstiger Wilder. Er hatte früher sogar mal eine Familie.', 12, 0, 100, 1, 0, 24608, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+10, @ID+, 'Sein Name war James Harrington. Eine Tragödie in drei Akten.', 12, 0, 100, 1, 0, 24609, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49671, @GROUP_ID+11, @ID+, 'Ihr habt Knurrreißers Alptraum betreten!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Vanessa van Cleef to Player'),
|
||||
(49674, @GROUP_ID+0, @ID+, 'Ihr habt Helix'' Alptraum betreten!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Helix Ritzelbrecher to Player'),
|
||||
(49674, @GROUP_ID+1, @ID+, 'Alptraumspinnen erscheinen in der Finsternis! Tötet Helix, bevor sein Alptraum Euch überwältigt!', 41, 0, 100, 0, 0, 0, UNKNOWN, 'Helix Ritzelbrecher to Player');
|
||||
*/
|
||||
-- Creature Calissa Harrington 49536 SAI
|
||||
SET @ENTRY := 49536;
|
||||
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`= @ENTRY;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(@ENTRY, 0, 0, 0, 60, 0, 100, 1, 15400, 15400, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Every 0 and 0 ms (for the first time, timer between 15400 and 15400 ms) - Self: Talk 0 // "),
|
||||
(@ENTRY, 0, 1, 0, 60, 0, 100, 1, 25000, 25000, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, "Every 0 and 0 ms (for the first time, timer between 25000 and 25000 ms) - Self: Talk 1 // "),
|
||||
(@ENTRY, 0, 2, 0, 60, 0, 100, 1, 16700, 16700, 0, 0, 1, 0, 0, 0, 0, 0, 0, 11, 49539, 10, 0, 0, 0, 0, 0, "Every 0 and 0 ms (for the first time, timer between 16700 and 16700 ms) - Creature James Harrington (49539) in 10 yd: Talk 0 // ");
|
||||
|
||||
-- Creature James Harrington 49539 SAI
|
||||
SET @ENTRY := 49539;
|
||||
UPDATE `creature_template` SET `AIName`="0" WHERE `entry`= @ENTRY;
|
||||
|
||||
@@ -46,7 +46,6 @@ enum Spells
|
||||
// Foe Reaper 5000
|
||||
SPELL_ENERGIZE = 89132,
|
||||
SPELL_ON_LINE = 89198,
|
||||
SPELL_OFF_LINE = 88348,
|
||||
SPELL_RED_EYES = 24263,
|
||||
SPELL_ON_LINE_2 = 89121,
|
||||
SPELL_REAPER_STRIKE = 88490,
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
enum Texts
|
||||
{
|
||||
// Vanessa VanCleef
|
||||
SAY_AGGRO = 0,
|
||||
|
||||
// Vanessa VanCleef Intro
|
||||
SAY_ANNOUNCE_NOISE_FROM_ABOVE = 0,
|
||||
SAY_INTRO_1 = 1,
|
||||
SAY_INTRO_2 = 2,
|
||||
@@ -90,16 +93,14 @@ class boss_vanessa_van_cleef : public CreatureScript
|
||||
void Reset() override
|
||||
{
|
||||
_Reset();
|
||||
}
|
||||
|
||||
void IsSummonedBy(Unit* /*summoner*/) override
|
||||
{
|
||||
|
||||
instance->SetBossState(DATA_VANESSA_VAN_CLEEF, NOT_STARTED);
|
||||
}
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
Talk(SAY_AGGRO);
|
||||
_JustEngagedWith();
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
@@ -157,6 +158,7 @@ class npc_vanessa_vanessa_van_cleef : public CreatureScript
|
||||
|
||||
void Reset() override
|
||||
{
|
||||
_instance->SetBossState(DATA_VANESSA_VAN_CLEEF, IN_PROGRESS);
|
||||
_events.ScheduleEvent(EVENT_ANNOUNCE_NOISE_FROM_ABOVE, Seconds(2) + Milliseconds(500));
|
||||
}
|
||||
|
||||
|
||||
@@ -283,6 +283,9 @@ enum VanessaVanCleef
|
||||
SAY_MECHANICAL_INTRO_1 = 6,
|
||||
SAY_MECHANICAL_INTRO_2 = 7,
|
||||
SAY_ANNOUNCE_MECHANICAL_NIGHTMARE = 8,
|
||||
SAY_RIPSNARL_INTRO_1 = 9,
|
||||
SAY_RIPSNARL_INTRO_2 = 10,
|
||||
SAY_ANNOUNCE_RIPSNARL_NIGHTMARE = 11,
|
||||
|
||||
EVENT_TALK_GLUBTOKS_NIGHTMARE_1 = 1,
|
||||
EVENT_TALK_GLUBTOKS_NIGHTMARE_2,
|
||||
@@ -296,11 +299,17 @@ enum VanessaVanCleef
|
||||
EVENT_TALK_MECHANICAL_NIGHTMARE_2,
|
||||
EVENT_CANCEL_NIGHTMARE_AURA_HELIX,
|
||||
EVENT_ANNOUNCE_ENTERED_MECHANICAL_NIGHTMARE,
|
||||
EVENT_TALK_RIPSNARL_NIGHTMARE_1,
|
||||
EVENT_TALK_RIPSNARL_NIGHTMARE_2,
|
||||
EVENT_CANCEL_NIGHTMARE_AURA_MECHANICAL,
|
||||
EVENT_ANNOUNCE_ENTERED_RIPSNARL_NIGHTMARE,
|
||||
EVENT_ADRENALINE,
|
||||
|
||||
SPELL_CANCEL_NIGHTMARE_AURA = 92583,
|
||||
SPELL_NIGHTMARE_AURA_GLUBTOK = 92565,
|
||||
SPELL_NIGHTMARE_AURA_HELIX = 92566,
|
||||
SPELL_NIGHTMARE_AURA_MECHANICAL = 92567,
|
||||
SPELL_NIGHTMARE_AURA_RIPSNARL = 92568,
|
||||
};
|
||||
|
||||
class npc_deadmines_vanessa_van_cleef_nightmare : public CreatureScript
|
||||
@@ -320,7 +329,8 @@ class npc_deadmines_vanessa_van_cleef_nightmare : public CreatureScript
|
||||
_events.ScheduleEvent(EVENT_TALK_HELIX_NIGHTMARE_1, Seconds(1));
|
||||
else if (_instance->GetData(DATA_VANESSA_VAN_CLEEF_ENCOUNTER) == NIGHTMARE_STAGE_FOE_REAPER)
|
||||
_events.ScheduleEvent(EVENT_TALK_MECHANICAL_NIGHTMARE_1, Seconds(1));
|
||||
|
||||
else if (_instance->GetData(DATA_VANESSA_VAN_CLEEF_ENCOUNTER) == NIGHTMARE_STAGE_RIPSNARL)
|
||||
_events.ScheduleEvent(EVENT_TALK_RIPSNARL_NIGHTMARE_1, Seconds(2) + Milliseconds(200));
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
@@ -386,6 +396,29 @@ class npc_deadmines_vanessa_van_cleef_nightmare : public CreatureScript
|
||||
reaper->DespawnOrUnsummon(Seconds(2) + Milliseconds(200));
|
||||
me->DespawnOrUnsummon(Seconds(2) + Milliseconds(200));
|
||||
break;
|
||||
case EVENT_TALK_RIPSNARL_NIGHTMARE_1:
|
||||
Talk(SAY_RIPSNARL_INTRO_1);
|
||||
_events.ScheduleEvent(EVENT_TALK_RIPSNARL_NIGHTMARE_2, Seconds(7) + Milliseconds(150));
|
||||
break;
|
||||
case EVENT_TALK_RIPSNARL_NIGHTMARE_2:
|
||||
Talk(SAY_RIPSNARL_INTRO_2);
|
||||
_events.ScheduleEvent(EVENT_CANCEL_NIGHTMARE_AURA_MECHANICAL, Seconds(4) + Milliseconds(600));
|
||||
break;
|
||||
case EVENT_CANCEL_NIGHTMARE_AURA_MECHANICAL:
|
||||
DoCastAOE(SPELL_CANCEL_NIGHTMARE_AURA, true);
|
||||
DoCastAOE(SPELL_NIGHTMARE_AURA_RIPSNARL, true);
|
||||
_events.ScheduleEvent(EVENT_ANNOUNCE_ENTERED_RIPSNARL_NIGHTMARE, Milliseconds(200));
|
||||
break;
|
||||
case EVENT_ANNOUNCE_ENTERED_RIPSNARL_NIGHTMARE:
|
||||
Talk(SAY_ANNOUNCE_RIPSNARL_NIGHTMARE);
|
||||
_events.ScheduleEvent(EVENT_ADRENALINE, Seconds(2));
|
||||
break;
|
||||
case EVENT_ADRENALINE:
|
||||
DoCastAOE(SPELL_ADRENALINE, true);
|
||||
if (Creature* reaper = me->FindNearestCreature(NPC_RIPSNARL_NIGHTMARE, 20.0f, true))
|
||||
reaper->DespawnOrUnsummon(Milliseconds(300));
|
||||
me->DespawnOrUnsummon(Milliseconds(300));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -559,6 +592,60 @@ class npc_deadmines_helix_nightmare : public CreatureScript
|
||||
}
|
||||
};
|
||||
|
||||
class npc_deadmines_foe_reaper_5000_nightmare : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_deadmines_foe_reaper_5000_nightmare() : CreatureScript("npc_deadmines_foe_reaper_5000_nightmare") { }
|
||||
|
||||
struct npc_deadmines_foe_reaper_5000_nightmareAI : public ScriptedAI
|
||||
{
|
||||
npc_deadmines_foe_reaper_5000_nightmareAI(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript()) { }
|
||||
|
||||
void JustEngagedWith(Unit* /*who*/) override
|
||||
{
|
||||
_events.ScheduleEvent(EVENT_SPIRIT_STRIKE, Seconds(2) + Milliseconds(800));
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) override
|
||||
{
|
||||
me->DespawnOrUnsummon(Seconds(3) + Milliseconds(600));
|
||||
_instance->SetData(DATA_VANESSA_VAN_CLEEF_ENCOUNTER, NIGHTMARE_STAGE_RIPSNARL);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) override
|
||||
{
|
||||
_events.Update(diff);
|
||||
|
||||
while (uint32 eventId = _events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_SPIRIT_STRIKE:
|
||||
DoCastVictim(SPELL_SPIRIT_STRIKE);
|
||||
_events.Repeat(Seconds(3) + Milliseconds(100));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
private:
|
||||
EventMap _events;
|
||||
InstanceScript* _instance;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const override
|
||||
{
|
||||
return GetDeadminesAI<npc_deadmines_foe_reaper_5000_nightmareAI>(creature);
|
||||
}
|
||||
};
|
||||
|
||||
enum RipsnarlNightmare
|
||||
{
|
||||
SPELL_GROUP_TAUNT = 92308,
|
||||
};
|
||||
|
||||
enum DefiasCannon
|
||||
{
|
||||
// GroupID 0 and 1 are used by Foe Reaper 5000
|
||||
@@ -697,6 +784,7 @@ void AddSC_deadmines()
|
||||
new npc_deadmines_vanessa_van_cleef_nightmare();
|
||||
new npc_deadmines_glubtok_nightmare();
|
||||
new npc_deadmines_helix_nightmare();
|
||||
new npc_deadmines_foe_reaper_5000_nightmare();
|
||||
new go_deadmines_defias_cannon();
|
||||
new spell_deadmines_on_fire();
|
||||
new spell_deadmines_ride_magma_vehicle();
|
||||
|
||||
@@ -47,6 +47,10 @@ enum DMDataTypes
|
||||
DATA_VANESSA_ANCHOR_BUNNY = 18,
|
||||
DATA_ACTIVATED_VENT = 19,
|
||||
DATA_FOUNDRY_DOOR = 20,
|
||||
DATA_VANESSA_VAN_CLEEF_NIGHTMARE = 21,
|
||||
DATA_EMME_HARRINGTON = 22,
|
||||
DATA_ERIK_HARRINGTON = 23,
|
||||
DATA_CALISSA_HARRINGTON = 24
|
||||
};
|
||||
|
||||
enum DMCreatures
|
||||
@@ -107,24 +111,27 @@ enum DMCreatures
|
||||
NPC_ROTTEN_LOAF = 48299,
|
||||
NPC_BUN = 48301,
|
||||
NPC_ROTTEN_BUN = 48302,
|
||||
|
||||
NPC_A_NOTE_FROM_VANESSA = 49564,
|
||||
NPC_VANESSA_VAN_CLEEF_INTRO = 49429,
|
||||
NPC_VANESSAS_TRAP_BUNNY = 49454,
|
||||
NPC_VANESSA_ANCHOR_BUNNY_JMF = 51624,
|
||||
NPC_STEAM_VALVE = 49457,
|
||||
|
||||
NPC_VANESSA_VANCLEEF_NIGHTMARE = 49671,
|
||||
NPC_GLUBTOK_NIGHTMARE_FIRE_BUNNY = 51594,
|
||||
NPC_GLUBTOK_NIGHTMARE = 49670,
|
||||
|
||||
NPC_HELIX_GEARBREAKER_NIGHTMARE = 49674,
|
||||
NPC_NIGHTMARE_SKITTERLING = 49493,
|
||||
NPC_DARKWEB_DEVOURER = 49494,
|
||||
NPC_CHATTERING_HORROR = 49495,
|
||||
|
||||
NPC_FOE_REAPER_5000_NIGHTMARE = 49681,
|
||||
NPC_VANESSA_LIGHTNING_PLATTER = 49520,
|
||||
NPC_RIPSNARL_NIGHTMARE = 49682,
|
||||
NPC_EMME_HARRINGTON = 49534,
|
||||
NPC_ERIK_HARRINGTON = 49535,
|
||||
NPC_ENRAGED_WORGEN = 49532,
|
||||
NPC_JAMES_HARRINGTON = 49539,
|
||||
NPC_CALISSA_HARRINGTON = 49536,
|
||||
|
||||
};
|
||||
|
||||
enum DMGameObjects
|
||||
@@ -147,18 +154,25 @@ enum DMActions
|
||||
enum DMSpells
|
||||
{
|
||||
// -- Admiral Ripsnarl Encounter
|
||||
SPELL_FOG = 88768,
|
||||
SPELL_FOG = 88768,
|
||||
|
||||
// -- Vanessa VanCleef Encounter
|
||||
SPELL_RIDE_MAGMA_VEHICLE = 92378,
|
||||
SPELL_MOLTEN_MAGMA = 92424,
|
||||
SPELL_FORCE_MAGMA_TRAP_THROW = 92489,
|
||||
|
||||
// Vanessas Anchor Bunny JMF
|
||||
SPELL_ROPE_BEAM = 43785,
|
||||
|
||||
// Steam Valve
|
||||
SPELL_STEAM_VENT = 92399,
|
||||
SPELL_RIDE_MAGMA_VEHICLE = 92378,
|
||||
SPELL_MOLTEN_MAGMA = 92424,
|
||||
SPELL_FORCE_MAGMA_TRAP_THROW = 92489,
|
||||
SPELL_ROPE_BEAM = 43785,
|
||||
SPELL_STEAM_VENT = 92399,
|
||||
SPELL_ADRENALINE = 92604,
|
||||
SPELL_NIGHTMARE_SLOW = 92559,
|
||||
SPELL_NIGHTMARE_AURA = 92563,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_GLUBTOK = 92584,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_HELIX = 92585,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_MECHANICAL = 92586,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_RIPSNARL = 92587,
|
||||
SPELL_SUMMON_ICICLE = 92189,
|
||||
SPELL_OFF_LINE = 88348,
|
||||
SPELL_NIGHTMARES_END = 92603,
|
||||
SPELL_CANCEL_NIGHTMARE_ELIXIR = 92609,
|
||||
};
|
||||
|
||||
enum DMVanessasNightmareStages
|
||||
@@ -168,10 +182,12 @@ enum DMVanessasNightmareStages
|
||||
NIGHTMARE_STAGE_GLUBTOK = 4,
|
||||
NIGHTMARE_STAGE_HELIX = 5,
|
||||
NIGHTMARE_STAGE_FOE_REAPER = 6,
|
||||
NIGHTMARE_STAGE_RIPSNARL = 7
|
||||
NIGHTMARE_STAGE_RIPSNARL = 7,
|
||||
NIGHTMARE_STAGE_DONE = 8
|
||||
};
|
||||
|
||||
Position const captainCookieSpawnPos = { -88.13194f, -819.3299f, 39.23453f };
|
||||
Position const bossVanessaVanCleefSpawnPos = { -79.44965f, -819.8351f, 39.89838f, 0.01745329f };
|
||||
|
||||
Position const noteFromVanessaSpawnPos = { -74.36111f, -820.0139f, 40.37145f, 4.014257f };
|
||||
Position const vanessaVanCleefSpawnPos = { -75.58507f, -819.9636f, 47.06727f, 6.178465f };
|
||||
@@ -181,6 +197,7 @@ Position const vanessaVanCleefNightmareSpawnPos[] =
|
||||
{ -230.717f, -563.0139f, 51.31293f, 1.047198f },
|
||||
{ -172.809f, -576.9114f, 19.39756f, 4.817109f },
|
||||
{ -159.3924f, -580.5174f, 19.39817f, 6.195919f },
|
||||
{ -98.5816f, -662.6632f, 7.498006f, 3.490659f }
|
||||
};
|
||||
|
||||
Position const GlubtokNightmareIntroSpawnPos = { -229.3403f, -560.3629f, 51.31293f, 5.742133f };
|
||||
@@ -192,6 +209,27 @@ Position const GeneralPurposeBunnyPos = { -205.4688f, -567.2049f, 21.06016f };
|
||||
Position const FoeReaperNightmareIntroSpawnPos = { -155.4705f, -580.6945f, 19.39779f };
|
||||
Position const FoeReaperNightmareSpawnPos = { -101.4549f, -663.6493f, 7.505813f, 1.850049f };
|
||||
|
||||
Position const RipsnarlNightmareIntroSpawnPos = { -101.2135f, -663.4531f, 7.504823f, 1.867502f };
|
||||
Position const EmmeHarringtonSpawnPos = { -98.63194f, -721.6268f, 8.547067f, 1.53589f };
|
||||
Position const EnragedWorgenEmmeSpawnPos[] =
|
||||
{
|
||||
{-97.79166f, -717.8542f, 8.668088f, 4.520403f },
|
||||
{ -94.40278f, -719.7274f, 8.598646f, 3.560472f },
|
||||
{ -101.9167f, -718.7552f, 8.726379f, 5.51524f },
|
||||
};
|
||||
|
||||
Position const ErikHarringtonSpawnPos = { 5.239583f, -763.0868f, 9.800426f, 2.007129f };
|
||||
|
||||
Position const EnragedWorgenErikSpawnPos[] =
|
||||
{
|
||||
{ 3.326038f, -760.3063f, 9.713999f, 5.31516f },
|
||||
{ 8.798013f, -762.2252f, 9.625132f, 3.379143f },
|
||||
{ 4.232807f, -766.6125f, 9.804724f, 1.292649f }
|
||||
};
|
||||
|
||||
Position const CalissaHarringtonSpawnPos = { -83.86406f, -775.2837f, 28.37906f, 1.710423f };
|
||||
Position const JamesHarringtonSpawnPos = { -83.16319f, -774.9636f, 26.90351f, 1.710423f };
|
||||
|
||||
Position const glubtokNightmareFireBunnyPos[] =
|
||||
{
|
||||
{ -192.2031f, -595.9636f, 36.37407f, 2.80998f },
|
||||
|
||||
@@ -25,9 +25,11 @@
|
||||
enum EventIds
|
||||
{
|
||||
EVENT_SUMMON_CAPTAIN_COOKIE = 1,
|
||||
EVENT_SUMMON_NOTE_FROM_VANESSA,
|
||||
EVENT_CAST_NIGHTMARE_AURA_1,
|
||||
EVENT_CAST_NIGHTMARE_AURA_2,
|
||||
EVENT_CAST_NIGHTMARE_AURA_3,
|
||||
EVENT_CAST_NIGHTMARE_AURA_4,
|
||||
EVENT_ANNOUNCE_NIGHTMARE_ELIXIR_TAKES_HOLD,
|
||||
EVENT_SETUP_GLUBTOKS_NIGHTMARE,
|
||||
EVENT_SUMMON_ICICLES,
|
||||
@@ -38,6 +40,17 @@ enum EventIds
|
||||
EVENT_DESPAWN_NIGHTMARE_SPIDERS,
|
||||
EVENT_SETUP_MECHANICAL_NIGHTMARE,
|
||||
EVENT_SUMMON_FOE_REAPER,
|
||||
EVENT_DESPAWN_LIGHTNING_PLATTERS,
|
||||
EVENT_SETUP_RIPSNARL_NIGHTMARE,
|
||||
EVENT_NIGHTMARE_SHIFTS_2,
|
||||
EVENT_OPEN_IRON_CLAD_DOOR,
|
||||
EVENT_SUMMON_ERIK_HARRINGTON,
|
||||
EVENT_SUMMON_JAMES_HARRINGTON,
|
||||
EVENT_ANNOUNCE_SAVE_EMME_HARRINGTON,
|
||||
EVENT_ANNOUNCE_SAVE_ERIK_HARRINGTON,
|
||||
EVENT_ANNOUNCE_SAVE_CALISSA_HARRINGTON,
|
||||
EVENT_ANNOUNCE_ELIXIR_WEARS_OFF,
|
||||
EVENT_SUMMON_VANESSA_VANCLEEF_BOSS,
|
||||
};
|
||||
|
||||
enum TextsIds
|
||||
@@ -47,36 +60,30 @@ enum TextsIds
|
||||
SAY_ANNOUNCE_SHADOWY_FIGURE = 3,
|
||||
SAY_ANNOUNCE_NIGHTMARE_ELIXIR_TAKES_HOLD = 4,
|
||||
SAY_ANNOUNCE_NIGHTMARE_SHIFTS = 5,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_NIGHTMARE_SLOW = 92559,
|
||||
SPELL_NIGHTMARE_AURA = 92563,
|
||||
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_GLUBTOK = 92584,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_HELIX = 92585,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_MECHANICAL = 92586,
|
||||
SPELL_CANCEL_NIGHTMARE_AURA_RIPSNARL = 92587,
|
||||
|
||||
SPELL_SUMMON_ICICLE = 92189,
|
||||
SPELL_OFF_LINE = 88348
|
||||
SAY_ANNOUNCE_SAVE_EMME_HARRINGTON = 6,
|
||||
SAY_ANNOUNCE_SAVE_ERIK_HARRINGTON = 7,
|
||||
SAY_ANNOUNCE_SAVE_CALISSA_HARRINGTON = 8,
|
||||
SAY_ANNOUNCE_NIGHTMARE_ELIXIR_WEARS_OFF = 9,
|
||||
};
|
||||
|
||||
ObjectData const creatureData[] =
|
||||
{
|
||||
{ BOSS_GLUBTOK, DATA_GLUBTOK },
|
||||
{ BOSS_HELIX_GEARBREAKER, DATA_HELIX_GEARBREAKER },
|
||||
{ BOSS_FOE_REAPER_5000, DATA_FOE_REAPER_5000 },
|
||||
{ BOSS_ADMIRAL_RIPSNARL, DATA_ADMIRAL_RIPSNARL },
|
||||
{ BOSS_CAPTAIN_COOKIE, DATA_CAPTAIN_COOKIE },
|
||||
{ BOSS_VANESSA_VAN_CLEEF, DATA_VANESSA_VAN_CLEEF },
|
||||
{ NPC_LUMBERING_OAF, DATA_LUMBERING_OAF },
|
||||
{ NPC_FOE_REAPER_TARGETING_BUNNY, DATA_FOE_REAPER_BUNNY },
|
||||
{ NPC_PROTOTYPE_REAPER, DATA_PROTOTYPE_REAPER },
|
||||
{ NPC_VANESSAS_TRAP_BUNNY, DATA_VANESSAS_TRAP_BUNNY },
|
||||
{ NPC_VANESSA_ANCHOR_BUNNY_JMF, DATA_VANESSA_ANCHOR_BUNNY },
|
||||
{ 0, 0 } // END
|
||||
{ BOSS_GLUBTOK, DATA_GLUBTOK },
|
||||
{ BOSS_HELIX_GEARBREAKER, DATA_HELIX_GEARBREAKER },
|
||||
{ BOSS_FOE_REAPER_5000, DATA_FOE_REAPER_5000 },
|
||||
{ BOSS_ADMIRAL_RIPSNARL, DATA_ADMIRAL_RIPSNARL },
|
||||
{ BOSS_CAPTAIN_COOKIE, DATA_CAPTAIN_COOKIE },
|
||||
{ BOSS_VANESSA_VAN_CLEEF, DATA_VANESSA_VAN_CLEEF },
|
||||
{ NPC_LUMBERING_OAF, DATA_LUMBERING_OAF },
|
||||
{ NPC_FOE_REAPER_TARGETING_BUNNY, DATA_FOE_REAPER_BUNNY },
|
||||
{ NPC_PROTOTYPE_REAPER, DATA_PROTOTYPE_REAPER },
|
||||
{ NPC_VANESSAS_TRAP_BUNNY, DATA_VANESSAS_TRAP_BUNNY },
|
||||
{ NPC_VANESSA_ANCHOR_BUNNY_JMF, DATA_VANESSA_ANCHOR_BUNNY },
|
||||
{ NPC_VANESSA_VANCLEEF_NIGHTMARE, DATA_VANESSA_VAN_CLEEF_NIGHTMARE },
|
||||
{ NPC_EMME_HARRINGTON, DATA_EMME_HARRINGTON },
|
||||
{ NPC_ERIK_HARRINGTON, DATA_ERIK_HARRINGTON },
|
||||
{ NPC_CALISSA_HARRINGTON, DATA_CALISSA_HARRINGTON },
|
||||
{ 0, 0 } // END
|
||||
};
|
||||
|
||||
ObjectData const gameobjectData[] =
|
||||
@@ -112,7 +119,9 @@ class instance_deadmines : public InstanceMapScript
|
||||
_foeReaper5000Intro = 0;
|
||||
_ironCladDoorState = 0;
|
||||
_vanessaVanCleefEncounterState = 0;
|
||||
_deadPlayers = 0;
|
||||
_activatedVentCounter = 0;
|
||||
_deadEnragedWorgen = 0;
|
||||
_firstCookieSpawn = true;
|
||||
}
|
||||
|
||||
@@ -222,6 +231,20 @@ class instance_deadmines : public InstanceMapScript
|
||||
case NPC_GENERAL_PURPOSE_DUMMY_JMF:
|
||||
if (_vanessaVanCleefEncounterState == NIGHTMARE_STAGE_HELIX)
|
||||
_helixNightmareGuidSet.insert(creature->GetGUID());
|
||||
else
|
||||
_generalPurposeBunnyJMFGuidSet.insert(creature->GetGUID());
|
||||
break;
|
||||
case NPC_FOE_REAPER_5000_NIGHTMARE:
|
||||
case NPC_VANESSA_LIGHTNING_PLATTER:
|
||||
_mechanicalNightmareGuidSet.insert(creature->GetGUID());
|
||||
break;
|
||||
case NPC_RIPSNARL_NIGHTMARE:
|
||||
case NPC_EMME_HARRINGTON:
|
||||
case NPC_ERIK_HARRINGTON:
|
||||
case NPC_CALISSA_HARRINGTON:
|
||||
case NPC_JAMES_HARRINGTON:
|
||||
case NPC_ENRAGED_WORGEN:
|
||||
_ripsnarlNightareGuidSet.insert(creature->GetGUID());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -261,6 +284,10 @@ class instance_deadmines : public InstanceMapScript
|
||||
if (instance->IsHeroic())
|
||||
instance->SummonCreature(NPC_A_NOTE_FROM_VANESSA, noteFromVanessaSpawnPos);
|
||||
break;
|
||||
case DATA_VANESSA_VAN_CLEEF:
|
||||
if (state == FAIL)
|
||||
ResetVanessasNightmare();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -269,7 +296,112 @@ class instance_deadmines : public InstanceMapScript
|
||||
|
||||
void OnUnitDeath(Unit* unit) override
|
||||
{
|
||||
if (unit->GetTypeId() == TYPEID_PLAYER && _vanessaVanCleefEncounterState != NOT_STARTED && _vanessaVanCleefEncounterState != NIGHTMARE_STAGE_DONE)
|
||||
{
|
||||
_deadPlayers++;
|
||||
if (_deadPlayers == instance->GetPlayersCountExceptGMs())
|
||||
ResetVanessasNightmare();
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (unit->GetEntry())
|
||||
{
|
||||
case NPC_ENRAGED_WORGEN:
|
||||
_deadEnragedWorgen++;
|
||||
unit->ToCreature()->DespawnOrUnsummon(Seconds(5));
|
||||
if (_deadEnragedWorgen == 3)
|
||||
{
|
||||
if (Creature* emme = GetCreature(DATA_EMME_HARRINGTON))
|
||||
{
|
||||
emme->CastSpell(emme, SPELL_ADRENALINE, true);
|
||||
emme->DespawnOrUnsummon();
|
||||
_deadEnragedWorgen = 0;
|
||||
events.ScheduleEvent(EVENT_ANNOUNCE_SAVE_ERIK_HARRINGTON, Seconds(4));
|
||||
}
|
||||
else if (Creature* erik = GetCreature(DATA_ERIK_HARRINGTON))
|
||||
{
|
||||
erik->CastSpell(emme, SPELL_ADRENALINE, true);
|
||||
erik->DespawnOrUnsummon();
|
||||
events.ScheduleEvent(EVENT_SUMMON_JAMES_HARRINGTON, Milliseconds(200));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case NPC_JAMES_HARRINGTON:
|
||||
if (Creature* dummy = unit->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 50.0f, true))
|
||||
{
|
||||
dummy->CastSpell(dummy, SPELL_CANCEL_NIGHTMARE_AURA_RIPSNARL, true);
|
||||
dummy->CastSpell(dummy, SPELL_CANCEL_NIGHTMARE_ELIXIR, true);
|
||||
}
|
||||
unit->ToCreature()->DespawnOrUnsummon(Seconds(2) + Milliseconds(300));
|
||||
SetData(DATA_VANESSA_VAN_CLEEF_ENCOUNTER, NIGHTMARE_STAGE_DONE);
|
||||
events.ScheduleEvent(EVENT_ANNOUNCE_ELIXIR_WEARS_OFF, Milliseconds(250));
|
||||
break;
|
||||
case NPC_EMME_HARRINGTON:
|
||||
case NPC_ERIK_HARRINGTON:
|
||||
case NPC_CALISSA_HARRINGTON:
|
||||
unit->CastSpell(unit, SPELL_NIGHTMARES_END, true);
|
||||
ResetVanessasNightmare();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ResetVanessasNightmare()
|
||||
{
|
||||
SetData(DATA_VANESSA_VAN_CLEEF_ENCOUNTER, NOT_STARTED);
|
||||
events.Reset();
|
||||
events.ScheduleEvent(EVENT_SUMMON_NOTE_FROM_VANESSA, Seconds(30));
|
||||
_deadPlayers = 0;
|
||||
_activatedVentCounter = 0;
|
||||
_deadEnragedWorgen = 0;
|
||||
|
||||
if (Creature* trapBunny = GetCreature(DATA_VANESSAS_TRAP_BUNNY))
|
||||
trapBunny->DespawnOrUnsummon(0, Seconds(30));
|
||||
|
||||
if (Creature* anchorBunny = GetCreature(DATA_VANESSA_ANCHOR_BUNNY))
|
||||
anchorBunny->DespawnOrUnsummon(0, Seconds(30));
|
||||
|
||||
if (!_steamValveGuidSet.empty())
|
||||
for (auto itr = _steamValveGuidSet.begin(); itr != _steamValveGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
creature->DespawnOrUnsummon();
|
||||
|
||||
if (!_glubtokNightmareGuidSet.empty())
|
||||
for (auto itr = _glubtokNightmareGuidSet.begin(); itr != _glubtokNightmareGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
creature->DespawnOrUnsummon();
|
||||
|
||||
if (!_helixNightmareGuidSet.empty())
|
||||
for (auto itr = _helixNightmareGuidSet.begin(); itr != _helixNightmareGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
creature->DespawnOrUnsummon();
|
||||
|
||||
if (!_mechanicalNightmareGuidSet.empty())
|
||||
for (auto itr = _mechanicalNightmareGuidSet.begin(); itr != _mechanicalNightmareGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
creature->DespawnOrUnsummon();
|
||||
|
||||
if (!_ripsnarlNightareGuidSet.empty())
|
||||
for (auto itr = _ripsnarlNightareGuidSet.begin(); itr != _ripsnarlNightareGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
creature->DespawnOrUnsummon();
|
||||
|
||||
if (Creature* vanessa = GetCreature(DATA_VANESSA_VAN_CLEEF_NIGHTMARE))
|
||||
vanessa->DespawnOrUnsummon();
|
||||
|
||||
_steamValveGuidSet.clear();
|
||||
_glubtokNightmareGuidSet.clear();
|
||||
_helixNightmareGuidSet.clear();
|
||||
_mechanicalNightmareGuidSet.clear();
|
||||
_ripsnarlNightareGuidSet.clear();
|
||||
|
||||
if (GameObject* foundryDoor = GetGameObject(DATA_FOUNDRY_DOOR))
|
||||
foundryDoor->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
if (GameObject* foundryDoor = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
foundryDoor->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
@@ -316,15 +448,17 @@ class instance_deadmines : public InstanceMapScript
|
||||
{
|
||||
case IN_PROGRESS:
|
||||
instance->SummonCreature(NPC_VANESSA_VAN_CLEEF_INTRO, vanessaVanCleefSpawnPos);
|
||||
if (GameObject* foundryDoor = GetGameObject(DATA_FOUNDRY_DOOR))
|
||||
foundryDoor->SetGoState(GO_STATE_READY);
|
||||
|
||||
if (GameObject* foundryDoor = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
foundryDoor->SetGoState(GO_STATE_READY);
|
||||
|
||||
break;
|
||||
case NIGHTMARE_STATE_PREPARE_TRAP:
|
||||
if (Creature* trapBunny = GetCreature(DATA_VANESSAS_TRAP_BUNNY))
|
||||
if (Creature* anchorBunny = GetCreature(DATA_VANESSA_ANCHOR_BUNNY))
|
||||
{
|
||||
trapBunny->Respawn();
|
||||
anchorBunny->Respawn();
|
||||
anchorBunny->CastSpell(trapBunny, SPELL_ROPE_BEAM, true);
|
||||
}
|
||||
break;
|
||||
case NIGHTMARE_STAGE_MAGMA_TRAP:
|
||||
if (Creature* trapBunny = GetCreature(DATA_VANESSAS_TRAP_BUNNY))
|
||||
@@ -341,6 +475,9 @@ class instance_deadmines : public InstanceMapScript
|
||||
case NIGHTMARE_STAGE_FOE_REAPER:
|
||||
events.ScheduleEvent(EVENT_DESPAWN_NIGHTMARE_SPIDERS, Seconds(2));
|
||||
break;
|
||||
case NIGHTMARE_STAGE_RIPSNARL:
|
||||
events.ScheduleEvent(EVENT_CAST_NIGHTMARE_AURA_4, Seconds(2) + Milliseconds(500));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -411,6 +548,9 @@ class instance_deadmines : public InstanceMapScript
|
||||
_firstCookieSpawn = false;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_NOTE_FROM_VANESSA:
|
||||
instance->SummonCreature(NPC_A_NOTE_FROM_VANESSA, noteFromVanessaSpawnPos);
|
||||
break;
|
||||
case EVENT_CAST_NIGHTMARE_AURA_1:
|
||||
if (Creature* trapBunny = GetCreature(DATA_VANESSAS_TRAP_BUNNY))
|
||||
if (Creature* purposeBunny = trapBunny->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 50.0f, true))
|
||||
@@ -523,6 +663,95 @@ class instance_deadmines : public InstanceMapScript
|
||||
reaper->RemoveAurasDueToSpell(SPELL_OFF_LINE);
|
||||
}
|
||||
break;
|
||||
case EVENT_CAST_NIGHTMARE_AURA_4:
|
||||
if (GameObject* door = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
if (Creature* purposeBunny = door->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 50.0f, true))
|
||||
{
|
||||
purposeBunny->CastSpell(purposeBunny, SPELL_CANCEL_NIGHTMARE_AURA_MECHANICAL, true);
|
||||
purposeBunny->CastSpell(purposeBunny, SPELL_NIGHTMARE_AURA, true);
|
||||
purposeBunny->CastSpell(purposeBunny, SPELL_NIGHTMARE_SLOW, true);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_DESPAWN_LIGHTNING_PLATTERS, Milliseconds(50));
|
||||
break;
|
||||
case EVENT_DESPAWN_LIGHTNING_PLATTERS:
|
||||
for (auto itr = _mechanicalNightmareGuidSet.begin(); itr != _mechanicalNightmareGuidSet.end(); itr++)
|
||||
if (Creature* creature = instance->GetCreature(*itr))
|
||||
if (creature->GetEntry() != NPC_FOE_REAPER_5000_NIGHTMARE)
|
||||
creature->DespawnOrUnsummon();
|
||||
events.ScheduleEvent(EVENT_NIGHTMARE_SHIFTS_2, Milliseconds(150));
|
||||
events.ScheduleEvent(EVENT_SETUP_RIPSNARL_NIGHTMARE, Seconds(2) + Milliseconds(600));
|
||||
break;
|
||||
case EVENT_SETUP_RIPSNARL_NIGHTMARE:
|
||||
instance->SummonCreature(NPC_RIPSNARL_NIGHTMARE, RipsnarlNightmareIntroSpawnPos);
|
||||
instance->SummonCreature(NPC_VANESSA_VANCLEEF_NIGHTMARE, vanessaVanCleefNightmareSpawnPos[3]);
|
||||
events.ScheduleEvent(EVENT_OPEN_IRON_CLAD_DOOR, Seconds(14) + Milliseconds(400));
|
||||
break;
|
||||
case EVENT_NIGHTMARE_SHIFTS_2:
|
||||
if (GameObject* door = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
if (Creature* purposeBunny = door->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 50.0f, true))
|
||||
purposeBunny->AI()->Talk(SAY_ANNOUNCE_NIGHTMARE_SHIFTS);
|
||||
break;
|
||||
case EVENT_OPEN_IRON_CLAD_DOOR:
|
||||
if (GameObject* door = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
door->SetGoState(GO_STATE_ACTIVE);
|
||||
|
||||
instance->SummonCreature(NPC_EMME_HARRINGTON, EmmeHarringtonSpawnPos);
|
||||
for (uint8 i = 0; i < 3; i++)
|
||||
instance->SummonCreature(NPC_ENRAGED_WORGEN, EnragedWorgenEmmeSpawnPos[i]);
|
||||
|
||||
events.ScheduleEvent(EVENT_ANNOUNCE_SAVE_EMME_HARRINGTON, Seconds(3) + Milliseconds(500));
|
||||
break;
|
||||
case EVENT_ANNOUNCE_SAVE_EMME_HARRINGTON:
|
||||
if (GameObject* door = GetGameObject(DATA_IRON_CLAD_DOOR))
|
||||
if (Creature* purposeBunny = door->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 20.0f, true))
|
||||
purposeBunny->AI()->Talk(SAY_ANNOUNCE_SAVE_EMME_HARRINGTON);
|
||||
break;
|
||||
case EVENT_ANNOUNCE_SAVE_ERIK_HARRINGTON:
|
||||
for (auto itr = _generalPurposeBunnyJMFGuidSet.begin(); itr != _generalPurposeBunnyJMFGuidSet.end(); itr++)
|
||||
if (Creature* purposeBunny = instance->GetCreature(*itr))
|
||||
if (purposeBunny->GetDistance(EmmeHarringtonSpawnPos) <= 40.0f)
|
||||
{
|
||||
purposeBunny->AI()->Talk(SAY_ANNOUNCE_SAVE_ERIK_HARRINGTON);
|
||||
events.ScheduleEvent(EVENT_SUMMON_ERIK_HARRINGTON, Seconds(1) + Milliseconds(800));
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_SUMMON_ERIK_HARRINGTON:
|
||||
instance->SummonCreature(NPC_ERIK_HARRINGTON, ErikHarringtonSpawnPos);
|
||||
for (uint8 i = 0; i < 3; i++)
|
||||
instance->SummonCreature(NPC_ENRAGED_WORGEN, EnragedWorgenErikSpawnPos[i]);
|
||||
break;
|
||||
case EVENT_SUMMON_JAMES_HARRINGTON:
|
||||
if (Creature* james = instance->SummonCreature(NPC_JAMES_HARRINGTON, JamesHarringtonSpawnPos))
|
||||
if (Creature* calissa = instance->SummonCreature(NPC_CALISSA_HARRINGTON, CalissaHarringtonSpawnPos))
|
||||
{
|
||||
james->SetReactState(REACT_PASSIVE);
|
||||
calissa->CastSpell(james, VEHICLE_SPELL_RIDE_HARDCODED, true);
|
||||
calissa->SetInCombatWith(james);
|
||||
}
|
||||
events.ScheduleEvent(EVENT_ANNOUNCE_SAVE_CALISSA_HARRINGTON, Seconds(3) + Milliseconds(400));
|
||||
break;
|
||||
case EVENT_ANNOUNCE_SAVE_CALISSA_HARRINGTON:
|
||||
for (auto itr = _generalPurposeBunnyJMFGuidSet.begin(); itr != _generalPurposeBunnyJMFGuidSet.end(); itr++)
|
||||
if (Creature* purposeBunny = instance->GetCreature(*itr))
|
||||
if (purposeBunny->GetDistance(CalissaHarringtonSpawnPos) <= 100.0f)
|
||||
{
|
||||
purposeBunny->AI()->Talk(SAY_ANNOUNCE_SAVE_CALISSA_HARRINGTON);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case EVENT_ANNOUNCE_ELIXIR_WEARS_OFF:
|
||||
if (Creature* calissa = GetCreature(DATA_ADMIRAL_RIPSNARL))
|
||||
if (Creature* purposeBunny = calissa->FindNearestCreature(NPC_GENERAL_PURPOSE_DUMMY_JMF, 100.0f, true))
|
||||
{
|
||||
purposeBunny->AI()->Talk(SAY_ANNOUNCE_NIGHTMARE_ELIXIR_WEARS_OFF);
|
||||
calissa->DespawnOrUnsummon(Seconds(2) + Milliseconds(200));
|
||||
}
|
||||
events.ScheduleEvent(EVENT_SUMMON_VANESSA_VANCLEEF_BOSS, Seconds(2));
|
||||
break;
|
||||
case EVENT_SUMMON_VANESSA_VANCLEEF_BOSS:
|
||||
instance->SummonCreature(BOSS_VANESSA_VAN_CLEEF, bossVanessaVanCleefSpawnPos);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -532,14 +761,19 @@ class instance_deadmines : public InstanceMapScript
|
||||
protected:
|
||||
EventMap events;
|
||||
uint8 _activatedVentCounter;
|
||||
uint8 _deadPlayers;
|
||||
uint8 _deadEnragedWorgen;
|
||||
uint32 _teamInInstance;
|
||||
uint32 _foeReaper5000Intro;
|
||||
uint32 _ironCladDoorState;
|
||||
uint32 _vanessaVanCleefEncounterState;
|
||||
GuidSet _generalPurposeBunnyJMF2GuidSet;
|
||||
GuidSet _generalPurposeBunnyJMFGuidSet;
|
||||
GuidSet _steamValveGuidSet;
|
||||
GuidSet _glubtokNightmareGuidSet;
|
||||
GuidSet _helixNightmareGuidSet;
|
||||
GuidSet _mechanicalNightmareGuidSet;
|
||||
GuidSet _ripsnarlNightareGuidSet;
|
||||
bool _firstCookieSpawn;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user