Core/Scripts: cast "Trial of the Naaru: Tenacity" credit spell when criteria is achieved

Closes #21155

(cherry picked from commit 036a05458e)
This commit is contained in:
ariel-
2018-01-02 03:35:02 -03:00
committed by funjoker
parent f77bd1e7c9
commit 82fa6ede59
2 changed files with 23 additions and 1 deletions

View File

@@ -49,7 +49,8 @@ enum AZCreatureIds
NPC_DALLIAH = 20885,
NPC_SOCCOTHRATES = 20886,
NPC_MELLICHAR = 20904, // skyriss will kill this unit
NPC_ALPHA_POD_TARGET = 21436
NPC_ALPHA_POD_TARGET = 21436,
NPC_MILLHOUSE = 20977
};
enum AZGameObjectIds
@@ -64,6 +65,11 @@ enum AZGameObjectIds
GO_WARDENS_SHIELD = 184802 // shield 'protecting' mellichar
};
enum AZSpellIds
{
SPELL_QID_10886 = 39564
};
template <class AI, class T>
inline AI* GetArcatrazAI(T* obj)
{

View File

@@ -20,6 +20,7 @@
#include "Creature.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Map.h"
DoorData const doorData[] =
{
@@ -48,6 +49,8 @@ class instance_arcatraz : public InstanceMapScript
void OnCreatureCreate(Creature* creature) override
{
InstanceScript::OnCreatureCreate(creature);
switch (creature->GetEntry())
{
case NPC_DALLIAH:
@@ -59,6 +62,9 @@ class instance_arcatraz : public InstanceMapScript
case NPC_MELLICHAR:
MellicharGUID = creature->GetGUID();
break;
case NPC_MILLHOUSE:
MillhouseGUID = creature->GetGUID();
break;
default:
break;
}
@@ -166,6 +172,15 @@ class instance_arcatraz : public InstanceMapScript
SetData(DATA_WARDEN_4, NOT_STARTED);
SetData(DATA_WARDEN_5, NOT_STARTED);
}
else if (state == DONE)
{
if (!instance->IsHeroic())
break;
if (Creature* millhouse = instance->GetCreature(MillhouseGUID))
if (millhouse->IsAlive())
DoCastSpellOnPlayers(SPELL_QID_10886);
}
break;
default:
break;
@@ -179,6 +194,7 @@ class instance_arcatraz : public InstanceMapScript
ObjectGuid StasisPodGUIDs[5];
ObjectGuid MellicharGUID;
ObjectGuid WardensShieldGUID;
ObjectGuid MillhouseGUID;
uint8 ConversationState;
uint8 StasisPodStates[5];