Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.

Commit

Permalink
Scripts/BoT: updated and modernized Halfus Wyrmbreaker encounter
Browse files Browse the repository at this point in the history
* moved several mechanics from instance script into the boss script itself
* changed the unresponsive dragon selection from two saved variables into a single generated flag
* corrected timer layout for the Proto-Behemoth and handled a missing mechanic of the Time-Dilation debuff
* moved all encounter spawns into spawngroups
* simplified and cleaned up the dragon ads script
  • Loading branch information
Ovahlord committed Dec 19, 2023
1 parent d8ef035 commit abfddaa
Show file tree
Hide file tree
Showing 4 changed files with 430 additions and 406 deletions.
118 changes: 118 additions & 0 deletions sql/updates/world/4.3.4/2023_12_19_00_world.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
SET @CGUID := 254934;
DELETE FROM `creature` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+26;
DELETE FROM `creature_addon` WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+26;
INSERT INTO `creature` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `PhaseId`, `PhaseGroup`, `modelid`, `equipment_id`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `wander_distance`, `currentwaypoint`, `curhealth`, `curmana`, `MovementType`, `npcflag`, `unit_flags`, `dynamicflags`, `VerifiedBuild`) VALUES
(@CGUID+0, 44797, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -353.178985595703125, -700.6669921875, 888.1903076171875, 5.532693862915039062, 7200, 0, 0, 4149700, 0, 0, 0, 0, 0, 15595), -- Time Warden (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86003 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+1, 44652, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -279.110992431640625, -680.593994140625, 888.1912841796875, 3.106686115264892578, 7200, 0, 0, 4149700, 0, 0, 0, 0, 0, 15595), -- Slate Dragon (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86003 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+2, 44650, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -318.704986572265625, -722.68798828125, 888.1912841796875, 3.193952560424804687, 7200, 0, 0, 4149700, 0, 0, 0, 0, 0, 15595), -- Storm Rider (Area: 0 - Difficulty: 1) CreateObject2 - !!! might be temporary spawn !!!
(@CGUID+3, 44645, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -280.118011474609375, -659.385009765625, 888.18829345703125, 1.675516128540039062, 7200, 0, 0, 4149700, 0, 0, 0, 0, 0, 15595), -- Nether Scion (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86003 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+4, 44687, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -265.8909912109375, -740.02301025390625, 907.36334228515625, 2.338741064071655273, 7200, 0, 0, 26143110, 0, 0, 0, 0, 0, 15595), -- Proto-Behemoth (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 83412 - Force Flying) - !!! might be temporary spawn !!!
(@CGUID+5, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -347.079986572265625, -728.12799072265625, 891.76434326171875, 1.117010712623596191, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+6, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -347.5780029296875, -717.302001953125, 891.7633056640625, 1.047197580337524414, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+7, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -340.75, -722.47601318359375, 891.76434326171875, 1.169370532035827636, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+8, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -350.563995361328125, -721.66302490234375, 891.7633056640625, 1.01229095458984375, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+9, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -346.433990478515625, -724.04901123046875, 891.76434326171875, 1.099557399749755859, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+10, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -350.571014404296875, -725.4169921875, 891.7633056640625, 1.064650893211364746, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+11, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -342.00201416015625, -726.52801513671875, 891.76434326171875, 1.169370532035827636, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+12, 44641, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -344.8389892578125, -720.16302490234375, 891.76434326171875, 1.082104086875915527, 7200, 0, 0, 414970, 0, 0, 0, 0, 0, 15595), -- Orphaned Emerald Whelp (Area: 0 - Difficulty: 1) CreateObject2 (Auras: 86022 - Unresponsive) - !!! might be temporary spawn !!!
(@CGUID+13, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -358.9639892578125, -702.14801025390625, 888.1903076171875, 2.30383467674255371, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+14, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -348.537994384765625, -700.24700927734375, 888.1903076171875, 5.532693862915039062, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+15, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -352.803985595703125, -695.06402587890625, 888.1903076171875, 5.358160972595214843, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+16, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -353.764007568359375, -706.36102294921875, 888.1903076171875, 2.30383467674255371, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+17, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -314.985992431640625, -717.39599609375, 888.1903076171875, 0.261799395084381103, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+18, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -277.954986572265625, -687.78802490234375, 888.19232177734375, 3.159045934677124023, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+19, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -273.010009765625, -684.6939697265625, 888.1912841796875, 3.159045934677124023, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+20, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -321.9739990234375, -718.42401123046875, 888.1912841796875, 0.383972436189651489, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1
(@CGUID+21, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -284.868011474609375, -661.1510009765625, 888.1903076171875, 1.710422635078430175, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+22, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -273.9219970703125, -675.947998046875, 888.1893310546875, 6.195918560028076171, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+23, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -283.141998291015625, -685.32501220703125, 888.1912841796875, 3.159045934677124023, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+24, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -280.7239990234375, -674.46002197265625, 888.1903076171875, 0.087266460061073303, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)
(@CGUID+25, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -320.157989501953125, -727.9949951171875, 888.1912841796875, 3.246312379837036132, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326), -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1
(@CGUID+26, 44765, 671, 5334, 5334, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, 0, 0, -274.890625, -656.8350830078125, 888.1893310546875, 4.956735134124755859, 7200, 0, 0, 4679, 0, 0, 0, 0, 0, 27326); -- Spike (Area: The Bastion of Twilight - Difficulty: 5) CreateObject1 (Auras: 83480 - Spike Visual)

SET @OGUID := 211121;
DELETE FROM `gameobject` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+1;
INSERT INTO `gameobject` (`guid`, `id`, `map`, `zoneId`, `areaId`, `spawnMask`, `PhaseId`, `PhaseGroup`, `position_x`, `position_y`, `position_z`, `orientation`, `rotation0`, `rotation1`, `rotation2`, `rotation3`, `spawntimesecs`, `animprogress`, `state`, `VerifiedBuild`) VALUES
(@OGUID+0, 205088, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, -346.6719970703125, -723.260009765625, 888.10601806640625, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 7200, 255, 1, 15595), -- Whelp Cage Base (Area: 0 - Difficulty: 1) CreateObject2
(@OGUID+1, 205087, 671, 5334, 0, 0x1 | 0x2 | 0x4 | 0x8, 169, 0, -346.6719970703125, -723.260009765625, 888.10601806640625, 5.532694816589355468, 0, 0, -0.3665008544921875, 0.93041771650314331, 7200, 255, 1, 15595); -- Whelp Cage (Area: 0 - Difficulty: 1) CreateObject2

DELETE FROM `gameobject_addon` WHERE `guid` BETWEEN @OGUID+0 AND @OGUID+1;

DELETE FROM `spawn_group_template` WHERE `groupId`= 462;
INSERT INTO `spawn_group_template` (`groupId`, `groupName`, `groupFlags`) VALUES
(462, 'Bastion of Twilight - Halfus Wyrmbreaker Encounter Setup', 4);

DELETE FROM `spawn_group` WHERE `groupId`= 462;
INSERT INTO `spawn_group` (`groupId`, `spawnType`, `spawnId`) VALUES
(462, 0, @CGUID+0),
(462, 0, @CGUID+1),
(462, 0, @CGUID+2),
(462, 0, @CGUID+3),
(462, 0, @CGUID+4),
(462, 0, @CGUID+5),
(462, 0, @CGUID+6),
(462, 0, @CGUID+7),
(462, 0, @CGUID+8),
(462, 0, @CGUID+9),
(462, 0, @CGUID+10),
(462, 0, @CGUID+11),
(462, 0, @CGUID+12),
(462, 0, @CGUID+13),
(462, 0, @CGUID+14),
(462, 0, @CGUID+15),
(462, 0, @CGUID+16),
(462, 0, @CGUID+17),
(462, 0, @CGUID+18),
(462, 0, @CGUID+19),
(462, 0, @CGUID+20),
(462, 0, @CGUID+21),
(462, 0, @CGUID+22),
(462, 0, @CGUID+23),
(462, 0, @CGUID+24),
(462, 0, @CGUID+25),
(462, 0, @CGUID+26),
(462, 0, 253808),
(462, 0, 253815),
(462, 0, 253820),
(462, 0, 253821),
(462, 0, 253861),
(462, 0, 253863),
(462, 0, 253864),
(462, 0, 253866),
(462, 0, 253868),
(462, 0, 253869),
(462, 0, 253871),
(462, 0, 253874),
(462, 0, 253876),
(462, 0, 253878),
(462, 1, @OGUID+0),
(462, 1, @OGUID+1);

DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_halfus_unresponsive', 'spell_halfus_fireball', 'spell_halfus_fireball_barrage');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(86003, 'spell_halfus_unresponsive'),
(86022, 'spell_halfus_unresponsive'),
(86058, 'spell_halfus_fireball'),
(83862, 'spell_halfus_fireball'),
(83719, 'spell_halfus_fireball_barrage');

UPDATE `creature_template` SET `npcflag`= 0x1000000 WHERE `entry` IN (44653, 46221, 46222, 46223, 44826, 46218, 46219, 46220, 44828, 46212, 46213, 46214, 44829, 46215, 46216, 46217);

DELETE FROM `npc_spellclick_spells` WHERE `npc_entry` IN (44653, 46221, 46222, 46223, 44826, 46218, 46219, 46220, 44828, 46212, 46213, 46214, 44829, 46215, 46216, 46217);
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES
(44653, 83447, 1, 1),
(46221, 83447, 1, 1),
(46222, 83447, 1, 1),
(46223, 83447, 1, 1),
(44826, 83591, 1, 1),
(46218, 83591, 1, 1),
(46219, 83591, 1, 1),
(46220, 83591, 1, 1),
(44828, 83589, 1, 1),
(46212, 83589, 1, 1),
(46213, 83589, 1, 1),
(46214, 83589, 1, 1),
(44829, 83590, 1, 1),
(46215, 83590, 1, 1),
(46216, 83590, 1, 1),
(46217, 83590, 1, 1);
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,12 @@ enum BoTDataTypes

// Encounter Related
/*Halfus Wyrmbreaker*/
DATA_UNRESPONSIVE_DRAGON_FIRST,
DATA_UNRESPONSIVE_DRAGON_SECOND,
DATA_CAST_DRAGON_BUFFS,
DATA_DRAGON_CAGE_ENABLED,
DATA_OPEN_ORPHANED_EMERALD_WHELP_CAGE,
DATA_ACTIVE_DRAGON_FLAGS,
DATA_SLATE_DRAGON,
DATA_NETHER_SCION,
DATA_STORM_RIDER,
DATA_TIME_WARDEN,
DATA_WHELP_CAGE,

/*Theralion and Valiona*/
DATA_RANDOM_VALIONA_DUMMY,
Expand All @@ -78,12 +79,6 @@ enum BoTDataTypes
DATA_FULL_HEROIC_ID
};

enum BoTDataStates
{
DRAGON_BUFFS_HALFUS_WYRMBREAKER = 0,
DRAGON_BUFFS_PROTO_BEHEMOTH,
};

enum BoTCreatures
{
// Bosses
Expand Down Expand Up @@ -160,13 +155,7 @@ enum BoTGameObjects
enum BoTActions
{
// Halfus Wyrmbreaker
ACTION_ENABLE_MALEVOLENT_STRIKES = 1,
ACTION_ENABLE_FRENZIED_ASSAULT = 2,
ACTION_ENABLE_SHADOW_NOVA = 3,
ACTION_ENABLE_FIREBALL_BARRAGE = 1,
ACTION_ENABLE_SCORCHING_BREATH = 2,
ACTION_CAST_DRAGONS_VENGEANCE = 3,
ACTION_MOVE_OUT_OF_CAGE = 4,
ACTION_DRAGON_FREED = 0,

// Theralion and Valiona
ACTION_START_ARGUMENT_INTRO = 1,
Expand Down Expand Up @@ -208,6 +197,17 @@ enum BoTWorldStates
WORLD_STATE_ID_THE_ABYSS_WILL_GAZE_BACK_INTO_YOU = 5659
};

enum BoTHalfusDragonFlags : uint8
{
DRAGON_FLAG_NETHER_SCION = 0x01,
DRAGON_FLAG_SLATE_DRAGON = 0x02,
DRAGON_FLAG_STORM_RIDER = 0x04,
DRAGON_FLAG_TIME_WARDEN = 0x08,
DRAGON_FLAG_EMERALD_WHELPS = 0x10,

DRAGON_FLAG_ALL_ACTIVE = DRAGON_FLAG_NETHER_SCION | DRAGON_FLAG_SLATE_DRAGON | DRAGON_FLAG_STORM_RIDER | DRAGON_FLAG_TIME_WARDEN | DRAGON_FLAG_EMERALD_WHELPS
};

template<class AI>
AI* GetBastionOfTwilightAI(Creature* creature)
{
Expand Down
Loading

0 comments on commit abfddaa

Please sign in to comment.