*Ahn'kahet: Herald Volazj "Volazj's Quick Demise" achievement, by Tartalo

--HG--
branch : trunk
This commit is contained in:
maximius
2009-10-14 14:23:24 -07:00
parent dcbabbd06e
commit ae71c40669

View File

@@ -27,25 +27,34 @@ EndScriptData */
#include "precompiled.h"
#include "def_ahnkahet.h"
//Spells
#define SPELL_INSANITY 57496 //Dummy
#define INSANITY_VISUAL 57561
#define SPELL_MIND_FLAY 57941
#define H_SPELL_MIND_FLAY 59974
#define SPELL_SHADOW_BOLT_VOLLEY 57942
#define H_SPELL_SHADOW_BOLT_VOLLEY 59975
#define SPELL_SHIVER 57949
#define H_SPELL_SHIVER 59978
enum Spells
{
SPELL_INSANITY = 57496, //Dummy
INSANITY_VISUAL = 57561,
SPELL_MIND_FLAY = 57941,
H_SPELL_MIND_FLAY = 59974,
SPELL_SHADOW_BOLT_VOLLEY = 57942,
H_SPELL_SHADOW_BOLT_VOLLEY = 59975,
SPELL_SHIVER = 57949,
H_SPELL_SHIVER = 59978
};
//not in db
//Yell
#define SAY_AGGRO -1619030
#define SAY_SLAY_1 -1619031
#define SAY_SLAY_2 -1619032
#define SAY_SLAY_3 -1619033
#define SAY_DEATH_1 -1619034
#define SAY_DEATH_2 -1619035
#define SAY_PHASE -1619036
enum Yells
{
SAY_AGGRO = -1619030,
SAY_SLAY_1 = -1619031,
SAY_SLAY_2 = -1619032,
SAY_SLAY_3 = -1619033,
SAY_DEATH_1 = -1619034,
SAY_DEATH_2 = -1619035,
SAY_PHASE = -1619036
};
enum Achievements
{
ACHIEVEMENT_QUICK_DEMISE = 1862
};
struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI
{
@@ -59,9 +68,11 @@ struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI
uint32 uiMindFlayTimer;
uint32 uiShadowBoltVolleyTimer;
uint32 uiShiverTimer;
uint32 uiEncounterTimer;
void Reset()
{
uiEncounterTimer = 0;
uiMindFlayTimer = 8000;
uiShadowBoltVolleyTimer = 5000;
uiShiverTimer = 15000;
@@ -102,6 +113,8 @@ struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI
DoCast(target, HeroicMode ? H_SPELL_SHIVER : SPELL_SHIVER);
uiShiverTimer = 15000;
} else uiShiverTimer -= diff;
uiEncounterTimer += diff;
DoMeleeAttackIfReady();
}
@@ -111,6 +124,16 @@ struct TRINITY_DLL_DECL boss_volazjAI : public ScriptedAI
if (pInstance)
pInstance->SetData(DATA_HERALD_VOLAZJ, DONE);
AchievementEntry const *AchievQuickDemise = GetAchievementStore()->LookupEntry(ACHIEVEMENT_QUICK_DEMISE);
Map* pMap = m_creature->GetMap();
if (HeroicMode && uiEncounterTimer < 120000 && pMap && pMap->IsDungeon() && AchievQuickDemise)
{
Map::PlayerList const &players = pMap->GetPlayers();
for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
itr->getSource()->CompletedAchievement(AchievQuickDemise);
}
}
void KilledUnit(Unit *victim)