aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Zandalar/KingsRest/kings_rest.h
blob: 3a3b6e3dee2df4286c418514c0d8d897d78f0672 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*
 * 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 <http://www.gnu.org/licenses/>.
 */

#ifndef DEF_KINGS_REST_H_
#define DEF_KINGS_REST_H_

#include "CreatureAIImpl.h"

#define DataHeader "KingsRest"
#define KingsRestScriptName "instance_kings_rest"

uint32 const EncounterCount = 4;

enum KingsRestDataTypes
{
    // Encounters
    DATA_GOLDEN_SERPENT         = 0,
    DATA_MCHIMBA_THE_EMBALMER,
    DATA_COUNCIL_OF_TRIBES,
    DATA_KING_DAZAR,

    // Council of Tribes
    DATA_AKAALI_THE_CONQUEROR,
    DATA_ZANAZAL_THE_WISE,
    DATA_KULA_THE_BUTCHER,

    // GameObjects
    DATA_KINGS_REST_INTRO_DOOR,
    DATA_KINGS_REST_LIQUID_POOL,
};

enum KingsRestCreatureIds
{
    // Bosses
    BOSS_GOLDEN_SERPENT         = 135322,
    BOSS_AKAALI_THE_CONQUEROR   = 135470,
    BOSS_ZANAZAL_THE_WISE       = 135472,
    BOSS_KULA_THE_BUTCHER       = 135475,
    BOSS_MCHIMBA_THE_EMBALMER   = 134993,
    BOSS_KING_DAZAR             = 136160
};

enum KingsRestGameObjectIds
{
    GO_KINGS_REST_ENTRYWAY_DOOR          = 282652,
    GO_KINGS_REST_SERPENT_POST_DOOR      = 287392,
    GO_KINGS_REST_LIQUID_GOLD_POOL       = 289347
};

enum KingsRestSpawnGroups
{
    SPAWN_GROUP_PRE_FIRST_BOSS  = 1255,
    SPAWN_GROUP_SERPENT_BOSS    = 1256
};

template <class AI, class T>
inline AI* GetKingsRestAI(T* obj)
{
    return GetInstanceAI<AI>(obj, KingsRestScriptName);
}

#define RegisterKingsRestCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetKingsRestAI)

#endif