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

Public Member Functions

 instance_shadowfang_keep_InstanceMapScript (Map *map)
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void DoSpeech ()
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
std::string GetSaveData () override
 
void Load (const char *in) override
 
void Update (uint32 uiDiff) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
virtual ~InstanceScript ()
 
virtual void Initialize ()
 
void SaveToDB ()
 
virtual bool IsEncounterInProgress () const
 
virtual void OnCreatureRemove (Creature *creature) override
 
virtual void OnGameObjectRemove (GameObject *go) 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 ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary constGetBossBoundary (uint32 id) const
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=NULL, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
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 OnUnitDeath (Unit *)
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Public Attributes

uint32 m_auiEncounter [MAX_ENCOUNTER]
 
std::string str_data
 
ObjectGuid uiAshGUID
 
ObjectGuid uiAdaGUID
 
ObjectGuid uiArchmageArugalGUID
 
ObjectGuid DoorCourtyardGUID
 
ObjectGuid DoorSorcererGUID
 
ObjectGuid DoorArugalGUID
 
uint8 uiPhase
 
uint16 uiTimer
 
- Public Attributes inherited from InstanceScript
Mapinstance
 

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 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_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::instance_shadowfang_keep_InstanceMapScript ( Map map)
inline
81  : InstanceScript(map)
82  {
84  memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
85 
86  uiPhase = 0;
87  uiTimer = 0;
88  }
uint8 uiPhase
Definition: instance_shadowfang_keep.cpp:101
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:98
#define DataHeader
Definition: baradin_hold.h:25
InstanceScript(Map *map)
Definition: InstanceScript.h:144
uint16 uiTimer
Definition: instance_shadowfang_keep.cpp:102
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_shadowfang_keep.cpp:90

+ Here is the call graph for this function:

Member Function Documentation

void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::DoSpeech ( )
inline
137  {
140 
141  if (pAda && pAda->IsAlive() && pAsh && pAsh->IsAlive())
142  {
143  pAda->AI()->Talk(SAY_BOSS_DIE_AD);
144  pAsh->AI()->Talk(SAY_BOSS_DIE_AS);
145  }
146  }
Definition: instance_shadowfang_keep.cpp:37
Definition: Creature.h:467
Definition: instance_shadowfang_keep.cpp:36
bool IsAlive() const
Definition: Unit.h:1692
ObjectGuid uiAdaGUID
Definition: instance_shadowfang_keep.cpp:94
CreatureAI * AI() const
Definition: Creature.h:525
ObjectGuid uiAshGUID
Definition: instance_shadowfang_keep.cpp:93
Map * instance
Definition: InstanceScript.h:148
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3535

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32 instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

197  {
198  switch (type)
199  {
200  case TYPE_FREE_NPC:
201  return m_auiEncounter[0];
202  case TYPE_RETHILGORE:
203  return m_auiEncounter[1];
204  case TYPE_FENRUS:
205  return m_auiEncounter[2];
206  case TYPE_NANDOS:
207  return m_auiEncounter[3];
208  }
209  return 0;
210  }
Definition: shadowfang_keep.h:28
Definition: shadowfang_keep.h:26
Definition: shadowfang_keep.h:29
Definition: shadowfang_keep.h:27
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_shadowfang_keep.cpp:90

+ Here is the caller graph for this function:

std::string instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::GetSaveData ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

213  {
214  return str_data;
215  }
std::string str_data
Definition: instance_shadowfang_keep.cpp:91
void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::Load ( const char *  in)
inlineoverridevirtual

Reimplemented from InstanceScript.

218  {
219  if (!in)
220  {
222  return;
223  }
224 
225  OUT_LOAD_INST_DATA(in);
226 
227  std::istringstream loadStream(in);
228  loadStream >> m_auiEncounter[0] >> m_auiEncounter[1] >> m_auiEncounter[2] >> m_auiEncounter[3];
229 
230  for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
231  {
232  if (m_auiEncounter[i] == IN_PROGRESS)
233  m_auiEncounter[i] = NOT_STARTED;
234  }
235 
237  }
#define OUT_LOAD_INST_DATA_FAIL
Definition: InstanceScript.h:33
#define MAX_ENCOUNTER
Definition: instance_shadowfang_keep.cpp:32
#define OUT_LOAD_INST_DATA_COMPLETE
Definition: InstanceScript.h:32
Definition: InstanceScript.h:59
Definition: InstanceScript.h:58
uint8_t uint8
Definition: Define.h:152
#define OUT_LOAD_INST_DATA(a)
Definition: InstanceScript.h:31
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_shadowfang_keep.cpp:90
void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

105  {
106  switch (creature->GetEntry())
107  {
108  case NPC_ASH: uiAshGUID = creature->GetGUID(); break;
109  case NPC_ADA: uiAdaGUID = creature->GetGUID(); break;
110  case NPC_ARCHMAGE_ARUGAL: uiArchmageArugalGUID = creature->GetGUID(); break;
111  }
112  }
Definition: instance_shadowfang_keep.cpp:44
Definition: instance_shadowfang_keep.cpp:45
ObjectGuid uiArchmageArugalGUID
Definition: instance_shadowfang_keep.cpp:95
ObjectGuid uiAdaGUID
Definition: instance_shadowfang_keep.cpp:94
ObjectGuid uiAshGUID
Definition: instance_shadowfang_keep.cpp:93
ObjectGuid const & GetGUID() const
Definition: Object.h:105
Definition: instance_shadowfang_keep.cpp:43
uint32 GetEntry() const
Definition: Object.h:107

+ Here is the call graph for this function:

void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

115  {
116  switch (go->GetEntry())
117  {
118  case GO_COURTYARD_DOOR:
119  DoorCourtyardGUID = go->GetGUID();
120  if (m_auiEncounter[0] == DONE)
122  break;
123  case GO_SORCERER_DOOR:
124  DoorSorcererGUID = go->GetGUID();
125  if (m_auiEncounter[2] == DONE)
127  break;
128  case GO_ARUGAL_DOOR:
129  DoorArugalGUID = go->GetGUID();
130  if (m_auiEncounter[3] == DONE)
132  break;
133  }
134  }
static ObjectGuid const Empty
Definition: ObjectGuid.h:196
ObjectGuid DoorCourtyardGUID
Definition: instance_shadowfang_keep.cpp:97
Definition: instance_shadowfang_keep.cpp:52
Definition: instance_shadowfang_keep.cpp:53
Definition: inflate.h:49
ObjectGuid DoorArugalGUID
Definition: instance_shadowfang_keep.cpp:99
Definition: instance_shadowfang_keep.cpp:51
ObjectGuid DoorSorcererGUID
Definition: instance_shadowfang_keep.cpp:98
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:397
ObjectGuid const & GetGUID() const
Definition: Object.h:105
uint32 GetEntry() const
Definition: Object.h:107
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_shadowfang_keep.cpp:90

+ Here is the call graph for this function:

void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

149  {
150  switch (type)
151  {
152  case TYPE_FREE_NPC:
153  if (data == DONE)
155  m_auiEncounter[0] = data;
156  break;
157  case TYPE_RETHILGORE:
158  if (data == DONE)
159  DoSpeech();
160  m_auiEncounter[1] = data;
161  break;
162  case TYPE_FENRUS:
163  switch (data)
164  {
165  case DONE:
166  uiTimer = 1000;
167  uiPhase = 1;
168  break;
169  case 7:
171  break;
172  }
173  m_auiEncounter[2] = data;
174  break;
175  case TYPE_NANDOS:
176  if (data == DONE)
178  m_auiEncounter[3] = data;
179  break;
180  }
181 
182  if (data == DONE)
183  {
185 
186  std::ostringstream saveStream;
187  saveStream << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << m_auiEncounter[3];
188 
189  str_data = saveStream.str();
190 
191  SaveToDB();
193  }
194  }
std::string str_data
Definition: instance_shadowfang_keep.cpp:91
void DoSpeech()
Definition: instance_shadowfang_keep.cpp:136
ObjectGuid DoorCourtyardGUID
Definition: instance_shadowfang_keep.cpp:97
uint8 uiPhase
Definition: instance_shadowfang_keep.cpp:101
#define OUT_SAVE_INST_DATA
Definition: InstanceScript.h:29
Definition: inflate.h:49
Definition: shadowfang_keep.h:28
Definition: shadowfang_keep.h:26
Definition: shadowfang_keep.h:29
ObjectGuid DoorArugalGUID
Definition: instance_shadowfang_keep.cpp:99
void DoUseDoorOrButton(ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
Definition: InstanceScript.cpp:407
void SaveToDB()
Definition: InstanceScript.cpp:39
ObjectGuid DoorSorcererGUID
Definition: instance_shadowfang_keep.cpp:98
Definition: shadowfang_keep.h:27
uint16 uiTimer
Definition: instance_shadowfang_keep.cpp:102
#define OUT_SAVE_INST_DATA_COMPLETE
Definition: InstanceScript.h:30
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_shadowfang_keep.cpp:90

+ Here is the call graph for this function:

void instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::Update ( uint32  uiDiff)
inlineoverridevirtual

Reimplemented from InstanceScript.

240  {
241  if (GetData(TYPE_FENRUS) != DONE)
242  return;
243 
245 
246  if (!pArchmage || !pArchmage->IsAlive())
247  return;
248 
249  if (uiPhase)
250  {
251  if (uiTimer <= uiDiff)
252  {
253  switch (uiPhase)
254  {
255  case 1:
256  {
257  Creature* summon = pArchmage->SummonCreature(pArchmage->GetEntry(), SpawnLocation[4], TEMPSUMMON_TIMED_DESPAWN, 10000);
260  summon->CastSpell(summon, SPELL_ASHCROMBE_TELEPORT, true);
261  summon->AI()->Talk(SAY_ARCHMAGE);
262  uiTimer = 2000;
263  uiPhase = 2;
264  break;
265  }
266  case 2:
267  {
272  uiPhase = 0;
273  break;
274  }
275 
276  }
277  } else uiTimer -= uiDiff;
278  }
279  }
uint8 uiPhase
Definition: instance_shadowfang_keep.cpp:101
Definition: Unit.h:1130
Definition: inflate.h:49
Definition: instance_shadowfang_keep.cpp:46
Definition: Creature.h:467
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
Definition: Unit.h:681
Definition: shadowfang_keep.h:28
ObjectGuid uiArchmageArugalGUID
Definition: instance_shadowfang_keep.cpp:95
bool IsAlive() const
Definition: Unit.h:1692
Definition: Object.h:56
CreatureAI * AI() const
Definition: Creature.h:525
Map * instance
Definition: InstanceScript.h:148
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
uint16 uiTimer
Definition: instance_shadowfang_keep.cpp:102
Definition: instance_shadowfang_keep.cpp:58
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3535
Definition: UpdateFields.h:109
const Position SpawnLocation[]
Definition: instance_shadowfang_keep.cpp:61
Definition: Object.h:59
Definition: instance_shadowfang_keep.cpp:38
uint32 GetData(uint32 type) const override
Definition: instance_shadowfang_keep.cpp:196
uint32 GetEntry() const
Definition: Object.h:107
void SetReactState(ReactStates st)
Definition: Creature.h:502
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

Member Data Documentation

ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::DoorArugalGUID
ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::DoorCourtyardGUID
ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::DoorSorcererGUID
uint32 instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::m_auiEncounter[MAX_ENCOUNTER]
std::string instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::str_data
ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::uiAdaGUID
ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::uiArchmageArugalGUID
ObjectGuid instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::uiAshGUID
uint8 instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::uiPhase
uint16 instance_shadowfang_keep::instance_shadowfang_keep_InstanceMapScript::uiTimer

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