TrinityCore
instance_baradin_hold.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 3 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 "ScriptMgr.h"
19#include "baradin_hold.h"
20#include "Creature.h"
21#include "InstanceScript.h"
22#include "Map.h"
23
25{
30};
31
33{
37 { 0, 0 } // END
38};
39
41{
42 { BOSS_ARGALOTH, {{ 1033 }} },
43 { BOSS_OCCUTHAR, {{ 1250 }} },
44 { BOSS_ALIZABAL, {{ 1332 }} }
45};
46
48{
49 public:
51
53 {
55 {
61 }
62
63 void OnCreatureCreate(Creature* creature) override
64 {
66
67 switch(creature->GetEntry())
68 {
69 case NPC_FEL_FLAMES:
70 _felFlameGUIDs.push_back(creature->GetGUID());
71 creature->m_Events.AddEventAtOffset([creature]() { creature->CastSpell(nullptr, SPELL_FEL_FLAMES); }, 1s);
72 break;
73 default:
74 break;
75 }
76 }
77
78 void SetData(uint32 type, uint32 /*value*/) override
79 {
80 switch (type)
81 {
83 for (ObjectGuid const& guid : _felFlameGUIDs)
84 if (Creature* felFlame = instance->GetCreature(guid))
85 felFlame->RemoveAllAuras();
86
87 _felFlameGUIDs.clear();
88 break;
89 default:
90 break;
91 }
92 }
93
94 private:
95 std::vector<ObjectGuid> _felFlameGUIDs;
96 };
97
99 {
101 }
102};
103
105{
107}
uint32_t uint32
Definition: Define.h:142
#define DataHeader
uint32 const EncounterCount
@ SPELL_FEL_FLAMES
Definition: baradin_hold.h:65
@ GO_OCCUTHAR_DOOR
Definition: baradin_hold.h:58
@ GO_ALIZABAL_DOOR
Definition: baradin_hold.h:59
@ GO_ARGALOTH_DOOR
Definition: baradin_hold.h:57
#define BHScriptName
Definition: baradin_hold.h:24
@ BOSS_ALIZABAL
Definition: baradin_hold.h:33
@ BOSS_ARGALOTH
Definition: baradin_hold.h:31
@ DATA_EXTINUISH_FEL_FLAMES
Definition: baradin_hold.h:36
@ BOSS_OCCUTHAR
Definition: baradin_hold.h:32
@ NPC_FEL_FLAMES
Definition: baradin_hold.h:48
@ NPC_OCCUTHAR
Definition: baradin_hold.h:43
@ NPC_ARGALOTH
Definition: baradin_hold.h:42
@ NPC_ALIZABAL
Definition: baradin_hold.h:44
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
void SetBossNumber(uint32 number)
virtual void OnCreatureCreate(Creature *creature) override
void LoadDungeonEncounterData(T const &encounters)
InstanceMap * instance
void LoadDoorData(DoorData const *data)
void SetHeaders(std::string const &dataHeaders)
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3479
uint32 GetEntry() const
Definition: Object.h:161
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:159
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition: Object.cpp:2896
EventProcessor m_Events
Definition: Object.h:777
InstanceScript * GetInstanceScript(InstanceMap *map) const override
ObjectData const creatureData[]
DoorData const doorData[]
void AddSC_instance_baradin_hold()
DungeonEncounterData const encounters[]