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

Public Member Functions

 instance_blackwing_lair (Map *map)
 
void Initialize () override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
uint32 GetData (uint32 data) const override
 
bool CheckRequiredBosses (uint32 bossId, Player const *) const override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SetData (uint32 type, uint32 data) override
 
ObjectGuid GetGuidData (uint32 type) const override
 
void OnUnitDeath (Unit *unit) override
 
void Update (uint32 diff) override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
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)
 
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 OnCreatureEvade (Creature *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Protected Attributes

ObjectGuid razorgoreGUID
 
ObjectGuid nefarianGUID
 
ObjectGuid nefarianDoorGUID
 
uint8 EggCount
 
uint32 EggEvent
 
GuidList EggList
 
GuidList guardList
 
std::array< uint32, 2 > addsCount
 
uint32 NefarianLeftTunnel
 
uint32 NefarianRightTunnel
 
EventMap _events
 

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)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_blackwing_lair()

instance_blackwing_lair::instance_blackwing_lair ( Map map)
inline
77 : InstanceScript(map)
78 {
83 }
#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 LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:181
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:158
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:193
ObjectData const creatureData[]
Definition instance_blackwing_lair.cpp:45
ObjectData const objectData[]
Definition instance_blackwing_lair.cpp:54
DoorData const doorData[]
Definition instance_blackwing_lair.cpp:33

References creatureData, DataHeader, doorData, EncounterCount, InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), objectData, InstanceScript::SetBossNumber(), and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckRequiredBosses()

bool instance_blackwing_lair::CheckRequiredBosses ( uint32  bossId,
Player const *   
) const
inlineoverridevirtual

Reimplemented from InstanceScript.

185 {
186 switch (bossId)
187 {
190 return false;
191 break;
192 default:
193 break;
194 }
195
196 return true;
197 }
@ DONE
Definition InstanceScript.h:61
@ DATA_VAELASTRAZ_THE_CORRUPT
Definition blackwing_lair.h:32
@ DATA_BROODLORD_LASHLAYER
Definition blackwing_lair.h:33
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:252

References DATA_BROODLORD_LASHLAYER, DATA_VAELASTRAZ_THE_CORRUPT, DONE, and InstanceScript::GetBossState().

◆ GetData()

uint32 instance_blackwing_lair::GetData ( uint32  data) const
inlineoverridevirtual

Reimplemented from ZoneScript.

168 {
169 switch (data)
170 {
172 return NefarianLeftTunnel;
174 return NefarianRightTunnel;
175 case DATA_EGG_EVENT:
176 return EggEvent;
177 default:
178 break;
179 }
180
181 return 0;
182 }
@ DATA_EGG_EVENT
Definition blackwing_lair.h:112
@ DATA_NEFARIAN_RIGHT_TUNNEL
Definition blackwing_lair.h:119
@ DATA_NEFARIAN_LEFT_TUNNEL
Definition blackwing_lair.h:118
uint32 EggEvent
Definition instance_blackwing_lair.cpp:413
uint32 NefarianLeftTunnel
Definition instance_blackwing_lair.cpp:419
uint32 NefarianRightTunnel
Definition instance_blackwing_lair.cpp:420

References DATA_EGG_EVENT, DATA_NEFARIAN_LEFT_TUNNEL, DATA_NEFARIAN_RIGHT_TUNNEL, EggEvent, NefarianLeftTunnel, and NefarianRightTunnel.

◆ GetGuidData()

ObjectGuid instance_blackwing_lair::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

295 {
296 switch (type)
297 {
299 return razorgoreGUID;
300 default:
301 break;
302 }
303
304 return ObjectGuid::Empty;
305 }
@ DATA_RAZORGORE_THE_UNTAMED
Definition blackwing_lair.h:31
static ObjectGuid const Empty
Definition ObjectGuid.h:120
ObjectGuid razorgoreGUID
Definition instance_blackwing_lair.cpp:407

References DATA_RAZORGORE_THE_UNTAMED, ObjectGuid::Empty, and razorgoreGUID.

◆ Initialize()

void instance_blackwing_lair::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

86 {
87 // Razorgore
88 EggCount = 0;
89 EggEvent = 0;
92 addsCount.fill(0);
93 }
uint8 EggCount
Definition instance_blackwing_lair.cpp:412
std::array< uint32, 2 > addsCount
Definition instance_blackwing_lair.cpp:416

References addsCount, EggCount, EggEvent, NefarianLeftTunnel, and NefarianRightTunnel.

◆ OnCreatureCreate()

void instance_blackwing_lair::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

96 {
97 // This is required because the tempspawn at Vael overwrites his GUID.
98 if (creature->GetEntry() == NPC_VICTOR_NEFARIUS && creature->ToTempSummon())
99 return;
100
102
103 switch (creature->GetEntry())
104 {
105 case NPC_RAZORGORE:
106 razorgoreGUID = creature->GetGUID();
107 break;
109 ++addsCount[0];
111 if (CreatureAI* razorAI = razor->AI())
112 razorAI->JustSummoned(creature);
113 break;
116 ++addsCount[1];
118 if (CreatureAI* razorAI = razor->AI())
119 razorAI->JustSummoned(creature);
120 break;
122 guardList.push_back(creature->GetGUID());
123 break;
124 case NPC_NEFARIAN:
125 nefarianGUID = creature->GetGUID();
126 break;
132 case NPC_RED_DRAKONID:
134 if (CreatureAI* nefariusAI = nefarius->AI())
135 nefariusAI->JustSummoned(creature);
136 break;
137 default:
138 break;
139 }
140 }
@ DATA_LORD_VICTOR_NEFARIUS
Definition blackwing_lair.h:41
@ NPC_RED_DRAKONID
Definition blackwing_lair.h:79
@ NPC_VICTOR_NEFARIUS
Definition blackwing_lair.h:67
@ NPC_BLACKWING_DRAGON
Definition blackwing_lair.h:56
@ NPC_CHROMATIC_DRAKONID
Definition blackwing_lair.h:82
@ NPC_BLUE_DRAKONID
Definition blackwing_lair.h:78
@ NPC_BLACKWING_GUARDSMAN
Definition blackwing_lair.h:53
@ NPC_BLACKWING_MAGE
Definition blackwing_lair.h:60
@ NPC_GREEN_DRAKONID
Definition blackwing_lair.h:80
@ NPC_BRONZE_DRAKONID
Definition blackwing_lair.h:77
@ NPC_BLACK_DRAKONID
Definition blackwing_lair.h:81
@ NPC_RAZORGORE
Definition blackwing_lair.h:55
@ NPC_BLACKWING_LEGIONAIRE
Definition blackwing_lair.h:58
@ NPC_NEFARIAN
Definition blackwing_lair.h:68
Definition CreatureAI.h:69
Definition Creature.h:47
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:70
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
Map * instance
Definition InstanceScript.h:149
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2336
uint32 GetEntry() const
Definition Object.h:117
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
TempSummon * ToTempSummon()
Definition Unit.h:731
GuidList guardList
Definition instance_blackwing_lair.cpp:415
ObjectGuid nefarianGUID
Definition instance_blackwing_lair.cpp:408

References addsCount, DATA_LORD_VICTOR_NEFARIUS, Map::GetCreature(), InstanceScript::GetCreature(), Object::GetEntry(), Object::GetGUID(), guardList, InstanceScript::instance, nefarianGUID, NPC_BLACK_DRAKONID, NPC_BLACKWING_DRAGON, NPC_BLACKWING_GUARDSMAN, NPC_BLACKWING_LEGIONAIRE, NPC_BLACKWING_MAGE, NPC_BLUE_DRAKONID, NPC_BRONZE_DRAKONID, NPC_CHROMATIC_DRAKONID, NPC_GREEN_DRAKONID, NPC_NEFARIAN, NPC_RAZORGORE, NPC_RED_DRAKONID, NPC_VICTOR_NEFARIUS, InstanceScript::OnCreatureCreate(), razorgoreGUID, and Unit::ToTempSummon().

◆ OnGameObjectCreate()

void instance_blackwing_lair::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

143 {
145
146 switch (go->GetEntry())
147 {
150 go->SetPhaseMask(2, true);
151 else
152 EggList.push_back(go->GetGUID());
153 break;
154 default:
155 break;
156 }
157 }
@ GO_BLACK_DRAGON_EGG
Definition blackwing_lair.h:88
@ DATA_FIREMAW
Definition blackwing_lair.h:34
void SetPhaseMask(uint32 newPhaseMask, bool update) override
Definition GameObject.cpp:2611
void OnGameObjectCreate(GameObject *go) override
Definition InstanceScript.cpp:85
GuidList EggList
Definition instance_blackwing_lair.cpp:414

References DATA_FIREMAW, DONE, EggList, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_BLACK_DRAGON_EGG, InstanceScript::OnGameObjectCreate(), and GameObject::SetPhaseMask().

◆ OnGameObjectRemove()

void instance_blackwing_lair::OnGameObjectRemove ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

160 {
162
163 if (go->GetEntry() == GO_BLACK_DRAGON_EGG)
164 EggList.remove(go->GetGUID());
165 }
void OnGameObjectRemove(GameObject *go) override
Definition InstanceScript.cpp:92

References EggList, Object::GetEntry(), Object::GetGUID(), GO_BLACK_DRAGON_EGG, and InstanceScript::OnGameObjectRemove().

◆ OnUnitDeath()

void instance_blackwing_lair::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

308 {
309 switch (unit->GetEntry())
310 {
312 --addsCount[0];
315 break;
318 --addsCount[1];
321 break;
322 default:
323 break;
324 }
325 }
@ EVENT_RAZOR_SPAWN
Definition blackwing_lair.h:103
bool HasTimeUntilEvent(EventId eventId) const
Definition EventMap.cpp:209
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Definition EventMap.cpp:48
EventMap _events
Definition instance_blackwing_lair.cpp:423

References _events, addsCount, DONE, EggEvent, EVENT_RAZOR_SPAWN, Object::GetEntry(), EventMap::HasTimeUntilEvent(), NPC_BLACKWING_DRAGON, NPC_BLACKWING_LEGIONAIRE, NPC_BLACKWING_MAGE, and EventMap::ScheduleEvent().

◆ ReadSaveDataMore()

void instance_blackwing_lair::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

396 {
397 data >> NefarianLeftTunnel;
398 data >> NefarianRightTunnel;
399 }

References NefarianLeftTunnel, and NefarianRightTunnel.

◆ SetBossState()

bool instance_blackwing_lair::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual
Todo:
: after dynamic spawns

Reimplemented from InstanceScript.

200 {
201 if (!InstanceScript::SetBossState(type, state))
202 return false;
203
204 switch (type)
205 {
207 if (state == DONE)
208 {
209 for (ObjectGuid const& guid : EggList)
210 {
211 // Eggs should be destroyed instead
213 if (GameObject* egg = instance->GetGameObject(guid))
214 egg->SetPhaseMask(2, true);
215 }
216 }
217 break;
218 case DATA_NEFARIAN:
219 switch (state)
220 {
221 case FAIL:
223 [[fallthrough]];
224 case NOT_STARTED:
225 if (Creature* nefarian = instance->GetCreature(nefarianGUID))
226 nefarian->DespawnOrUnsummon();
227 break;
228 default:
229 break;
230 }
231 break;
232 }
233 return true;
234 }
@ FAIL
Definition InstanceScript.h:60
@ NOT_STARTED
Definition InstanceScript.h:58
@ EVENT_RESPAWN_NEFARIUS
Definition blackwing_lair.h:105
@ DATA_NEFARIAN
Definition blackwing_lair.h:38
Definition GameObject.h:120
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:390
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2341
Definition ObjectGuid.h:118

References _events, DATA_NEFARIAN, DATA_RAZORGORE_THE_UNTAMED, DONE, EggList, EVENT_RESPAWN_NEFARIUS, FAIL, Map::GetCreature(), Map::GetGameObject(), InstanceScript::instance, nefarianGUID, NOT_STARTED, EventMap::ScheduleEvent(), and InstanceScript::SetBossState().

◆ SetData()

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

Reimplemented from ZoneScript.

237 {
238 if (type == DATA_EGG_EVENT)
239 {
240 switch (data)
241 {
242 case DONE:
243 EggEvent = data;
244 break;
245 case FAIL:
247 break;
248 case IN_PROGRESS:
250 EggEvent = data;
251 EggCount = 0;
252 addsCount.fill(0);
253 break;
254 case NOT_STARTED:
256 EggEvent = data;
257 EggCount = 0;
258 addsCount.fill(0);
259
260 for (ObjectGuid const& guid : EggList)
261 DoRespawnGameObject(guid, 0);
262
264
265 for (ObjectGuid const& guid : guardList)
266 DoRespawnCreature(guid);
267
268 break;
269 case SPECIAL:
270 if (EggEvent == NOT_STARTED)
272 if (++EggCount >= EggList.size())
273 {
275 {
277 razor->RemoveAurasDueToSpell(19832); // MindControl
279 }
282 }
283 break;
284 }
285 }
286
287 if (type == DATA_NEFARIAN_LEFT_TUNNEL)
288 NefarianLeftTunnel = data;
289
290 if (type == DATA_NEFARIAN_RIGHT_TUNNEL)
291 NefarianRightTunnel = data;
292 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ SPECIAL
Definition InstanceScript.h:62
@ EVENT_RAZOR_PHASE_TWO
Definition blackwing_lair.h:104
@ DATA_GRETHOK
Definition blackwing_lair.h:42
void CancelEvent(EventId eventId)
Definition EventMap.cpp:160
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:688
void DoRespawnCreature(ObjectGuid guid, bool force=false)
Definition InstanceScript.cpp:610
void DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn=MINUTE)
Definition InstanceScript.cpp:578
void SetData(uint32 type, uint32 data) override
Definition instance_blackwing_lair.cpp:236

References _events, addsCount, EventMap::CancelEvent(), DATA_EGG_EVENT, DATA_GRETHOK, DATA_NEFARIAN_LEFT_TUNNEL, DATA_NEFARIAN_RIGHT_TUNNEL, DONE, InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), InstanceScript::DoRespawnCreature(), InstanceScript::DoRespawnGameObject(), EggCount, EggEvent, EggList, EVENT_RAZOR_PHASE_TWO, EVENT_RAZOR_SPAWN, FAIL, Map::GetCreature(), guardList, IN_PROGRESS, InstanceScript::instance, NefarianLeftTunnel, NefarianRightTunnel, NOT_STARTED, razorgoreGUID, EventMap::ScheduleEvent(), SetData(), and SPECIAL.

Referenced by SetData().

◆ Update()

void instance_blackwing_lair::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

328 {
329 if (_events.Empty())
330 return;
331
332 _events.Update(diff);
333
334 while (uint32 eventId = _events.ExecuteEvent())
335 {
336 switch (eventId)
337 {
339 if (EggEvent == IN_PROGRESS)
340 {
341 bool spawnMoreAdds = true;
342 for (uint8 i = urand(2, 5); i > 0; --i)
343 {
344 uint32 mobEntry = Entry[urand(0, 2)];
345 uint32 dragonkinsCount = addsCount[0];
346 uint32 orcsCount = addsCount[1];
347
348 // If more than 12 dragonkins...
349 if (dragonkinsCount >= 12)
350 {
351 //... and more than 40 orcs - stop spawning more adds.
352 if (orcsCount >= 40)
353 {
354 spawnMoreAdds = false;
355 break;
356 }
357 //... - stop spawning them.
358 else if (mobEntry == NPC_BLACKWING_DRAGON)
359 {
360 continue;
361 }
362 }
363 // If more than 40 orcs - stop spawning them.
364 else if (orcsCount >= 40 && mobEntry != NPC_BLACKWING_DRAGON)
365 {
366 continue;
367 }
368
369 if (Creature* summon = instance->SummonCreature(mobEntry, SummonPosition[urand(0, 7)]))
370 summon->AI()->DoZoneInCombat();
371 }
372
373 if (spawnMoreAdds)
375 }
376 break;
380 razor->AI()->DoAction(ACTION_PHASE_TWO);
381 break;
384 {
385 nefarius->SetPhaseMask(1, true);
386 nefarius->setActive(true);
387 nefarius->Respawn();
388 nefarius->GetMotionMaster()->MoveTargetedHome();
389 }
390 break;
391 }
392 }
393 }
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ ACTION_PHASE_TWO
Definition blackwing_lair.h:111
void Update(uint32 time)
Definition EventMap.h:67
bool Empty() const
Definition EventMap.h:95
EventId ExecuteEvent()
Definition EventMap.cpp:86
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
Position const SummonPosition[8]
Definition instance_blackwing_lair.cpp:61
uint32 const Entry[3]
Definition instance_blackwing_lair.cpp:73

References _events, ACTION_PHASE_TWO, addsCount, EventMap::CancelEvent(), DATA_LORD_VICTOR_NEFARIUS, EggEvent, EventMap::Empty(), Entry, EVENT_RAZOR_PHASE_TWO, EVENT_RAZOR_SPAWN, EVENT_RESPAWN_NEFARIUS, EventMap::ExecuteEvent(), Map::GetCreature(), InstanceScript::GetCreature(), IN_PROGRESS, InstanceScript::instance, NPC_BLACKWING_DRAGON, razorgoreGUID, EventMap::ScheduleEvent(), Map::SummonCreature(), SummonPosition, EventMap::Update(), and urand().

◆ WriteSaveDataMore()

void instance_blackwing_lair::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

402 {
403 data << NefarianLeftTunnel << ' ' << NefarianRightTunnel;
404 }

References NefarianLeftTunnel, and NefarianRightTunnel.

Member Data Documentation

◆ _events

EventMap instance_blackwing_lair::_events
protected

◆ addsCount

std::array<uint32, 2> instance_blackwing_lair::addsCount
protected

◆ EggCount

uint8 instance_blackwing_lair::EggCount
protected

Referenced by Initialize(), and SetData().

◆ EggEvent

uint32 instance_blackwing_lair::EggEvent
protected

◆ EggList

GuidList instance_blackwing_lair::EggList
protected

◆ guardList

GuidList instance_blackwing_lair::guardList
protected

Referenced by OnCreatureCreate(), and SetData().

◆ nefarianDoorGUID

ObjectGuid instance_blackwing_lair::nefarianDoorGUID
protected

◆ nefarianGUID

ObjectGuid instance_blackwing_lair::nefarianGUID
protected

Referenced by OnCreatureCreate(), and SetBossState().

◆ NefarianLeftTunnel

uint32 instance_blackwing_lair::NefarianLeftTunnel
protected

◆ NefarianRightTunnel

uint32 instance_blackwing_lair::NefarianRightTunnel
protected

◆ razorgoreGUID

ObjectGuid instance_blackwing_lair::razorgoreGUID
protected

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