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

Public Member Functions

 instance_blackrock_spire (InstanceMap *map)
 
void CreatureLooted (Creature *creature, LootType loot) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void ProcessEvent (WorldObject *, uint32 eventId) override
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
void SummonSolakarWave (uint8 number)
 
ObjectGuid GetGuidData (uint32 type) const override
 
void Update (uint32 diff) override
 
void Dragonspireroomstore ()
 
void Dragonspireroomcheck ()
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
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 OnPlayerEnter (Player *)
 
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
 
virtual void DoAction (int32)
 
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)
 

Public Attributes

uint32 CurrentSolakarWave = 0
 
uint32 SolakarState = NOT_STARTED
 
GuidVector SolakarSummons
 
uint32 VaelastraszState = NOT_STARTED
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
TaskScheduler scheduler
 

Protected Attributes

EventMap Events
 
ObjectGuid HighlordOmokk
 
ObjectGuid ShadowHunterVoshgajin
 
ObjectGuid WarMasterVoone
 
ObjectGuid MotherSmolderweb
 
ObjectGuid UrokDoomhowl
 
ObjectGuid QuartermasterZigris
 
ObjectGuid GizrultheSlavener
 
ObjectGuid Halycon
 
ObjectGuid OverlordWyrmthalak
 
ObjectGuid PyroguardEmberseer
 
ObjectGuid WarchiefRendBlackhand
 
ObjectGuid Gyth
 
ObjectGuid LordVictorNefarius
 
ObjectGuid TheBeast
 
ObjectGuid GeneralDrakkisath
 
ObjectGuid go_emberseerin
 
ObjectGuid go_doors
 
ObjectGuid go_emberseerout
 
ObjectGuid go_blackrockaltar
 
ObjectGuid go_roomrunes [7]
 
ObjectGuid go_emberseerrunes [7]
 
GuidVector runecreaturelist [7]
 
ObjectGuid go_portcullis_active
 
ObjectGuid go_urokPile
 
ObjectGuid go_urokChallenge
 
std::vector< ObjectGuidgo_urokOgreCirles
 
std::vector< ObjectGuidUrokMobs
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- 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_blackrock_spire()

instance_blackrock_spire::instance_blackrock_spire ( InstanceMap map)
inline
82 : InstanceScript(map)
83 {
90 SolakarSummons.clear();
92 }
@ NOT_STARTED
Definition InstanceScript.h:58
#define DataHeader
Definition blackrock_depths.h:23
uint32 const EncounterCount
Definition blackrock_spire.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:306
void LoadMinionData(MinionData const *data)
Definition InstanceScript.cpp:169
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:181
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:158
MinionData const minionData[]
Definition instance_blackrock_spire.cpp:61
DoorData const doorData[]
Definition instance_blackrock_spire.cpp:67
uint32 SolakarState
Definition instance_blackrock_spire.cpp:78
GuidVector SolakarSummons
Definition instance_blackrock_spire.cpp:79
uint32 VaelastraszState
Definition instance_blackrock_spire.cpp:80
uint32 CurrentSolakarWave
Definition instance_blackrock_spire.cpp:77

References CurrentSolakarWave, DataHeader, doorData, EncounterCount, InstanceScript::LoadDoorData(), InstanceScript::LoadMinionData(), minionData, NOT_STARTED, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), SolakarState, SolakarSummons, and VaelastraszState.

Member Function Documentation

◆ CreatureLooted()

void instance_blackrock_spire::CreatureLooted ( Creature creature,
LootType  loot 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

95 {
96 switch (creature->GetEntry())
97 {
98 case NPC_THE_BEAST:
99 if (loot == LOOT_SKINNING)
100 creature->CastSpell(creature, SPELL_FINKLE_IS_EINHORN, true);
101 break;
102 }
103 }
@ LOOT_SKINNING
Definition LootMgr.h:85
@ NPC_THE_BEAST
Definition blackrock_spire.h:74
@ SPELL_FINKLE_IS_EINHORN
Definition blackrock_spire.h:148
uint32 GetEntry() const
Definition Object.h:117
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

References Unit::CastSpell(), Object::GetEntry(), LOOT_SKINNING, NPC_THE_BEAST, and SPELL_FINKLE_IS_EINHORN.

◆ Dragonspireroomcheck()

void instance_blackrock_spire::Dragonspireroomcheck ( )
inline
556 {
557 Creature* mob = nullptr;
558 GameObject* rune = nullptr;
559
560 for (uint8 i = 0; i < 7; ++i)
561 {
562 bool _mobAlive = false;
564 if (!rune)
565 continue;
566
567 if (rune->GetGoState() == GO_STATE_ACTIVE)
568 {
569 for (ObjectGuid const& guid : runecreaturelist[i])
570 {
571 mob = instance->GetCreature(guid);
572 if (mob && mob->IsAlive())
573 _mobAlive = true;
574 }
575 }
576
577 if (!_mobAlive && rune->GetGoState() == GO_STATE_ACTIVE)
578 {
580
581 switch (rune->GetEntry())
582 {
583 case GO_HALL_RUNE_1:
585 break;
586 case GO_HALL_RUNE_2:
588 break;
589 case GO_HALL_RUNE_3:
591 break;
592 case GO_HALL_RUNE_4:
594 break;
595 case GO_HALL_RUNE_5:
597 break;
598 case GO_HALL_RUNE_6:
600 break;
601 case GO_HALL_RUNE_7:
603 break;
604 default:
605 break;
606 }
607 }
608 }
609
613 {
621 }
622 }
std::uint8_t uint8
Definition Define.h:109
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ DONE
Definition InstanceScript.h:61
@ GO_HALL_RUNE_4
Definition blackrock_spire.h:125
@ GO_HALL_RUNE_6
Definition blackrock_spire.h:127
@ GO_HALL_RUNE_1
Definition blackrock_spire.h:122
@ GO_HALL_RUNE_7
Definition blackrock_spire.h:128
@ GO_HALL_RUNE_3
Definition blackrock_spire.h:124
@ GO_HALL_RUNE_5
Definition blackrock_spire.h:126
@ GO_HALL_RUNE_2
Definition blackrock_spire.h:123
@ DATA_HALL_RUNE_3
Definition blackrock_spire.h:50
@ DATA_HALL_RUNE_1
Definition blackrock_spire.h:48
@ DATA_HALL_RUNE_2
Definition blackrock_spire.h:49
@ DATA_DRAGONSPIRE_ROOM
Definition blackrock_spire.h:47
@ DATA_HALL_RUNE_7
Definition blackrock_spire.h:54
@ DATA_HALL_RUNE_6
Definition blackrock_spire.h:53
@ DATA_HALL_RUNE_5
Definition blackrock_spire.h:52
@ DATA_HALL_RUNE_4
Definition blackrock_spire.h:51
Definition Creature.h:47
Definition GameObject.h:120
GOState GetGoState() const
Definition GameObject.h:204
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Open or close a GameObject by GUID.
Definition InstanceScript.cpp:125
Map * instance
Definition InstanceScript.h:149
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2341
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2336
Definition ObjectGuid.h:118
static ObjectGuid const Empty
Definition ObjectGuid.h:120
bool IsAlive() const
Definition Unit.h:1793
ObjectGuid go_roomrunes[7]
Definition instance_blackrock_spire.cpp:645
bool SetBossState(uint32 type, EncounterState state) override
Definition instance_blackrock_spire.cpp:285
ObjectGuid go_emberseerin
Definition instance_blackrock_spire.cpp:641
GuidVector runecreaturelist[7]
Definition instance_blackrock_spire.cpp:647
ObjectGuid go_doors
Definition instance_blackrock_spire.cpp:642

References DATA_DRAGONSPIRE_ROOM, DATA_HALL_RUNE_1, DATA_HALL_RUNE_2, DATA_HALL_RUNE_3, DATA_HALL_RUNE_4, DATA_HALL_RUNE_5, DATA_HALL_RUNE_6, DATA_HALL_RUNE_7, DONE, ObjectGuid::Empty, InstanceScript::GetBossState(), Map::GetCreature(), Object::GetEntry(), Map::GetGameObject(), GameObject::GetGoState(), go_doors, go_emberseerin, GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7, go_roomrunes, GO_STATE_ACTIVE, InstanceScript::HandleGameObject(), InstanceScript::instance, Unit::IsAlive(), runecreaturelist, and SetBossState().

Referenced by Update().

◆ Dragonspireroomstore()

void instance_blackrock_spire::Dragonspireroomstore ( )
inline
534 {
535
536 for (uint8 i = 0; i < 7; ++i)
537 {
538 // Refresh the creature list
539 runecreaturelist[i].clear();
540
542 {
543 for (uint8 j = 0; j < 3; ++j)
544 {
545 std::list<Creature*> creatureList;
546 GetCreatureListWithEntryInGrid(creatureList, rune, DragonspireMobs[j], 15.0f);
547 for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
548 if (Creature* creature = *itr)
549 runecreaturelist[i].push_back(creature->GetGUID());
550 }
551 }
552 }
553 }
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition ScriptedCreature.cpp:943
uint32 const DragonspireMobs[3]
Definition instance_blackrock_spire.cpp:33

References DragonspireMobs, GetCreatureListWithEntryInGrid(), Map::GetGameObject(), go_roomrunes, InstanceScript::instance, and runecreaturelist.

Referenced by Update().

◆ GetData()

uint32 instance_blackrock_spire::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

393 {
394 if (type == DATA_SOLAKAR_FLAMEWREATH)
395 return SolakarState;
396 else if (type == DATA_VAELASTRASZ)
397 return VaelastraszState;
398 else
399 return InstanceScript::GetData(type);
400 }
@ DATA_SOLAKAR_FLAMEWREATH
Definition blackrock_spire.h:55
@ DATA_VAELASTRASZ
Definition blackrock_spire.h:57
virtual uint32 GetData(uint32) const
Definition ZoneScript.h:51

References DATA_SOLAKAR_FLAMEWREATH, DATA_VAELASTRASZ, ZoneScript::GetData(), SolakarState, and VaelastraszState.

◆ GetGuidData()

ObjectGuid instance_blackrock_spire::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

424 {
425 switch (type)
426 {
428 return HighlordOmokk;
432 return WarMasterVoone;
434 return MotherSmolderweb;
436 return UrokDoomhowl;
438 return QuartermasterZigris;
440 return GizrultheSlavener;
441 case DATA_HALYCON:
442 return Halycon;
444 return OverlordWyrmthalak;
446 return PyroguardEmberseer;
449 case DATA_GYTH:
450 return Gyth;
451 case DATA_THE_BEAST:
452 return TheBeast;
454 return GeneralDrakkisath;
455 case GO_EMBERSEER_IN:
456 return go_emberseerin;
457 case GO_DOORS:
458 return go_doors;
459 case GO_EMBERSEER_OUT:
460 return go_emberseerout;
461 case GO_HALL_RUNE_1:
462 return go_roomrunes[0];
463 case GO_HALL_RUNE_2:
464 return go_roomrunes[1];
465 case GO_HALL_RUNE_3:
466 return go_roomrunes[2];
467 case GO_HALL_RUNE_4:
468 return go_roomrunes[3];
469 case GO_HALL_RUNE_5:
470 return go_roomrunes[4];
471 case GO_HALL_RUNE_6:
472 return go_roomrunes[5];
473 case GO_HALL_RUNE_7:
474 return go_roomrunes[6];
476 return go_emberseerrunes[0];
478 return go_emberseerrunes[1];
480 return go_emberseerrunes[2];
482 return go_emberseerrunes[3];
484 return go_emberseerrunes[4];
486 return go_emberseerrunes[5];
488 return go_emberseerrunes[6];
491 case GO_UROK_PILE:
492 return go_urokPile;
494 return go_urokChallenge;
495 default:
496 break;
497 }
498
499 return ObjectGuid::Empty;
500 }
@ GO_EMBERSEER_RUNE_3
Definition blackrock_spire.h:132
@ GO_EMBERSEER_RUNE_7
Definition blackrock_spire.h:136
@ GO_EMBERSEER_IN
Definition blackrock_spire.h:113
@ GO_EMBERSEER_RUNE_4
Definition blackrock_spire.h:133
@ GO_EMBERSEER_OUT
Definition blackrock_spire.h:115
@ GO_EMBERSEER_RUNE_2
Definition blackrock_spire.h:131
@ GO_UROK_PILE
Definition blackrock_spire.h:141
@ GO_DOORS
Definition blackrock_spire.h:114
@ GO_PORTCULLIS_ACTIVE
Definition blackrock_spire.h:139
@ GO_EMBERSEER_RUNE_1
Definition blackrock_spire.h:130
@ GO_EMBERSEER_RUNE_5
Definition blackrock_spire.h:134
@ GO_UROK_CHALLENGE
Definition blackrock_spire.h:142
@ GO_EMBERSEER_RUNE_6
Definition blackrock_spire.h:135
@ DATA_THE_BEAST
Definition blackrock_spire.h:43
@ DATA_HIGHLORD_OMOKK
Definition blackrock_spire.h:31
@ DATA_HALYCON
Definition blackrock_spire.h:38
@ DATA_PYROGAURD_EMBERSEER
Definition blackrock_spire.h:40
@ DATA_WARMASTER_VOONE
Definition blackrock_spire.h:33
@ DATA_QUARTERMASTER_ZIGRIS
Definition blackrock_spire.h:36
@ DATA_GYTH
Definition blackrock_spire.h:42
@ DATA_GIZRUL_THE_SLAVENER
Definition blackrock_spire.h:37
@ DATA_WARCHIEF_REND_BLACKHAND
Definition blackrock_spire.h:41
@ DATA_GENERAL_DRAKKISATH
Definition blackrock_spire.h:44
@ DATA_SHADOW_HUNTER_VOSHGAJIN
Definition blackrock_spire.h:32
@ DATA_OVERLORD_WYRMTHALAK
Definition blackrock_spire.h:39
@ DATA_UROK_DOOMHOWL
Definition blackrock_spire.h:35
@ DATA_MOTHER_SMOLDERWEB
Definition blackrock_spire.h:34
ObjectGuid MotherSmolderweb
Definition instance_blackrock_spire.cpp:629
ObjectGuid ShadowHunterVoshgajin
Definition instance_blackrock_spire.cpp:627
ObjectGuid go_emberseerrunes[7]
Definition instance_blackrock_spire.cpp:646
ObjectGuid GizrultheSlavener
Definition instance_blackrock_spire.cpp:632
ObjectGuid OverlordWyrmthalak
Definition instance_blackrock_spire.cpp:634
ObjectGuid UrokDoomhowl
Definition instance_blackrock_spire.cpp:630
ObjectGuid go_urokPile
Definition instance_blackrock_spire.cpp:649
ObjectGuid TheBeast
Definition instance_blackrock_spire.cpp:639
ObjectGuid PyroguardEmberseer
Definition instance_blackrock_spire.cpp:635
ObjectGuid Gyth
Definition instance_blackrock_spire.cpp:637
ObjectGuid QuartermasterZigris
Definition instance_blackrock_spire.cpp:631
ObjectGuid GeneralDrakkisath
Definition instance_blackrock_spire.cpp:640
ObjectGuid go_emberseerout
Definition instance_blackrock_spire.cpp:643
ObjectGuid Halycon
Definition instance_blackrock_spire.cpp:633
ObjectGuid WarMasterVoone
Definition instance_blackrock_spire.cpp:628
ObjectGuid go_portcullis_active
Definition instance_blackrock_spire.cpp:648
ObjectGuid go_urokChallenge
Definition instance_blackrock_spire.cpp:650
ObjectGuid WarchiefRendBlackhand
Definition instance_blackrock_spire.cpp:636
ObjectGuid HighlordOmokk
Definition instance_blackrock_spire.cpp:626

References DATA_GENERAL_DRAKKISATH, DATA_GIZRUL_THE_SLAVENER, DATA_GYTH, DATA_HALYCON, DATA_HIGHLORD_OMOKK, DATA_MOTHER_SMOLDERWEB, DATA_OVERLORD_WYRMTHALAK, DATA_PYROGAURD_EMBERSEER, DATA_QUARTERMASTER_ZIGRIS, DATA_SHADOW_HUNTER_VOSHGAJIN, DATA_THE_BEAST, DATA_UROK_DOOMHOWL, DATA_WARCHIEF_REND_BLACKHAND, DATA_WARMASTER_VOONE, ObjectGuid::Empty, GeneralDrakkisath, GizrultheSlavener, GO_DOORS, go_doors, GO_EMBERSEER_IN, GO_EMBERSEER_OUT, GO_EMBERSEER_RUNE_1, GO_EMBERSEER_RUNE_2, GO_EMBERSEER_RUNE_3, GO_EMBERSEER_RUNE_4, GO_EMBERSEER_RUNE_5, GO_EMBERSEER_RUNE_6, GO_EMBERSEER_RUNE_7, go_emberseerin, go_emberseerout, go_emberseerrunes, GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7, GO_PORTCULLIS_ACTIVE, go_portcullis_active, go_roomrunes, GO_UROK_CHALLENGE, GO_UROK_PILE, go_urokChallenge, go_urokPile, Gyth, Halycon, HighlordOmokk, MotherSmolderweb, OverlordWyrmthalak, PyroguardEmberseer, QuartermasterZigris, ShadowHunterVoshgajin, TheBeast, UrokDoomhowl, WarchiefRendBlackhand, and WarMasterVoone.

◆ OnCreatureCreate()

void instance_blackrock_spire::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

106 {
107 switch (creature->GetEntry())
108 {
109 case NPC_UROK_MAGUS:
110 [[fallthrough]];
112 UrokMobs.push_back(creature->GetGUID());
113 break;
115 HighlordOmokk = creature->GetGUID();
116 break;
118 ShadowHunterVoshgajin = creature->GetGUID();
119 break;
121 WarMasterVoone = creature->GetGUID();
122 break;
124 MotherSmolderweb = creature->GetGUID();
125 break;
127 UrokDoomhowl = creature->GetGUID();
128 break;
130 QuartermasterZigris = creature->GetGUID();
131 break;
133 GizrultheSlavener = creature->GetGUID();
134 break;
135 case NPC_HALYCON:
136 Halycon = creature->GetGUID();
137 break;
139 OverlordWyrmthalak = creature->GetGUID();
140 break;
142 PyroguardEmberseer = creature->GetGUID();
144 creature->DisappearAndDie();
145 break;
148 WarchiefRendBlackhand = creature->GetGUID();
149
151 creature->DisappearAndDie();
152 break;
153 case NPC_GYTH:
154 Gyth = creature->GetGUID();
155 break;
156 case NPC_THE_BEAST:
157 TheBeast = creature->GetGUID();
158 break;
160 GeneralDrakkisath = creature->GetGUID();
161 break;
163 LordVictorNefarius = creature->GetGUID();
165 creature->DisappearAndDie();
166 break;
168 creature->AI()->Talk(SAY_FINKLE_GANG);
169 break;
171 AddMinion(creature);
172 break;
173 }
174 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ NPC_MOTHER_SMOLDERWEB
Definition blackrock_spire.h:65
@ NPC_UROK_ENFORCER
Definition blackrock_spire.h:92
@ NPC_FINKLE_EINHORN
Definition blackrock_spire.h:93
@ NPC_GENERAL_DRAKKISATH
Definition blackrock_spire.h:75
@ NPC_HALYCON
Definition blackrock_spire.h:69
@ NPC_SHADOW_HUNTER_VOSHGAJIN
Definition blackrock_spire.h:63
@ NPC_WARCHIEF_REND_BLACKHAND
Definition blackrock_spire.h:72
@ NPC_OVERLORD_WYRMTHALAK
Definition blackrock_spire.h:70
@ NPC_QUARTERMASTER_ZIGRIS
Definition blackrock_spire.h:67
@ NPC_UROK_DOOMHOWL
Definition blackrock_spire.h:66
@ NPC_HIGHLORD_OMOKK
Definition blackrock_spire.h:62
@ NPC_UROK_MAGUS
Definition blackrock_spire.h:91
@ NPC_GIZRUL_THE_SLAVENER
Definition blackrock_spire.h:68
@ NPC_GYTH
Definition blackrock_spire.h:73
@ NPC_PYROGAURD_EMBERSEER
Definition blackrock_spire.h:71
@ NPC_CHROMATIC_ELITE_GUARD
Definition blackrock_spire.h:94
@ NPC_LORD_VICTOR_NEFARIUS
Definition blackrock_spire.h:80
@ NPC_WARMASTER_VOONE
Definition blackrock_spire.h:64
@ SAY_FINKLE_GANG
Definition blackrock_spire.h:105
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0ms)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition CreatureAI.cpp:67
CreatureAI * AI() const
Definition Creature.h:143
void DisappearAndDie()
Definition Creature.cpp:361
void AddMinion(Creature *minion, bool add=true)
Definition InstanceScript.cpp:363
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
std::vector< ObjectGuid > UrokMobs
Definition instance_blackrock_spire.cpp:652
ObjectGuid LordVictorNefarius
Definition instance_blackrock_spire.cpp:638

References InstanceScript::AddMinion(), Creature::AI(), DATA_GYTH, DATA_PYROGAURD_EMBERSEER, Creature::DisappearAndDie(), DONE, GeneralDrakkisath, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GizrultheSlavener, Gyth, Halycon, HighlordOmokk, IN_PROGRESS, LordVictorNefarius, MotherSmolderweb, NPC_CHROMATIC_ELITE_GUARD, NPC_FINKLE_EINHORN, NPC_GENERAL_DRAKKISATH, NPC_GIZRUL_THE_SLAVENER, NPC_GYTH, NPC_HALYCON, NPC_HIGHLORD_OMOKK, NPC_LORD_VICTOR_NEFARIUS, NPC_MOTHER_SMOLDERWEB, NPC_OVERLORD_WYRMTHALAK, NPC_PYROGAURD_EMBERSEER, NPC_QUARTERMASTER_ZIGRIS, NPC_SHADOW_HUNTER_VOSHGAJIN, NPC_THE_BEAST, NPC_UROK_DOOMHOWL, NPC_UROK_ENFORCER, NPC_UROK_MAGUS, NPC_WARCHIEF_REND_BLACKHAND, NPC_WARMASTER_VOONE, OverlordWyrmthalak, PyroguardEmberseer, QuartermasterZigris, SAY_FINKLE_GANG, ShadowHunterVoshgajin, CreatureAI::Talk(), TheBeast, UrokDoomhowl, UrokMobs, WarchiefRendBlackhand, and WarMasterVoone.

◆ OnGameObjectCreate()

void instance_blackrock_spire::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

177 {
178 switch (go->GetEntry())
179 {
180 case GO_EMBERSEER_IN:
181 go_emberseerin = go->GetGUID();
183 break;
184 case GO_DOORS:
185 go_doors = go->GetGUID();
188 break;
189 case GO_EMBERSEER_OUT:
190 go_emberseerout = go->GetGUID();
193 break;
194 case GO_HALL_RUNE_1:
195 go_roomrunes[0] = go->GetGUID();
198 break;
199 case GO_HALL_RUNE_2:
200 go_roomrunes[1] = go->GetGUID();
203 break;
204 case GO_HALL_RUNE_3:
205 go_roomrunes[2] = go->GetGUID();
208 break;
209 case GO_HALL_RUNE_4:
210 go_roomrunes[3] = go->GetGUID();
213 break;
214 case GO_HALL_RUNE_5:
215 go_roomrunes[4] = go->GetGUID();
218 break;
219 case GO_HALL_RUNE_6:
220 go_roomrunes[5] = go->GetGUID();
223 break;
224 case GO_HALL_RUNE_7:
225 go_roomrunes[6] = go->GetGUID();
228 break;
230 go_emberseerrunes[0] = go->GetGUID();
233 break;
235 go_emberseerrunes[1] = go->GetGUID();
238 break;
240 go_emberseerrunes[2] = go->GetGUID();
243 break;
245 go_emberseerrunes[3] = go->GetGUID();
248 break;
250 go_emberseerrunes[4] = go->GetGUID();
253 break;
255 go_emberseerrunes[5] = go->GetGUID();
258 break;
260 go_emberseerrunes[6] = go->GetGUID();
263 break;
268 break;
269 case GO_UROK_PILE:
270 go_urokPile = go->GetGUID();
271 break;
272 case GO_UROK_CIRCLE:
273 go_urokOgreCirles.push_back(go->GetGUID());
274 break;
277 break;
278 default:
279 break;
280 }
281
283 }
@ GO_UROK_CIRCLE
Definition blackrock_spire.h:143
void OnGameObjectCreate(GameObject *go) override
Definition InstanceScript.cpp:85
std::vector< ObjectGuid > go_urokOgreCirles
Definition instance_blackrock_spire.cpp:651

References DATA_DRAGONSPIRE_ROOM, DATA_GYTH, DATA_HALL_RUNE_1, DATA_HALL_RUNE_2, DATA_HALL_RUNE_3, DATA_HALL_RUNE_4, DATA_HALL_RUNE_5, DATA_HALL_RUNE_6, DATA_HALL_RUNE_7, DATA_PYROGAURD_EMBERSEER, DONE, ObjectGuid::Empty, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_DOORS, go_doors, GO_EMBERSEER_IN, GO_EMBERSEER_OUT, GO_EMBERSEER_RUNE_1, GO_EMBERSEER_RUNE_2, GO_EMBERSEER_RUNE_3, GO_EMBERSEER_RUNE_4, GO_EMBERSEER_RUNE_5, GO_EMBERSEER_RUNE_6, GO_EMBERSEER_RUNE_7, go_emberseerin, go_emberseerout, go_emberseerrunes, GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7, GO_PORTCULLIS_ACTIVE, go_portcullis_active, go_roomrunes, GO_UROK_CHALLENGE, GO_UROK_CIRCLE, GO_UROK_PILE, go_urokChallenge, go_urokOgreCirles, go_urokPile, InstanceScript::HandleGameObject(), and InstanceScript::OnGameObjectCreate().

◆ ProcessEvent()

void instance_blackrock_spire::ProcessEvent ( WorldObject ,
uint32  eventId 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

310 {
311 switch (eventId)
312 {
316 Emberseer->AI()->SetData(1, 1);
317 break;
320 {
323 pile->SetLootState(GO_JUST_DEACTIVATED);
324 }
325 break;
326 default:
327 break;
328 }
329 }
@ GO_JUST_DEACTIVATED
Definition GameObject.h:113
@ EVENT_PYROGUARD_EMBERSEER
Definition blackrock_spire.h:101
@ EVENT_UROK_DOOMHOWL
Definition blackrock_spire.h:100

References DATA_PYROGAURD_EMBERSEER, DATA_UROK_DOOMHOWL, EVENT_PYROGUARD_EMBERSEER, EVENT_UROK_DOOMHOWL, InstanceScript::GetBossState(), Map::GetCreature(), Map::GetGameObject(), GO_JUST_DEACTIVATED, go_urokPile, IN_PROGRESS, InstanceScript::instance, NOT_STARTED, PyroguardEmberseer, and SetBossState().

◆ SetBossState()

bool instance_blackrock_spire::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

286 {
287 if (!InstanceScript::SetBossState(type, state))
288 return false;
289
290 switch (type)
291 {
293 if (state == FAIL)
294 {
296 rend->Respawn(true);
297
299 nefarius->AI()->Talk(SAY_NEFARIUS_REND_WIPE);
300 }
301 break;
302 default:
303 break;
304 }
305
306 return true;
307 }
@ FAIL
Definition InstanceScript.h:60
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:390
@ SAY_NEFARIUS_REND_WIPE
Definition instance_blackrock_spire.cpp:56

References DATA_WARCHIEF_REND_BLACKHAND, FAIL, Map::GetCreature(), InstanceScript::instance, LordVictorNefarius, SAY_NEFARIUS_REND_WIPE, InstanceScript::SetBossState(), and WarchiefRendBlackhand.

Referenced by Dragonspireroomcheck(), ProcessEvent(), and SetData().

◆ SetData()

void instance_blackrock_spire::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

332 {
333 switch (type)
334 {
335 case AREATRIGGER:
337 {
339 Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_STORE, 1s);
340 }
341 break;
343 switch (data)
344 {
345 case IN_PROGRESS:
347 Events.ScheduleEvent(EVENT_SOLAKAR_WAVE, 500ms);
348 break;
349 case FAIL:
350 for (ObjectGuid const& guid : SolakarSummons)
351 if (Creature* creature = instance->GetCreature(guid))
352 creature->DespawnOrUnsummon();
353 SolakarSummons.clear();
356 break;
357 case DONE:
358 break;
359 }
360 SolakarState = data;
361 break;
362 case DATA_VAELASTRASZ:
363 VaelastraszState = data;
364 break;
366 if (data == FAIL)
367 {
369 {
372 challenge->Delete();
374 {
375 pile->SetLootState(GO_READY);
376 pile->Respawn();
377 }
378 for (auto const& circleGUID : go_urokOgreCirles)
379 if (GameObject* circle = instance->GetGameObject(circleGUID))
380 circle->Delete();
381 for (auto const& mobGUID : UrokMobs)
382 if (Creature* mob = instance->GetCreature(mobGUID))
383 mob->DespawnOrUnsummon();
384 }
385 }
386 break;
387 default:
388 break;
389 }
390 }
@ GO_READY
Definition GameObject.h:111
Events
Definition alterac_valley.cpp:53
@ AREATRIGGER
Definition blackrock_spire.h:102
@ AREATRIGGER_DRAGONSPIRE_HALL
Definition blackrock_spire.h:103
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
GameObject * GetGameObject(uint32 type)
Definition InstanceScript.cpp:120
@ EVENT_SOLAKAR_WAVE
Definition instance_blackrock_spire.cpp:40
@ EVENT_DRAGONSPIRE_ROOM_STORE
Definition instance_blackrock_spire.cpp:37
void SetData(uint32 type, uint32 data) override
Definition instance_blackrock_spire.cpp:331

References AREATRIGGER, AREATRIGGER_DRAGONSPIRE_HALL, CurrentSolakarWave, DATA_DRAGONSPIRE_ROOM, DATA_SOLAKAR_FLAMEWREATH, DATA_UROK_DOOMHOWL, DATA_VAELASTRASZ, DONE, EVENT_DRAGONSPIRE_ROOM_STORE, EVENT_SOLAKAR_WAVE, FAIL, InstanceScript::GetBossState(), Map::GetCreature(), Map::GetGameObject(), GO_READY, go_urokChallenge, go_urokOgreCirles, go_urokPile, IN_PROGRESS, InstanceScript::instance, NOT_STARTED, SetBossState(), SetData(), SolakarState, SolakarSummons, UrokMobs, and VaelastraszState.

Referenced by SetData().

◆ SummonSolakarWave()

void instance_blackrock_spire::SummonSolakarWave ( uint8  number)
inline
403 {
404 if (number < MAX_WAVE_COUNT)
405 {
407 SolakarSummons.push_back(summon->GetGUID());
408
410 SolakarSummons.push_back(summon->GetGUID());
411
412 if (number == 0)
413 if (Creature* FirstHatcher = instance->GetCreature(SolakarSummons.back())) // works because we spawned a hatcher second
414 FirstHatcher->AI()->Talk(SAY_SOLAKAR_FIRST_HATCHER);
415 }
416 else if (number == MAX_WAVE_COUNT)
417 {
419 SolakarSummons.push_back(summon->GetGUID());
420 }
421 }
@ NPC_ROOKERY_GUARDIAN
Definition blackrock_spire.h:87
@ NPC_SOLAKAR
Definition blackrock_spire.h:86
@ NPC_ROOKERY_HATCHER
Definition blackrock_spire.h:88
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
@ MAX_WAVE_COUNT
Definition instance_blackrock_spire.cpp:47
Position SolakarPosBoss
Definition instance_blackrock_spire.cpp:52
Position SolakarPosRight
Definition instance_blackrock_spire.cpp:51
@ SAY_SOLAKAR_FIRST_HATCHER
Definition instance_blackrock_spire.cpp:57
Position SolakarPosLeft
Definition instance_blackrock_spire.cpp:50

References Map::GetCreature(), InstanceScript::instance, MAX_WAVE_COUNT, NPC_ROOKERY_GUARDIAN, NPC_ROOKERY_HATCHER, NPC_SOLAKAR, SAY_SOLAKAR_FIRST_HATCHER, SolakarPosBoss, SolakarPosLeft, SolakarPosRight, SolakarSummons, and Map::SummonCreature().

Referenced by Update().

◆ Update()

void instance_blackrock_spire::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

503 {
504 Events.Update(diff);
505
506 while (uint32 eventId = Events.ExecuteEvent())
507 {
508 switch (eventId)
509 {
512 Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_CHECK, 3s);
513 break;
517 Events.ScheduleEvent(EVENT_DRAGONSPIRE_ROOM_CHECK, 3s);
518 break;
522 {
525 }
526 break;
527 default:
528 break;
529 }
530 }
531 }
std::uint32_t uint32
Definition Define.h:107
constexpr Milliseconds TIMER_SOLAKAR_WAVE
Definition instance_blackrock_spire.cpp:43
@ EVENT_DRAGONSPIRE_ROOM_CHECK
Definition instance_blackrock_spire.cpp:38
void Dragonspireroomstore()
Definition instance_blackrock_spire.cpp:533
void SummonSolakarWave(uint8 number)
Definition instance_blackrock_spire.cpp:402
void Dragonspireroomcheck()
Definition instance_blackrock_spire.cpp:555

References CurrentSolakarWave, DATA_DRAGONSPIRE_ROOM, DONE, Dragonspireroomcheck(), Dragonspireroomstore(), EVENT_DRAGONSPIRE_ROOM_CHECK, EVENT_DRAGONSPIRE_ROOM_STORE, EVENT_SOLAKAR_WAVE, InstanceScript::GetBossState(), MAX_WAVE_COUNT, SummonSolakarWave(), and TIMER_SOLAKAR_WAVE.

Member Data Documentation

◆ CurrentSolakarWave

uint32 instance_blackrock_spire::CurrentSolakarWave = 0

◆ Events

EventMap instance_blackrock_spire::Events
protected

◆ GeneralDrakkisath

ObjectGuid instance_blackrock_spire::GeneralDrakkisath
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ GizrultheSlavener

ObjectGuid instance_blackrock_spire::GizrultheSlavener
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ go_blackrockaltar

ObjectGuid instance_blackrock_spire::go_blackrockaltar
protected

◆ go_doors

ObjectGuid instance_blackrock_spire::go_doors
protected

◆ go_emberseerin

ObjectGuid instance_blackrock_spire::go_emberseerin
protected

◆ go_emberseerout

ObjectGuid instance_blackrock_spire::go_emberseerout
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ go_emberseerrunes

ObjectGuid instance_blackrock_spire::go_emberseerrunes[7]
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ go_portcullis_active

ObjectGuid instance_blackrock_spire::go_portcullis_active
protected

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ go_roomrunes

ObjectGuid instance_blackrock_spire::go_roomrunes[7]
protected

◆ go_urokChallenge

ObjectGuid instance_blackrock_spire::go_urokChallenge
protected

◆ go_urokOgreCirles

std::vector<ObjectGuid> instance_blackrock_spire::go_urokOgreCirles
protected

Referenced by OnGameObjectCreate(), and SetData().

◆ go_urokPile

ObjectGuid instance_blackrock_spire::go_urokPile
protected

◆ Gyth

ObjectGuid instance_blackrock_spire::Gyth
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ Halycon

ObjectGuid instance_blackrock_spire::Halycon
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ HighlordOmokk

ObjectGuid instance_blackrock_spire::HighlordOmokk
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ LordVictorNefarius

ObjectGuid instance_blackrock_spire::LordVictorNefarius
protected

Referenced by OnCreatureCreate(), and SetBossState().

◆ MotherSmolderweb

ObjectGuid instance_blackrock_spire::MotherSmolderweb
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ OverlordWyrmthalak

ObjectGuid instance_blackrock_spire::OverlordWyrmthalak
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ PyroguardEmberseer

ObjectGuid instance_blackrock_spire::PyroguardEmberseer
protected

◆ QuartermasterZigris

ObjectGuid instance_blackrock_spire::QuartermasterZigris
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ runecreaturelist

GuidVector instance_blackrock_spire::runecreaturelist[7]
protected

◆ ShadowHunterVoshgajin

ObjectGuid instance_blackrock_spire::ShadowHunterVoshgajin
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ SolakarState

uint32 instance_blackrock_spire::SolakarState = NOT_STARTED

◆ SolakarSummons

GuidVector instance_blackrock_spire::SolakarSummons

◆ TheBeast

ObjectGuid instance_blackrock_spire::TheBeast
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ UrokDoomhowl

ObjectGuid instance_blackrock_spire::UrokDoomhowl
protected

Referenced by GetGuidData(), and OnCreatureCreate().

◆ UrokMobs

std::vector<ObjectGuid> instance_blackrock_spire::UrokMobs
protected

Referenced by OnCreatureCreate(), and SetData().

◆ VaelastraszState

uint32 instance_blackrock_spire::VaelastraszState = NOT_STARTED

◆ WarchiefRendBlackhand

ObjectGuid instance_blackrock_spire::WarchiefRendBlackhand
protected

◆ WarMasterVoone

ObjectGuid instance_blackrock_spire::WarMasterVoone
protected

Referenced by GetGuidData(), and OnCreatureCreate().


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