TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript Struct Reference

Public Member Functions

 instance_blackwing_lair_InstanceMapScript (Map *map)
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
bool CheckRequiredBosses (uint32 bossId, Player const *player) const override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SetData (uint32 type, uint32 data) override
 
void OnUnitDeath (Unit *unit) override
 
void Update (uint32 diff) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
virtual ~InstanceScript ()
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual bool IsEncounterInProgress () const
 
virtual void OnCreatureRemove (Creature *creature) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
virtual ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoCloseDoorOrButton (ObjectGuid guid)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=NULL)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
bool ServerAllowsTwoSideGroups ()
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary constGetBossBoundary (uint32 id) const
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=NULL, uint32=0)
 
void UpdateEncounterState (EncounterCreditType type, uint32 creditEntry, Unit *source)
 
void SetCompletedEncountersMask (uint32 newMask)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=NULL, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &)
 
void UpdatePhasing ()
 
uint32 GetEncounterCount () 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 SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Protected Attributes

EventMap _events
 
uint8 EggCount
 
uint32 EggEvent
 
GuidList EggList
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Public Attributes inherited from InstanceScript
Mapinstance
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (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 AddObject (Creature *obj, bool add)
 
void AddObject (GameObject *obj, bool add)
 
void AddObject (WorldObject *obj, uint32 type, bool add)
 
virtual void AddDoor (GameObject *door, bool add)
 
void AddMinion (Creature *minion, bool add)
 
virtual void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
BossInfoGetBossInfo (uint32 id)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 
bool _SkipCheckRequiredBosses (Player const *player=nullptr) const
 

Constructor & Destructor Documentation

instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::instance_blackwing_lair_InstanceMapScript ( Map map)
inline
70  : InstanceScript(map)
71  {
75  LoadObjectData(creatureData, nullptr);
76 
77  // Razorgore
78  EggCount = 0;
79  EggEvent = 0;
80  }
uint32 const EncounterCount
Definition: baradin_hold.h:28
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:258
uint32 EggEvent
Definition: instance_blackwing_lair.cpp:269
ObjectData const creatureData[]
Definition: instance_blackwing_lair.cpp:35
DoorData const doorData[]
Definition: instance_blackwing_lair.cpp:23
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:98
#define DataHeader
Definition: baradin_hold.h:25
uint8 EggCount
Definition: instance_blackwing_lair.cpp:268
InstanceScript(Map *map)
Definition: InstanceScript.h:144
void LoadDoorData(DoorData const *data)
Definition: InstanceScript.cpp:124
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:136

+ Here is the call graph for this function:

Member Function Documentation

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

Reimplemented from InstanceScript.

122  {
123  if (_SkipCheckRequiredBosses(player))
124  return true;
125 
126  switch (bossId)
127  {
130  return false;
131  break;
132  case DATA_FIREMAW:
133  case DATA_EBONROC:
134  case DATA_FLAMEGOR:
136  return false;
137  break;
138  case DATA_CHROMAGGUS:
142  return false;
143  break;
144  default:
145  break;
146  }
147 
148  return true;
149  }
Definition: blackwing_lair.h:32
Definition: blackwing_lair.h:34
Definition: inflate.h:49
Definition: blackwing_lair.h:31
Definition: blackwing_lair.h:30
Definition: blackwing_lair.h:33
bool _SkipCheckRequiredBosses(Player const *player=nullptr) const
Definition: InstanceScript.cpp:313
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227
Definition: blackwing_lair.h:35

+ Here is the call graph for this function:

void instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

83  {
85 
86  switch (creature->GetEntry())
87  {
93  razor->AI()->JustSummoned(creature);
94  break;
95  default:
96  break;
97  }
98  }
Definition: blackwing_lair.h:45
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: Creature.h:467
virtual void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:61
Definition: blackwing_lair.h:48
Definition: blackwing_lair.h:29
Definition: blackwing_lair.h:46
uint32 GetEntry() const
Definition: Object.h:107
Definition: blackwing_lair.h:47

+ Here is the call graph for this function:

void instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

101  {
103 
104  if (go->GetEntry() == GO_BLACK_DRAGON_EGG)
105  {
107  go->SetPhaseMask(2, true);
108  else
109  EggList.push_back(go->GetGUID());
110  }
111  }
virtual void SetPhaseMask(uint32 newPhaseMask, bool update)
Definition: Object.cpp:2795
Definition: blackwing_lair.h:32
Definition: inflate.h:49
Definition: blackwing_lair.h:61
virtual void OnGameObjectCreate(GameObject *go) override
Definition: InstanceScript.cpp:73
ObjectGuid const & GetGUID() const
Definition: Object.h:105
uint32 GetEntry() const
Definition: Object.h:107
GuidList EggList
Definition: instance_blackwing_lair.cpp:270
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227

+ Here is the call graph for this function:

void instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::OnGameObjectRemove ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

114  {
116 
117  if (go->GetEntry() == GO_BLACK_DRAGON_EGG)
118  EggList.remove(go->GetGUID());
119  }
virtual void OnGameObjectRemove(GameObject *go) override
Definition: InstanceScript.cpp:79
Definition: blackwing_lair.h:61
ObjectGuid const & GetGUID() const
Definition: Object.h:105
uint32 GetEntry() const
Definition: Object.h:107
GuidList EggList
Definition: instance_blackwing_lair.cpp:270

+ Here is the call graph for this function:

void instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

HACK, needed because of buggy CreatureAI after charm

Reimplemented from ZoneScript.

222  {
226  }
Definition: inflate.h:49
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_blackwing_lair.cpp:151
Definition: blackwing_lair.h:44
Definition: blackwing_lair.h:29
uint32 GetEntry() const
Definition: Object.h:107
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227

+ Here is the call graph for this function:

bool instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

152  {
153  if (!InstanceScript::SetBossState(type, state))
154  return false;
155 
156  switch (type)
157  {
159  if (state == DONE)
160  {
161  for (GuidList::const_iterator itr = EggList.begin(); itr != EggList.end(); ++itr)
162  if (GameObject* egg = instance->GetGameObject(*itr))
163  egg->SetLootState(GO_JUST_DEACTIVATED);
164  }
166  break;
167  case DATA_NEFARIAN:
168  switch (state)
169  {
170  case NOT_STARTED:
171  if (Creature* nefarian = GetCreature(DATA_NEFARIAN))
172  nefarian->DespawnOrUnsummon();
173  break;
174  case FAIL:
177  break;
178  default:
179  break;
180  }
181  break;
182  }
183  return true;
184  }
Definition: GameObject.h:871
void SetData(uint32 type, uint32 data) override
Definition: instance_blackwing_lair.cpp:186
Definition: blackwing_lair.h:80
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
EventMap _events
Definition: instance_blackwing_lair.cpp:265
Definition: inflate.h:49
Definition: Creature.h:467
Definition: InstanceScript.h:60
Definition: Common.h:97
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_blackwing_lair.cpp:151
Definition: InstanceScript.h:58
Map * instance
Definition: InstanceScript.h:148
Definition: GameObject.h:880
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
Definition: blackwing_lair.h:29
Definition: Common.h:103
GuidList EggList
Definition: instance_blackwing_lair.cpp:270
GameObject * GetGameObject(ObjectGuid const &guid)
Definition: Map.cpp:3545
Definition: blackwing_lair.h:73
Definition: blackwing_lair.h:36

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from ZoneScript.

187  {
188  if (type == DATA_EGG_EVENT)
189  {
190  switch (data)
191  {
192  case IN_PROGRESS:
194  EggEvent = data;
195  EggCount = 0;
196  break;
197  case NOT_STARTED:
199  EggEvent = data;
200  EggCount = 0;
201  break;
202  case SPECIAL:
203  if (++EggCount == 15)
204  {
206  {
208  razor->RemoveAurasDueToSpell(42013); // MindControl
210  }
213  }
214  if (EggEvent == NOT_STARTED)
216  break;
217  }
218  }
219  }
Definition: blackwing_lair.h:71
void SetData(uint32 type, uint32 data) override
Definition: instance_blackwing_lair.cpp:186
Definition: blackwing_lair.h:80
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
EventMap _events
Definition: instance_blackwing_lair.cpp:265
Definition: blackwing_lair.h:72
Definition: inflate.h:49
void CancelEvent(uint32 eventId)
Definition: EventMap.cpp:89
Definition: Creature.h:467
uint32 EggEvent
Definition: instance_blackwing_lair.cpp:269
uint8 EggCount
Definition: instance_blackwing_lair.cpp:268
Definition: InstanceScript.h:59
Definition: InstanceScript.h:58
Definition: InstanceScript.h:62
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: blackwing_lair.h:29
Definition: Common.h:103
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:540

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

229  {
230  if (_events.Empty())
231  return;
232 
233  _events.Update(diff);
234 
235  while (uint32 eventId = _events.ExecuteEvent())
236  {
237  switch (eventId)
238  {
239  case EVENT_RAZOR_SPAWN:
240  for (uint8 i = urand(2, 5); i > 0 ; --i)
241  if (Creature* summon = instance->SummonCreature(Entry[urand(0, 4)], SummonPosition[urand(0, 7)]))
242  summon->SetInCombatWithZone();
244  break;
248  razor->AI()->DoAction(ACTION_PHASE_TWO);
249  break;
252  {
253  nefarius->SetPhaseMask(1, true);
254  nefarius->setActive(true);
255  nefarius->Respawn();
256  nefarius->GetMotionMaster()->MoveTargetedHome();
257  }
258  break;
259  }
260  }
261  }
Definition: blackwing_lair.h:71
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=NULL, uint32 duration=0, Unit *summoner=NULL, uint32 spellId=0, uint32 vehId=0)
Definition: Object.cpp:2219
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
EventMap _events
Definition: instance_blackwing_lair.cpp:265
Definition: blackwing_lair.h:79
Definition: blackwing_lair.h:72
void CancelEvent(uint32 eventId)
Definition: EventMap.cpp:89
Definition: blackwing_lair.h:39
Definition: Creature.h:467
bool Empty() const
Definition: EventMap.h:81
Entry
Definition: boss_headless_horseman.cpp:50
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
uint32_t uint32
Definition: Define.h:150
Map * instance
Definition: InstanceScript.h:148
Position const SummonPosition[8]
Definition: instance_blackwing_lair.cpp:49
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
void Update(uint32 time)
Definition: EventMap.h:54
Definition: blackwing_lair.h:29
Definition: Common.h:103
uint32 ExecuteEvent()
Definition: EventMap.cpp:46
uint8_t uint8
Definition: Define.h:152
Definition: blackwing_lair.h:73

+ Here is the call graph for this function:

Member Data Documentation

EventMap instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::_events
protected
uint8 instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::EggCount
protected
uint32 instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::EggEvent
protected
GuidList instance_blackwing_lair::instance_blackwing_lair_InstanceMapScript::EggList
protected

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