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

Public Member Functions

 instance_scarlet_monastery_InstanceMapScript (Map *map)
 
void OnGameObjectCreate (GameObject *go) override
 
void OnCreatureCreate (Creature *creature) override
 
void SetData (uint32 type, uint32 data) override
 
ObjectGuid GetGuidData (uint32 type) const override
 
uint32 GetData (uint32 type) const override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void 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)
 
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 ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
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)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

ObjectGuid _doorHighInquisitorGUID
 
ObjectGuid _doorChapelGUID
 
ObjectGuid _mograineGUID
 
ObjectGuid _whitemaneGUID
 
uint32 _encounter {}
 
uint32 _ashencounter {}
 
GuidSet _ashbringerNpcGUID
 

Additional Inherited Members

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

Detailed Description

Constructor & Destructor Documentation

◆ instance_scarlet_monastery_InstanceMapScript()

instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::instance_scarlet_monastery_InstanceMapScript ( Map map)
inline
83 : InstanceScript(map)
84 {
86 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153

References DataHeader, and InstanceScript::SetHeaders().

Member Function Documentation

◆ GetData()

uint32 instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

246 {
247 switch (type)
248 {
250 return _encounter;
251 break;
253 return _encounter;
254 break;
256 return _ashencounter;
257 break;
258 default:
259 return 0;
260 break;
261 }
262 }
@ TYPE_ASHBRINGER_EVENT
Definition instance_scarlet_monastery.cpp:56
@ DATA_HORSEMAN_EVENT
Definition instance_scarlet_monastery.cpp:61
@ TYPE_MOGRAINE_AND_WHITE_EVENT
Definition instance_scarlet_monastery.cpp:55
uint32 _encounter
Definition instance_scarlet_monastery.cpp:268
uint32 _ashencounter
Definition instance_scarlet_monastery.cpp:269

References _ashencounter, _encounter, DATA_HORSEMAN_EVENT, TYPE_ASHBRINGER_EVENT, and TYPE_MOGRAINE_AND_WHITE_EVENT.

◆ GetGuidData()

ObjectGuid instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::GetGuidData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

228 {
229 switch (type)
230 {
231 case DATA_MOGRAINE:
232 return _mograineGUID;
233 case DATA_WHITEMANE:
234 return _whitemaneGUID;
237 case DATA_DOOR_CHAPEL:
238 return _doorChapelGUID;
239 default:
240 return ObjectGuid::Empty;
241 break;
242 }
243 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ DATA_DOOR_CHAPEL
Definition instance_scarlet_monastery.cpp:64
@ DATA_MOGRAINE
Definition instance_scarlet_monastery.cpp:58
@ DATA_WHITEMANE
Definition instance_scarlet_monastery.cpp:59
@ DATA_DOOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:60
ObjectGuid _doorHighInquisitorGUID
Definition instance_scarlet_monastery.cpp:264
ObjectGuid _doorChapelGUID
Definition instance_scarlet_monastery.cpp:265
ObjectGuid _mograineGUID
Definition instance_scarlet_monastery.cpp:266
ObjectGuid _whitemaneGUID
Definition instance_scarlet_monastery.cpp:267

References _doorChapelGUID, _doorHighInquisitorGUID, _mograineGUID, _whitemaneGUID, DATA_DOOR_CHAPEL, DATA_DOOR_WHITEMANE, DATA_MOGRAINE, DATA_WHITEMANE, and ObjectGuid::Empty.

◆ OnCreatureCreate()

void instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

105 {
106 switch (creature->GetEntry())
107 {
114 case NPC_SCARLET_MONK:
117 case NPC_FAIRBANKS:
118 _ashbringerNpcGUID.emplace(creature->GetGUID());
119 break;
121 _mograineGUID = creature->GetGUID();
122 _ashbringerNpcGUID.emplace(creature->GetGUID());
123 break;
125 _whitemaneGUID = creature->GetGUID();
126 break;
127 default:
128 break;
129 }
130 }
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
@ NPC_INQUISITOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:25
@ NPC_SCARLET_ABBOT
Definition instance_scarlet_monastery.cpp:33
@ NPC_SCARLET_SORCERER
Definition instance_scarlet_monastery.cpp:26
@ NPC_SCARLET_MYRIDON
Definition instance_scarlet_monastery.cpp:27
@ NPC_SCARLET_MONK
Definition instance_scarlet_monastery.cpp:34
@ NPC_SCARLET_WIZARD
Definition instance_scarlet_monastery.cpp:30
@ NPC_COMMANDER_MOGRAINE
Definition instance_scarlet_monastery.cpp:24
@ NPC_SCARLET_CHAPLAIN
Definition instance_scarlet_monastery.cpp:29
@ NPC_SCARLET_CENTURION
Definition instance_scarlet_monastery.cpp:31
@ NPC_FAIRBANKS
Definition instance_scarlet_monastery.cpp:35
@ NPC_SCARLET_CHAMPION
Definition instance_scarlet_monastery.cpp:32
@ NPC_SCARLET_DEFENDER
Definition instance_scarlet_monastery.cpp:28
GuidSet _ashbringerNpcGUID
Definition instance_scarlet_monastery.cpp:270

References _ashbringerNpcGUID, _mograineGUID, _whitemaneGUID, Object::GetEntry(), Object::GetGUID(), NPC_COMMANDER_MOGRAINE, NPC_FAIRBANKS, NPC_INQUISITOR_WHITEMANE, NPC_SCARLET_ABBOT, NPC_SCARLET_CENTURION, NPC_SCARLET_CHAMPION, NPC_SCARLET_CHAPLAIN, NPC_SCARLET_DEFENDER, NPC_SCARLET_MONK, NPC_SCARLET_MYRIDON, NPC_SCARLET_SORCERER, and NPC_SCARLET_WIZARD.

◆ OnGameObjectCreate()

void instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from ZoneScript.

89 {
90 switch (go->GetEntry())
91 {
92 // case ENTRY_PUMPKIN_SHRINE: PumpkinShrineGUID = go->GetGUID(); break;
95 break;
96 case GO_CHAPEL_DOOR:
98 break;
99 default:
100 break;
101 }
102 }
@ GO_CHAPEL_DOOR
Definition instance_scarlet_monastery.cpp:38
@ GO_HIGH_INQUISITOR_DOOR
Definition instance_scarlet_monastery.cpp:39

References _doorChapelGUID, _doorHighInquisitorGUID, Object::GetEntry(), Object::GetGUID(), GO_CHAPEL_DOOR, and GO_HIGH_INQUISITOR_DOOR.

◆ SetData()

void instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

133 {
134 switch (type)
135 {
137 if (data == IN_PROGRESS)
138 {
139 if (Creature* mograine = instance->GetCreature(_mograineGUID))
140 {
141 std::list<Creature*> creatureList;
148 for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
149 {
150 if (Creature* creature = *itr)
151 creature->AI()->AttackStart(mograine->GetVictim());
152 }
153 }
155 }
156 if (data == FAIL)
157 {
159 if (!whitemane)
160 return;
161
163 if (!mograine)
164 return;
165
166 if (whitemane->IsAlive() && mograine->IsAlive())
167 {
168 // When Whitemane emerges from the main gate, Whitemane will stand next to Mograine's corpse and will not reset Whitemane
169 if (whitemane->IsEngaged()||whitemane->IsInEvadeMode())
170 whitemane->DespawnOnEvade(20s);
171
172 mograine->DespawnOnEvade(20s);
174 return;
175 }
176
177 // Whitemane will not be able to fight Mograine again when he dies
178 if (!whitemane->IsAlive())
179 {
180 mograine->DespawnOrUnsummon();
181 _encounter = data;
182 return;
183 }
184
185 if (whitemane->IsAlive() && !mograine->IsAlive())
186 {
187 whitemane->DespawnOnEvade(20s);
188 _encounter = data;
189 return;
190 }
191
192 _encounter = data;
193 }
194 if (data == DONE)
196 break;
198 if (data == IN_PROGRESS)
199 {
200 // the ashbringer incident did not sniff out any data from whitemane
201 if (Creature* whitemane = instance->GetCreature(_whitemaneGUID))
202 if (whitemane->IsAlive() && !whitemane->IsEngaged())
203 whitemane->DespawnOrUnsummon();
204
206 {
207 go->SetGoState(GO_STATE_ACTIVE);
208 go->SetLootState(GO_ACTIVATED);
209 go->SetGameObjectFlag(GO_FLAG_IN_USE);
210 }
211
212 for (auto const& scarletCathedralNpcGuid : _ashbringerNpcGUID)
213 if (Creature* scarletNpc = instance->GetCreature(scarletCathedralNpcGuid))
214 if (scarletNpc->IsAlive() && !scarletNpc->IsEngaged())
215 scarletNpc->SetFaction(FACTION_FRIENDLY);
216 }
217 _ashencounter = data;
218 break;
220 _encounter = data;
221 break;
222 default:
223 break;
224 }
225 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:689
@ GO_ACTIVATED
Definition GameObject.h:112
@ IN_PROGRESS
Definition InstanceScript.h:59
@ FAIL
Definition InstanceScript.h:60
@ DONE
Definition InstanceScript.h:61
@ NOT_STARTED
Definition InstanceScript.h:58
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
Definition ScriptedCreature.cpp:875
@ GO_FLAG_IN_USE
Definition SharedDefines.h:1603
@ FACTION_FRIENDLY
Definition SharedDefines.h:201
Definition Creature.h:43
void DespawnOnEvade(Seconds respawnDelay=20s)
Definition Creature.cpp:2191
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition Creature.cpp:2183
bool IsInEvadeMode() const
Definition Creature.h:135
Definition GameObject.h:120
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
Map * instance
Definition InstanceScript.h:149
GameObject * GetGameObject(ObjectGuid const guid)
Definition Map.cpp:2503
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
bool IsAlive() const
Definition Unit.h:1707
bool IsEngaged() const
Definition Unit.h:890
float const CATHEDRAL_PULL_RANGE
Definition instance_scarlet_monastery.cpp:69

References _ashbringerNpcGUID, _ashencounter, _doorChapelGUID, _encounter, _mograineGUID, _whitemaneGUID, CATHEDRAL_PULL_RANGE, DATA_HORSEMAN_EVENT, Creature::DespawnOnEvade(), Creature::DespawnOrUnsummon(), DONE, FACTION_FRIENDLY, FAIL, Map::GetCreature(), GetCreatureListWithEntryInGrid(), Map::GetGameObject(), GO_ACTIVATED, GO_FLAG_IN_USE, GO_STATE_ACTIVE, IN_PROGRESS, InstanceScript::instance, Unit::IsAlive(), Unit::IsEngaged(), Creature::IsInEvadeMode(), NOT_STARTED, NPC_SCARLET_ABBOT, NPC_SCARLET_CENTURION, NPC_SCARLET_CHAMPION, NPC_SCARLET_CHAPLAIN, NPC_SCARLET_MONK, NPC_SCARLET_WIZARD, TYPE_ASHBRINGER_EVENT, and TYPE_MOGRAINE_AND_WHITE_EVENT.

Member Data Documentation

◆ _ashbringerNpcGUID

GuidSet instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_ashbringerNpcGUID
private

Referenced by OnCreatureCreate(), and SetData().

◆ _ashencounter

uint32 instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_ashencounter {}
private
269{};

Referenced by GetData(), and SetData().

◆ _doorChapelGUID

ObjectGuid instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_doorChapelGUID
private

◆ _doorHighInquisitorGUID

ObjectGuid instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_doorHighInquisitorGUID
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _encounter

uint32 instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_encounter {}
private
268{};

Referenced by GetData(), and SetData().

◆ _mograineGUID

ObjectGuid instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_mograineGUID
private

◆ _whitemaneGUID

ObjectGuid instance_scarlet_monastery::instance_scarlet_monastery_InstanceMapScript::_whitemaneGUID
private

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