TrinityCore
violet_hold.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef VIOLET_HOLD_H_
19#define VIOLET_HOLD_H_
20
21#include "CreatureAIImpl.h"
22
23struct Position;
24
25#define VioletHoldScriptName "instance_violet_hold"
26#define DataHeader "VH"
27
28uint32 const EncounterCount = 3 + 6;
29
30// Defined in instance_violet_hold.cpp
32uint8 constexpr PortalIntroCount = 3;
33extern Position const PortalIntroPositions[];
34
35/*
36 * Violet hold bosses:
37 *
38 * 1 - Moragg
39 * 2 - Erekem
40 * 3 - Ichoron
41 * 4 - Lavanthor
42 * 5 - Xevozz
43 * 6 - Zuramat
44 * 7 - Cyanigosa
45 */
46
48{
49 // Main encounters
53 // Bosses
60
61 // Misc
68
69 // Bosses
72
73 // Cells
82
83 // Misc
88};
89
91{
97 NPC_XEVOZZ = 29266,
99 NPC_ICHORON = 29313,
102 NPC_ZURAMAT = 29314,
105 NPC_EREKEM = 29315,
107 NPC_MORAGG = 29316,
108
116
122 NPC_DEFENSE_SYSTEM = 30837
124
126{
127 GO_MAIN_DOOR = 191723,
139
141{
145};
146
148{
151
153{
155 POINT_INTRO = 1
157
158template <class AI, class T>
159inline AI* GetVioletHoldAI(T* obj)
160{
161 return GetInstanceAI<AI>(obj, VioletHoldScriptName);
162}
163
164#define RegisterVioletHoldCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetVioletHoldAI)
165#define RegisterVioletHoldGameObjectAI(ai_name) RegisterGameObjectAIWithFactory(ai_name, GetVioletHoldAI)
166
167#endif // VIOLET_HOLD_H_
uint8_t uint8
Definition: Define.h:144
uint32_t uint32
Definition: Define.h:142
VHEvents
Definition: violet_hold.h:148
@ EVENT_ACTIVATE_CRYSTAL
Definition: violet_hold.h:149
Position const PortalIntroPositions[]
uint32 const EncounterCount
Definition: violet_hold.h:28
VHGameObjectIds
Definition: violet_hold.h:126
@ GO_XEVOZZ_DOOR
Definition: violet_hold.h:128
@ GO_ICHORON_DOOR
Definition: violet_hold.h:130
@ GO_ACTIVATION_CRYSTAL
Definition: violet_hold.h:136
@ GO_LAVANTHOR_DOOR
Definition: violet_hold.h:129
@ GO_EREKEM_DOOR
Definition: violet_hold.h:132
@ GO_MORAGG_DOOR
Definition: violet_hold.h:135
@ GO_INTRO_ACTIVATION_CRYSTAL
Definition: violet_hold.h:137
@ GO_ZURAMAT_DOOR
Definition: violet_hold.h:131
@ GO_EREKEM_GUARD_2_DOOR
Definition: violet_hold.h:134
@ GO_EREKEM_GUARD_1_DOOR
Definition: violet_hold.h:133
@ GO_MAIN_DOOR
Definition: violet_hold.h:127
VHData
Definition: violet_hold.h:48
@ DATA_ICHORON
Definition: violet_hold.h:56
@ DATA_EREKEM_LEFT_GUARD_CELL
Definition: violet_hold.h:76
@ DATA_MAIN_EVENT_STATE
Definition: violet_hold.h:62
@ DATA_HANDLE_CELLS
Definition: violet_hold.h:87
@ DATA_ZURAMAT
Definition: violet_hold.h:59
@ DATA_ZURAMAT_CELL
Definition: violet_hold.h:81
@ DATA_LAVANTHOR_CELL
Definition: violet_hold.h:79
@ DATA_XEVOZZ
Definition: violet_hold.h:58
@ DATA_2ND_BOSS
Definition: violet_hold.h:51
@ DATA_1ST_BOSS
Definition: violet_hold.h:50
@ DATA_SINCLARI_TRIGGER
Definition: violet_hold.h:86
@ DATA_EREKEM_GUARD_2
Definition: violet_hold.h:71
@ DATA_MAIN_DOOR
Definition: violet_hold.h:84
@ DATA_WAVE_COUNT
Definition: violet_hold.h:63
@ DATA_CYANIGOSA
Definition: violet_hold.h:52
@ DATA_EREKEM_CELL
Definition: violet_hold.h:75
@ DATA_XEVOZZ_CELL
Definition: violet_hold.h:80
@ DATA_EREKEM
Definition: violet_hold.h:55
@ DATA_LAVANTHOR
Definition: violet_hold.h:57
@ DATA_PORTAL_LOCATION
Definition: violet_hold.h:65
@ DATA_DOOR_INTEGRITY
Definition: violet_hold.h:64
@ DATA_EREKEM_GUARD_1
Definition: violet_hold.h:70
@ DATA_DEFENSELESS
Definition: violet_hold.h:67
@ DATA_SINCLARI
Definition: violet_hold.h:85
@ DATA_START_BOSS_ENCOUNTER
Definition: violet_hold.h:66
@ DATA_EREKEM_RIGHT_GUARD_CELL
Definition: violet_hold.h:77
@ DATA_MORAGG_CELL
Definition: violet_hold.h:74
@ DATA_ICHORON_CELL
Definition: violet_hold.h:78
@ DATA_MORAGG
Definition: violet_hold.h:54
AI * GetVioletHoldAI(T *obj)
Definition: violet_hold.h:159
uint8 constexpr PortalIntroCount
Definition: violet_hold.h:32
VHWorldStateIds
Definition: violet_hold.h:141
@ WORLD_STATE_VH_WAVE_COUNT
Definition: violet_hold.h:144
@ WORLD_STATE_VH_PRISON_STATE
Definition: violet_hold.h:143
@ WORLD_STATE_VH_SHOW
Definition: violet_hold.h:142
VHInstanceMisc
Definition: violet_hold.h:153
@ ACTION_SINCLARI_OUTRO
Definition: violet_hold.h:154
@ POINT_INTRO
Definition: violet_hold.h:155
#define VioletHoldScriptName
Definition: violet_hold.h:25
Position const DefenseSystemLocation
VHCreaturesIds
Definition: violet_hold.h:91
@ NPC_EREKEM_GUARD
Definition: violet_hold.h:106
@ NPC_TELEPORTATION_PORTAL_INTRO
Definition: violet_hold.h:94
@ NPC_SINCLARI_TRIGGER
Definition: violet_hold.h:119
@ NPC_DUMMY_EREKEM_GUARD
Definition: violet_hold.h:114
@ NPC_SABOTEOUR
Definition: violet_hold.h:120
@ NPC_DUMMY_ICHORON
Definition: violet_hold.h:111
@ NPC_LAVANTHOR
Definition: violet_hold.h:98
@ NPC_ICHOR_GLOBULE
Definition: violet_hold.h:100
@ NPC_EREKEM
Definition: violet_hold.h:105
@ NPC_MORAGG
Definition: violet_hold.h:107
@ NPC_VOID_SENTRY
Definition: violet_hold.h:103
@ NPC_VIOLET_HOLD_GUARD
Definition: violet_hold.h:121
@ NPC_CYANIGOSA
Definition: violet_hold.h:117
@ NPC_VOID_SENTRY_BALL
Definition: violet_hold.h:104
@ NPC_ICHORON
Definition: violet_hold.h:99
@ NPC_ZURAMAT
Definition: violet_hold.h:102
@ NPC_ICHORON_SUMMON_TARGET
Definition: violet_hold.h:101
@ NPC_SINCLARI
Definition: violet_hold.h:118
@ NPC_DEFENSE_SYSTEM
Definition: violet_hold.h:122
@ NPC_DUMMY_ZURAMAT
Definition: violet_hold.h:112
@ NPC_XEVOZZ
Definition: violet_hold.h:97
@ NPC_DUMMY_MORAGG
Definition: violet_hold.h:115
@ NPC_DUMMY_XEVOZZ
Definition: violet_hold.h:109
@ NPC_PORTAL_KEEPER
Definition: violet_hold.h:96
@ NPC_DUMMY_LAVANTHOR
Definition: violet_hold.h:110
@ NPC_PORTAL_GUARDIAN
Definition: violet_hold.h:95
@ NPC_DUMMY_EREKEM
Definition: violet_hold.h:113
@ NPC_TELEPORTATION_PORTAL
Definition: violet_hold.h:92
@ NPC_TELEPORTATION_PORTAL_ELITE
Definition: violet_hold.h:93