Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,128 @@

#include "ScriptMgr.h"
#include "InstanceScript.h"
#include "bloodmaul_slag_mines.h"

void AddSC_instance_bloodmaul_slag_mines()
/*

INSERT INTO instance_template (map, parent, script, allowMount) VALUES
(1175, 0, "instance_bloodmaul_slag_mines", 0);

*/

class instance_bloodmaul_slag_mines : public InstanceMapScript
{

public:
instance_bloodmaul_slag_mines() : InstanceMapScript("instance_bloodmaul_slag_mines", 1175) { }

InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
return new instance_bloodmaul_slag_mines_InstanceMapScript(map);
}

struct instance_bloodmaul_slag_mines_InstanceMapScript : public InstanceScript
{
instance_bloodmaul_slag_mines_InstanceMapScript(Map* map) : InstanceScript(map) { }

bool IsBossDead[DATA_MAX_ENCOUNTERS];

ObjectGuid RoltallGUID;
ObjectGuid CrushtoGUID;
ObjectGuid GugrokkGUID;

void Initialize() override
{
memset(&IsBossDead, false, sizeof(IsBossDead));

RoltallGUID = ObjectGuid::Empty;
CrushtoGUID = ObjectGuid::Empty;
GugrokkGUID = ObjectGuid::Empty;

}

void OnCreatureCreate(Creature* creature) override
{
switch (creature->GetEntry())
{
case BOSS_ROLTALL:
RoltallGUID = creature->GetGUID();
break;

case BOSS_CRUSHTO:
CrushtoGUID = creature->GetGUID();
break;

case BOSS_GUGROKK:
GugrokkGUID = creature->GetGUID();
break;
}
}

uint32 GetData(uint32 type) const override
{
switch (type)
{
case DATA_ROLTALL:
if (IsBossDead[DATA_ROLTALL])
return 1;
break;

case DATA_CRUSHTO:
if (IsBossDead[DATA_CRUSHTO])
return 1;
break;

case DATA_GUGROKK:
if (IsBossDead[DATA_GUGROKK])
return 1;
break;
}

return 0;
}

ObjectGuid GetGuidData(uint32 identifier) const override
{
switch (identifier)
{
case DATA_ROLTALL:
return RoltallGUID;

case DATA_CRUSHTO:
return CrushtoGUID;

case DATA_GUGROKK:
return GugrokkGUID;

default:
break;
}

return ObjectGuid::Empty;
}

void SetData(uint32 type, uint32 data) override
{
switch (type)
{
case DATA_ROLTALL:
IsBossDead[DATA_ROLTALL] = true;
break;

case DATA_CRUSHTO:
IsBossDead[DATA_CRUSHTO] = true;
break;

case DATA_GUGROKK:
IsBossDead[DATA_GUGROKK] = true;
break;
}
}
};

};

void AddSC_instance_bloodmaul_slag_mines()
{
new instance_bloodmaul_slag_mines();
}