TrinityCore
Loading...
Searching...
No Matches
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
30
31static constexpr ObjectData const creatureData[] =
32{
36};
37
38static constexpr DungeonEncounterData const encounters[] =
39{
40 { BOSS_ARGALOTH, {{ 1033 }} },
41 { BOSS_OCCUTHAR, {{ 1250 }} },
42 { BOSS_ALIZABAL, {{ 1332 }} }
43};
44
46{
47 public:
49
51 {
60
61 void OnCreatureCreate(Creature* creature) override
62 {
64
65 switch(creature->GetEntry())
66 {
67 case NPC_FEL_FLAMES:
68 _felFlameGUIDs.push_back(creature->GetGUID());
69 creature->m_Events.AddEventAtOffset([creature]() { creature->CastSpell(nullptr, SPELL_FEL_FLAMES); }, 1s);
70 break;
71 default:
72 break;
73 }
74 }
75
76 void SetData(uint32 type, uint32 /*value*/) override
77 {
78 switch (type)
79 {
81 for (ObjectGuid const& guid : _felFlameGUIDs)
82 if (Creature* felFlame = instance->GetCreature(guid))
83 felFlame->RemoveAllAuras();
84
85 _felFlameGUIDs.clear();
86 break;
87 default:
88 break;
89 }
90 }
91
92 private:
93 std::vector<ObjectGuid> _felFlameGUIDs;
94 };
95
97 {
99 }
100};
101
uint32_t uint32
Definition Define.h:154
#define DataHeader
uint32 const EncounterCount
@ SPELL_FEL_FLAMES
@ GO_OCCUTHAR_DOOR
@ GO_ALIZABAL_DOOR
@ GO_ARGALOTH_DOOR
#define BHScriptName
@ BOSS_ALIZABAL
@ BOSS_ARGALOTH
@ DATA_EXTINUISH_FEL_FLAMES
@ BOSS_OCCUTHAR
@ NPC_FEL_FLAMES
@ NPC_OCCUTHAR
@ NPC_ARGALOTH
@ NPC_ALIZABAL
ObjectGuid const & GetGUID() const
Definition BaseEntity.h:163
void AddEventAtOffset(BasicEvent *event, Milliseconds offset)
void SetBossNumber(uint32 number)
virtual void OnCreatureCreate(Creature *creature) override
void LoadObjectData(std::span< ObjectData const > creatureData, std::span< ObjectData const > gameObjectData)
InstanceMap * instance
void SetHeaders(std::string_view dataHeaders)
void LoadDungeonEncounterData(std::span< DungeonEncounterData const > encounters)
void LoadDoorData(std::span< DoorData const > data)
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:3542
uint32 GetEntry() const
Definition Object.h:89
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition Object.cpp:2217
EventProcessor m_Events
Definition Object.h:561
InstanceScript * GetInstanceScript(InstanceMap *map) const override
static constexpr ObjectData const creatureData[]
static constexpr DungeonEncounterData const encounters[]
void AddSC_instance_baradin_hold()
static constexpr DoorData const doorData[]