diff options
author | maximius <none@none> | 2009-10-14 14:23:24 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-14 14:23:24 -0700 |
commit | ae71c4066903a722802a1ea12f928c112488d7d2 (patch) | |
tree | 43b0bd34bd5c252b0d8abedd84b77e333f241a7b | |
parent | dcbabbd06e430b5472202637e353fd83fb3ea9e0 (diff) |
*Ahn'kahet: Herald Volazj "Volazj's Quick Demise" achievement, by Tartalo
--HG--
branch : trunk
-rw-r--r-- | src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp | 57 |
1 files changed, 40 insertions, 17 deletions
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp index c56d801c135..9656d6e7072 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp @@ -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) |