15 Commits
27 changed files with 4801 additions and 83 deletions
@@ -0,0 +1,3 @@
-- DBErrors Fixes
UPDATE `creature_template` SET `unit_flags3`=0, `AIName`='SmartAI' WHERE `entry`=50009;
@@ -0,0 +1,730 @@
Replace INTO `class_expansion_requirement` (`ClassID`, `RaceID`, `ActiveExpansionLevel`, `AccountExpansionLevel`) VALUES
(1, 86, 11, 11),
(3, 86, 11, 11),
(4, 86, 11, 11),
(5, 86, 11, 11),
(7, 86, 11, 11),
(8, 86, 11, 11),
(9, 86, 11, 11),
(10, 86, 11, 11),
(11, 86, 11, 11),
(1, 91, 11, 11),
(3, 91, 11, 11),
(4, 91, 11, 11),
(5, 91, 11, 11),
(7, 91, 11, 11),
(8, 91, 11, 11),
(9, 91, 11, 11),
(10, 91, 11, 11),
(11, 91, 11, 11);
DELETE FROM `areatrigger_template` WHERE (`IsCustom`=0 AND `Id` IN (41907,38032));
INSERT INTO `areatrigger_template` (`Id`, `IsCustom`, `VerifiedBuild`) VALUES
(41907, 0, 69587),
(38032, 0, 69587);
DELETE FROM `areatrigger_create_properties` WHERE (`IsCustom`=0 AND `Id` IN (40681,35980));
INSERT INTO `areatrigger_create_properties` (`Id`, `IsCustom`, `AreaTriggerId`, `IsAreatriggerCustom`, `Flags`, `MoveCurveId`, `ScaleCurveId`, `MorphCurveId`, `FacingCurveId`, `AnimId`, `AnimKitId`, `DecalPropertiesId`, `SpellForVisuals`, `TimeToTargetScale`, `Speed`, `Shape`, `ShapeData0`, `ShapeData1`, `ShapeData2`, `ShapeData3`, `ShapeData4`, `ShapeData5`, `ShapeData6`, `ShapeData7`, `VerifiedBuild`) VALUES
(40681, 0, 41907, 0, 0, 0, 0, 0, 0, -1, 0, 0, NULL, 10000, 4.999179363250732421, 0, 1.75, 1.75, 0, 0, 0, 0, 0, 0, 69587), -- Spell: 1269647 (Devouring Entropy)
(35980, 0, 38032, 0, 0, 0, 0, 0, 0, -1, 0, 0, NULL, 5000, 10, 0, 4, 4, 0, 0, 0, 0, 0, 0, 69587); -- Spell: 1215163 (Unstable Void)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.66826057434082031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.66826057434082031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.66826057434082031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.66826057434082031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.51486015319824218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51486015319824218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51486015319824218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51486015319824218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.54998779296875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=8537 AND `IsCustom`=0); -- Spell: 192078 (Wind Rush Totem)
UPDATE `areatrigger_create_properties` SET `Speed`=21.01610565185546875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.93652153015136718 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.64945602416992187 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.92512321472167968 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.05819892883300781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.0711212158203125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.06948089599609375 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=24.8322296142578125 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.62921142578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.62921142578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.98442649841308593 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.61292266845703125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10051, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10051, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.56075668334960937 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.61429023742675781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=24.84916496276855468 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.75861740112304687 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=7.951923370361328125 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=7.951923370361328125 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.54524612426757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.54524612426757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.54524612426757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.75132560729980468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.75132560729980468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.75132560729980468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.7589263916015625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10051, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Flags`=2 WHERE (`Id`=8537 AND `IsCustom`=0); -- Spell: 192078 (Wind Rush Totem)
UPDATE `areatrigger_create_properties` SET `Speed`=20.5117950439453125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.5117950439453125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=24.97653579711914062 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51172065734863281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=8.010634422302246093 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51966667175292968 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.52676582336425781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.5892791748046875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.56698989868164062 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.5400543212890625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51438140869140625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=24.98893356323242187 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10051, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.54406547546386718 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.513946533203125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.5526275634765625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51995658874511718 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51995658874511718 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.52622032165527343 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.61790657043457031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=24.9774932861328125 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.52642059326171875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.5264129638671875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.53188896179199218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51985549926757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51985549926757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51985549926757812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.51294326782226562 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.51265907287597656 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51265907287597656 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.2734222412109375 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=24.98508262634277343 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.55668449401855468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.55668449401855468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.55668449401855468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.55668449401855468 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=21.38472747802734375 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.56468391418457031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.56468391418457031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.01074409484863281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.35652351379394531 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.46062850952148437 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.58493804931640625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=24.97778892517089843 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.58233642578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.7557525634765625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.56993865966796875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=21.16781425476074218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.38837623596191406 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.93618011474609375 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.92288017272949218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.63421058654785156 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.6171875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.57087898254394531 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.57087898254394531 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10051, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.57087898254394531 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.57087898254394531 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.59078407287597656 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.24767494201660156 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=24.98542594909667968 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.08355712890625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.71363639831542968 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.71363639831542968 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.73115921020507812 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=21.05309104919433593 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.77570152282714843 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=8.007767677307128906 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.757843017578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.757843017578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.757843017578125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.48163032531738281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.65552902221679687 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.95428466796875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.69420814514160156 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=7715, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.56156539916992187 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.52124786376953125 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.57003974914550781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51493072509765625 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.51293563842773437 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.52379226684570312 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.525360107421875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10000 WHERE (`Id`=30554 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=24.9893646240234375 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.48260688781738281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.48260688781738281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=20.51958465576171875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.80017471313476562 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.80017471313476562 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=8.003375053405761718 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.55296897888183593 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10000 WHERE (`Id`=30554 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.52597618103027343 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.53114891052246093 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=24.97838020324707031 WHERE (`Id`=35566 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.67998504638671875 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=20.65458869934082031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=10000 WHERE (`Id`=30554 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.59332466125488281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.66586112976074218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.66586112976074218 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.52265548706054687 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.82614326477050781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.82614326477050781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.82614326477050781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.65041160583496093 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=20.63676834106445312 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 26573 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=21.07078742980957031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.07078742980957031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.07078742980957031 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.00195503234863281 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Speed`=7.577052116394042968 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
UPDATE `areatrigger_create_properties` SET `Speed`=20.57736396789550781 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=8.00396728515625 WHERE (`Id`=33519 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Speed`=21.10961532592773437 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `Flags`=5, `ShapeData0`=12, `ShapeData1`=12 WHERE (`Id`=4658 AND `IsCustom`=0); -- Spell: 1248829 (Blizzard)
UPDATE `areatrigger_create_properties` SET `Flags`=0, `TimeToTargetScale`=14000 WHERE (`Id`=4488 AND `IsCustom`=0); -- Spell: 382484 (Consecration)
UPDATE `areatrigger_create_properties` SET `Speed`=21.07928848266601562 WHERE (`Id`=6006 AND `IsCustom`=0);
UPDATE `areatrigger_create_properties` SET `TimeToTargetScale`=8000 WHERE (`Id`=37932 AND `IsCustom`=0); -- Spell: 198034 (Divine Hammer)
REPLACE INTO `areatrigger_create_properties_spline_point` (`AreaTriggerCreatePropertiesId`, `IsCustom`, `Idx`, `X`, `Y`, `Z`, `VerifiedBuild`) VALUES
(40681, 0, 3, 29.1904296875, -0.00000255190843745, 0, 69587), -- Spell: 1269647 (Devouring Entropy)
(40681, 0, 2, 29.1904296875, -0.00000255190843745, 0, 69587), -- Spell: 1269647 (Devouring Entropy)
(40681, 0, 1, -0, -0, 0, 69587), -- Spell: 1269647 (Devouring Entropy)
(40681, 0, 0, -0, -0, 0, 69587); -- Spell: 1269647 (Devouring Entropy)
DELETE FROM `conversation_line_template` WHERE `Id` IN (82346, 82345);
INSERT INTO `conversation_line_template` (`Id`, `UiCameraID`, `ActorIdx`, `Flags`, `ChatType`, `VerifiedBuild`) VALUES
(82346, 0, 0, 0, 0, 69587),
(82345, 0, 0, 0, 0, 69587);
DELETE FROM `conversation_template` WHERE `Id`=29806;
INSERT INTO `conversation_template` (`Id`, `FirstLineID`, `TextureKitId`, `VerifiedBuild`) VALUES
(29806, 82345, 0, 69587);
DELETE FROM `ui_map_quest` WHERE (`UIMapId`=2393 AND `QuestId`=92195);
INSERT INTO `ui_map_quest` (`UIMapId`, `QuestId`, `VerifiedBuild`) VALUES
(2393, 92195, 69587); -- Come On Down
DELETE FROM `world_quest_template` WHERE `QuestID` IN (51891 /*Sythian the Swift*/, 58595 /*Pillars of Oblivion*/, 56383 /*Silence*/, 58207 /*Buggin' Out*/, 60858 /*Flight School: Up and Away!*/, 92583 /*Fungicide*/, 56041 /*Give 'Em Shell*/, 51284 /*Falcon Hunt*/, 52309 /*SandFang*/, 60770 /*Squish and Burn*/, 50853 /*Umbra'rix*/, 51897 /*Rimestone*/, 51617 /*Azerite Empowerment*/, 50295 /*Like Pulling Teeth*/, 71241 /*Duck, Duck, Trap*/, 54668 /*Out of Their Mine*/, 53963 /*Naga Attack!*/, 48728 /*Umbraliss*/, 58462 /*Windows to the Soul*/, 91998 /*WANTED: Muckmire's Choking Vines*/, 54841 /*Orwell Stevenson*/, 57379 /*Infested Jade Statue*/, 52009 /*Crab People*/, 56178 /*Void Conduit*/, 55719 /*Requisition: A Few Starfish*/, 92195 /*Come On Down*/, 54823 /*Aman*/, 50868 /*Bramblewing*/, 54833 /*Scalefiend*/, 50564 /*Azerite Infused Slag*/, 58290 /*Champions of the Amathet*/, 51179 /*Azerite Madness*/, 55355 /*Lightblade Training Grounds*/, 52754 /*Marshdwellers*/, 51625 /*Shell Game*/, 50885 /*Lei-zhi*/, 65798 /*An Opportunistic Approach*/, 51106 /*Songstress Nahjeen*/, 51127 /*Getting Out of Hand*/, 92731 /*Artificing Aggression*/, 59902 /*A Curious Cache*/, 51584 /*Azerite Madness*/, 55786 /*Requisition: More Seaweed*/, 54676 /*Shards of Narassin*/, 50506 /*King Kooba*/, 46264 /*Their Eyes Are Upon Us*/, 58281 /*Ancient Armaments*/, 75991 /*What Could Have Been*/, 48831 /*Commander Texlaz*/, 43475 /*Experimental Potion: Test Subjects Needed*/, 48730 /*Sorolis the Ill-Fated*/, 58287 /*A Smashing Plan*/, 52874 /*Azerite Mining*/, 55357 /*Beacon of the Sun King*/, 52891 /*Wendigo to Sleep*/, 48726 /*Turek the Lucid*/, 48829 /*Wrath-Lord Yarez*/, 50747 /*No Good Amani*/, 57215 /*Engine of Ascension*/, 51109 /*Scorched Earth*/);
INSERT INTO `world_quest_template` (`QuestID`, `Duration`, `VariableID`, `Value`) VALUES
(51891, 86400, 15564, 1), -- Sythian the Swift
(58595, 86400, 18542, 4), -- Pillars of Oblivion
(56383, 86400, 17787, 3), -- Silence
(58207, 86400, 18289, 1), -- Buggin' Out
(60858, 86400, 19497, 1), -- Flight School: Up and Away!
(92583, 302400, 29170, 1), -- Fungicide
(56041, 86400, 17688, 1), -- Give 'Em Shell
(51284, 86400, 15766, 2), -- Falcon Hunt
(52309, 86400, 15738, 1), -- SandFang
(60770, 86400, 19457, 1), -- Squish and Burn
(50853, 86400, 14943, 1), -- Umbra'rix
(51897, 86400, 15570, 1), -- Rimestone
(51617, 86400, 15726, 4), -- Azerite Empowerment
(50295, 86400, 14729, 1), -- Like Pulling Teeth
(71241, 270000, 22313, 1), -- Duck, Duck, Trap
(54668, 86400, 17062, 1), -- Out of Their Mine
(53963, 86400, 16483, 1), -- Naga Attack!
(48728, 86400, 14178, 1), -- Umbraliss
(58462, 86400, 18541, 4), -- Windows to the Soul
(91998, 86400, 29479, 1), -- WANTED: Muckmire's Choking Vines
(54841, 86400, 17035, 1), -- Orwell Stevenson
(57379, 86400, 18170, 1), -- Infested Jade Statue
(52009, 86400, 15608, 1), -- Crab People
(56178, 86400, 18095, 1), -- Void Conduit
(55719, 86400, 17441, 1), -- Requisition: A Few Starfish
(92195, 302400, 29587, 1), -- Come On Down
(54823, 86400, 17017, 1), -- Aman
(50868, 86400, 14956, 1), -- Bramblewing
(54833, 86400, 17028, 1), -- Scalefiend
(50564, 86400, 14814, 1), -- Azerite Infused Slag
(58290, 86400, 18450, 2), -- Champions of the Amathet
(51179, 86400, 15753, 3), -- Azerite Madness
(55355, 86400, 18464, 1), -- Lightblade Training Grounds
(52754, 86400, 15874, 1), -- Marshdwellers
(51625, 86400, 15295, 1), -- Shell Game
(50885, 86400, 15117, 1), -- Lei-zhi
(65798, 270000, 22311, 1), -- An Opportunistic Approach
(51106, 86400, 15082, 1), -- Songstress Nahjeen
(51127, 86400, 14992, 1), -- Getting Out of Hand
(92731, 302400, 29847, 1), -- Artificing Aggression
(59902, 86400, 19148, 1), -- A Curious Cache
(51584, 86400, 15761, 3), -- Azerite Madness
(55786, 86400, 17459, 1), -- Requisition: More Seaweed
(54676, 86400, 17068, 1), -- Shards of Narassin
(50506, 86400, 14801, 1), -- King Kooba
(46264, 21600, 13005, 1), -- Their Eyes Are Upon Us
(58281, 86400, 18448, 1), -- Ancient Armaments
(75991, 86400, 23887, 1), -- What Could Have Been
(48831, 86400, 14213, 1), -- Commander Texlaz
(43475, 86400, 12222, 1), -- Experimental Potion: Test Subjects Needed
(48730, 86400, 14180, 1), -- Sorolis the Ill-Fated
(58287, 86400, 18449, 3), -- A Smashing Plan
(52874, 86400, 15939, 1), -- Azerite Mining
(55357, 86400, 18459, 1), -- Beacon of the Sun King
(52891, 86400, 15977, 1), -- Wendigo to Sleep
(48726, 86400, 14176, 1), -- Turek the Lucid
(48829, 86400, 14211, 1), -- Wrath-Lord Yarez
(50747, 86400, 14923, 1), -- No Good Amani
(57215, 86400, 18466, 1), -- Engine of Ascension
(51109, 86400, 14998, 2); -- Scorched Earth
UPDATE `world_quest_template` SET `VariableID`=14244 WHERE `QuestID`=49099; -- Invasion Point: Bonich
UPDATE `world_quest_template` SET `VariableID`=14060 WHERE `QuestID`=49096; -- Invasion Point: Naigtal
DELETE FROM `creature_template_addon` WHERE `entry` IN (266530 /*266530 (Apprentice Magister)*/, 266525 /*266525 (Sin'dorei Magister)*/, 266528 /*266528 (Ren'dorei Magister)*/, 266526 /*266526 (Quel'dorei Magister)*/);
INSERT INTO `creature_template_addon` (`entry`, `PathId`, `mount`, `StandState`, `AnimTier`, `VisFlags`, `SheathState`, `PvpFlags`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
(266530, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 266530 (Apprentice Magister)
(266525, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 266525 (Sin'dorei Magister)
(266528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''), -- 266528 (Ren'dorei Magister)
(266526, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ''); -- 266526 (Quel'dorei Magister)
DELETE FROM `creature_template_difficulty` WHERE (`DifficultyID`=1 AND `Entry` IN (250041,249992,249990,249993,249991,240008));
INSERT INTO `creature_template_difficulty` (`Entry`, `DifficultyID`, `HealthScalingExpansion`, `HealthModifier`, `ManaModifier`, `CreatureDifficultyID`, `TypeFlags`, `TypeFlags2`, `TypeFlags3`) VALUES
(250041, 1, 11, 1, 1, 329634, 0x40200048, 34, 0), -- Path Helper
(249992, 1, 11, 1, 1, 329585, 0x40200048, 34, 0), -- Path Helper
(249990, 1, 11, 1, 1, 329583, 0x40200048, 34, 0), -- Path Helper
(249993, 1, 11, 1, 1, 329586, 0x40200048, 34, 0), -- Path Helper
(249991, 1, 11, 1, 1, 329584, 0x40200048, 34, 0), -- Path Helper
(240008, 1, 11, 1, 1, 319167, 0x0, 0, 0); -- Rabbit
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=11, `HealthModifier`=8, `ManaModifier`=17.55279922485351562, `CreatureDifficultyID`=314631, `TypeFlags`=0x60000410, `TypeFlags2`=134 WHERE (`Entry`=235846 AND `DifficultyID`=1); -- Unstable Void Stalker
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=11, `HealthModifier`=8, `ManaModifier`=17.55279922485351562, `CreatureDifficultyID`=314259, `TypeFlags`=0x60000410, `TypeFlags2`=134 WHERE (`Entry`=235476 AND `DifficultyID`=1); -- Void Mote Socket
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=11 WHERE (`Entry`=44199 AND `DifficultyID`=1); -- Ring of Frost
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=11 WHERE (`Entry`=53006 AND `DifficultyID`=1); -- Spirit Link Totem
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=11 WHERE (`Entry`=5913 AND `DifficultyID`=1); -- Tremor Totem
UPDATE `gameobject_template` SET `IconName`='' WHERE `entry`=523594;
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,47 @@
UPDATE `creature_template` SET `RequiredExpansion`=0 WHERE `entry`=227773;
UPDATE `creature_template_addon` SET `auras`='61854 1313800' WHERE `entry`=273762;
UPDATE `creature` SET `PhaseGroup`=0 WHERE `guid`=675019;
UPDATE `creature` SET `PhaseGroup`=0 WHERE `guid`=675020;
UPDATE `creature` SET `PhaseGroup`=0 WHERE `guid`=675637;
UPDATE `gameobject` SET `PhaseGroup`=0 WHERE `PhaseGroup`=303;
DELETE FROM creature_quest_currency where currencyid = 3252;
UPDATE `creature_template` SET `ScriptName`='npc_void_mote_socket' WHERE `entry`=235476;
UPDATE `creature_template` SET `ScriptName`='npc_arcane_magister_sentinel' WHERE `entry`=241326;
UPDATE `creature_template` SET `ScriptName`='npc_lightward_healer_sentinel' WHERE `entry`=241324;
UPDATE `creature_template` SET `ScriptName`='npc_sunblade_enforcer_sentinel' WHERE `entry`=241325;
UPDATE `creature_template` SET `ScriptName`='npc_magister_umbric' WHERE `entry`=234148;
UPDATE `creature_template` SET `ScriptName`='npc_unstable_void_stalker' WHERE `entry`=235846;
UPDATE `creature_template` SET `ScriptName`='npc_void_portal' WHERE `entry` IN (255613, 255616);
DELETE FROM `instance_template` WHERE `map`=2923;
INSERT INTO `instance_template` (`map`, `parent`, `script`, `insideResurrection`) VALUES (2923, 0, 'instance_voidscar_arena', 0);
-- Bosses
UPDATE `creature_template` SET `ScriptName`='boss_atroxus' WHERE `entry`=239008;
UPDATE `creature_template` SET `ScriptName`='boss_aegyra_the_unyielding' WHERE `entry`=267545;
UPDATE `creature_template` SET `ScriptName`='boss_brutok' WHERE `entry`=244309;
UPDATE `creature_template` SET `ScriptName`='boss_brutal_overseer' WHERE `entry`=252053;
UPDATE `creature_template` SET `ScriptName`='boss_devouring_brutalizer' WHERE `entry`=268184;
UPDATE `creature_template` SET `ScriptName`='boss_watchful_harrower' WHERE `entry`=245950;
UPDATE `creature_template` SET `ScriptName`='boss_tazrah' WHERE `entry`=238887;
UPDATE `creature_template` SET `ScriptName`='boss_charonus' WHERE `entry`=239167;
-- Boss helpers
UPDATE `creature_template` SET `ScriptName`='npc_champions_spear' WHERE `entry`=267550;
UPDATE `creature_template` SET `ScriptName`='npc_targeting_stalker' WHERE `entry`=255000;
UPDATE `creature_template` SET `ScriptName`='npc_gravitic_orb' WHERE `entry`=255001;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_ethereal_shade' WHERE `entry`=254677;
-- Trash
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_voidminder' WHERE `entry`=244708;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_longtooth_tuskarr' WHERE `entry`=243985;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_sycophantic_tarasek' WHERE `entry`=243983;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_dominated_brawler' WHERE `entry`=238883;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_protective_turtle' WHERE `entry`=249603;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_kilivore_screamer' WHERE `entry`=243766;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_chitigoth' WHERE `entry`=244260;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_toxic_creeper' WHERE `entry`=239070;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_abducted_drakonid' WHERE `entry`=249461;
UPDATE `creature_template` SET `ScriptName`='npc_voidscar_raging_raptor' WHERE `entry`=249608;
+58 -2
View File
@@ -2997,8 +2997,12 @@ Position Creature::GetRespawnPosition(float* dist) const
void Creature::InitializeMovementCapabilities()
{
SetHover(GetMovementTemplate().IsHoverInitiallyEnabled());
SetDisableGravity(IsFloating());
SetControlled(IsSessile(), UNIT_STATE_ROOT);
// CREATURE_STATIC_FLAG_FLOATING disables gravity and plays hover anim
UpdateFloatingMovementFlags();
// CREATURE_STATIC_FLAG_SESSILE disables gravity and applies root
UpdateSessileMovementFlags();
if (CanOnlySwimIfTargetSwims())
{
@@ -3033,6 +3037,58 @@ void Creature::UpdateMovementCapabilities()
SetSwim(false);
}
void Creature::SetFloating(bool floating)
{
_staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_FLOATING, floating);
UpdateFloatingMovementFlags();
}
void Creature::UpdateFloatingMovementFlags()
{
if (IsFloating())
SetDisableGravity(true, false);
else
{
if (IsSessile() ||
HasAuraType(SPELL_AURA_MOD_ROOT_DISABLE_GRAVITY) ||
HasAuraType(SPELL_AURA_MOD_STUN_DISABLE_GRAVITY) ||
HasAuraType(SPELL_AURA_DISABLE_GRAVITY))
return;
SetDisableGravity(false, false);
}
}
void Creature::SetSessile(bool sessile)
{
_staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_SESSILE, sessile);
UpdateSessileMovementFlags();
}
void Creature::UpdateSessileMovementFlags()
{
if (IsSessile())
{
SetControlled(true, UNIT_STATE_ROOT);
SetDisableGravity(true, false, false);
}
else
{
if (!HasAuraType(SPELL_AURA_MOD_ROOT_DISABLE_GRAVITY))
return;
if (!HasAuraType(SPELL_AURA_MOD_ROOT))
SetControlled(false, UNIT_STATE_ROOT);
if (IsFloating() ||
HasAuraType(SPELL_AURA_MOD_STUN_DISABLE_GRAVITY) ||
HasAuraType(SPELL_AURA_DISABLE_GRAVITY))
return;
SetDisableGravity(false, false, false);
}
}
CreatureMovementData const& Creature::GetMovementTemplate() const
{
if (CreatureMovementData const* movementOverride = sObjectMgr->GetCreatureMovementOverride(m_spawnId))
+8 -2
View File
@@ -143,11 +143,17 @@ class TC_GAME_API Creature : public Unit, public GridObject<Creature>, public Ma
// Returns true if CREATURE_STATIC_FLAG_FLOATING is set which is disabling the gravity of the creature on spawn and reset
bool IsFloating() const { return _staticFlags.HasFlag(CREATURE_STATIC_FLAG_FLOATING); }
void SetFloating(bool floating) { _staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_FLOATING, floating); SetDisableGravity(floating); }
void SetFloating(bool floating);
// Enables or disables gravity and starts playing hover animations depending on wether CREATURE_STATIC_FLAG_FLOATING is set or not
void UpdateFloatingMovementFlags();
// Returns true if CREATURE_STATIC_FLAG_SESSILE is set which permanently roots the creature in place
bool IsSessile() const { return _staticFlags.HasFlag(CREATURE_STATIC_FLAG_SESSILE); }
void SetSessile(bool sessile) { _staticFlags.ApplyFlag(CREATURE_STATIC_FLAG_SESSILE, sessile); SetControlled(sessile, UNIT_STATE_ROOT); }
void SetSessile(bool sessile);
// Enables or disables gravity and root movement flags depending on wether CREATURE_STATIC_FLAG_SESSILE is set or not
void UpdateSessileMovementFlags();
// Returns true if CREATURE_STATIC_FLAG_3_CANNOT_PENETRATE_WATER is set which does not allow the creature to go below liquid surfaces
bool CannotPenetrateWater() const { return _staticFlags.HasFlag(CREATURE_STATIC_FLAG_3_CANNOT_PENETRATE_WATER); }
+2 -2
View File
@@ -14136,7 +14136,7 @@ bool Unit::SetWalk(bool enable)
return true;
}
bool Unit::SetDisableGravity(bool disable, bool updateAnimTier /*= true*/)
bool Unit::SetDisableGravity(bool disable, bool updateAnimTier /*= true*/, bool updatePlayHoverAnim /*= true*/)
{
if (disable == IsGravityDisabled())
return false;
@@ -14173,7 +14173,7 @@ bool Unit::SetDisableGravity(bool disable, bool updateAnimTier /*= true*/)
SendMessageToSet(packet.Write(), true);
}
if (!GetVehicle())
if (updatePlayHoverAnim && !GetVehicle())
{
if (IsAlive())
{
+1 -1
View File
@@ -1167,7 +1167,7 @@ class TC_GAME_API Unit : public WorldObject
bool IsWalking() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_WALKING); }
bool IsHovering() const { return m_movementInfo.HasMovementFlag(MOVEMENTFLAG_HOVER); }
bool SetWalk(bool enable);
bool SetDisableGravity(bool disable, bool updateAnimTier = true);
bool SetDisableGravity(bool disable, bool updateAnimTier = true, bool updatePlayHoverAnim = true);
bool SetFall(bool enable);
bool SetSwim(bool enable);
bool SetCanFly(bool enable);
@@ -95,15 +95,14 @@ struct boss_arcanotron_custos : public BossAI
void ScheduleTasks() override
{
events.ScheduleEvent(EVENT_REPULSING_SLAM, 6s);
events.ScheduleEvent(EVENT_ARCANE_EXPULSION, 15s);
events.ScheduleEvent(EVENT_ARCANE_EXPULSION, 16s);
events.ScheduleEvent(EVENT_ETHEREAL_SHACKLES, 23s);
events.ScheduleEvent(EVENT_REFUELING_PROTOCOL, 45s);
}
void SpawnEnergyOrbs()
{
for (uint8 i = 0; i < 3; ++i)
DoCastAOE(SPELL_ENERGY_ORB);
DoCastAOE(SPELL_ENERGY_ORB);
}
void ExecuteEvent(uint32 eventId) override
@@ -112,20 +111,20 @@ struct boss_arcanotron_custos : public BossAI
{
case EVENT_REPULSING_SLAM:
DoCastVictim(SPELL_REPULSING_SLAM);
events.Repeat(10s);
events.Repeat(23s);
break;
case EVENT_ARCANE_EXPULSION:
DoCastAOE(SPELL_ARCANE_EXPULSION);
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 45.0f, true))
DoCast(target, SPELL_ARCANE_RESIDUE, true);
events.Repeat(12s);
events.Repeat(23s);
break;
case EVENT_ETHEREAL_SHACKLES:
for (uint8 i = 0; i < 3; ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, urand(0, 1) ? SPELL_ETHEREAL_SHACKLES : SPELL_ETHEREAL_SHACKLES_2);
DoCastSelf(SPELL_ETHEREAL_SHACKLES_VIS, true);
events.Repeat(22s);
events.Repeat(23s);
break;
case EVENT_REFUELING_PROTOCOL:
_refueling = true;
@@ -133,9 +132,9 @@ struct boss_arcanotron_custos : public BossAI
events.CancelEvent(EVENT_ARCANE_EXPULSION);
events.CancelEvent(EVENT_ETHEREAL_SHACKLES);
DoCastSelf(SPELL_REFUELING_PROTOCOL);
events.ScheduleEvent(EVENT_SPAWN_ENERGY_ORBS, 1s);
events.ScheduleEvent(EVENT_UNSTABLE_ENERGY, 2s);
events.ScheduleEvent(EVENT_END_REFUELING, 14s);
events.ScheduleEvent(EVENT_SPAWN_ENERGY_ORBS, 3s);
events.ScheduleEvent(EVENT_UNSTABLE_ENERGY, 9s);
events.ScheduleEvent(EVENT_END_REFUELING, 23s);
break;
case EVENT_SPAWN_ENERGY_ORBS:
SpawnEnergyOrbs();
@@ -151,11 +150,12 @@ struct boss_arcanotron_custos : public BossAI
me->RemoveAurasDueToSpell(SPELL_REFUELING_PROTOCOL);
events.CancelEvent(EVENT_SPAWN_ENERGY_ORBS);
events.CancelEvent(EVENT_UNSTABLE_ENERGY);
DoCastSelf(SPELL_ENERGY_CONSUMER, true);
DoCastAOE(SPELL_ARCANE_ERUPTION);
events.ScheduleEvent(EVENT_REPULSING_SLAM, 3s);
events.ScheduleEvent(EVENT_ARCANE_EXPULSION, 8s);
events.ScheduleEvent(EVENT_ETHEREAL_SHACKLES, 14s);
events.ScheduleEvent(EVENT_REFUELING_PROTOCOL, 60s);
events.ScheduleEvent(EVENT_REPULSING_SLAM, 7s);
events.ScheduleEvent(EVENT_ARCANE_EXPULSION, 15s);
events.ScheduleEvent(EVENT_ETHEREAL_SHACKLES, 22s);
events.ScheduleEvent(EVENT_REFUELING_PROTOCOL, 68s);
break;
default:
break;
@@ -23,36 +23,39 @@ enum DegentriusSpells
{
SPELL_MOTE_CREATION_A = 1215028,
SPELL_MOTE_CREATION_B = 1215029,
SPELL_VOID_MOTE = 1214582,
SPELL_VOID_MOTE_A = 1214597,
SPELL_VOID_MOTE_B = 1243134,
SPELL_CALL_OF_THE_VOID = 1270923,
SPELL_VOID_ENERGY = 1253784,
SPELL_UNSTABLE_VOID_ESSENCE = 1215087,
SPELL_VOID_TORRENT = 1214714,
SPELL_VOID_DESTRUCTION = 1215161,
SPELL_DEVOURING_ENTROPY = 1215897,
SPELL_ENTROPY_ORB = 1269631,
SPELL_UNSTABLE_VOID_ESSENCE_2 = 1215067,
SPELL_UNSTABLE_VOID_ESSENCE_3 = 1215099,
SPELL_UNSTABLE_VOID = 1215163,
SPELL_ENTROPY_BLAST = 1271066,
SPELL_DEVOURING_ENTROPY = 1215893,
SPELL_DEVOURING_ENTROPY_2 = 1215896,
SPELL_DEVOURING_ENTROPY_3 = 1215897,
SPELL_HULKING_FRAGMENT = 1280113,
SPELL_HULKING_FRAGMENT_SLAM = 1280106,
SPELL_ENTROPY_BLAST = 1271066,
SPELL_UMBRAL_SPLINTERS = 1284627,
SPELL_HULKING_FRAGMENT_SLAM_2 = 1280107,
SPELL_HULKING_FRAGMENT_2 = 1280119,
};
enum DegentriusTexts
{
SAY_AGGRO = 0,
SAY_DEATH = 1,
SAY_CALL_OF_THE_VOID = 2,
};
enum DegentriusEvents
{
EVENT_MOTE_CREATION = 1,
EVENT_CALL_OF_THE_VOID,
EVENT_ENTROPY_BLAST,
EVENT_HULKING_FRAGMENT,
EVENT_UNSTABLE_VOID_ESSENCE,
EVENT_DEVOURING_ENTROPY,
EVENT_HULKING_FRAGMENT,
EVENT_ENTROPY_BLAST,
EVENT_VOID_TORRENT,
EVENT_UMBRAL_SPLINTERS,
};
// 231865 - Degentrius
@@ -71,7 +74,9 @@ struct boss_degentrius : public BossAI
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
DoCastSelf(SPELL_VOID_ENERGY, true);
CastMoteCreation();
DoCastSelf(SPELL_MOTE_CREATION_A, true);
DoCastSelf(SPELL_MOTE_CREATION_B, true);
events.ScheduleEvent(EVENT_CALL_OF_THE_VOID, 6s);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
}
@@ -91,21 +96,12 @@ struct boss_degentrius : public BossAI
_DespawnAtEvade();
}
void CastMoteCreation()
{
DoCastSelf(SPELL_MOTE_CREATION_A, true);
DoCastSelf(SPELL_MOTE_CREATION_B, true);
events.ScheduleEvent(EVENT_CALL_OF_THE_VOID, 5s);
}
void ScheduleTasks() override
{
events.ScheduleEvent(EVENT_ENTROPY_BLAST, 8s);
events.ScheduleEvent(EVENT_HULKING_FRAGMENT, 12s);
events.ScheduleEvent(EVENT_UNSTABLE_VOID_ESSENCE, 15s);
events.ScheduleEvent(EVENT_DEVOURING_ENTROPY, 20s);
events.ScheduleEvent(EVENT_VOID_TORRENT, 26s);
events.ScheduleEvent(EVENT_UMBRAL_SPLINTERS, 34s);
events.ScheduleEvent(EVENT_ENTROPY_BLAST, 4s);
events.ScheduleEvent(EVENT_HULKING_FRAGMENT, 10s);
events.ScheduleEvent(EVENT_UNSTABLE_VOID_ESSENCE, 14s);
events.ScheduleEvent(EVENT_DEVOURING_ENTROPY, 18s);
}
void ExecuteEvent(uint32 eventId) override
@@ -113,39 +109,42 @@ struct boss_degentrius : public BossAI
switch (eventId)
{
case EVENT_MOTE_CREATION:
CastMoteCreation();
DoCastSelf(SPELL_MOTE_CREATION_A, true);
DoCastSelf(SPELL_MOTE_CREATION_B, true);
break;
case EVENT_CALL_OF_THE_VOID:
DoCastAOE(SPELL_CALL_OF_THE_VOID);
DoCastAOE(SPELL_VOID_MOTE);
Talk(SAY_CALL_OF_THE_VOID);
DoCastSelf(SPELL_CALL_OF_THE_VOID);
DoCastSelf(SPELL_VOID_MOTE_A, true);
DoCastSelf(SPELL_VOID_MOTE_B, true);
events.Repeat(45s);
break;
case EVENT_ENTROPY_BLAST:
DoCastVictim(SPELL_ENTROPY_BLAST);
events.Repeat(Milliseconds(20500));
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 60.0f, true))
DoCast(target, SPELL_ENTROPY_BLAST);
events.Repeat(2s);
break;
case EVENT_HULKING_FRAGMENT:
DoCastVictim(SPELL_HULKING_FRAGMENT);
DoCastVictim(SPELL_HULKING_FRAGMENT_SLAM, true);
events.Repeat(30s);
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 60.0f, true))
{
DoCast(target, SPELL_HULKING_FRAGMENT);
DoCast(target, SPELL_HULKING_FRAGMENT_SLAM, true);
DoCast(target, SPELL_HULKING_FRAGMENT_SLAM_2, true);
}
events.Repeat(15s);
break;
case EVENT_UNSTABLE_VOID_ESSENCE:
DoCastAOE(SPELL_UNSTABLE_VOID_ESSENCE);
events.Repeat(28s);
DoCastSelf(SPELL_UNSTABLE_VOID_ESSENCE, true);
DoCastSelf(SPELL_UNSTABLE_VOID_ESSENCE_2, true);
DoCastSelf(SPELL_UNSTABLE_VOID_ESSENCE_3, true);
DoCastSelf(SPELL_UNSTABLE_VOID, true);
events.Repeat(30s);
break;
case EVENT_DEVOURING_ENTROPY:
for (uint8 i = 0; i < 3; ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_DEVOURING_ENTROPY, true);
events.Repeat(45s);
break;
case EVENT_VOID_TORRENT:
DoCastAOE(SPELL_VOID_TORRENT);
events.Repeat(40s);
break;
case EVENT_UMBRAL_SPLINTERS:
DoCastVictim(SPELL_UMBRAL_SPLINTERS);
events.Repeat(35s);
DoCast(target, urand(0, 2) ? SPELL_DEVOURING_ENTROPY : SPELL_DEVOURING_ENTROPY_3, true);
events.Repeat(20s);
break;
default:
break;
@@ -156,4 +155,4 @@ struct boss_degentrius : public BossAI
void AddSC_boss_degentrius()
{
RegisterMagistersTerraceCreatureAI(boss_degentrius);
}
}
@@ -52,6 +52,7 @@ enum GemellusEvents
EVENT_ASTRAL_GRASP,
EVENT_SYNAPTIC_NEXUS,
EVENT_COSMIC_RADIATION,
EVENT_COLOR_OVERRIDE,
};
// 239636 - Gemellus
@@ -68,8 +69,9 @@ struct boss_gemellus : public BossAI
{
BossAI::JustEngagedWith(who);
Talk(SAY_AGGRO);
DoCastSelf(SPELL_DISPLAY_OVERRIDE, true);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
events.ScheduleEvent(EVENT_TRIPLICATE, 1s);
events.ScheduleEvent(EVENT_TRIPLICATE, 60s);
}
void JustDied(Unit* killer) override
@@ -88,10 +90,11 @@ struct boss_gemellus : public BossAI
void ScheduleTasks() override
{
events.ScheduleEvent(EVENT_COSMIC_STING, 8s);
events.ScheduleEvent(EVENT_VOID_SECRETIONS, 13s);
events.ScheduleEvent(EVENT_COSMIC_STING, 10s);
events.ScheduleEvent(EVENT_VOID_SECRETIONS, 47s);
events.ScheduleEvent(EVENT_SYNAPTIC_NEXUS, 22s);
events.ScheduleEvent(EVENT_ASTRAL_GRASP, 34s);
events.ScheduleEvent(EVENT_ASTRAL_GRASP, 30s);
events.ScheduleEvent(EVENT_COLOR_OVERRIDE, 46s);
events.ScheduleEvent(EVENT_COSMIC_RADIATION, 45s);
}
@@ -123,20 +126,24 @@ struct boss_gemellus : public BossAI
SpawnCopy();
events.Repeat(60s);
break;
case EVENT_COLOR_OVERRIDE:
DoCastSelf(SPELL_DISPLAY_OVERRIDE, true);
events.Repeat(46s);
break;
case EVENT_COSMIC_STING:
for (uint8 i = 0; i < 3; ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, urand(0, 1) ? SPELL_COSMIC_STING : SPELL_COSMIC_STING_2);
events.Repeat(Milliseconds(20500));
events.Repeat(45s);
break;
case EVENT_VOID_SECRETIONS:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, urand(0, 1) ? SPELL_VOID_SECRETIONS : SPELL_VOID_SECRETIONS_2);
events.Repeat(20s);
events.Repeat(45s);
break;
case EVENT_ASTRAL_GRASP:
CastAstralGrasp();
events.Repeat(30s);
events.Repeat(45s);
break;
case EVENT_SYNAPTIC_NEXUS:
DoCastSelf(SPELL_SYNAPTIC_NEXUS);
@@ -53,7 +53,7 @@ enum SeranelEvents
EVENT_BOSS_JUMP = 1,
EVENT_RUNIC_MARK,
EVENT_SUPPRESSION_ZONE,
EVENT_FEEDBACK,
EVENT_SUPPRESSION_ZONE_PULSE,
EVENT_HASTENING_WARD,
EVENT_HASTENING_WARD_2,
EVENT_WAVE_OF_SILENCE,
@@ -113,9 +113,8 @@ struct boss_seranel_sunlash : public BossAI
events.ScheduleEvent(EVENT_BOSS_JUMP, 1s);
events.ScheduleEvent(EVENT_RUNIC_MARK, 16s);
events.ScheduleEvent(EVENT_SUPPRESSION_ZONE, 27s);
events.ScheduleEvent(EVENT_FEEDBACK, 34s);
events.ScheduleEvent(EVENT_HASTENING_WARD, 35s);
events.ScheduleEvent(EVENT_WAVE_OF_SILENCE, 60s);
events.ScheduleEvent(EVENT_WAVE_OF_SILENCE, 61s);
}
void ExecuteEvent(uint32 eventId) override
@@ -133,22 +132,22 @@ struct boss_seranel_sunlash : public BossAI
DoCast(target, urand(0, 1) ? SPELL_RUNIC_MARK : SPELL_RUNIC_MARK_2);
DoCast(target, urand(0, 2) ? SPELL_RUNIC_MARK_DOT : SPELL_RUNIC_MARK_4, true);
}
events.Repeat(30s);
events.Repeat(29s);
break;
case EVENT_SUPPRESSION_ZONE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 50.0f, true))
DoCast(target, SPELL_SUPPRESSION_ZONE);
DoCastAOE(SPELL_SUPPRESSION_ZONE_3);
events.Repeat(22s);
events.ScheduleEvent(EVENT_SUPPRESSION_ZONE_PULSE, 10s);
events.Repeat(57s);
break;
case EVENT_FEEDBACK:
DoCastAOE(SPELL_FEEDBACK);
events.Repeat(40s);
case EVENT_SUPPRESSION_ZONE_PULSE:
DoCastAOE(SPELL_SUPPRESSION_ZONE_3);
events.Repeat(4s);
break;
case EVENT_HASTENING_WARD:
DoCastSelf(SPELL_HASTENING_WARD, true);
events.ScheduleEvent(EVENT_HASTENING_WARD_2, 2s);
events.Repeat(40s);
events.Repeat(57s);
break;
case EVENT_HASTENING_WARD_2:
DoCastSelf(SPELL_HASTENING_WARD_2, true);
@@ -50,6 +50,17 @@ enum TrashSpells
SPELL_DEVOURING_STRIKE = 1264687,
SPELL_VOID_BOMB = 1248219,
SPELL_VOID_ERUPTION = 1264951,
SPELL_VOID_BLAST = 1265938,
SPELL_VOID_PORTAL_VISUAL = 1265605,
SPELL_UNSTABLE_VOID_ESSENCE = 1215099,
SPELL_VOID_DESTRUCTION = 1215161,
SPELL_VOID_MOTE_SOCKET = 1214627,
SPELL_VOID_TORRENT = 1214665,
SPELL_PIERCING_FORCE_IMPLOSION = 1244993,
SPELL_PERMANENT_FEIGN_DEATH = 130966,
SPELL_BAD_MEDICINE = 1244943,
SPELL_POLYMORPH_SENTINEL = 1244953,
SPELL_ARCANE_BOLT_SENTINEL = 1244972,
};
enum TrashEvents
@@ -77,6 +88,13 @@ enum TrashEvents
EVENT_VOID_BOMB,
EVENT_VOID_ERUPTION,
EVENT_DIMENSIONAL_SHRED,
EVENT_VOID_BLAST,
EVENT_VOID_DESTRUCTION,
EVENT_VOID_TORRENT,
EVENT_IMPLOSION,
EVENT_BAD_MEDICINE,
EVENT_POLYMORPH_SENTINEL,
EVENT_ARCANE_BOLT_SENTINEL,
};
// 234124 - Sunblade Enforcer
@@ -519,6 +537,150 @@ struct npc_energy_orb : public ScriptedAI
}
};
// 241325 - Sunblade Enforcer (Sentinel)
struct npc_sunblade_enforcer_sentinel : public ScriptedAI
{
npc_sunblade_enforcer_sentinel(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoZoneInCombat();
DoCastSelf(SPELL_PERMANENT_FEIGN_DEATH, true);
events.ScheduleEvent(EVENT_IMPLOSION, 6s);
}
void ExecuteEvent(uint32 eventId) override
{
if (eventId == EVENT_IMPLOSION)
{
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
DoCast(target, SPELL_PIERCING_FORCE_IMPLOSION);
events.Repeat(20s);
}
}
};
// 241324 - Lightward Healer (Sentinel)
struct npc_lightward_healer_sentinel : public ScriptedAI
{
npc_lightward_healer_sentinel(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoZoneInCombat();
events.ScheduleEvent(EVENT_BAD_MEDICINE, 10s);
}
void ExecuteEvent(uint32 eventId) override
{
if (eventId == EVENT_BAD_MEDICINE)
{
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
DoCast(target, SPELL_BAD_MEDICINE);
events.Repeat(18s);
}
}
};
// 241326 - Arcane Magister (Sentinel)
struct npc_arcane_magister_sentinel : public ScriptedAI
{
npc_arcane_magister_sentinel(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoZoneInCombat();
events.ScheduleEvent(EVENT_ARCANE_BOLT_SENTINEL, 6s);
events.ScheduleEvent(EVENT_POLYMORPH_SENTINEL, 14s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_ARCANE_BOLT_SENTINEL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_ARCANE_BOLT_SENTINEL);
events.Repeat(10s);
break;
case EVENT_POLYMORPH_SENTINEL:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_POLYMORPH_SENTINEL);
events.Repeat(20s);
break;
default:
break;
}
}
};
// 235846 - Unstable Void Stalker
struct npc_unstable_void_stalker : public ScriptedAI
{
npc_unstable_void_stalker(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoZoneInCombat();
DoCastSelf(SPELL_UNSTABLE_VOID_ESSENCE, true);
events.ScheduleEvent(EVENT_VOID_DESTRUCTION, 8s);
}
void ExecuteEvent(uint32 eventId) override
{
if (eventId == EVENT_VOID_DESTRUCTION)
{
DoCastAOE(SPELL_VOID_DESTRUCTION);
events.Repeat(12s);
}
}
};
// 235476 - Void Mote Socket
struct npc_void_mote_socket : public ScriptedAI
{
npc_void_mote_socket(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoZoneInCombat();
DoCastSelf(SPELL_VOID_MOTE_SOCKET, true);
events.ScheduleEvent(EVENT_VOID_TORRENT, 5s);
}
void ExecuteEvent(uint32 eventId) override
{
if (eventId == EVENT_VOID_TORRENT)
{
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_VOID_TORRENT);
events.Repeat(15s);
}
}
};
// 255613, 255616 - Void Portal
struct npc_void_portal : public ScriptedAI
{
npc_void_portal(Creature* creature) : ScriptedAI(creature) { }
void ScheduleTasks() override
{
DoCastSelf(SPELL_VOID_PORTAL_VISUAL, true);
events.ScheduleEvent(EVENT_VOID_BLAST, 2s);
}
void ExecuteEvent(uint32 eventId) override
{
if (eventId == EVENT_VOID_BLAST)
{
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, false))
DoCast(target, SPELL_VOID_BLAST);
events.Repeat(2s);
}
}
};
void AddSC_magisters_terrace_trash()
{
RegisterMagistersTerraceCreatureAI(npc_sunblade_enforcer);
@@ -538,5 +700,11 @@ void AddSC_magisters_terrace_trash()
RegisterMagistersTerraceCreatureAI(npc_void_infused_brightscale);
RegisterMagistersTerraceCreatureAI(npc_devouring_tyrant);
RegisterMagistersTerraceCreatureAI(npc_unstable_voidling);
RegisterMagistersTerraceCreatureAI(npc_sunblade_enforcer_sentinel);
RegisterMagistersTerraceCreatureAI(npc_lightward_healer_sentinel);
RegisterMagistersTerraceCreatureAI(npc_arcane_magister_sentinel);
RegisterMagistersTerraceCreatureAI(npc_unstable_void_stalker);
RegisterMagistersTerraceCreatureAI(npc_void_mote_socket);
RegisterMagistersTerraceCreatureAI(npc_void_portal);
RegisterMagistersTerraceCreatureAI(npc_energy_orb);
}
@@ -42,10 +42,12 @@ enum MagistersTerraceCreatureIds
NPC_ENERGY_ORB = 234775,
NPC_GELLUS_COPY = 231864,
NPC_MAGISTER_UMBRIC = 234148,
// Trash
NPC_BRIGHTSCALE_WYRM = 232106,
NPC_ARCANE_MAGISTER = 232369,
NPC_ARCANE_MAGISTER_SENTINEL = 241326,
NPC_ARCANE_SENTRY = 234062,
NPC_DREADFUL_VOIDWALKER = 234064,
NPC_HOLLOWSOUL_SHREDDER = 234065,
@@ -54,13 +56,19 @@ enum MagistersTerraceCreatureIds
NPC_VOIDLING = 234069,
NPC_ANIMATED_CODEX = 234089,
NPC_SUNBLADE_ENFORCER = 234124,
NPC_SUNBLADE_ENFORCER_SENTINEL= 241325,
NPC_LIGHTWARD_HEALER = 234486,
NPC_LIGHTWARD_HEALER_SENTINEL = 241324,
NPC_RUNED_SPELLBREAKER = 240973,
NPC_VOID_INFUSED_BRIGHTSCALE = 241354,
NPC_VOID_TERROR = 249086,
NPC_BLAZING_PYROMANCER = 251861,
NPC_SPELLWOVEN_FAMILIAR = 259387,
NPC_UNSTABLE_VOIDLING = 255376,
NPC_UNSTABLE_VOID_STALKER = 235846,
NPC_VOID_MOTE_SOCKET = 235476,
NPC_VOID_PORTAL = 255613,
NPC_VOID_PORTAL_2 = 255616,
};
enum MagistersTerraceGoIds
@@ -0,0 +1,151 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "magistersterracemidnight.h"
enum UmbricSpells
{
SPELL_CONVERSATION_03 = 1237357,
SPELL_ANCHOR_HERE = 45313,
SPELL_KNOCK = 1254510,
SPELL_INVISIBILITY = 1237712,
SPELL_ARCANE_PRISON = 1237728,
SPELL_TELEPORT = 1237747,
SPELL_CONVERSATION_09 = 1237815,
SPELL_DRAIN_SHIELD = 1254246,
SPELL_DISPLAY_CYNOSURE = 1237852,
SPELL_ASTRAL_GATEWAY = 1254872,
SPELL_TELEPORT_DNT = 440302,
SPELL_CONVERSATION_13 = 1237867,
};
enum UmbricEvents
{
EVENT_CONVERSATION_03 = 1,
EVENT_INVISIBILITY,
EVENT_KNOCK,
EVENT_ARCANE_PRISON,
EVENT_CONVERSATION_09,
EVENT_DRAIN_SHIELD,
EVENT_TELEPORT,
EVENT_CHECK_FINALE,
EVENT_FAREWELL_1,
EVENT_FAREWELL_2,
EVENT_FAREWELL_3,
EVENT_DESPAWN,
};
// 234148 - Magister Umbric
struct npc_magister_umbric : public ScriptedAI
{
npc_magister_umbric(Creature* creature) : ScriptedAI(creature), _instance(creature->GetInstanceScript())
{
}
void Reset() override
{
ScriptedAI::Reset();
events.ScheduleEvent(EVENT_CONVERSATION_03, 1s);
events.ScheduleEvent(EVENT_INVISIBILITY, 4s);
events.ScheduleEvent(EVENT_KNOCK, 6s);
events.ScheduleEvent(EVENT_ARCANE_PRISON, 10s);
events.ScheduleEvent(EVENT_CONVERSATION_09, 15s);
events.ScheduleEvent(EVENT_DRAIN_SHIELD, 18s);
events.ScheduleEvent(EVENT_TELEPORT, 160s);
events.ScheduleEvent(EVENT_CHECK_FINALE, 5s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_CONVERSATION_03:
DoCastSelf(SPELL_CONVERSATION_03);
DoCastSelf(SPELL_ANCHOR_HERE, true);
break;
case EVENT_INVISIBILITY:
DoCastSelf(SPELL_INVISIBILITY, true);
break;
case EVENT_KNOCK:
DoCastSelf(SPELL_KNOCK);
break;
case EVENT_ARCANE_PRISON:
DoCastSelf(SPELL_ARCANE_PRISON);
break;
case EVENT_CONVERSATION_09:
DoCastSelf(SPELL_CONVERSATION_09);
break;
case EVENT_DRAIN_SHIELD:
DoCastSelf(SPELL_DRAIN_SHIELD, true);
break;
case EVENT_TELEPORT:
TeleportNearParty();
events.Repeat(240s);
break;
case EVENT_CHECK_FINALE:
if (_instance && _instance->GetBossState(DATA_DEGENTRIUS) == DONE)
{
events.CancelEvent(EVENT_TELEPORT);
events.ScheduleEvent(EVENT_FAREWELL_1, 1s);
events.ScheduleEvent(EVENT_FAREWELL_2, 4s);
events.ScheduleEvent(EVENT_FAREWELL_3, 8s);
events.ScheduleEvent(EVENT_DESPAWN, 12s);
}
else
events.Repeat(10s);
break;
case EVENT_FAREWELL_1:
DoCastSelf(SPELL_DISPLAY_CYNOSURE, true);
DoCastSelf(SPELL_CONVERSATION_13);
break;
case EVENT_FAREWELL_2:
DoCastSelf(SPELL_ASTRAL_GATEWAY);
break;
case EVENT_FAREWELL_3:
DoCastSelf(SPELL_TELEPORT_DNT);
break;
case EVENT_DESPAWN:
me->DespawnOrUnsummon();
break;
default:
break;
}
}
private:
void TeleportNearParty()
{
if (Player* player = me->SelectNearestPlayer(100.0f))
{
float angle = frand(0.0f, 6.28319f);
float dist = frand(10.0f, 35.0f);
float x = player->GetPositionX() + std::cos(angle) * dist;
float y = player->GetPositionY() + std::sin(angle) * dist;
float z = player->GetPositionZ();
me->NearTeleportTo(x, y, z, me->GetOrientation());
}
DoCastSelf(SPELL_TELEPORT, true);
}
InstanceScript* _instance;
};
void AddSC_npc_magister_umbric()
{
RegisterMagistersTerraceCreatureAI(npc_magister_umbric);
}
@@ -0,0 +1,135 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "PassiveAI.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum AegyraSpells
{
SPELL_AEGYRA_PROOF_OF_ENDURANCE = 1298903,
SPELL_AEGYRA_CHAMPIONS_SPEAR = 1298908,
SPELL_AEGYRA_SAVAGE_SMASH = 1298922,
SPELL_AEGYRA_SAVAGE_SMASH_2 = 1298924,
SPELL_AEGYRA_FEROCIOUS_LEAP = 1299125,
SPELL_AEGYRA_FEROCIOUS_LEAP_2 = 1299133,
SPELL_AEGYRA_EARTHSPLITTER = 1299145,
SPELL_AEGYRA_AFTERSHOCK = 1299210,
};
enum AegyraEvents
{
EVENT_AEGYRA_FEROCIOUS_LEAP = 1,
EVENT_AEGYRA_EARTHSPLITTER,
EVENT_AEGYRA_AFTERSHOCK,
EVENT_AEGYRA_CHAMPIONS_SPEAR,
EVENT_AEGYRA_SAVAGE_SMASH,
EVENT_AEGYRA_PROOF_OF_ENDURANCE,
};
// 267545 - Aegyra the Unyielding
struct boss_aegyra_the_unyielding : public BossAI
{
boss_aegyra_the_unyielding(Creature* creature) : BossAI(creature, DATA_AEGYRA_THE_UNYIELDING) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_AEGYRA_FEROCIOUS_LEAP, 1s);
events.ScheduleEvent(EVENT_AEGYRA_EARTHSPLITTER, 4s);
events.ScheduleEvent(EVENT_AEGYRA_AFTERSHOCK, 7s);
events.ScheduleEvent(EVENT_AEGYRA_CHAMPIONS_SPEAR, 16s);
events.ScheduleEvent(EVENT_AEGYRA_SAVAGE_SMASH, 19s);
events.ScheduleEvent(EVENT_AEGYRA_PROOF_OF_ENDURANCE, 24s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_AEGYRA_FEROCIOUS_LEAP:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_AEGYRA_FEROCIOUS_LEAP);
DoCast(target, SPELL_AEGYRA_FEROCIOUS_LEAP_2, true);
}
events.Repeat(24s);
break;
case EVENT_AEGYRA_EARTHSPLITTER:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 60.0f, true))
DoCast(target, SPELL_AEGYRA_EARTHSPLITTER);
events.Repeat(21s);
break;
case EVENT_AEGYRA_AFTERSHOCK:
DoCastSelf(SPELL_AEGYRA_AFTERSHOCK);
events.Repeat(21s);
break;
case EVENT_AEGYRA_CHAMPIONS_SPEAR:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_AEGYRA_CHAMPIONS_SPEAR);
events.Repeat(21s);
break;
case EVENT_AEGYRA_SAVAGE_SMASH:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 10.0f, true))
{
DoCast(target, SPELL_AEGYRA_SAVAGE_SMASH);
DoCast(target, SPELL_AEGYRA_SAVAGE_SMASH_2, true);
}
events.Repeat(21s);
break;
case EVENT_AEGYRA_PROOF_OF_ENDURANCE:
DoCastSelf(SPELL_AEGYRA_PROOF_OF_ENDURANCE);
events.Repeat(21s);
break;
default:
break;
}
}
};
enum ChampionsSpearSpells
{
SPELL_CHAMPIONS_SPEAR_CAST = 1298909,
SPELL_CHAMPIONS_SPEAR_IMPALE = 1298917,
};
enum ChampionsSpearEvents
{
EVENT_CHAMPIONS_SPEAR_IMPALE = 1,
};
// 267550 - Champion's Spear
struct npc_champions_spear : public NullCreatureAI
{
npc_champions_spear(Creature* creature) : NullCreatureAI(creature) { }
void JustAppeared() override
{
DoCastSelf(SPELL_CHAMPIONS_SPEAR_CAST);
me->m_Events.AddEventAtOffset([this]()
{
DoCastSelf(SPELL_CHAMPIONS_SPEAR_IMPALE, true);
}, 1s);
}
};
void AddSC_boss_aegyra_the_unyielding()
{
RegisterVoidscarArenaCreatureAI(boss_aegyra_the_unyielding);
RegisterVoidscarArenaCreatureAI(npc_champions_spear);
}
@@ -0,0 +1,140 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum AtroxusSpells
{
SPELL_ATROXUS_RAMPAGING_STRIKE = 1251830,
SPELL_ATROXUS_RAMPAGING_STRIKE_2 = 1251893,
SPELL_ATROXUS_POISON_SPLASH = 1226120,
SPELL_ATROXUS_POISON_SPLASH_2 = 1247396,
SPELL_ATROXUS_POISON_SPLASH_3 = 1300351,
SPELL_ATROXUS_POISON_SPLASH_4 = 1225955,
SPELL_ATROXUS_POISON_SPLASH_5 = 1226031,
SPELL_ATROXUS_POISON_SPLASH_6 = 1288115,
SPELL_ATROXUS_TOXIC_AURA = 1247423,
SPELL_ATROXUS_MIND_NUMBING_POISON = 1263971,
SPELL_ATROXUS_POISON_POOL = 1222484,
SPELL_ATROXUS_HULKING_CLAW = 1222642,
SPELL_ATROXUS_NOXIOUS_BREATH = 1263977,
SPELL_ATROXUS_NOXIOUS_BREATH_2 = 1222721,
SPELL_ATROXUS_NOXIOUS_BREATH_3 = 1222724,
SPELL_ATROXUS_MONSTROUS_ROAR = 1262497,
SPELL_ATROXUS_PROVOKE_CREEPER = 1222382,
};
enum AtroxusEvents
{
EVENT_ATROXUS_RAMPAGING_STRIKE = 1,
EVENT_ATROXUS_POISON_SPLASH,
EVENT_ATROXUS_TOXIC_AURA,
EVENT_ATROXUS_MIND_NUMBING_POISON,
EVENT_ATROXUS_HULKING_CLAW,
EVENT_ATROXUS_NOXIOUS_BREATH,
EVENT_ATROXUS_MONSTROUS_ROAR,
};
// 239008 - Atroxus
struct boss_atroxus : public BossAI
{
boss_atroxus(Creature* creature) : BossAI(creature, DATA_ATROXUS) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
DoCastSelf(SPELL_ATROXUS_TOXIC_AURA, true);
events.ScheduleEvent(EVENT_ATROXUS_RAMPAGING_STRIKE, 1s);
events.ScheduleEvent(EVENT_ATROXUS_TOXIC_AURA, 8s);
events.ScheduleEvent(EVENT_ATROXUS_POISON_SPLASH, 15s);
events.ScheduleEvent(EVENT_ATROXUS_HULKING_CLAW, 20s);
events.ScheduleEvent(EVENT_ATROXUS_MIND_NUMBING_POISON, 19s);
events.ScheduleEvent(EVENT_ATROXUS_NOXIOUS_BREATH, 25s);
events.ScheduleEvent(EVENT_ATROXUS_MONSTROUS_ROAR, 45s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_ATROXUS_RAMPAGING_STRIKE:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 60.0f, true))
{
DoCast(target, SPELL_ATROXUS_RAMPAGING_STRIKE);
DoCast(target, SPELL_ATROXUS_RAMPAGING_STRIKE_2, true);
}
break;
case EVENT_ATROXUS_POISON_SPLASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_ATROXUS_POISON_SPLASH);
DoCast(target, SPELL_ATROXUS_POISON_SPLASH_2, true);
DoCast(target, SPELL_ATROXUS_POISON_SPLASH_3, true);
DoCast(target, SPELL_ATROXUS_POISON_SPLASH_4, true);
if (target->IsPlayer())
{
DoCast(target, SPELL_ATROXUS_POISON_SPLASH_5, true);
DoCast(target, SPELL_ATROXUS_POISON_SPLASH_6, true);
}
}
events.Repeat(20s);
break;
case EVENT_ATROXUS_TOXIC_AURA:
DoCastSelf(SPELL_ATROXUS_TOXIC_AURA, true);
events.Repeat(8s);
break;
case EVENT_ATROXUS_MIND_NUMBING_POISON:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_ATROXUS_MIND_NUMBING_POISON);
DoCast(target, SPELL_ATROXUS_POISON_POOL, true);
}
events.Repeat(25s);
break;
case EVENT_ATROXUS_HULKING_CLAW:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 10.0f, true))
DoCast(target, SPELL_ATROXUS_HULKING_CLAW);
events.Repeat(10s);
break;
case EVENT_ATROXUS_NOXIOUS_BREATH:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 30.0f, true))
{
DoCast(target, SPELL_ATROXUS_NOXIOUS_BREATH);
DoCast(target, SPELL_ATROXUS_NOXIOUS_BREATH_2, true);
DoCast(target, SPELL_ATROXUS_NOXIOUS_BREATH_3, true);
DoCast(target, SPELL_ATROXUS_NOXIOUS_BREATH_3, true);
DoCast(target, SPELL_ATROXUS_NOXIOUS_BREATH_3, true);
}
events.Repeat(25s);
break;
case EVENT_ATROXUS_MONSTROUS_ROAR:
DoCastSelf(SPELL_ATROXUS_MONSTROUS_ROAR);
DoCastSelf(SPELL_ATROXUS_PROVOKE_CREEPER, true);
events.Repeat(45s);
break;
default:
break;
}
}
};
void AddSC_boss_atroxus()
{
RegisterVoidscarArenaCreatureAI(boss_atroxus);
}
@@ -0,0 +1,96 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum BrutalOverseerSpells
{
SPELL_BRUTAL_OVERSEER_BRUTAL_SLAMS = 1298900,
SPELL_BRUTAL_OVERSEER_BRUTAL_SLAMS_2 = 1298901,
SPELL_BRUTAL_OVERSEER_MACESTORM = 1228126,
SPELL_BRUTAL_OVERSEER_MACESTORM_2 = 1228127,
SPELL_BRUTAL_OVERSEER_MACESTORM_3 = 1261645,
SPELL_BRUTAL_OVERSEER_MACESTORM_4 = 1261652,
SPELL_BRUTAL_OVERSEER_MACESTORM_5 = 1310309,
};
enum BrutalOverseerEvents
{
EVENT_BRUTAL_OVERSEER_BRUTAL_SLAMS = 1,
EVENT_BRUTAL_OVERSEER_MACESTORM,
EVENT_BRUTAL_OVERSEER_MACESTORM_TICK,
};
// 252053 - Brutal Overseer
struct boss_brutal_overseer : public BossAI
{
boss_brutal_overseer(Creature* creature) : BossAI(creature, DATA_BRUTAL_OVERSEER) { }
uint8 _maceStormTicks;
void Reset() override
{
BossAI::Reset();
_maceStormTicks = 0;
}
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_BRUTAL_OVERSEER_BRUTAL_SLAMS, 1s);
events.ScheduleEvent(EVENT_BRUTAL_OVERSEER_MACESTORM, 15s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_BRUTAL_OVERSEER_BRUTAL_SLAMS:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
{
DoCast(target, SPELL_BRUTAL_OVERSEER_BRUTAL_SLAMS);
DoCast(target, SPELL_BRUTAL_OVERSEER_BRUTAL_SLAMS_2, true);
DoCast(target, SPELL_BRUTAL_OVERSEER_BRUTAL_SLAMS_2, true);
}
events.Repeat(30s);
break;
case EVENT_BRUTAL_OVERSEER_MACESTORM:
DoCastSelf(SPELL_BRUTAL_OVERSEER_MACESTORM_3, true);
DoCastSelf(SPELL_BRUTAL_OVERSEER_MACESTORM_2, true);
DoCastSelf(SPELL_BRUTAL_OVERSEER_MACESTORM_5, true);
_maceStormTicks = 6;
events.Repeat(30s);
events.ScheduleEvent(EVENT_BRUTAL_OVERSEER_MACESTORM_TICK, 1s);
break;
case EVENT_BRUTAL_OVERSEER_MACESTORM_TICK:
DoCastSelf(SPELL_BRUTAL_OVERSEER_MACESTORM, true);
DoCastSelf(SPELL_BRUTAL_OVERSEER_MACESTORM_4, true);
if (--_maceStormTicks)
events.Repeat(1s);
break;
default:
break;
}
}
};
void AddSC_boss_brutal_overseer()
{
RegisterVoidscarArenaCreatureAI(boss_brutal_overseer);
}
@@ -0,0 +1,94 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum BrutokSpells
{
SPELL_BRUTOK_FEL_STEPS = 1269276,
SPELL_BRUTOK_FEL_STEPS_2 = 1269284,
SPELL_BRUTOK_SMASHING_CHARGE = 1234888,
SPELL_BRUTOK_SMASHING_CHARGE_2 = 1234924,
SPELL_BRUTOK_HEAD_BASH = 1245186,
SPELL_BRUTOK_CONCUSSION = 1310321,
};
enum BrutokEvents
{
EVENT_BRUTOK_FEL_STEPS = 1,
EVENT_BRUTOK_SMASHING_CHARGE,
EVENT_BRUTOK_HEAD_BASH,
EVENT_BRUTOK_CONCUSSION,
};
// 244309 - Brutok
struct boss_brutok : public BossAI
{
boss_brutok(Creature* creature) : BossAI(creature, DATA_BRUTOK) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_BRUTOK_FEL_STEPS, 1s);
events.ScheduleEvent(EVENT_BRUTOK_SMASHING_CHARGE, 9s);
events.ScheduleEvent(EVENT_BRUTOK_HEAD_BASH, 27s);
events.ScheduleEvent(EVENT_BRUTOK_CONCUSSION, 15s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_BRUTOK_FEL_STEPS:
for (uint8 i = 0; i < 6; ++i)
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_BRUTOK_FEL_STEPS, true);
DoCast(target, SPELL_BRUTOK_FEL_STEPS_2, true);
}
events.Repeat(16s);
break;
case EVENT_BRUTOK_SMASHING_CHARGE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_BRUTOK_SMASHING_CHARGE);
DoCast(target, SPELL_BRUTOK_SMASHING_CHARGE_2, true);
}
events.Repeat(22s);
break;
case EVENT_BRUTOK_HEAD_BASH:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 5.0f, true))
DoCast(target, SPELL_BRUTOK_HEAD_BASH);
events.Repeat(23s);
break;
case EVENT_BRUTOK_CONCUSSION:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 10.0f, true))
DoCast(target, SPELL_BRUTOK_CONCUSSION);
events.Repeat(20s);
break;
default:
break;
}
}
};
void AddSC_boss_brutok()
{
RegisterVoidscarArenaCreatureAI(boss_brutok);
}
@@ -0,0 +1,209 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "PassiveAI.h"
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum CharonusSpells
{
SPELL_CHARONUS_UNSTABLE_SINGULARITY = 1248116,
SPELL_CHARONUS_UNSTABLE_SINGULARITY_2 = 1282770,
SPELL_CHARONUS_UNSTABLE_SINGULARITY_3 = 1248112,
SPELL_CHARONUS_COSMIC_CRASH = 1227264,
SPELL_CHARONUS_COSMIC_CRASH_2 = 1227197,
SPELL_CHARONUS_COSMIC_CRASH_3 = 1300372,
SPELL_CHARONUS_GRAVITIC_ORBS = 1310025,
SPELL_CHARONUS_GRAVITIC_ORBS_2 = 1263982,
SPELL_CHARONUS_DARK_WAVES = 1311933,
SPELL_CHARONUS_DARK_WAVES_2 = 1311923,
};
enum CharonusEvents
{
EVENT_CHARONUS_UNSTABLE_SINGULARITY = 1,
EVENT_CHARONUS_COSMIC_CRASH,
EVENT_CHARONUS_GRAVITIC_ORBS,
EVENT_CHARONUS_DARK_WAVES,
};
// 239167 - Charonus
struct boss_charonus : public BossAI
{
boss_charonus(Creature* creature) : BossAI(creature, DATA_CHARONUS) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_CHARONUS_UNSTABLE_SINGULARITY, 2s);
events.ScheduleEvent(EVENT_CHARONUS_COSMIC_CRASH, 14s);
events.ScheduleEvent(EVENT_CHARONUS_GRAVITIC_ORBS, 25s);
events.ScheduleEvent(EVENT_CHARONUS_DARK_WAVES, 31s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_CHARONUS_UNSTABLE_SINGULARITY:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_CHARONUS_UNSTABLE_SINGULARITY);
DoCast(target, SPELL_CHARONUS_UNSTABLE_SINGULARITY_2, true);
DoCast(target, SPELL_CHARONUS_UNSTABLE_SINGULARITY_3, true);
}
events.Repeat(43s);
break;
case EVENT_CHARONUS_COSMIC_CRASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_CHARONUS_COSMIC_CRASH);
DoCast(target, SPELL_CHARONUS_COSMIC_CRASH_2, true);
DoCast(target, SPELL_CHARONUS_COSMIC_CRASH_3, true);
}
events.Repeat(43s);
break;
case EVENT_CHARONUS_GRAVITIC_ORBS:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_CHARONUS_GRAVITIC_ORBS);
DoCast(target, SPELL_CHARONUS_GRAVITIC_ORBS_2, true);
}
events.Repeat(43s);
break;
case EVENT_CHARONUS_DARK_WAVES:
DoCastSelf(SPELL_CHARONUS_DARK_WAVES);
DoCastSelf(SPELL_CHARONUS_DARK_WAVES_2, true);
events.Repeat(43s);
break;
default:
break;
}
}
};
enum TargetingStalkerSpells
{
SPELL_TARGETING_STALKER_UNSTABLE_SINGULARITY = 1264188,
SPELL_TARGETING_STALKER_UNSTABLE_SINGULARITY_2 = 1264191,
SPELL_TARGETING_STALKER_ATOMIZED = 1310026,
};
enum TargetingStalkerEvents
{
EVENT_TARGETING_STALKER_UNSTABLE_SINGULARITY = 1,
EVENT_TARGETING_STALKER_ATOMIZED,
};
// 255000 - Targeting Stalker
struct npc_targeting_stalker : public NullCreatureAI
{
npc_targeting_stalker(Creature* creature) : NullCreatureAI(creature) { }
void JustAppeared() override
{
_events.ScheduleEvent(EVENT_TARGETING_STALKER_UNSTABLE_SINGULARITY, 1s);
_events.ScheduleEvent(EVENT_TARGETING_STALKER_ATOMIZED, 9s);
}
void UpdateAI(uint32 diff) override
{
_events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_TARGETING_STALKER_UNSTABLE_SINGULARITY:
if (Unit* target = me->SelectNearestPlayer(60.0f))
{
DoCast(target, SPELL_TARGETING_STALKER_UNSTABLE_SINGULARITY);
DoCast(target, SPELL_TARGETING_STALKER_UNSTABLE_SINGULARITY_2, true);
}
_events.Repeat(8s);
break;
case EVENT_TARGETING_STALKER_ATOMIZED:
DoCastSelf(SPELL_TARGETING_STALKER_ATOMIZED, true);
me->KillSelf();
break;
default:
break;
}
}
}
private:
EventMap _events;
};
enum GraviticOrbSpells
{
SPELL_GRAVITIC_ORB_CONDENSED_MASS = 1287450,
SPELL_GRAVITIC_ORB_CONDENSED_MASS_2 = 1263983,
SPELL_GRAVITIC_ORB_GRAVITIC_ORB = 1285066,
};
enum GraviticOrbEvents
{
EVENT_GRAVITIC_ORB_GRAVITIC_ORB = 1,
};
// 255001 - Gravitic Orb
struct npc_gravitic_orb : public NullCreatureAI
{
npc_gravitic_orb(Creature* creature) : NullCreatureAI(creature) { }
void JustAppeared() override
{
DoCastSelf(SPELL_GRAVITIC_ORB_CONDENSED_MASS, true);
DoCastSelf(SPELL_GRAVITIC_ORB_CONDENSED_MASS_2, true);
_events.ScheduleEvent(EVENT_GRAVITIC_ORB_GRAVITIC_ORB, 2s);
}
void UpdateAI(uint32 diff) override
{
_events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
while (uint32 eventId = _events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_GRAVITIC_ORB_GRAVITIC_ORB:
DoCastSelf(SPELL_GRAVITIC_ORB_GRAVITIC_ORB, true);
_events.Repeat(3s);
break;
default:
break;
}
}
}
private:
EventMap _events;
};
void AddSC_boss_charonus()
{
RegisterVoidscarArenaCreatureAI(boss_charonus);
RegisterVoidscarArenaCreatureAI(npc_targeting_stalker);
RegisterVoidscarArenaCreatureAI(npc_gravitic_orb);
}
@@ -0,0 +1,82 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum DevouringBrutalizerSpells
{
SPELL_DEVOURING_BRUTALIZER_DEVOUR = 1300248,
SPELL_DEVOURING_BRUTALIZER_DEVOUR_2 = 1300249,
SPELL_DEVOURING_BRUTALIZER_DEVOUR_3 = 1302629,
SPELL_DEVOURING_BRUTALIZER_BRUTALIZE = 1300244,
SPELL_DEVOURING_BRUTALIZER_BRUTALIZE_2 = 1300243,
SPELL_DEVOURING_BRUTALIZER_DREADBELLOW = 1252406,
};
enum DevouringBrutalizerEvents
{
EVENT_DEVOURING_BRUTALIZER_DEVOUR = 1,
EVENT_DEVOURING_BRUTALIZER_BRUTALIZE,
EVENT_DEVOURING_BRUTALIZER_DREADBELLOW,
};
// 268184 - Devouring Brutalizer
struct boss_devouring_brutalizer : public BossAI
{
boss_devouring_brutalizer(Creature* creature) : BossAI(creature, DATA_DEVOURING_BRUTALIZER) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_DEVOURING_BRUTALIZER_DEVOUR, 2s);
events.ScheduleEvent(EVENT_DEVOURING_BRUTALIZER_BRUTALIZE, 7s);
events.ScheduleEvent(EVENT_DEVOURING_BRUTALIZER_DREADBELLOW, 12s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_DEVOURING_BRUTALIZER_DEVOUR:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 10.0f, true))
DoCast(target, urand(0, 2) ? SPELL_DEVOURING_BRUTALIZER_DEVOUR : SPELL_DEVOURING_BRUTALIZER_DEVOUR_3);
events.Repeat(8s);
break;
case EVENT_DEVOURING_BRUTALIZER_BRUTALIZE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
{
DoCast(target, SPELL_DEVOURING_BRUTALIZER_BRUTALIZE);
DoCast(target, SPELL_DEVOURING_BRUTALIZER_BRUTALIZE_2, true);
}
events.Repeat(7s);
break;
case EVENT_DEVOURING_BRUTALIZER_DREADBELLOW:
DoCastSelf(SPELL_DEVOURING_BRUTALIZER_DREADBELLOW);
events.Repeat(18s);
break;
default:
break;
}
}
};
void AddSC_boss_devouring_brutalizer()
{
RegisterVoidscarArenaCreatureAI(boss_devouring_brutalizer);
}
@@ -0,0 +1,101 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum TazrahSpells
{
SPELL_TAZRAH_NETHER_DASH = 1296901,
SPELL_TAZRAH_UMBRAL_RUPTURE = 1296963,
SPELL_TAZRAH_VOID_BLAST = 1297017,
SPELL_TAZRAH_ETHEREAL_SHADES = 1296889,
SPELL_TAZRAH_VOID_FISSURE = 1296966,
SPELL_TAZRAH_DARK_BLOOM = 1300259,
SPELL_TAZRAH_DARK_BLOOM_2 = 1300260,
};
enum TazrahEvents
{
EVENT_TAZRAH_NETHER_DASH = 1,
EVENT_TAZRAH_UMBRAL_RUPTURE,
EVENT_TAZRAH_VOID_BLAST,
EVENT_TAZRAH_ETHEREAL_SHADES,
EVENT_TAZRAH_VOID_FISSURE,
EVENT_TAZRAH_DARK_BLOOM,
};
// 238887 - Taz'Rah
struct boss_tazrah : public BossAI
{
boss_tazrah(Creature* creature) : BossAI(creature, DATA_TAZRAH) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_TAZRAH_NETHER_DASH, 1s);
events.ScheduleEvent(EVENT_TAZRAH_UMBRAL_RUPTURE, 8s);
events.ScheduleEvent(EVENT_TAZRAH_VOID_BLAST, 16s);
events.ScheduleEvent(EVENT_TAZRAH_ETHEREAL_SHADES, 24s);
events.ScheduleEvent(EVENT_TAZRAH_VOID_FISSURE, 30s);
events.ScheduleEvent(EVENT_TAZRAH_DARK_BLOOM, 6s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_TAZRAH_NETHER_DASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_TAZRAH_NETHER_DASH);
events.Repeat(35s);
break;
case EVENT_TAZRAH_UMBRAL_RUPTURE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_TAZRAH_UMBRAL_RUPTURE);
events.Repeat(35s);
break;
case EVENT_TAZRAH_VOID_BLAST:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 40.0f, true))
DoCast(target, SPELL_TAZRAH_VOID_BLAST);
events.Repeat(18s);
break;
case EVENT_TAZRAH_ETHEREAL_SHADES:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_TAZRAH_ETHEREAL_SHADES);
events.Repeat(35s);
break;
case EVENT_TAZRAH_VOID_FISSURE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
DoCast(target, SPELL_TAZRAH_VOID_FISSURE);
events.Repeat(12s);
break;
case EVENT_TAZRAH_DARK_BLOOM:
DoCastSelf(urand(0, 1) ? SPELL_TAZRAH_DARK_BLOOM : SPELL_TAZRAH_DARK_BLOOM_2);
events.Repeat(10s);
break;
default:
break;
}
}
};
void AddSC_boss_tazrah()
{
RegisterVoidscarArenaCreatureAI(boss_tazrah);
}
@@ -0,0 +1,95 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
enum WatchfulHarrowerSpells
{
SPELL_WATCHFUL_HARROWER_HORROWER_TELEPORT = 1240254,
SPELL_WATCHFUL_HARROWER_SKY_STRIKE = 1239855,
SPELL_WATCHFUL_HARROWER_SKY_STRIKE_2 = 1239856,
SPELL_WATCHFUL_HARROWER_SKY_STRIKE_3 = 1282766,
SPELL_WATCHFUL_HARROWER_VOID_BEAM = 1300138,
SPELL_WATCHFUL_HARROWER_VOID_BEAM_2 = 1300156,
SPELL_WATCHFUL_HARROWER_WHIRLING_GUST = 1300116,
SPELL_WATCHFUL_HARROWER_VIOLENT_WIND = 1300099,
};
enum WatchfulHarrowerEvents
{
EVENT_WATCHFUL_HARROWER_HORROWER_TELEPORT = 1,
EVENT_WATCHFUL_HARROWER_SKY_STRIKE,
EVENT_WATCHFUL_HARROWER_VOID_BEAM,
EVENT_WATCHFUL_HARROWER_WHIRLING_GUST,
};
// 245950 - Watchful Harrower
struct boss_watchful_harrower : public BossAI
{
boss_watchful_harrower(Creature* creature) : BossAI(creature, DATA_WATCHFUL_HARROWER) { }
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
events.ScheduleEvent(EVENT_WATCHFUL_HARROWER_HORROWER_TELEPORT, 1s);
events.ScheduleEvent(EVENT_WATCHFUL_HARROWER_SKY_STRIKE, 4s);
events.ScheduleEvent(EVENT_WATCHFUL_HARROWER_VOID_BEAM, 11s);
events.ScheduleEvent(EVENT_WATCHFUL_HARROWER_WHIRLING_GUST, 14s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_WATCHFUL_HARROWER_HORROWER_TELEPORT:
DoCastSelf(SPELL_WATCHFUL_HARROWER_HORROWER_TELEPORT, true);
events.Repeat(26s);
break;
case EVENT_WATCHFUL_HARROWER_SKY_STRIKE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_WATCHFUL_HARROWER_SKY_STRIKE);
DoCast(target, SPELL_WATCHFUL_HARROWER_SKY_STRIKE_2, true);
DoCast(target, SPELL_WATCHFUL_HARROWER_SKY_STRIKE_3, true);
}
events.Repeat(26s);
break;
case EVENT_WATCHFUL_HARROWER_VOID_BEAM:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 60.0f, true))
{
DoCast(target, SPELL_WATCHFUL_HARROWER_VOID_BEAM);
DoCast(target, SPELL_WATCHFUL_HARROWER_VOID_BEAM_2, true);
}
events.Repeat(26s);
break;
case EVENT_WATCHFUL_HARROWER_WHIRLING_GUST:
DoCastSelf(SPELL_WATCHFUL_HARROWER_WHIRLING_GUST);
DoCastSelf(SPELL_WATCHFUL_HARROWER_VIOLENT_WIND, true);
events.Repeat(26s);
break;
default:
break;
}
}
};
void AddSC_boss_watchful_harrower()
{
RegisterVoidscarArenaCreatureAI(boss_watchful_harrower);
}
@@ -0,0 +1,48 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
static constexpr DungeonEncounterData const encounters[] =
{
{ DATA_ATROXUS, {{ 3081 }} },
{ DATA_AEGYRA_THE_UNYIELDING, {{ 3082 }} },
{ DATA_BRUTOK, {{ 3083 }} },
{ DATA_BRUTAL_OVERSEER, {{ 3084 }} },
{ DATA_DEVOURING_BRUTALIZER, {{ 3085 }} },
{ DATA_WATCHFUL_HARROWER, {{ 3086 }} },
{ DATA_TAZRAH, {{ 3087 }} },
{ DATA_CHARONUS, {{ 3088 }} }
};
struct instance_voidscar_arena : public InstanceScript
{
instance_voidscar_arena(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(VSDataHeader);
SetBossNumber(VoidscarArenaEncounterCount);
LoadDungeonEncounterData(encounters);
}
};
void AddSC_instance_voidscar_arena()
{
RegisterInstanceMapScript(instance_voidscar_arena, 2923);
}
@@ -0,0 +1,79 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_VOIDSCAR_ARENA_H_
#define DEF_VOIDSCAR_ARENA_H_
#include "CreatureAIImpl.h"
#define VoidscarArenaScriptName "instance_voidscar_arena"
#define VSDataHeader "VoidscarArena"
uint32 const VoidscarArenaEncounterCount = 8;
enum VoidscarArenaDataTypes
{
DATA_ATROXUS = 0,
DATA_AEGYRA_THE_UNYIELDING = 1,
DATA_BRUTOK = 2,
DATA_BRUTAL_OVERSEER = 3,
DATA_DEVOURING_BRUTALIZER = 4,
DATA_WATCHFUL_HARROWER = 5,
DATA_TAZRAH = 6,
DATA_CHARONUS = 7,
};
enum VoidscarArenaCreatureIds
{
// Bosses
NPC_ATROXUS = 239008,
NPC_AEGYRA_THE_UNYIELDING = 267545,
NPC_BRUTOK = 244309,
NPC_BRUTAL_OVERSEER = 252053,
NPC_DEVOURING_BRUTALIZER = 268184,
NPC_WATCHFUL_HARROWER = 245950,
NPC_TAZRAH = 238887,
NPC_CHARONUS = 239167,
// Boss support adds
NPC_CHAMPIONS_SPEAR = 267550,
NPC_TARGETING_STALKER = 255000,
NPC_GRAVITIC_ORB = 255001,
NPC_ETHEREAL_SHADE = 254677,
// Dungeon adds
NPC_VOIDMINDER = 244708,
NPC_LONGTOOTH_TUSKARR = 243985,
NPC_SYCOPHANTIC_TARASEK = 243983,
NPC_DOMINATED_BRAWLER = 238883,
NPC_PROTECTIVE_TURTLE = 249603,
NPC_KILIVORE_SCREAMER = 243766,
NPC_CHITIGOTH = 244260,
NPC_TOXIC_CREEPER = 239070,
NPC_ABDUCTED_DRAKONID = 249461,
NPC_RAGING_RAPTOR = 249608,
};
template <class AI, class T>
inline AI* GetVoidscarArenaAI(T* obj)
{
return GetInstanceAI<AI>(obj, VoidscarArenaScriptName);
}
#define RegisterVoidscarArenaCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetVoidscarArenaAI)
#endif
@@ -0,0 +1,524 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "ScriptedCreature.h"
#include "ScriptMgr.h"
#include "voidscar_arena.h"
// ---------- Voidminder (244708) ----------
enum VoidminderSpells
{
SPELL_VOIDMINDER_VOID_LEASH = 1282783,
SPELL_VOIDMINDER_DIMENSIONAL_SHRED = 1226909,
SPELL_VOIDMINDER_DIMENSIONAL_SHRED_2 = 1227005,
SPELL_VOIDMINDER_DIMENSIONAL_SHRED_3 = 1227020,
SPELL_VOIDMINDER_MENDING_VOID = 1310324,
};
enum VoidminderEvents
{
EVENT_VOIDMINDER_VOID_LEASH = 1,
EVENT_VOIDMINDER_DIMENSIONAL_SHRED,
EVENT_VOIDMINDER_MENDING_VOID,
};
struct npc_voidscar_voidminder : public ScriptedAI
{
npc_voidscar_voidminder(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_VOIDMINDER_VOID_LEASH, 6s);
events.ScheduleEvent(EVENT_VOIDMINDER_DIMENSIONAL_SHRED, 14s);
events.ScheduleEvent(EVENT_VOIDMINDER_MENDING_VOID, 18s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_VOIDMINDER_VOID_LEASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_VOIDMINDER_VOID_LEASH);
events.Repeat(6s);
break;
case EVENT_VOIDMINDER_DIMENSIONAL_SHRED:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 40.0f, true))
{
DoCast(target, SPELL_VOIDMINDER_DIMENSIONAL_SHRED);
DoCast(target, SPELL_VOIDMINDER_DIMENSIONAL_SHRED_2, true);
DoCast(target, SPELL_VOIDMINDER_DIMENSIONAL_SHRED_3, true);
}
events.Repeat(16s);
break;
case EVENT_VOIDMINDER_MENDING_VOID:
if (Creature* ally = GetFriendlyCreature())
DoCast(ally, SPELL_VOIDMINDER_MENDING_VOID, true);
events.Repeat(18s);
break;
default:
break;
}
}
Creature* GetFriendlyCreature()
{
std::list<Unit*> friends;
me->GetFriendlyUnitListInRange(friends, 40.0f, true);
for (Unit* unit : friends)
if (Creature* creature = unit->ToCreature())
return creature;
return nullptr;
}
};
// ---------- Longtooth Tuskarr (243985) ----------
enum LongtoothTuskarrSpells
{
SPELL_LONGTOOTH_TUSKARR_BOLSTER = 1310319,
};
enum LongtoothTuskarrEvents
{
EVENT_LONGTOOTH_TUSKARR_BOLSTER = 1,
};
struct npc_voidscar_longtooth_tuskarr : public ScriptedAI
{
npc_voidscar_longtooth_tuskarr(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_LONGTOOTH_TUSKARR_BOLSTER, 4s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_LONGTOOTH_TUSKARR_BOLSTER:
if (Creature* ally = GetFriendlyCreature())
DoCast(ally, SPELL_LONGTOOTH_TUSKARR_BOLSTER, true);
else
DoCastSelf(SPELL_LONGTOOTH_TUSKARR_BOLSTER, true);
events.Repeat(urand(4, 8) * 1s);
break;
default:
break;
}
}
Creature* GetFriendlyCreature()
{
std::list<Unit*> friends;
me->GetFriendlyUnitListInRange(friends, 40.0f, true);
for (Unit* unit : friends)
if (Creature* creature = unit->ToCreature())
return creature;
return nullptr;
}
};
// ---------- Sycophantic Tarasek (243983) ----------
enum SycophanticTarasekSpells
{
SPELL_SYCOPHANTIC_TARASEK_MELT_ARMOR = 1250043,
};
enum SycophanticTarasekEvents
{
EVENT_SYCOPHANTIC_TARASEK_MELT_ARMOR = 1,
};
struct npc_voidscar_sycophantic_tarasek : public ScriptedAI
{
npc_voidscar_sycophantic_tarasek(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_SYCOPHANTIC_TARASEK_MELT_ARMOR, 4s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_SYCOPHANTIC_TARASEK_MELT_ARMOR:
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 40.0f, true))
DoCast(target, SPELL_SYCOPHANTIC_TARASEK_MELT_ARMOR);
events.Repeat(4s);
break;
default:
break;
}
}
};
// ---------- Dominated Brawler (238883) ----------
enum DominatedBrawlerSpells
{
SPELL_DOMINATED_BRAWLER_BLOODSURGE = 1254826,
SPELL_DOMINATED_BRAWLER_DEMORALIZING_SHOUT = 1298899,
};
enum DominatedBrawlerEvents
{
EVENT_DOMINATED_BRAWLER_BLOODSURGE = 1,
EVENT_DOMINATED_BRAWLER_DEMORALIZING_SHOUT,
};
struct npc_voidscar_dominated_brawler : public ScriptedAI
{
npc_voidscar_dominated_brawler(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_DOMINATED_BRAWLER_BLOODSURGE, 8s);
events.ScheduleEvent(EVENT_DOMINATED_BRAWLER_DEMORALIZING_SHOUT, 14s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_DOMINATED_BRAWLER_BLOODSURGE:
DoCastSelf(SPELL_DOMINATED_BRAWLER_BLOODSURGE);
events.Repeat(16s);
break;
case EVENT_DOMINATED_BRAWLER_DEMORALIZING_SHOUT:
DoCastSelf(SPELL_DOMINATED_BRAWLER_DEMORALIZING_SHOUT);
events.Repeat(20s);
break;
default:
break;
}
}
};
// ---------- Protective Turtle (249603) ----------
enum ProtectiveTurtleSpells
{
SPELL_PROTECTIVE_TURTLE_SHELL_GUARD = 1250021,
SPELL_PROTECTIVE_TURTLE_PROTECTED = 1250023,
SPELL_PROTECTIVE_TURTLE_EXHAUSTED = 1310320,
};
enum ProtectiveTurtleEvents
{
EVENT_PROTECTIVE_TURTLE_SHELL_GUARD = 1,
EVENT_PROTECTIVE_TURTLE_EXHAUSTED,
};
struct npc_voidscar_protective_turtle : public ScriptedAI
{
npc_voidscar_protective_turtle(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_PROTECTIVE_TURTLE_SHELL_GUARD, 6s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_PROTECTIVE_TURTLE_SHELL_GUARD:
DoCastSelf(SPELL_PROTECTIVE_TURTLE_SHELL_GUARD);
DoCastSelf(SPELL_PROTECTIVE_TURTLE_PROTECTED, true);
events.Repeat(30s);
events.ScheduleEvent(EVENT_PROTECTIVE_TURTLE_EXHAUSTED, 10s);
break;
case EVENT_PROTECTIVE_TURTLE_EXHAUSTED:
DoCastSelf(SPELL_PROTECTIVE_TURTLE_EXHAUSTED, true);
break;
default:
break;
}
}
};
// ---------- Kilivore Screamer (243766) ----------
enum KilivoreScreamerSpells
{
SPELL_KILIVORE_SCREAMER_MAD_SHRIEK = 1233398,
};
enum KilivoreScreamerEvents
{
EVENT_KILIVORE_SCREAMER_MAD_SHRIEK = 1,
};
struct npc_voidscar_kilivore_screamer : public ScriptedAI
{
npc_voidscar_kilivore_screamer(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_KILIVORE_SCREAMER_MAD_SHRIEK, urand(2, 6) * 1s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_KILIVORE_SCREAMER_MAD_SHRIEK:
DoCastSelf(SPELL_KILIVORE_SCREAMER_MAD_SHRIEK);
events.Repeat(urand(24, 31) * 1s);
break;
default:
break;
}
}
};
// ---------- Chitigoth (244260) ----------
enum ChitigothSpells
{
SPELL_CHITIGOTH_RAVENOUS_SWARM = 1234826,
SPELL_CHITIGOTH_RAVENOUS_SWARM_2 = 1234833,
SPELL_CHITIGOTH_RAVENOUS_SWARM_3 = 1250079,
SPELL_CHITIGOTH_INSIDIOUS_AURA = 1234855,
SPELL_CHITIGOTH_INSIDIOUS_AURA_2 = 1250695,
};
enum ChitigothEvents
{
EVENT_CHITIGOTH_RAVENOUS_SWARM = 1,
EVENT_CHITIGOTH_INSIDIOUS_AURA,
};
struct npc_voidscar_chitigoth : public ScriptedAI
{
npc_voidscar_chitigoth(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_CHITIGOTH_INSIDIOUS_AURA, 2s);
events.ScheduleEvent(EVENT_CHITIGOTH_RAVENOUS_SWARM, 8s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_CHITIGOTH_RAVENOUS_SWARM:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
{
DoCast(target, urand(0, 1) ? SPELL_CHITIGOTH_RAVENOUS_SWARM : SPELL_CHITIGOTH_RAVENOUS_SWARM_2);
DoCast(target, SPELL_CHITIGOTH_RAVENOUS_SWARM_3, true);
}
events.Repeat(10s);
break;
case EVENT_CHITIGOTH_INSIDIOUS_AURA:
DoCastSelf(urand(0, 1) ? SPELL_CHITIGOTH_INSIDIOUS_AURA : SPELL_CHITIGOTH_INSIDIOUS_AURA_2, true);
events.Repeat(20s);
break;
default:
break;
}
}
};
// ---------- Toxic Creeper (239070) ----------
enum ToxicCreeperSpells
{
SPELL_TOXIC_CREEPER_FIXATE = 1263339,
SPELL_TOXIC_CREEPER_SICKENING_BITE = 1282892,
SPELL_TOXIC_CREEPER_SICKENING_BITE_2 = 1300263,
};
enum ToxicCreeperEvents
{
EVENT_TOXIC_CREEPER_FIXATE = 1,
EVENT_TOXIC_CREEPER_SICKENING_BITE,
};
struct npc_voidscar_toxic_creeper : public ScriptedAI
{
npc_voidscar_toxic_creeper(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_TOXIC_CREEPER_FIXATE, 2s);
events.ScheduleEvent(EVENT_TOXIC_CREEPER_SICKENING_BITE, 4s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_TOXIC_CREEPER_FIXATE:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 40.0f, true))
DoCast(target, SPELL_TOXIC_CREEPER_FIXATE, true);
events.Repeat(14s);
break;
case EVENT_TOXIC_CREEPER_SICKENING_BITE:
DoCastVictim(urand(0, 1) ? SPELL_TOXIC_CREEPER_SICKENING_BITE : SPELL_TOXIC_CREEPER_SICKENING_BITE_2);
events.Repeat(6s);
break;
default:
break;
}
}
};
// ---------- Abducted Drakonid (249461) ----------
enum AbductedDrakonidSpells
{
SPELL_ABDUCTED_DRAKONID_FIRE_SPIT = 1249236,
SPELL_ABDUCTED_DRAKONID_FIRE_SPIT_2 = 1249237,
SPELL_ABDUCTED_DRAKONID_FIRE_SPIT_3 = 1249238,
};
enum AbductedDrakonidEvents
{
EVENT_ABDUCTED_DRAKONID_FIRE_SPIT = 1,
};
struct npc_voidscar_abducted_drakonid : public ScriptedAI
{
npc_voidscar_abducted_drakonid(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_ABDUCTED_DRAKONID_FIRE_SPIT, 3s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_ABDUCTED_DRAKONID_FIRE_SPIT:
DoCastVictim(urand(0, 2) == 0 ? SPELL_ABDUCTED_DRAKONID_FIRE_SPIT :
urand(0, 1) ? SPELL_ABDUCTED_DRAKONID_FIRE_SPIT_2 : SPELL_ABDUCTED_DRAKONID_FIRE_SPIT_3);
events.Repeat(5s);
break;
default:
break;
}
}
};
// ---------- Raging Raptor (249608) ----------
enum RagingRaptorSpells
{
SPELL_RAGING_RAPTOR_FERAL_RAGE = 1249661,
};
enum RagingRaptorEvents
{
EVENT_RAGING_RAPTOR_FERAL_RAGE = 1,
};
struct npc_voidscar_raging_raptor : public ScriptedAI
{
npc_voidscar_raging_raptor(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_RAGING_RAPTOR_FERAL_RAGE, 5s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_RAGING_RAPTOR_FERAL_RAGE:
DoCastSelf(SPELL_RAGING_RAPTOR_FERAL_RAGE);
events.Repeat(18s);
break;
default:
break;
}
}
};
// ---------- Ethereal Shade (254677) ----------
enum EtherealShadeSpells
{
SPELL_ETHEREAL_SHADE_NETHER_DASH = 1222098,
SPELL_ETHEREAL_SHADE_NETHER_DASH_2 = 1222100,
SPELL_ETHEREAL_SHADE_NETHER_DASH_3 = 1222103,
SPELL_ETHEREAL_SHADE_NETHER_DASH_4 = 1298673,
SPELL_ETHEREAL_SHADE_ANCHOR_HERE = 45313,
};
enum EtherealShadeEvents
{
EVENT_ETHEREAL_SHADE_NETHER_DASH = 1,
EVENT_ETHEREAL_SHADE_ANCHOR_HERE,
};
struct npc_voidscar_ethereal_shade : public ScriptedAI
{
npc_voidscar_ethereal_shade(Creature* creature) : ScriptedAI(creature) { }
void JustEngagedWith(Unit* /*who*/) override
{
events.ScheduleEvent(EVENT_ETHEREAL_SHADE_ANCHOR_HERE, 1s);
events.ScheduleEvent(EVENT_ETHEREAL_SHADE_NETHER_DASH, 3s);
}
void ExecuteEvent(uint32 eventId) override
{
switch (eventId)
{
case EVENT_ETHEREAL_SHADE_NETHER_DASH:
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true))
{
DoCast(target, SPELL_ETHEREAL_SHADE_NETHER_DASH);
DoCast(target, SPELL_ETHEREAL_SHADE_NETHER_DASH_2, true);
DoCast(target, SPELL_ETHEREAL_SHADE_NETHER_DASH_3, true);
DoCast(target, SPELL_ETHEREAL_SHADE_NETHER_DASH_4, true);
}
events.Repeat(10s);
break;
case EVENT_ETHEREAL_SHADE_ANCHOR_HERE:
DoCastSelf(SPELL_ETHEREAL_SHADE_ANCHOR_HERE, true);
events.Repeat(12s);
break;
default:
break;
}
}
};
void AddSC_voidscar_arena_trash()
{
RegisterVoidscarArenaCreatureAI(npc_voidscar_voidminder);
RegisterVoidscarArenaCreatureAI(npc_voidscar_longtooth_tuskarr);
RegisterVoidscarArenaCreatureAI(npc_voidscar_sycophantic_tarasek);
RegisterVoidscarArenaCreatureAI(npc_voidscar_dominated_brawler);
RegisterVoidscarArenaCreatureAI(npc_voidscar_protective_turtle);
RegisterVoidscarArenaCreatureAI(npc_voidscar_kilivore_screamer);
RegisterVoidscarArenaCreatureAI(npc_voidscar_chitigoth);
RegisterVoidscarArenaCreatureAI(npc_voidscar_toxic_creeper);
RegisterVoidscarArenaCreatureAI(npc_voidscar_abducted_drakonid);
RegisterVoidscarArenaCreatureAI(npc_voidscar_raging_raptor);
RegisterVoidscarArenaCreatureAI(npc_voidscar_ethereal_shade);
}
@@ -46,6 +46,7 @@ void AddSC_boss_seranel_sunlash();
void AddSC_boss_gemellus();
void AddSC_boss_degentrius();
void AddSC_magisters_terrace_trash();
void AddSC_npc_magister_umbric();
void AddSC_instance_blindingvale();
void AddSC_boss_lightblossom_trinity();
void AddSC_boss_ikuzz();
@@ -56,6 +57,16 @@ void AddSC_boss_kasreth();
void AddSC_boss_nysarra();
void AddSC_boss_lothraxion();
void AddSC_nexuspointxenas_trash();
void AddSC_instance_voidscar_arena();
void AddSC_boss_atroxus();
void AddSC_boss_aegyra_the_unyielding();
void AddSC_boss_brutok();
void AddSC_boss_brutal_overseer();
void AddSC_boss_devouring_brutalizer();
void AddSC_boss_watchful_harrower();
void AddSC_boss_tazrah();
void AddSC_boss_charonus();
void AddSC_voidscar_arena_trash();
void AddMidnightScripts()
{
@@ -85,6 +96,7 @@ void AddMidnightScripts()
AddSC_boss_gemellus();
AddSC_boss_degentrius();
AddSC_magisters_terrace_trash();
AddSC_npc_magister_umbric();
AddSC_instance_blindingvale();
AddSC_boss_lightblossom_trinity();
AddSC_boss_ikuzz();
@@ -95,4 +107,14 @@ void AddMidnightScripts()
AddSC_boss_nysarra();
AddSC_boss_lothraxion();
AddSC_nexuspointxenas_trash();
AddSC_instance_voidscar_arena();
AddSC_boss_atroxus();
AddSC_boss_aegyra_the_unyielding();
AddSC_boss_brutok();
AddSC_boss_brutal_overseer();
AddSC_boss_devouring_brutalizer();
AddSC_boss_watchful_harrower();
AddSC_boss_tazrah();
AddSC_boss_charonus();
AddSC_voidscar_arena_trash();
}