/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* 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 (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see .
*/
#ifndef DEF_NAXXRAMAS_H
#define DEF_NAXXRAMAS_H
#include "CreatureAIImpl.h"
#define NaxxramasScriptName "instance_naxxramas"
#define DataHeader "NAX"
uint32 const EncounterCount = 15;
enum NAXEncounter
{
BOSS_ANUBREKHAN = 0,
BOSS_FAERLINA = 1,
BOSS_MAEXXNA = 2,
BOSS_NOTH = 3,
BOSS_HEIGAN = 4,
BOSS_LOATHEB = 5,
BOSS_PATCHWERK = 6,
BOSS_GROBBULUS = 7,
BOSS_GLUTH = 8,
BOSS_THADDIUS = 9,
BOSS_RAZUVIOUS = 10,
BOSS_GOTHIK = 11,
BOSS_HORSEMEN = 12,
BOSS_SAPPHIRON = 13,
BOSS_KELTHUZAD = 14
};
enum NAXData
{
DATA_GOTHIK_GATE,
DATA_HAD_SAPPHIRON_BIRTH,
DATA_HORSEMEN_CHECK_ACHIEVEMENT_CREDIT,
DATA_NAXX_PORTAL_ARACHNID,
DATA_NAXX_PORTAL_CONSTRUCT,
DATA_NAXX_PORTAL_PLAGUE,
DATA_NAXX_PORTAL_MILITARY,
DATA_KELTHUZAD_THRONE
};
enum NAXData64
{
DATA_ANUBREKHAN,
DATA_FAERLINA,
DATA_RAZUVIOUS,
DATA_GOTHIK,
DATA_THANE,
DATA_LADY,
DATA_BARON,
DATA_SIR,
DATA_GLUTH,
DATA_THADDIUS,
DATA_HEIGAN,
DATA_FEUGEN,
DATA_STALAGG,
DATA_SAPPHIRON,
DATA_KELTHUZAD,
DATA_KELTHUZAD_PORTAL01,
DATA_KELTHUZAD_PORTAL02,
DATA_KELTHUZAD_PORTAL03,
DATA_KELTHUZAD_PORTAL04,
DATA_KELTHUZAD_TRIGGER,
DATA_LICH_KING
};
enum NAXCreaturesIds
{
NPC_ANUBREKHAN = 15956,
NPC_FAERLINA = 15953,
NPC_RAZUVIOUS = 16061,
NPC_GOTHIK = 16060,
NPC_THANE = 16064,
NPC_LADY = 16065,
NPC_BARON = 30549,
NPC_SIR = 16063,
NPC_GLUTH = 15932,
NPC_HEIGAN = 15936,
NPC_THADDIUS = 15928,
NPC_FEUGEN = 15930,
NPC_STALAGG = 15929,
NPC_TESLA = 16218,
NPC_SAPPHIRON = 15989,
NPC_KEL_THUZAD = 15990,
NPC_CRYPT_GUARD = 16573,
NPC_NAXXRAMAS_FOLLOWER = 16505,
NPC_FOLLOWER_WORSHIPPER = 16506,
NPC_DK_UNDERSTUDY = 16803,
NPC_BIGGLESWORTH = 16998,
NPC_LICH_KING = 16980,
NPC_OLD_WORLD_TRIGGER = 15384,
NPC_LIVING_POISON = 16027
};
enum NAXGameObjectsIds
{
GO_HORSEMEN_CHEST_HERO = 193426,
GO_HORSEMEN_CHEST = 181366,
GO_GOTHIK_GATE = 181170,
GO_KELTHUZAD_PORTAL01 = 181402,
GO_KELTHUZAD_PORTAL02 = 181403,
GO_KELTHUZAD_PORTAL03 = 181404,
GO_KELTHUZAD_PORTAL04 = 181405,
GO_KELTHUZAD_TRIGGER = 181444,
GO_KELTHUZAD_THRONE = 181640,
GO_ROOM_ANUBREKHAN = 181126,
GO_PASSAGE_ANUBREKHAN = 181195,
GO_PASSAGE_FAERLINA = 194022,
GO_ROOM_MAEXXNA = 181209,
GO_ROOM_NOTH = 181200,
GO_PASSAGE_NOTH = 181201,
GO_ROOM_HEIGAN = 181202,
GO_PASSAGE_HEIGAN = 181203,
GO_ROOM_LOATHEB = 181241,
GO_ROOM_GROBBULUS = 181123,
GO_PASSAGE_GLUTH = 181120,
GO_ROOM_THADDIUS = 181121,
GO_ROOM_GOTHIK = 181124,
GO_PASSAGE_GOTHIK = 181125,
GO_ROOM_HORSEMEN = 181119,
GO_PASSAGE_SAPPHIRON = 181225,
GO_ROOM_KELTHUZAD = 181228,
// End of wing portals
GO_ARAC_PORTAL = 181575,
GO_PLAG_PORTAL = 181577,
GO_MILI_PORTAL = 181578,
GO_CONS_PORTAL = 181576,
// "Glow" effect on center-side portal
GO_ARAC_EYE_RAMP = 181212,
GO_PLAG_EYE_RAMP = 181211,
GO_MILI_EYE_RAMP = 181210,
GO_CONS_EYE_RAMP = 181213,
// "Glow" effect on boss-side portal
GO_ARAC_EYE_RAMP_BOSS = 181233,
GO_PLAG_EYE_RAMP_BOSS = 181231,
GO_MILI_EYE_RAMP_BOSS = 181230,
GO_CONS_EYE_RAMP_BOSS = 181232,
GO_CONS_NOX_TESLA_FEUGEN = 181477,
GO_CONS_NOX_TESLA_STALAGG = 181478,
GO_BIRTH = 181356,
// Teleporting pads spawned by the end of every quarter.
GO_NAXX_PORTAL_ARACHNID = 181575,
GO_NAXX_PORTAL_CONSTRUCT = 181576,
GO_NAXX_PORTAL_PLAGUE = 181577,
GO_NAXX_PORTAL_MILITARY = 181578
};
enum NAXInstanceEvents
{
// Dialogue that happens after Gothik's death.
EVENT_DIALOGUE_GOTHIK_KORTHAZZ = 1,
EVENT_DIALOGUE_GOTHIK_ZELIEK,
EVENT_DIALOGUE_GOTHIK_BLAUMEUX,
EVENT_DIALOGUE_GOTHIK_RIVENDARE,
EVENT_DIALOGUE_GOTHIK_BLAUMEUX2,
EVENT_DIALOGUE_GOTHIK_ZELIEK2,
EVENT_DIALOGUE_GOTHIK_KORTHAZZ2,
EVENT_DIALOGUE_GOTHIK_RIVENDARE2,
// Dialogue that happens after each wing.
EVENT_KELTHUZAD_WING_TAUNT,
// Dialogue that happens after Sapphiron's death.
EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD,
EVENT_DIALOGUE_SAPPHIRON_LICHKING,
EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD2,
EVENT_DIALOGUE_SAPPHIRON_LICHKING2,
EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD3,
EVENT_DIALOGUE_SAPPHIRON_KELTHUZAD4
};
enum NAXInstanceTexts
{
// The Four Horsemen
SAY_DIALOGUE_GOTHIK_HORSEMAN = 5,
SAY_DIALOGUE_GOTHIK_HORSEMAN2 = 6,
// Kel'Thuzad
SAY_DIALOGUE_SAPPHIRON_KELTHUZAD = 0,
SAY_DIALOGUE_SAPPHIRON_KELTHUZAD2 = 2,
SAY_DIALOGUE_SAPPHIRON_KELTHUZAD3 = 4,
SAY_DIALOGUE_SAPPHIRON_KELTHUZAD4 = 20,
SAY_KELTHUZAD_CAT_DIED = 5,
SAY_KELTHUZAD_FIRST_WING_TAUNT = 16,
// Lich King
SAY_DIALOGUE_SAPPHIRON_LICH_KING = 1,
SAY_DIALOGUE_SAPPHIRON_LICH_KING2 = 2
};
template
inline AI* GetNaxxramasAI(T* obj)
{
return GetInstanceAI(obj, NaxxramasScriptName);
}
#define RegisterNaxxramasCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetNaxxramasAI)
#define RegisterNaxxramasGameObjectAI(ai_name) RegisterGameObjectAIWithFactory(ai_name, GetNaxxramasAI)
#endif