Fix Script Naxxramass/Patchwerk. Thanks Scarymovie87.

Fixes issue #187.

--HG--
branch : trunk
This commit is contained in:
Trazom62
2010-02-07 17:32:14 +01:00
parent fee3181e54
commit 34755de77d
@@ -17,21 +17,32 @@
#include "ScriptedPch.h" #include "ScriptedPch.h"
#include "naxxramas.h" #include "naxxramas.h"
#define SAY_AGGRO RAND(-1533017,-1533018) enum Spells
#define SAY_SLAY -1533019 {
#define SAY_DEATH -1533020 SPELL_HATEFUL_STRIKE = SPELL_HATEFUL_STRIKE_41926,
H_SPELL_HATEFUL_STRIKE = SPELL_HATEFUL_STRIKE_59192,
SPELL_FRENZY = SPELL_FRENZY_28131,
SPELL_BERSERK = SPELL_BERSERK_26662,
SPELL_SLIME_BOLT = SPELL_SLIME_BOLT_32309,
};
#define EMOTE_BERSERK -1533021 enum Yells
#define EMOTE_ENRAGE -1533022 {
SAY_AGGRO_1 = -1533017,
SAY_AGGRO_2 = -1533018,
SAY_SLAY = -1533019,
SAY_DEATH = -1533020,
EMOTE_BERSERK = -1533021,
EMOTE_ENRAGE = -1533022,
};
#define SPELL_HATEFULSTRIKE RAID_MODE(41926,59192) enum Events
#define SPELL_FRENZY 28131 {
#define SPELL_BERSERK 26662 EVENT_NONE,
#define SPELL_SLIMEBOLT 32309 EVENT_BERSERK,
EVENT_HATEFUL,
#define EVENT_BERSERK 1 EVENT_SLIME
#define EVENT_HATEFUL 2 };
#define EVENT_SLIME 3
#define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM RAID_MODE(1856, 1857) #define ACHIEVEMENT_MAKE_QUICK_WERK_OF_HIM RAID_MODE(1856, 1857)
#define MAX_ENCOUNTER_TIME 3 * 60 * 1000 #define MAX_ENCOUNTER_TIME 3 * 60 * 1000
@@ -76,7 +87,7 @@ struct boss_patchwerkAI : public BossAI
_EnterCombat(); _EnterCombat();
Enraged = false; Enraged = false;
EncounterTime = 0; EncounterTime = 0;
DoScriptText(SAY_AGGRO, me); DoScriptText(RAND(SAY_AGGRO_1,SAY_AGGRO_2), me);
events.ScheduleEvent(EVENT_HATEFUL, 1200); events.ScheduleEvent(EVENT_HATEFUL, 1200);
events.ScheduleEvent(EVENT_BERSERK, 360000); events.ScheduleEvent(EVENT_BERSERK, 360000);
} }
@@ -112,29 +123,28 @@ struct boss_patchwerkAI : public BossAI
} }
if (pMostHPTarget) if (pMostHPTarget)
DoCast(pMostHPTarget, SPELL_HATEFULSTRIKE, true); DoCast(pMostHPTarget, RAID_MODE(SPELL_HATEFUL_STRIKE,H_SPELL_HATEFUL_STRIKE), true);
events.ScheduleEvent(EVENT_HATEFUL, 1200); events.ScheduleEvent(EVENT_HATEFUL, 1200);
return; break;
} }
case EVENT_BERSERK: case EVENT_BERSERK:
DoCast(m_creature, SPELL_BERSERK); DoCast(m_creature, SPELL_BERSERK, true);
DoScriptText(EMOTE_BERSERK, m_creature); DoScriptText(EMOTE_BERSERK, m_creature);
events.ScheduleEvent(EVENT_SLIME, 2000); events.ScheduleEvent(EVENT_SLIME, 2000);
return; break;
case EVENT_SLIME: case EVENT_SLIME:
DoCast(m_creature->getVictim(), SPELL_SLIMEBOLT); DoCast(m_creature->getVictim(), SPELL_SLIME_BOLT);
events.ScheduleEvent(EVENT_SLIME, 2000); events.ScheduleEvent(EVENT_SLIME, 2000);
return; break;
} }
} }
if (!Enraged && HealthBelowPct(5)) if (!Enraged && HealthBelowPct(5))
{ {
DoCast(m_creature, SPELL_FRENZY); DoCast(m_creature, SPELL_FRENZY, true);
DoScriptText(EMOTE_ENRAGE, NULL); DoScriptText(EMOTE_ENRAGE, m_creature);
Enraged = true; Enraged = true;
return;
} }
DoMeleeAttackIfReady(); DoMeleeAttackIfReady();