*Update Naxx scripts.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-05-10 22:50:15 -05:00
parent 82f886e3c1
commit 4fef015112
10 changed files with 149 additions and 239 deletions

View File

@@ -30,5 +30,21 @@ DELETE FROM `spell_script_target` WHERE `entry` IN (55479);
INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES
(55479, 1, 16803); # Force Obedience - Death Knight Understudy
# Death Knight Understudy
UPDATE creature_template SET spell1=0, spell2=0, spell3=0, spell4=61696, spell5=29060, spell6=29061 WHERE entry IN (16803,29941);
INSERT INTO creature_template (entry, spell1, spell2, spell3, spell4, spell5, spell6, spell7, spell8) VALUES
(16803, 0, 0, 0, 61696, 29060, 29061, 0, 0), # Death Knight Understudy
(29941, 0, 0, 0, 61696, 29060, 29061, 0, 0), # Death Knight Understudy (H)
(16573, 15284, 28991, 28969, 34970, 28864, 0, 0, 0), # Crypt Guard
(29256, 15284, 28991, 56098, 34970, 28864, 0, 0, 0), # Crypt Guard (H)
(16984, 15496, 0, 0, 0, 0, 0, 0, 0), # Plagued Warrior
(29632, 15496, 0, 0, 0, 0, 0, 0, 0), # Plagued Warrior (H)
(16290, 28156, 0, 0, 0, 0, 0, 0, 0), # Fallout Slime
(29388, 54367, 0, 0, 0, 0, 0, 0, 0) # Fallout Slime (H)
ON DUPLICATE KEY UPDATE
spell1 = VALUES(spell1),
spell2 = VALUES(spell2),
spell3 = VALUES(spell3),
spell4 = VALUES(spell4),
spell5 = VALUES(spell5),
spell6 = VALUES(spell6),
spell7 = VALUES(spell7),
spell8 = VALUES(spell8);

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,14 +14,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Anubrekhan
SD%Complete: 100
SDComment:
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
#define SAY_GREET RAND(-1533000,-1533004,-1533005,-1533006,-1533007)
#define SAY_AGGRO RAND(-1533001,-1533002,-1533003)
@@ -31,46 +25,29 @@ EndScriptData */
#define SPELL_LOCUSTSWARM HEROIC(28785,54021)
#define SPELL_SELF_SPAWN_5 29105 //This spawns 5 corpse scarabs ontop of us (most likely the player casts this on death)
#define SPELL_SELF_SPAWN_10 28864 //This is used by the crypt guards when they die
#define EVENT_IMPALE 1
#define EVENT_LOCUST 2
#define MOB_CRYPT_GUARD 16573
struct TRINITY_DLL_DECL boss_anubrekhanAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_anubrekhanAI : public BossAI
{
boss_anubrekhanAI(Creature *c) : ScriptedAI(c), summons(me) {}
boss_anubrekhanAI(Creature *c) : BossAI(c, BOSS_ANUBREKHAN) {}
bool HasTaunted;
EventMap events;
SummonList summons;
void Prepare()
{
HasTaunted = false;
DoSpawnCreature(MOB_CRYPT_GUARD, 0, 10, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
DoSpawnCreature(MOB_CRYPT_GUARD, 0, 10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
if(HeroicMode)
DoSpawnCreature(MOB_CRYPT_GUARD, 0, -10, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
DoSpawnCreature(MOB_CRYPT_GUARD, 0, -10, 0, me->GetOrientation(), TEMPSUMMON_CORPSE_TIMED_DESPAWN, 60000);
}
void InitializeAI() { Prepare(); }
void JustReachedHome() { Prepare(); }
void Reset()
{
events.Reset();
summons.DespawnAll();
}
void JustSummoned(Creature *summon)
{
summons.Summon(summon);
DoZoneInCombat(summon);
}
void SummonedCreatureDespawn(Creature *summon) {summons.Despawn(summon);}
void KilledUnit(Unit* victim)
{
//Force the player to spawn corpse scarabs via spell
@@ -82,9 +59,8 @@ struct TRINITY_DLL_DECL boss_anubrekhanAI : public ScriptedAI
void EnterCombat(Unit *who)
{
_EnterCombat();
DoScriptText(SAY_AGGRO, me);
DoZoneInCombat();
events.ScheduleEvent(EVENT_IMPALE, 15000, 1);
events.ScheduleEvent(EVENT_LOCUST, 80000 + rand()%40000, 1);
}

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,20 +14,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Grobbulus
SD%Complete: 0
SDComment: Place holder
SDCategory: Naxxramas
EndScriptData */
/*Poison Cloud 26590
Slime Spray 28157
Fallout slime 28218
Mutating Injection 28169
Enrages 26527*/
#include "precompiled.h"
#include "def_naxxramas.h"
#define SPELL_BOMBARD_SLIME 28280
@@ -43,20 +31,13 @@ Enrages 26527*/
#define MOB_FALLOUT_SLIME 16290
struct TRINITY_DLL_DECL boss_grobbulusAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_grobbulusAI : public BossAI
{
boss_grobbulusAI(Creature *c) : ScriptedAI(c) {}
EventMap events;
void Reset()
{
events.Reset();
}
boss_grobbulusAI(Creature *c) : BossAI(c, BOSS_GROBBULUS) {}
void EnterCombat(Unit *who)
{
DoZoneInCombat();
_EnterCombat();
events.ScheduleEvent(EVENT_CLOUD, 15000);
events.ScheduleEvent(EVENT_INJECT, 20000);
events.ScheduleEvent(EVENT_SPRAY, 15000+rand()%15000); //not sure

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,13 +14,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Heigan
SD%Complete: 0
SDComment: Place Holder
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
@@ -50,25 +43,14 @@ enum Phases
//Spell by eye stalks
#define SPELL_MIND_FLAY 26143
struct TRINITY_DLL_DECL boss_heiganAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_heiganAI : public BossAI
{
boss_heiganAI(Creature *c) : ScriptedAI(c)
{
instance = ((ScriptedInstance*)c->GetInstanceData());
}
boss_heiganAI(Creature *c) : BossAI(c, BOSS_HEIGAN) {}
EventMap events;
ScriptedInstance *instance;
uint32 eruptSection;
bool eruptDirection;
Phases phase;
void Reset()
{
events.Reset();
instance->SetBossState(BOSS_HEIGAN, NOT_STARTED);
}
void KilledUnit(Unit* Victim)
{
if(!(rand()%5))
@@ -77,16 +59,15 @@ struct TRINITY_DLL_DECL boss_heiganAI : public ScriptedAI
void JustDied(Unit* Killer)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
instance->SetBossState(BOSS_HEIGAN, DONE);
}
void EnterCombat(Unit *who)
{
_EnterCombat();
DoScriptText(SAY_AGGRO, me);
DoZoneInCombat();
EnterPhase(PHASE_FIGHT);
instance->SetBossState(BOSS_HEIGAN, IN_PROGRESS);
}
void EnterPhase(Phases newPhase)

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,13 +14,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Noth
SD%Complete: 40
SDComment: Missing Balcony stage
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
@@ -68,33 +61,25 @@ enum Events
EVENT_GROUND,
};
struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_nothAI : public BossAI
{
boss_nothAI(Creature *c) : ScriptedAI(c), summons(me)
{
instance = ((ScriptedInstance*)c->GetInstanceData());
}
boss_nothAI(Creature *c) : BossAI(c, BOSS_NOTH) {}
EventMap events;
SummonList summons;
ScriptedInstance *instance;
uint32 waveCount, balconyCount;
void Reset()
{
events.Reset();
summons.DespawnAll();
_Reset();
me->setActive(false);
instance->SetBossState(BOSS_NOTH, NOT_STARTED);
}
void EnterCombat(Unit *who)
{
_EnterCombat();
DoScriptText(SAY_AGGRO, me);
me->setActive(true);
balconyCount = 0;
EnterPhaseGround();
instance->SetBossState(BOSS_NOTH, IN_PROGRESS);
}
void EnterPhaseGround()
@@ -104,7 +89,7 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
EnterEvadeMode();
else
{
events.ScheduleEvent(EVENT_BALCONY, 11000);
events.ScheduleEvent(EVENT_BALCONY, 110000);
events.ScheduleEvent(EVENT_CURSE, 20000+rand()%10000);
events.ScheduleEvent(EVENT_WARRIOR, 30000);
if(HeroicMode)
@@ -125,13 +110,10 @@ struct TRINITY_DLL_DECL boss_nothAI : public ScriptedAI
summon->AI()->DoZoneInCombat();
}
void SummonedCreatureDespawn(Creature *summon) { summons.Despawn(summon); }
void JustDied(Unit* Killer)
{
summons.DespawnAll();
_JustDied();
DoScriptText(SAY_DEATH, me);
instance->SetBossState(BOSS_NOTH, DONE);
}
void SummonUndead(uint32 entry, uint32 num)

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,14 +14,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Patchwerk
SD%Complete: 80
SDComment: Some issues with hateful strike inturrupting the melee swing timer.
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
#define SAY_AGGRO RAND(-1533017,-1533018)
#define SAY_SLAY -1533019
@@ -39,16 +33,15 @@ EndScriptData */
#define EVENT_HATEFUL 2
#define EVENT_SLIME 3
struct TRINITY_DLL_DECL boss_patchwerkAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_patchwerkAI : public BossAI
{
boss_patchwerkAI(Creature *c) : ScriptedAI(c) {}
boss_patchwerkAI(Creature *c) : BossAI(c, BOSS_PATCHWERK) {}
bool Enraged;
EventMap events;
void Reset()
{
events.Reset();
_Reset();
Enraged = false;
}
@@ -60,13 +53,14 @@ struct TRINITY_DLL_DECL boss_patchwerkAI : public ScriptedAI
void JustDied(Unit* Killer)
{
_JustDied();
DoScriptText(SAY_DEATH, me);
}
void EnterCombat(Unit *who)
{
_EnterCombat();
DoScriptText(SAY_AGGRO, me);
DoZoneInCombat();
events.ScheduleEvent(EVENT_HATEFUL, 1200);
events.ScheduleEvent(EVENT_BERSERK, 360000);
}

View File

@@ -1,4 +1,6 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/*
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,14 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Razuvious
SD%Complete: 50
SDComment: Missing adds and event is impossible without Mind Control
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
//Razuvious - NO TEXT sound only
//8852 aggro01 - Hah hah, I'm just getting warmed up!
@@ -37,121 +33,86 @@ EndScriptData */
//8860 death - An honorable... death...
//8947 - Aggro Mixed? - ?
#define SOUND_AGGRO1 8852
#define SOUND_AGGRO2 8853
#define SOUND_AGGRO3 8854
#define SOUND_SLAY1 8861
#define SOUND_SLAY2 8863
#define SOUND_COMMND1 8855
#define SOUND_COMMND2 8856
#define SOUND_COMMND3 8858
#define SOUND_COMMND4 8859
#define SOUND_COMMND5 8861
#define SOUND_AGGRO RAND(8852,8853,8854)
#define SOUND_SLAY RAND(8861,8863)
#define SOUND_COMMND RAND(8855,8856,8858,8859,8861)
#define SOUND_DEATH 8860
#define SOUND_AGGROMIX 8847
#define SPELL_UNBALANCINGSTRIKE 26613
#define SPELL_DISRUPTINGSHOUT 29107
#define SPELL_UNBALANCING_STRIKE 26613
#define SPELL_DISRUPTING_SHOUT HEROIC(29107,55543)
#define SPELL_JAGGED_KNIFE 55550
#define SPELL_HOPELESS 29105
struct TRINITY_DLL_DECL boss_razuviousAI : public ScriptedAI
enum Events
{
boss_razuviousAI(Creature *c) : ScriptedAI(c) {}
EVENT_STRIKE,
EVENT_SHOUT,
EVENT_KNIFE,
EVENT_COMMAND,
};
uint32 UnbalancingStrike_Timer;
uint32 DisruptingShout_Timer;
uint32 CommandSound_Timer;
struct TRINITY_DLL_DECL boss_razuviousAI : public BossAI
{
boss_razuviousAI(Creature *c) : BossAI(c, BOSS_RAZUVIOUS) {}
void Reset()
void KilledUnit(Unit* victim)
{
UnbalancingStrike_Timer = 30000; //30 seconds
DisruptingShout_Timer = 25000; //25 seconds
CommandSound_Timer = 40000; //40 seconds
if(!(rand()%3))
DoPlaySoundToSet(me, SOUND_SLAY);
}
void KilledUnit(Unit* Victim)
void JustDied(Unit* killer)
{
if (rand()%3)
return;
switch (rand()%2)
{
case 0:
DoPlaySoundToSet(m_creature, SOUND_SLAY1);
break;
case 1:
DoPlaySoundToSet(m_creature, SOUND_SLAY2);
break;
}
}
void JustDied(Unit* Killer)
{
DoPlaySoundToSet(m_creature, SOUND_DEATH);
_JustDied();
DoPlaySoundToSet(me, SOUND_DEATH);
me->CastSpell(me, SPELL_HOPELESS, true);
}
void EnterCombat(Unit *who)
{
switch (rand()%3)
{
case 0:
DoPlaySoundToSet(m_creature, SOUND_AGGRO1);
break;
case 1:
DoPlaySoundToSet(m_creature, SOUND_AGGRO2);
break;
case 2:
DoPlaySoundToSet(m_creature, SOUND_AGGRO3);
break;
}
_EnterCombat();
DoPlaySoundToSet(m_creature, SOUND_AGGRO);
events.ScheduleEvent(EVENT_STRIKE, 30000);
events.ScheduleEvent(EVENT_SHOUT, 25000);
events.ScheduleEvent(EVENT_COMMAND, 40000);
}
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim())
if(!UpdateVictim())
return;
//UnbalancingStrike_Timer
if (UnbalancingStrike_Timer < diff)
{
DoCast(m_creature->getVictim(),SPELL_UNBALANCINGSTRIKE);
UnbalancingStrike_Timer = 30000;
}else UnbalancingStrike_Timer -= diff;
events.Update(diff);
//DisruptingShout_Timer
if (DisruptingShout_Timer < diff)
while(uint32 eventId = events.ExecuteEvent())
{
DoCast(m_creature->getVictim(), SPELL_DISRUPTINGSHOUT);
DisruptingShout_Timer = 25000;
}else DisruptingShout_Timer -= diff;
//CommandSound_Timer
if (CommandSound_Timer < diff)
{
switch (rand()%5)
switch(eventId)
{
case 0:
DoPlaySoundToSet(m_creature, SOUND_COMMND1);
break;
case 1:
DoPlaySoundToSet(m_creature, SOUND_COMMND2);
break;
case 2:
DoPlaySoundToSet(m_creature, SOUND_COMMND3);
break;
case 3:
DoPlaySoundToSet(m_creature, SOUND_COMMND4);
break;
case 4:
DoPlaySoundToSet(m_creature, SOUND_COMMND5);
break;
case EVENT_STRIKE:
DoCast(me->getVictim(), SPELL_UNBALANCING_STRIKE);
events.ScheduleEvent(EVENT_STRIKE, 30000);
return;
case EVENT_SHOUT:
DoCastAOE(SPELL_DISRUPTING_SHOUT);
events.ScheduleEvent(EVENT_SHOUT, 25000);
return;
case EVENT_KNIFE:
if(Unit *target = SelectTarget(SELECT_TARGET_RANDOM, 0, 45))
DoCast(target, SPELL_JAGGED_KNIFE);
events.ScheduleEvent(EVENT_KNIFE, 25000);
return;
case EVENT_COMMAND:
DoPlaySoundToSet(me, SOUND_COMMND);
events.ScheduleEvent(EVENT_COMMAND, 40000);
return;
}
CommandSound_Timer = 40000;
}else CommandSound_Timer -= diff;
}
DoMeleeAttackIfReady();
}
};
CreatureAI* GetAI_boss_razuvious(Creature *_Creature)
{
return new boss_razuviousAI (_Creature);
@@ -165,4 +126,3 @@ void AddSC_boss_razuvious()
newscript->GetAI = &GetAI_boss_razuvious;
newscript->RegisterSelf();
}

View File

@@ -1,4 +1,6 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/*
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,13 +16,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Boss_Sapphiron
SD%Complete: 0
SDComment: Place Holder
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
@@ -71,14 +66,12 @@ enum Events
typedef std::map<uint64, uint64> IceBlockMap;
struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
struct TRINITY_DLL_DECL boss_sapphironAI : public BossAI
{
boss_sapphironAI(Creature* c) : ScriptedAI(c)
boss_sapphironAI(Creature* c) : BossAI(c, BOSS_SAPPHIRON)
, phase(PHASE_NULL)
{
}
{}
EventMap events;
Phases phase;
uint32 iceboltCount;
IceBlockMap iceblocks;
@@ -97,16 +90,18 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
void Reset()
{
_Reset();
if(phase = PHASE_FLIGHT)
ClearIceBlock();
events.Reset();
phase = PHASE_NULL;
}
void EnterCombat(Unit *who)
{
DoZoneInCombat();
_EnterCombat();
me->CastSpell(me, SPELL_FROST_AURA, true);
events.ScheduleEvent(EVENT_BERSERK, 15*60000);
@@ -128,6 +123,7 @@ struct TRINITY_DLL_DECL boss_sapphironAI : public ScriptedAI
void JustDied(Unit*)
{
_JustDied();
me->CastSpell(me, SPELL_DIES, true);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2009 Trinity <http://www.trinitycore.org/>
* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -21,14 +21,28 @@
enum Encounter
{
BOSS_ANUBREKHAN,
BOSS_FAERLINA,
BOSS_MAEXXNA,
BOSS_NOTH,
BOSS_HEIGAN,
BOSS_LOATHEB,
BOSS_PATCHWERK,
BOSS_GROBBULUS,
BOSS_GLUTH,
BOSS_THADDIUS,
BOSS_RAZUVIOUS,
BOSS_GOTHIK,
BOSS_HORSEMEN,
BOSS_SAPPHIRON,
BOSS_KELTHUZAD,
MAX_BOSS_NUMBER
};
enum Data
{
DATA_HEIGAN_ERUPT,
DATA_GOTHIK_GATE,
DATA_SAPPHIRON_BIRTH,
};

View File

@@ -1,4 +1,4 @@
/* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>
/* Copyright (C) 2008 - 2009 Trinity <http://www.trinitycore.org/>
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -14,18 +14,16 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
/* ScriptData
SDName: Instance_Naxxramas
SD%Complete: 0
SDComment: Place holder
SDCategory: Naxxramas
EndScriptData */
#include "precompiled.h"
#include "def_naxxramas.h"
const DoorData doorData[] =
{
{181126, BOSS_ANUBREKHAN,DOOR_TYPE_ROOM},
{181195, BOSS_ANUBREKHAN,DOOR_TYPE_PASSAGE},
{194022, BOSS_FAERLINA, DOOR_TYPE_PASSAGE},
{181209, BOSS_FAERLINA, DOOR_TYPE_PASSAGE},
{181209, BOSS_MAEXXNA, DOOR_TYPE_ROOM},
{181200, BOSS_NOTH, DOOR_TYPE_ROOM},
{181201, BOSS_NOTH, DOOR_TYPE_PASSAGE},
{181202, BOSS_NOTH, DOOR_TYPE_PASSAGE},
@@ -33,9 +31,21 @@ const DoorData doorData[] =
{181203, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
{181241, BOSS_HEIGAN, DOOR_TYPE_PASSAGE},
{181241, BOSS_LOATHEB, DOOR_TYPE_ROOM},
{181123, BOSS_PATCHWERK, DOOR_TYPE_PASSAGE},
{181123, BOSS_GROBBULUS, DOOR_TYPE_ROOM},
{181120, BOSS_GLUTH, DOOR_TYPE_PASSAGE},
{181121, BOSS_GLUTH, DOOR_TYPE_PASSAGE},
{181121, BOSS_THADDIUS, DOOR_TYPE_ROOM},
{181124, BOSS_RAZUVIOUS, DOOR_TYPE_PASSAGE},
{181124, BOSS_GOTHIK, DOOR_TYPE_ROOM},
{181125, BOSS_GOTHIK, DOOR_TYPE_PASSAGE},
{181119, BOSS_GOTHIK, DOOR_TYPE_PASSAGE},
{181119, BOSS_HORSEMEN, DOOR_TYPE_ROOM},
{0, 0, DOOR_TYPE_ROOM}, // EOF
};
#define GO_GOTHIK_GATE 181170
#define SPELL_ERUPTION 29371
const float HeiganPos[2] = {2796, -3707};
@@ -72,7 +82,7 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance
instance_naxxramas(Map *map) : ScriptedInstance(map)
, Sapphiron(NULL)
{
SetBossNumber(15);
SetBossNumber(MAX_BOSS_NUMBER);
LoadDoorData(doorData);
}