TrinityCore
Loading...
Searching...
No Matches
instance_nerubar_palace.cpp
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#include "AreaBoundary.h"
19#include "Creature.h"
20#include "CreatureGroups.h"
21#include "GameObject.h"
22#include "InstanceScript.h"
23#include "ScriptMgr.h"
24#include "nerubar_palace.h"
25
37
42
48
50{
51 { DATA_ULGRAX_THE_DEVOURER, new CircleBoundary(Position(-2862.7395f, -251.90973f), 150.0f) }
52};
53
54static constexpr DungeonEncounterData const encounters[] =
55{
56 { DATA_ULGRAX_THE_DEVOURER, {{ 2902 }} },
57 { DATA_THE_BLOODBOUND_HORROR, {{ 2917 }} },
58 { DATA_SIKRAN, {{ 2898 }} },
59 { DATA_RASHANAN, {{ 2918 }} },
60 { DATA_BROODTWISTER_OVINAX, {{ 2919 }} },
61 { DATA_NEXUS_PRINCESS_KYVEZA, {{ 2920 }} },
62 { DATA_THE_SILKEN_COURT, {{ 2921 }} },
63 { DATA_QUEEN_ANSUREK, {{ 2922 }} }
64};
65
67{
68public:
70
72 {
85
86 void OnCreatureGroupDepleted(CreatureGroup const* creatureGroup) override
87 {
88 if (!_entranceRoomCleared && creatureGroup->LeaderHasStringId("nerubar_palace_intro_trash"))
89 {
91
93 door->UseDoorOrButton();
94 }
95 else if (!_ulgraxIntroDone && creatureGroup->LeaderHasStringId("ulgrax_intro_trash"))
96 {
97 _ulgraxIntroDone = true;
98
100 webBridge->UseDoorOrButton();
101 }
102 }
103
104 protected:
107 };
108
110 {
112 }
113};
114
#define DataHeader
uint32 const EncounterCount
bool LeaderHasStringId(std::string_view id) const
void SetBossNumber(uint32 number)
void LoadObjectData(std::span< ObjectData const > creatureData, std::span< ObjectData const > gameObjectData)
void SetHeaders(std::string_view dataHeaders)
void LoadDungeonEncounterData(std::span< DungeonEncounterData const > encounters)
void LoadDoorData(std::span< DoorData const > data)
GameObject * GetGameObject(uint32 type)
void LoadBossBoundaries(BossBoundaryData const &data)
InstanceScript * GetInstanceScript(InstanceMap *map) const override
static constexpr ObjectData creatureData[]
static constexpr ObjectData objectData[]
void AddSC_instance_nerubar_palace()
static constexpr DungeonEncounterData const encounters[]
static constexpr DoorData doorData[]
static BossBoundaryData const boundaries
#define NPScriptName
@ DATA_THE_SILKEN_COURT
@ DATA_QUEEN_ANSUREK
@ DATA_BROODTWISTER_OVINAX
@ DATA_ULGRAX_THE_DEVOURER
@ DATA_WEB_BRIDGE_ULGRAX_INTRO
@ DATA_NEXUS_PRINCESS_KYVEZA
@ DATA_SIKRAN
@ DATA_RASHANAN
@ DATA_NERUBAR_PALACE_DOOR_INTRO
@ DATA_THE_BLOODBOUND_HORROR
@ BOSS_BROODTWISTER_OVINAX
@ BOSS_NEXUS_PRINCESS_KYVEZA
@ BOSS_ANUBARASH
@ BOSS_ULGRAX_THE_DEVOURER
@ BOSS_RASHANAN
@ BOSS_THE_BLOODBOUND_HORROR
@ BOSS_SIKRAN
@ BOSS_QUEEN_ANSUREK
@ GO_WEB_BRIDGE_ULGRAX_INTRO
@ GO_NERUBAR_PALACE_DOOR_INTRO
void OnCreatureGroupDepleted(CreatureGroup const *creatureGroup) override