aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp57
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)