Scripts/Deadmines: implement Helix Gearbreaker encounter

This commit is contained in:
Ovalord
2018-02-17 00:46:25 +01:00
parent 34a4576fa9
commit 9e9f5ff7ec
6 changed files with 1114 additions and 7 deletions

View File

@@ -0,0 +1,63 @@
-- Template Updates
-- Helix Gearbreaker
UPDATE `creature_template` SET `scriptname`= 'boss_helix_gearbreaker', `flags_extra`= `flags_extra`|1 WHERE `entry`= 47296;
-- Lumbering Oaf
UPDATE `creature_template` SET `scriptname`= 'npc_helix_lumbering_oaf' WHERE `entry`= 47297;
UPDATE `creature_template` SET `minlevel`= 87, `maxlevel`= 87 WHERE `entry`= 48939;
-- Sticky Bomb
UPDATE `creature_template` SET `difficulty_entry_1`= 49134, `scriptname`= 'npc_helix_sticky_bomb' WHERE `entry`= 47314;
UPDATE `creature_template` SET `minlevel`= 85, `maxlevel`= 85, `faction`= 14, `unit_flags`= 33554432 WHERE `entry`= 49134;
-- Helix' Crew
UPDATE `creature_template` SET `scriptname`= 'npc_helix_crew' WHERE `entry`= 49139;
-- Texts
DELETE FROM `creature_text` WHERE `CreatureID` IN (47296, 47297, 49139);
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `Comment`) VALUES
-- Helix Gearbreaker
(47296, 0, 0, 'The mistress will pay me handsomely for your heads!', 14, 0, 100, 0, 0, 20849, 47474, 'Helix Gearbreaker - Aggro'),
(47296, 1, 0, 'Bombs away!', 14, 0, 100, 0, 0, 20847, 47475, 'Helix Gearbreaker - Bomb'),
(47296, 2, 0, 'Ready Oafie? Throw!', 14, 0, 100, 0, 0, 20848, 47476, 'Helix Gearbreaker - Throw Helix'),
(47296, 3, 0, 'Helix attaches a bomb to $n''s chest!', 41, 0, 100, 0, 0, 0, 47544, 'Helix Gearbreaker - Announce Bomb'),
(47296, 4, 0, 'I didn''t need him! Not when I''ve got YOU oafs!', 14, 0, 100, 0, 0, 20846, 47573, 'Helix Gearbreaker - Oaf Death'),
(47296, 5, 0, 'Only ten copper? You''re not even worth killing!', 14, 0, 100, 0, 0, 20845, 47574, 'Helix Gearbreaker - Slay'),
(47296, 6, 0, 'The scales...have...tipped...', 14, 0, 100, 0, 0, 20844, 47575, 'Helix Gearbreaker - Death'),
(47297, 0, 1, 'No...NO!', 14, 0, 100, 0, 0, 20854, 47480, 'Lumbering Oaf to Helix Gearbreaker'),
(47297, 1, 2, 'OAF SMASH!!', 14, 0, 100, 0, 0, 0, 48117, 'Lumbering Oaf to Helix Gearbreaker'),
(49139, 0, 0, 'Blowin'' em'' to bits, boss!', 12, 0, 100, 0, 0, 0, 49191, 'Helix Crew - Throw Bomb');
-- Spells
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
('spell_helix_throw_bomb_targeting',
'spell_helix_sticky_bomb_periodic_trigger',
'spell_helix_explode',
'spell_helix_oaf_grab_targeting',
'spell_helix_force_player_to_ride_oaf',
'spell_helix_oaf_smash',
'spell_helix_ride_face_targeting',
'spell_helix_ride_vehicle',
'spell_helix_ride_face_timer_aura',
'spell_helix_chest_bomb_emote',
'spell_helix_chest_bomb');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(88268, 'spell_helix_throw_bomb_targeting'),
(88329, 'spell_helix_sticky_bomb_periodic_trigger'),
(88321, 'spell_helix_explode'),
(91567, 'spell_helix_explode'),
(88974, 'spell_helix_explode'),
(91566, 'spell_helix_explode'),
(88289, 'spell_helix_oaf_grab_targeting'),
(88278, 'spell_helix_force_player_to_ride_oaf'),
(88300, 'spell_helix_oaf_smash'),
(91568, 'spell_helix_oaf_smash'),
(88349, 'spell_helix_ride_face_targeting'),
(88360, 'spell_helix_ride_vehicle'),
(88351, 'spell_helix_ride_face_timer_aura'),
(91572, 'spell_helix_chest_bomb_emote'),
(88352, 'spell_helix_chest_bomb');
-- Conditions
DELETE FROM `conditions` WHERE `SourceEntry`= 88295 AND `SourceTypeOrReferenceId`= 13;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ScriptName`, `Comment`) VALUES
(13, 1, 88295, 0, 0, 31, 0, 3, 45979, 0, 0, 0, '', 'Charge - Target General Purpose Bunny'),
(13, 1, 88295, 0, 0, 35, 0, 1, 20, 3, 0, 0, '', 'Charge - Target Distance Must be Higher than 15 yards');

View File

@@ -4144,6 +4144,13 @@ void SpellMgr::LoadSpellInfoCorrections()
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(2); // Combat Range
});
// Helix Gearbreaker 88295
// Fists of Frost
ApplySpellFix({ 88295 }, [](SpellInfo* spellInfo)
{
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
});
// END OF DEADMINES SPELLS
//

File diff suppressed because it is too large Load Diff

View File

@@ -27,7 +27,7 @@ enum DMDataTypes
{
// Encounters
DATA_GLUBTOK = 0,
DATA_HELUX_GEARBREAKER = 1,
DATA_HELIX_GEARBREAKER = 1,
DATA_FOE_REAPER_5000 = 2,
DATA_ADMIRAL_RIPSNARL = 3,
DATA_CAPTAIN_COOKIE = 4,
@@ -35,12 +35,14 @@ enum DMDataTypes
DATA_TEAM_IN_INSTANCE = 6,
DATA_FIREWALL_PLATTER = 7,
DATA_LUMBERING_OAF = 8
};
enum DMCreatures
{
// Bosses
BOSS_GLUBTOK = 47162,
BOSS_HELIX_GEARBREAKER = 47296,
// Horde Creatures
NPC_SLINKY_SHARPSHIV = 46906,
@@ -68,6 +70,9 @@ enum DMCreatures
NPC_GENERAL_PURPOSE_BUNNY_L2 = 47242,
NPC_FIRE_BLOSSOM_BUNNY = 47282,
NPC_FROST_BLOSSOM_BUNNY = 47284,
NPC_LUMBERING_OAF = 47297,
NPC_HELIX_CREW = 49139,
NPC_STICKY_BOMB = 47314
};
enum DMGameObjects
@@ -76,7 +81,8 @@ enum DMGameObjects
GO_IRONCLAD_DOOR = 16397,
GO_DEFIAS_CANNON = 16398,
GO_DOOR_LEVER = 101833,
GO_MR_SMITE_CHEST = 144111
GO_MAST_ROOM_DOOR = 16400,
GO_HEAVY_DOOR = 17153
};

View File

@@ -24,8 +24,10 @@
ObjectData const creatureData[] =
{
{ BOSS_GLUBTOK, DATA_GLUBTOK },
{ 0, 0 }, // END
{ BOSS_GLUBTOK, DATA_GLUBTOK },
{ BOSS_HELIX_GEARBREAKER, DATA_HELIX_GEARBREAKER },
{ NPC_LUMBERING_OAF, DATA_LUMBERING_OAF },
{ 0, 0 }, // END
};
ObjectData const gameobjectData[] =
@@ -35,8 +37,10 @@ ObjectData const gameobjectData[] =
DoorData const doorData[] =
{
{ GO_FACTORY_DOOR, DATA_GLUBTOK, DOOR_TYPE_PASSAGE },
{ 0, 0, DOOR_TYPE_ROOM }, // END
{ GO_FACTORY_DOOR, DATA_GLUBTOK, DOOR_TYPE_PASSAGE },
{ GO_MAST_ROOM_DOOR, DATA_HELIX_GEARBREAKER, DOOR_TYPE_PASSAGE },
{ GO_HEAVY_DOOR, DATA_HELIX_GEARBREAKER, DOOR_TYPE_ROOM },
{ 0, 0, DOOR_TYPE_ROOM }, // END
};
class instance_deadmines : public InstanceMapScript
@@ -94,6 +98,14 @@ class instance_deadmines : public InstanceMapScript
if (Creature* glubtok = GetCreature(DATA_GLUBTOK))
glubtok->AI()->JustSummoned(creature);
break;
case NPC_STICKY_BOMB:
if (Creature* helix = GetCreature(DATA_HELIX_GEARBREAKER))
helix->AI()->JustSummoned(creature);
break;
case NPC_LUMBERING_OAF:
if (creature->isDead() && GetBossState(DATA_HELIX_GEARBREAKER) != DONE)
creature->Respawn();
break;
default:
break;
}
@@ -135,7 +147,6 @@ class instance_deadmines : public InstanceMapScript
protected:
uint32 _teamInInstance;
GuidSet _arcaneBeamBunnyGUIDList;
};

View File

@@ -70,6 +70,7 @@ void AddSC_instance_blackwing_lair();
void AddSC_deadmines(); //Deadmines
void AddSC_instance_deadmines();
void AddSC_boss_glubtok();
void AddSC_boss_helix_gearbreaker();
void AddSC_gilneas_c1(); //Gilneas
void AddSC_gnomeregan(); //Gnomeregan
void AddSC_instance_gnomeregan();
@@ -272,6 +273,7 @@ void AddEasternKingdomsScripts()
AddSC_deadmines(); //Deadmines
AddSC_instance_deadmines();
AddSC_boss_glubtok();
AddSC_boss_helix_gearbreaker();
AddSC_gilneas_c1(); //Gilneas
AddSC_gnomeregan(); //Gnomeregan
AddSC_instance_gnomeregan();