*Krikthir the Gatewatcher - Implement Watch Him Die achievement & change defines to enums, by Tartalo

--HG--
branch : trunk
This commit is contained in:
maximius
2009-10-13 16:18:00 -07:00
parent 8a5ac3834d
commit 3069fd6fb1
3 changed files with 50 additions and 12 deletions
@@ -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)
{
@@ -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
@@ -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;