aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp20
-rw-r--r--src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h21
-rw-r--r--src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp21
3 files changed, 50 insertions, 12 deletions
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
index 536addeace4..f9b47964d38 100644
--- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
+++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp
@@ -94,7 +94,10 @@ enum Yells
H_SPELL_POSION_SPRAY = 59366,
};
-
+enum Misc
+{
+ ACHIEVEMENT_WATCH_HIM_DIE = 1296
+};
struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI
{
boss_krik_thirAI(Creature *c) : ScriptedAI(c)
@@ -194,7 +197,22 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI
DoScriptText(SAY_DEATH, m_creature);
if (pInstance)
+ {
pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE);
+ //Achievement: Watch him die
+ AchievementEntry const *AchievWatchHimDie = GetAchievementStore()->LookupEntry(ACHIEVEMENT_WATCH_HIM_DIE);
+ Map* pMap = m_creature->GetMap();
+ Creature *pAdd1, *pAdd2, *pAdd3;
+ if ((pAdd1 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_GASHRA))) && pAdd1->isAlive() &&
+ (pAdd2 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_SILTHIK))) && pAdd2->isAlive() &&
+ (pAdd3 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_NARJIL))) && pAdd3->isAlive() &&
+ HeroicMode && pMap && pMap->IsDungeon() && AchievWatchHimDie)
+ {
+ Map::PlayerList const &players = pMap->GetPlayers();
+ for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ itr->getSource()->CompletedAchievement(AchievWatchHimDie);
+ }
+ }
}
void KilledUnit(Unit *victim)
{
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h
index 9e319e8fde0..df02f9e13d3 100644
--- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h
+++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h
@@ -19,11 +19,20 @@
#ifndef DEF_AZJOL_NERUB_H
#define DEF_AZJOL_NERUB_H
-#define DATA_KRIKTHIR_THE_GATEWATCHER 1
-#define DATA_HADRONOX 2
-#define DATA_ANUBARAK 3
+enum Data64
+{
+ DATA_KRIKTHIR_THE_GATEWATCHER,
+ DATA_HADRONOX,
+ DATA_ANUBARAK,
+ DATA_WATCHER_GASHRA,
+ DATA_WATCHER_SILTHIK,
+ DATA_WATCHER_NARJIL
+};
+enum Data
+{
+ DATA_KRIKTHIR_THE_GATEWATCHER_EVENT,
+ DATA_HADRONOX_EVENT,
+ DATA_ANUBARAK_EVENT
+};
-#define DATA_KRIKTHIR_THE_GATEWATCHER_EVENT 4
-#define DATA_HADRONOX_EVENT 5
-#define DATA_ANUBARAK_EVENT 6
#endif
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
index 5a2159345e5..80d2ed04652 100644
--- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
+++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp
@@ -41,6 +41,9 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance
uint64 m_uiKrikthir;
uint64 m_uiHadronox;
uint64 m_uiAnubarak;
+ uint64 m_uiWatcherGashra;
+ uint64 m_uiWatcherSilthik;
+ uint64 m_uiWatcherNarjil;
uint64 m_uiKrikthirDoor;
@@ -52,7 +55,10 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance
m_uiKrikthir = 0;
m_uiHadronox = 0;
- m_uiAnubarak =0;
+ m_uiAnubarak = 0;
+ m_uiWatcherGashra = 0;
+ m_uiWatcherSilthik = 0;
+ m_uiWatcherNarjil = 0;
m_uiKrikthirDoor = 0;
}
@@ -69,10 +75,12 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance
{
switch(pCreature->GetEntry())
{
- case 28684: m_uiKrikthir = pCreature->GetGUID(); break;
- case 28921: m_uiHadronox = pCreature->GetGUID(); break;
- case 29120: m_uiAnubarak = pCreature->GetGUID(); break;
-
+ case 28684: m_uiKrikthir = pCreature->GetGUID(); break;
+ case 28921: m_uiHadronox = pCreature->GetGUID(); break;
+ case 29120: m_uiAnubarak = pCreature->GetGUID(); break;
+ case 28730: m_uiWatcherGashra = pCreature->GetGUID(); break;
+ case 28731: m_uiWatcherSilthik = pCreature->GetGUID(); break;
+ case 28729: m_uiWatcherNarjil = pCreature->GetGUID(); break;
}
}
@@ -95,6 +103,9 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance
case DATA_KRIKTHIR_THE_GATEWATCHER: return m_uiKrikthir;
case DATA_HADRONOX: return m_uiHadronox;
case DATA_ANUBARAK: return m_uiAnubarak;
+ case DATA_WATCHER_GASHRA: return m_uiWatcherGashra;
+ case DATA_WATCHER_SILTHIK: return m_uiWatcherSilthik;
+ case DATA_WATCHER_NARJIL: return m_uiWatcherNarjil;
}
return 0;