mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 01:15:35 +01:00
*Implement achievement Make Quick Werk Of Him and minor clean in achievement Timely Death.
--HG-- branch : trunk
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user