AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
instance_molten_core Struct Reference
Inheritance diagram for instance_molten_core:
InstanceScript ZoneScript

Public Member Functions

 instance_molten_core (Map *map)
 
void OnPlayerEnter (Player *) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
ObjectGuid GetGuidData (uint32 type) const override
 
bool SetBossState (uint32 bossId, EncounterState state) override
 
void DoAction (int32 action) override
 
void SummonMajordomoExecutus ()
 
bool CheckMajordomoExecutus () const
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerLeave (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
virtual void OnPlayerInWaterStateUpdate (Player *, bool)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 Open or close a GameObject by GUID.
 
void HandleGameObject (uint32 type, bool open)
 Open or close a GameObject registered via LoadObjectData.
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnGameObject (uint32 type)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
void DoForAllMinions (uint32 id, std::function< void(Creature *)> exec)
 
void StoreGameObjectState (ObjectGuid::LowType spawnId, uint8 state)
 
uint8 GetStoredGameObjectState (ObjectGuid::LowType spawnId) const
 
void LoadInstanceSavedGameobjectStateData ()
 
bool IsBossDone (uint32 bossId) const
 
bool AllBossesDone () const
 
bool AllBossesDone (std::initializer_list< uint32 > bossIds) const
 
TeamId GetTeamIdInInstance () const
 
void SetTeamIdInInstance (TeamId teamId)
 
bool IsTwoFactionInstance () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

std::unordered_map< uint32, ObjectGuid_circlesGUIDs
 
std::unordered_map< uint32, ObjectGuid_runesGUIDs
 
ObjectGuid _golemaggGUID
 
GuidSet _golemaggMinionsGUIDS
 
ObjectGuid _ragnarosGUID
 
ObjectGuid _lavaSteamGUID
 
ObjectGuid _lavaSplashGUID
 
ObjectGuid _majordomoExecutusGUID
 
ObjectGuid _cacheOfTheFirelordGUID
 
ObjectGuid _garrGUID
 
ObjectGuid _magmadarGUID
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
TaskScheduler scheduler
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (uint32 number)
 
void SetPersistentDataCount (uint32 number)
 
void LoadBossBoundaries (BossBoundaryData const &data)
 
void LoadDoorData (DoorData const *data)
 
void LoadMinionData (MinionData const *data)
 
void LoadObjectData (ObjectData const *creatureData, ObjectData const *gameObjectData)
 
void LoadSummonData (ObjectData const *data)
 
void SetSummoner (Creature *creature)
 
void AddObject (Creature *obj, bool add=true)
 
void RemoveObject (Creature *obj)
 
void AddObject (GameObject *obj, bool add=true)
 
void RemoveObject (GameObject *obj)
 
void AddObject (WorldObject *obj, uint32 type, bool add=true)
 
void RemoveObject (WorldObject *obj, uint32 type)
 
void AddDoor (GameObject *door, bool add=true)
 
void RemoveDoor (GameObject *door)
 
void AddMinion (Creature *minion, bool add=true)
 
void RemoveMinion (Creature *minion)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_molten_core()

instance_molten_core::instance_molten_core ( Map map)
inline
58 : InstanceScript(map)
59 {
63 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:306
void LoadMinionData(MinionData const *data)
Definition InstanceScript.cpp:169
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:158
MinionData const minionData[]
Definition instance_molten_core.cpp:24
#define MAX_ENCOUNTER
Definition violet_hold.h:21

References DataHeader, InstanceScript::LoadMinionData(), MAX_ENCOUNTER, minionData, InstanceScript::SetBossNumber(), and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckMajordomoExecutus()

bool instance_molten_core::CheckMajordomoExecutus ( ) const
inline
341 {
343 return false;
344
345 for (uint8 i = 0; i < DATA_MAJORDOMO_EXECUTUS; ++i)
346 {
347 if (i == DATA_LUCIFRON)
348 continue;
349
350 if (GetBossState(i) != DONE)
351 return false;
352 }
353
354 // Prevent spawning if Ragnaros is present
356 return false;
357
358 return true;
359 }
std::uint8_t uint8
Definition Define.h:109
@ DONE
Definition InstanceScript.h:61
Map * instance
Definition InstanceScript.h:149
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2336
@ DATA_MAJORDOMO_EXECUTUS
Definition molten_core.h:39
@ DATA_RAGNAROS
Definition molten_core.h:40
@ DATA_LUCIFRON
Definition molten_core.h:31
ObjectGuid _ragnarosGUID
Definition instance_molten_core.cpp:370

References _ragnarosGUID, DATA_LUCIFRON, DATA_MAJORDOMO_EXECUTUS, DATA_RAGNAROS, DONE, InstanceScript::GetBossState(), Map::GetCreature(), and InstanceScript::instance.

Referenced by OnPlayerEnter(), and SetBossState().

◆ DoAction()

void instance_molten_core::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from InstanceScript.

307 {
309 {
310 if (Creature* golemagg = instance->GetCreature(_golemaggGUID))
311 golemagg->AI()->EnterEvadeMode();
312
313 if (!_golemaggMinionsGUIDS.empty())
314 {
315 for (ObjectGuid const& minionGuid : _golemaggMinionsGUIDS)
316 {
317 if (Creature* minion = instance->GetCreature(minionGuid))
318 minion->AI()->EnterEvadeMode();
319 }
320 }
321 }
322 }
Definition Creature.h:47
Definition ObjectGuid.h:118
@ ACTION_RESET_GOLEMAGG_ENCOUNTER
Definition molten_core.h:51
ObjectGuid _golemaggGUID
Definition instance_molten_core.cpp:366
GuidSet _golemaggMinionsGUIDS
Definition instance_molten_core.cpp:367

References _golemaggGUID, _golemaggMinionsGUIDS, ACTION_RESET_GOLEMAGG_ENCOUNTER, Map::GetCreature(), and InstanceScript::instance.

◆ GetGuidData()

ObjectGuid instance_molten_core::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

204 {
205 switch (type)
206 {
207 case DATA_GOLEMAGG:
208 return _golemaggGUID;
211 case DATA_GARR:
212 return _garrGUID;
213 case DATA_LAVA_STEAM:
214 return _lavaSteamGUID;
215 case DATA_LAVA_SPLASH:
216 return _lavaSplashGUID;
217 case DATA_RAGNAROS:
218 return _ragnarosGUID;
219 }
220
221 return ObjectGuid::Empty;
222 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ DATA_GOLEMAGG
Definition molten_core.h:38
@ DATA_LAVA_SPLASH
Definition molten_core.h:44
@ DATA_LAVA_STEAM
Definition molten_core.h:43
@ DATA_GARR
Definition molten_core.h:34
ObjectGuid _lavaSteamGUID
Definition instance_molten_core.cpp:371
ObjectGuid _majordomoExecutusGUID
Definition instance_molten_core.cpp:374
ObjectGuid _lavaSplashGUID
Definition instance_molten_core.cpp:372
ObjectGuid _garrGUID
Definition instance_molten_core.cpp:376

References _garrGUID, _golemaggGUID, _lavaSplashGUID, _lavaSteamGUID, _majordomoExecutusGUID, _ragnarosGUID, DATA_GARR, DATA_GOLEMAGG, DATA_LAVA_SPLASH, DATA_LAVA_STEAM, DATA_MAJORDOMO_EXECUTUS, DATA_RAGNAROS, and ObjectGuid::Empty.

◆ OnCreatureCreate()

void instance_molten_core::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

72 {
73 switch (creature->GetEntry())
74 {
76 {
77 _golemaggGUID = creature->GetGUID();
78 break;
79 }
80 case NPC_CORE_RAGER:
81 {
82 _golemaggMinionsGUIDS.insert(creature->GetGUID());
83 break;
84 }
86 {
87 _majordomoExecutusGUID = creature->GetGUID();
88 break;
89 }
90 case NPC_GARR:
91 {
92 _garrGUID = creature->GetGUID();
93 break;
94 }
95 case NPC_RAGNAROS:
96 {
97 _ragnarosGUID = creature->GetGUID();
98 break;
99 }
100 case NPC_FIRESWORN:
101 case NPC_FLAMEWALKER:
106 {
107 AddMinion(creature);
108 break;
109 }
110 }
111 }
void AddMinion(Creature *minion, bool add=true)
Definition InstanceScript.cpp:363
uint32 GetEntry() const
Definition Object.h:117
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
@ NPC_RAGNAROS
Definition molten_core.h:60
@ NPC_FLAMEWALKER
Definition molten_core.h:71
@ NPC_MAJORDOMO_EXECUTUS
Definition molten_core.h:86
@ NPC_FLAMEWALKER_PROTECTOR
Definition molten_core.h:79
@ NPC_GARR
Definition molten_core.h:66
@ NPC_GOLEMAGG_THE_INCINERATOR
Definition molten_core.h:74
@ NPC_CORE_RAGER
Definition molten_core.h:75
@ NPC_FIRESWORN
Definition molten_core.h:67
@ NPC_FLAMEWALKER_HEALER
Definition molten_core.h:87
@ NPC_FLAMEWALKER_ELITE
Definition molten_core.h:88
@ NPC_FLAMEWALKER_PRIEST
Definition molten_core.h:83

References _garrGUID, _golemaggGUID, _golemaggMinionsGUIDS, _majordomoExecutusGUID, _ragnarosGUID, InstanceScript::AddMinion(), Object::GetEntry(), Object::GetGUID(), NPC_CORE_RAGER, NPC_FIRESWORN, NPC_FLAMEWALKER, NPC_FLAMEWALKER_ELITE, NPC_FLAMEWALKER_HEALER, NPC_FLAMEWALKER_PRIEST, NPC_FLAMEWALKER_PROTECTOR, NPC_GARR, NPC_GOLEMAGG_THE_INCINERATOR, NPC_MAJORDOMO_EXECUTUS, and NPC_RAGNAROS.

◆ OnCreatureRemove()

void instance_molten_core::OnCreatureRemove ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

114 {
115 switch (creature->GetEntry())
116 {
117 case NPC_FIRESWORN:
118 {
119 RemoveMinion(creature);
120 break;
121 }
122 case NPC_FLAMEWALKER:
127 {
128 RemoveMinion(creature);
129 break;
130 }
131 }
132 }
void RemoveMinion(Creature *minion)
Definition InstanceScript.cpp:375

References Object::GetEntry(), NPC_FIRESWORN, NPC_FLAMEWALKER, NPC_FLAMEWALKER_ELITE, NPC_FLAMEWALKER_HEALER, NPC_FLAMEWALKER_PRIEST, NPC_FLAMEWALKER_PROTECTOR, and InstanceScript::RemoveMinion().

◆ OnGameObjectCreate()

void instance_molten_core::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

135 {
136 switch (go->GetEntry())
137 {
139 {
141 break;
142 }
143 case GO_CIRCLE_GEDDON:
144 case GO_CIRCLE_GARR:
150 {
151 for (uint8 i = 0; i < MAX_MC_LINKED_BOSS_OBJ; ++i)
152 {
153 if (linkedBossObjData[i].circleId != go->GetEntry())
154 continue;
155
156 if (GetBossState(linkedBossObjData[i].bossId) == DONE)
157 go->DespawnOrUnsummon(0ms, Seconds(WEEK));
158 else
160 }
161
162 break;
163 }
164 case GO_RUNE_KRESS:
165 case GO_RUNE_MOHN:
166 case GO_RUNE_BLAZ:
167 case GO_RUNE_MAZJ:
168 case GO_RUNE_ZETH:
169 case GO_RUNE_THERI:
170 case GO_RUNE_KORO:
171 {
172 for (uint8 i = 0; i < MAX_MC_LINKED_BOSS_OBJ; ++i)
173 {
174 if (linkedBossObjData[i].runeId != go->GetEntry())
175 continue;
176
177 if (GetBossState(linkedBossObjData[i].bossId) == DONE)
179 else
181 }
182 break;
183 }
184 case GO_LAVA_STEAM:
185 {
186 _lavaSteamGUID = go->GetGUID();
187 break;
188 }
189 case GO_LAVA_SPLASH:
190 {
191 _lavaSplashGUID = go->GetGUID();
192 break;
193 }
194 case GO_LAVA_BURST:
195 {
196 if (Creature* ragnaros = instance->GetCreature(_ragnarosGUID))
197 ragnaros->AI()->SetGUID(go->GetGUID(), GO_LAVA_BURST);
198 break;
199 }
200 }
201 }
constexpr auto WEEK
Definition Common.h:50
constexpr auto IN_MILLISECONDS
Definition Common.h:53
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition Duration.h:30
void UseDoorOrButton(uint32 time_to_restore=0, bool alternative=false, Unit *user=nullptr)
Definition GameObject.cpp:1405
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forcedRespawnTime=0s)
Definition GameObject.cpp:927
constexpr uint8 MAX_MC_LINKED_BOSS_OBJ
Definition instance_molten_core.cpp:42
MCBossObject const linkedBossObjData[MAX_MC_LINKED_BOSS_OBJ]
Definition instance_molten_core.cpp:43
@ GO_RUNE_ZETH
Definition molten_core.h:106
@ GO_CIRCLE_GARR
Definition molten_core.h:98
@ GO_LAVA_STEAM
Definition molten_core.h:111
@ GO_LAVA_SPLASH
Definition molten_core.h:112
@ GO_CIRCLE_GOLEMAGG
Definition molten_core.h:97
@ GO_CIRCLE_SULFURON
Definition molten_core.h:94
@ GO_RUNE_MAZJ
Definition molten_core.h:105
@ GO_CACHE_OF_THE_FIRELORD
Definition molten_core.h:93
@ GO_RUNE_KORO
Definition molten_core.h:108
@ GO_CIRCLE_GEDDON
Definition molten_core.h:95
@ GO_CIRCLE_SHAZZRAH
Definition molten_core.h:96
@ GO_RUNE_BLAZ
Definition molten_core.h:104
@ GO_RUNE_THERI
Definition molten_core.h:107
@ GO_RUNE_MOHN
Definition molten_core.h:103
@ GO_LAVA_BURST
Definition molten_core.h:113
@ GO_CIRCLE_GEHENNAS
Definition molten_core.h:100
@ GO_RUNE_KRESS
Definition molten_core.h:102
@ GO_CIRCLE_MAGMADAR
Definition molten_core.h:99
uint32 bossId
Definition instance_molten_core.cpp:37
ObjectGuid _cacheOfTheFirelordGUID
Definition instance_molten_core.cpp:375
std::unordered_map< uint32, ObjectGuid > _runesGUIDs
Definition instance_molten_core.cpp:363
std::unordered_map< uint32, ObjectGuid > _circlesGUIDs
Definition instance_molten_core.cpp:362

References _cacheOfTheFirelordGUID, _circlesGUIDs, _lavaSplashGUID, _lavaSteamGUID, _ragnarosGUID, _runesGUIDs, MCBossObject::bossId, GameObject::DespawnOrUnsummon(), DONE, InstanceScript::GetBossState(), Map::GetCreature(), Object::GetEntry(), Object::GetGUID(), GO_CACHE_OF_THE_FIRELORD, GO_CIRCLE_GARR, GO_CIRCLE_GEDDON, GO_CIRCLE_GEHENNAS, GO_CIRCLE_GOLEMAGG, GO_CIRCLE_MAGMADAR, GO_CIRCLE_SHAZZRAH, GO_CIRCLE_SULFURON, GO_LAVA_BURST, GO_LAVA_SPLASH, GO_LAVA_STEAM, GO_RUNE_BLAZ, GO_RUNE_KORO, GO_RUNE_KRESS, GO_RUNE_MAZJ, GO_RUNE_MOHN, GO_RUNE_THERI, GO_RUNE_ZETH, IN_MILLISECONDS, InstanceScript::instance, linkedBossObjData, MAX_MC_LINKED_BOSS_OBJ, GameObject::UseDoorOrButton(), and WEEK.

◆ OnPlayerEnter()

void instance_molten_core::OnPlayerEnter ( Player )
inlineoverridevirtual

Reimplemented from InstanceScript.

66 {
69 }
void SummonMajordomoExecutus()
Definition instance_molten_core.cpp:324
bool CheckMajordomoExecutus() const
Definition instance_molten_core.cpp:340

References CheckMajordomoExecutus(), and SummonMajordomoExecutus().

◆ SetBossState()

bool instance_molten_core::SetBossState ( uint32  bossId,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

225 {
226 if (!InstanceScript::SetBossState(bossId, state))
227 return false;
228
229 if (bossId == DATA_MAJORDOMO_EXECUTUS && state == DONE)
230 {
232 {
233 cache->SetRespawnTime(7 * DAY);
234 cache->SetLootRecipient(instance);
235 }
236 }
237 else if (bossId == DATA_GOLEMAGG)
238 {
239 switch (state)
240 {
241 case NOT_STARTED:
242 case FAIL:
243 {
244 if (!_golemaggMinionsGUIDS.empty())
245 {
246 for (ObjectGuid const& minionGuid : _golemaggMinionsGUIDS)
247 {
248 Creature* minion = instance->GetCreature(minionGuid);
249 if (minion && minion->isDead())
250 minion->Respawn();
251 }
252 }
253 break;
254 }
255 case IN_PROGRESS:
256 {
257 if (!_golemaggMinionsGUIDS.empty())
258 {
259 for (ObjectGuid const& minionGuid : _golemaggMinionsGUIDS)
260 {
261 if (Creature* minion = instance->GetCreature(minionGuid))
262 minion->AI()->DoZoneInCombat(nullptr, 150.0f);
263 }
264 }
265 break;
266 }
267 case DONE:
268 {
269 if (!_golemaggMinionsGUIDS.empty())
270 {
271 for (ObjectGuid const& minionGuid : _golemaggMinionsGUIDS)
272 {
273 if (Creature* minion = instance->GetCreature(minionGuid))
274 minion->CastSpell(minion, SPELL_CORE_RAGER_QUIET_SUICIDE, true);
275 }
276 _golemaggMinionsGUIDS.clear();
277 }
278 break;
279 }
280 default:
281 break;
282 }
283 }
284 // Perform needed checks for Majordomu
285 if (bossId < DATA_MAJORDOMO_EXECUTUS && state == DONE)
286 {
287 if (GameObject* circle = instance->GetGameObject(_circlesGUIDs[bossId]))
288 {
289 circle->DespawnOrUnsummon(0ms, Seconds(WEEK));
290 _circlesGUIDs[bossId].Clear();
291 }
292
293 if (GameObject* rune = instance->GetGameObject(_runesGUIDs[bossId]))
294 {
295 rune->UseDoorOrButton(WEEK * IN_MILLISECONDS);
296 _runesGUIDs[bossId].Clear();
297 }
298
301 }
302
303 return true;
304 }
constexpr auto DAY
Definition Common.h:49
@ IN_PROGRESS
Definition InstanceScript.h:59
@ FAIL
Definition InstanceScript.h:60
@ NOT_STARTED
Definition InstanceScript.h:58
void DoZoneInCombat(Creature *creature=nullptr, float maxRangeToNearestTarget=250.0f)
Definition CreatureAI.cpp:117
void Respawn(bool force=false)
Definition Creature.cpp:1987
CreatureAI * AI() const
Definition Creature.h:143
Definition GameObject.h:120
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:390
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2341
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1350
bool isDead() const
Definition Unit.h:1795
@ SPELL_CORE_RAGER_QUIET_SUICIDE
Definition molten_core.h:118

References _cacheOfTheFirelordGUID, _circlesGUIDs, _golemaggMinionsGUIDS, _runesGUIDs, CheckMajordomoExecutus(), DATA_GOLEMAGG, DATA_MAJORDOMO_EXECUTUS, DAY, DONE, FAIL, Map::GetCreature(), Map::GetGameObject(), IN_MILLISECONDS, IN_PROGRESS, InstanceScript::instance, Unit::isDead(), NOT_STARTED, Creature::Respawn(), InstanceScript::SetBossState(), SPELL_CORE_RAGER_QUIET_SUICIDE, SummonMajordomoExecutus(), and WEEK.

◆ SummonMajordomoExecutus()

void instance_molten_core::SummonMajordomoExecutus ( )
inline
325 {
327 return;
328
330 {
332 creature->AI()->Talk(SAY_SPAWN);
333 }
334 else
335 {
337 }
338 }
Position const MajordomoSummonPos
Definition boss_majordomo_executus.cpp:120
Position const MajordomoRagnaros
Definition boss_majordomo_executus.cpp:119
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition Object.cpp:2188
constexpr uint8 SAY_SPAWN
Definition instance_molten_core.cpp:54

References _majordomoExecutusGUID, DATA_MAJORDOMO_EXECUTUS, DONE, InstanceScript::GetBossState(), Map::GetCreature(), InstanceScript::instance, MajordomoRagnaros, MajordomoSummonPos, NPC_MAJORDOMO_EXECUTUS, SAY_SPAWN, and Map::SummonCreature().

Referenced by OnPlayerEnter(), and SetBossState().

Member Data Documentation

◆ _cacheOfTheFirelordGUID

ObjectGuid instance_molten_core::_cacheOfTheFirelordGUID
private

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _circlesGUIDs

std::unordered_map<uint32, ObjectGuid> instance_molten_core::_circlesGUIDs
private

Referenced by OnGameObjectCreate(), and SetBossState().

◆ _garrGUID

ObjectGuid instance_molten_core::_garrGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _golemaggGUID

ObjectGuid instance_molten_core::_golemaggGUID
private

◆ _golemaggMinionsGUIDS

GuidSet instance_molten_core::_golemaggMinionsGUIDS
private

◆ _lavaSplashGUID

ObjectGuid instance_molten_core::_lavaSplashGUID
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _lavaSteamGUID

ObjectGuid instance_molten_core::_lavaSteamGUID
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _magmadarGUID

ObjectGuid instance_molten_core::_magmadarGUID
private

◆ _majordomoExecutusGUID

ObjectGuid instance_molten_core::_majordomoExecutusGUID
private

◆ _ragnarosGUID

ObjectGuid instance_molten_core::_ragnarosGUID
private

◆ _runesGUIDs

std::unordered_map<uint32, ObjectGuid> instance_molten_core::_runesGUIDs
private

Referenced by OnGameObjectCreate(), and SetBossState().


The documentation for this struct was generated from the following file: