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

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();