diff options
author | Anubisss <none@none> | 2009-08-30 02:51:43 +0200 |
---|---|---|
committer | Anubisss <none@none> | 2009-08-30 02:51:43 +0200 |
commit | b79e4e39835beaa3c1ffe73feaa3ba7adf6e1cac (patch) | |
tree | 339afd885ae03da1206bc6c6c980209e23fbce9c | |
parent | 0bf74d2384d009f333f46da705e366c44ae85ad8 (diff) |
*Implement achievement Make Quick Werk Of Him and minor clean in achievement Timely Death.
--HG--
branch : trunk
-rw-r--r-- | src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp | 23 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp | 13 |
2 files changed, 29 insertions, 7 deletions
diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp index d50c72d8fa6..249ebc5f90f 100644 --- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp +++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_patchwerk.cpp @@ -33,12 +33,17 @@ #define EVENT_HATEFUL 2 #define EVENT_SLIME 3 +#define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM HEROIC(1856, 1857) +#define MAX_ENCOUNTER_TIME 3 * 60 * 1000 + struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI { boss_patchwerkAI(Creature *c) : BossAI(c, BOSS_PATCHWERK) {} bool Enraged; + uint32 EncounterTime; + void KilledUnit(Unit* Victim) { if (!(rand()%5)) @@ -49,12 +54,28 @@ struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI { _JustDied(); DoScriptText(SAY_DEATH, me); + + if(EncounterTime <= MAX_ENCOUNTER_TIME) + { + AchievementEntry const *AchievMakeQuickWerkOfHim = GetAchievementStore()->LookupEntry(ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM); + if(AchievMakeQuickWerkOfHim) + { + Map *pMap = m_creature->GetMap(); + if(pMap && pMap->IsDungeon()) + { + Map::PlayerList const &players = pMap->GetPlayers(); + for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + itr->getSource()->CompletedAchievement(AchievMakeQuickWerkOfHim); + } + } + } } void EnterCombat(Unit *who) { _EnterCombat(); Enraged = false; + EncounterTime = 0; DoScriptText(SAY_AGGRO, me); events.ScheduleEvent(EVENT_HATEFUL, 1200); events.ScheduleEvent(EVENT_BERSERK, 360000); @@ -67,6 +88,8 @@ struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI events.Update(diff); + EncounterTime += diff; + while(uint32 eventId = events.ExecuteEvent()) { switch(eventId) diff --git a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp index 2bf0b154bf0..cef302f6317 100644 --- a/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp +++ b/src/bindings/scripts/scripts/northrend/ulduar/halls_of_lightning/boss_loken.cpp @@ -24,6 +24,8 @@ EndScriptData */ #include "precompiled.h" #include "def_halls_of_lightning.h" +#define MAX_ENCOUNTER_TIME 2 * 60 * 1000 + enum { ACHIEVEMENT_TIMELY_DEATH = 1867, @@ -76,7 +78,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI uint32 m_uiHealthAmountModifier; - uint32 EncounterTimer; + uint32 EncounterTime; void Reset() { @@ -89,8 +91,6 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI m_uiHealthAmountModifier = 1; - EncounterTimer = 0; - if (m_pInstance) m_pInstance->SetData(TYPE_LOKEN, NOT_STARTED); } @@ -99,7 +99,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI { DoScriptText(SAY_AGGRO, m_creature); - EncounterTimer = 1; + EncounterTime = 0; if (m_pInstance) m_pInstance->SetData(TYPE_LOKEN, IN_PROGRESS); @@ -109,7 +109,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI { DoScriptText(SAY_DEATH, m_creature); - if (m_bIsHeroic && EncounterTimer <= 120000) + if (m_bIsHeroic && EncounterTime <= MAX_ENCOUNTER_TIME) { AchievementEntry const *AchievTimelyDeath = GetAchievementStore()->LookupEntry(ACHIEVEMENT_TIMELY_DEATH); if (AchievTimelyDeath) @@ -144,8 +144,7 @@ struct TRINITY_DLL_DECL boss_lokenAI : public ScriptedAI if (!UpdateVictim()) return; - if (EncounterTimer) - EncounterTimer += uiDiff; + EncounterTime += uiDiff; if (m_bIsAura) { |