aboutsummaryrefslogtreecommitdiff
path: root/src/bindings/scripts
diff options
context:
space:
mode:
authorAnubisss <none@none>2009-08-09 18:30:37 +0200
committerAnubisss <none@none>2009-08-09 18:30:37 +0200
commitcd0bdade03dcfb7a8bfb37e28a3a38335aa39e68 (patch)
tree249e465c10772d0ef176e4747e5405f4e7065ddd /src/bindings/scripts
parenta57bc8018c39c74cdf9ae080d68729187d266640 (diff)
*Implement achievement On The Rocks.
--HG-- branch : trunk
Diffstat (limited to 'src/bindings/scripts')
-rw-r--r--src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
index 9f3164d9b89..ea3b829ef6a 100644
--- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
+++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/boss_keleseth.cpp
@@ -28,6 +28,8 @@ EndScriptData */
enum
{
+ ACHIEVEMENT_ON_THE_ROCKS = 1919,
+
SPELL_SHADOWBOLT = 43667,
SPELL_SHADOWBOLT_HEROIC = 59389,
SPELL_FROST_TOMB = 48400,
@@ -57,6 +59,8 @@ float SkeletonSpawnPoint[5][5]=
float AttackLoc[3]={197.636, 194.046, 40.8164};
+bool ShatterFrostTomb; // needed for achievement: On The Rocks(1919)
+
struct TRINITY_DLL_DECL mob_frost_tombAI : public ScriptedAI
{
mob_frost_tombAI(Creature *c) : ScriptedAI(c)
@@ -78,6 +82,9 @@ struct TRINITY_DLL_DECL mob_frost_tombAI : public ScriptedAI
void JustDied(Unit *killer)
{
+ if(killer->GetGUID() != m_creature->GetGUID())
+ ShatterFrostTomb = true;
+
if(FrostTombGUID)
{
Unit* FrostTomb = Unit::GetUnit((*m_creature),FrostTombGUID);
@@ -118,6 +125,8 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
ShadowboltTimer = 0;
Skeletons = false;
+ ShatterFrostTomb = false;
+
ResetTimer();
if(pInstance)
@@ -136,6 +145,21 @@ struct TRINITY_DLL_DECL boss_kelesethAI : public ScriptedAI
{
DoScriptText(SAY_DEATH, m_creature);
+ if(Heroic && !ShatterFrostTomb)
+ {
+ AchievementEntry const *AchievOnTheRocks = GetAchievementStore()->LookupEntry(ACHIEVEMENT_ON_THE_ROCKS);
+ if(AchievOnTheRocks)
+ {
+ Map *map = m_creature->GetMap();
+ if(map && map->IsDungeon())
+ {
+ Map::PlayerList const &players = map->GetPlayers();
+ for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
+ itr->getSource()->CompletedAchievement(AchievOnTheRocks);
+ }
+ }
+ }
+
if(pInstance)
pInstance->SetData(DATA_PRINCEKELESETH_EVENT, DONE);
}