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)
 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 ()
 
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
 
bool _SkipCheckRequiredBosses (Player const *player=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
74 : InstanceScript(map)
75 {
77 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:163

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.

237 {
238 switch (type)
239 {
241 return _encounter;
242 break;
244 return _encounter;
245 break;
247 return _ashencounter;
248 break;
249 default:
250 return 0;
251 break;
252 }
253 }
@ TYPE_ASHBRINGER_EVENT
Definition instance_scarlet_monastery.cpp:47
@ DATA_HORSEMAN_EVENT
Definition instance_scarlet_monastery.cpp:52
@ TYPE_MOGRAINE_AND_WHITE_EVENT
Definition instance_scarlet_monastery.cpp:46
uint32 _encounter
Definition instance_scarlet_monastery.cpp:259
uint32 _ashencounter
Definition instance_scarlet_monastery.cpp:260

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.

219 {
220 switch (type)
221 {
222 case DATA_MOGRAINE:
223 return _mograineGUID;
224 case DATA_WHITEMANE:
225 return _whitemaneGUID;
228 case DATA_DOOR_CHAPEL:
229 return _doorChapelGUID;
230 default:
231 return ObjectGuid::Empty;
232 break;
233 }
234 }
static ObjectGuid const Empty
Definition ObjectGuid.h:123
@ DATA_DOOR_CHAPEL
Definition instance_scarlet_monastery.cpp:55
@ DATA_MOGRAINE
Definition instance_scarlet_monastery.cpp:49
@ DATA_WHITEMANE
Definition instance_scarlet_monastery.cpp:50
@ DATA_DOOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:51
ObjectGuid _doorHighInquisitorGUID
Definition instance_scarlet_monastery.cpp:255
ObjectGuid _doorChapelGUID
Definition instance_scarlet_monastery.cpp:256
ObjectGuid _mograineGUID
Definition instance_scarlet_monastery.cpp:257
ObjectGuid _whitemaneGUID
Definition instance_scarlet_monastery.cpp:258

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.

96 {
97 switch (creature->GetEntry())
98 {
105 case NPC_SCARLET_MONK:
108 case NPC_FAIRBANKS:
109 _ashbringerNpcGUID.emplace(creature->GetGUID());
110 break;
112 _mograineGUID = creature->GetGUID();
113 _ashbringerNpcGUID.emplace(creature->GetGUID());
114 break;
116 _whitemaneGUID = creature->GetGUID();
117 break;
118 default:
119 break;
120 }
121 }
uint32 GetEntry() const
Definition Object.h:117
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
@ NPC_INQUISITOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:27
@ NPC_SCARLET_ABBOT
Definition instance_scarlet_monastery.cpp:35
@ NPC_SCARLET_SORCERER
Definition instance_scarlet_monastery.cpp:28
@ NPC_SCARLET_MYRIDON
Definition instance_scarlet_monastery.cpp:29
@ NPC_SCARLET_MONK
Definition instance_scarlet_monastery.cpp:36
@ NPC_SCARLET_WIZARD
Definition instance_scarlet_monastery.cpp:32
@ NPC_COMMANDER_MOGRAINE
Definition instance_scarlet_monastery.cpp:26
@ NPC_SCARLET_CHAPLAIN
Definition instance_scarlet_monastery.cpp:31
@ NPC_SCARLET_CENTURION
Definition instance_scarlet_monastery.cpp:33
@ NPC_FAIRBANKS
Definition instance_scarlet_monastery.cpp:37
@ NPC_SCARLET_CHAMPION
Definition instance_scarlet_monastery.cpp:34
@ NPC_SCARLET_DEFENDER
Definition instance_scarlet_monastery.cpp:30
GuidSet _ashbringerNpcGUID
Definition instance_scarlet_monastery.cpp:261

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.

80 {
81 switch (go->GetEntry())
82 {
83 // case ENTRY_PUMPKIN_SHRINE: PumpkinShrineGUID = go->GetGUID(); break;
86 break;
87 case GO_CHAPEL_DOOR:
89 break;
90 default:
91 break;
92 }
93 }
@ GO_CHAPEL_DOOR
Definition instance_scarlet_monastery.cpp:40
@ GO_HIGH_INQUISITOR_DOOR
Definition instance_scarlet_monastery.cpp:41

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.

124 {
125 switch (type)
126 {
128 if (data == IN_PROGRESS)
129 {
130 if (Creature* mograine = instance->GetCreature(_mograineGUID))
131 {
132 std::list<Creature*> creatureList;
139 for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
140 {
141 if (Creature* creature = *itr)
142 creature->AI()->AttackStart(mograine->GetVictim());
143 }
144 }
146 }
147 if (data == FAIL)
148 {
150 if (!whitemane)
151 return;
152
154 if (!mograine)
155 return;
156
157 if (whitemane->IsAlive() && mograine->IsAlive())
158 {
159 // When Whitemane emerges from the main gate, Whitemane will stand next to Mograine's corpse and will not reset Whitemane
160 if (whitemane->IsEngaged()||whitemane->IsInEvadeMode())
161 whitemane->DespawnOnEvade(20s);
162
163 mograine->DespawnOnEvade(20s);
165 return;
166 }
167
168 // Whitemane will not be able to fight Mograine again when he dies
169 if (!whitemane->IsAlive())
170 {
171 mograine->DespawnOrUnsummon();
172 _encounter = data;
173 return;
174 }
175
176 if (whitemane->IsAlive() && !mograine->IsAlive())
177 {
178 whitemane->DespawnOnEvade(20s);
179 _encounter = data;
180 return;
181 }
182
183 _encounter = data;
184 }
185 if (data == DONE)
187 break;
189 if (data == IN_PROGRESS)
190 {
191 // the ashbringer incident did not sniff out any data from whitemane
192 if (Creature* whitemane = instance->GetCreature(_whitemaneGUID))
193 if (whitemane->IsAlive() && !whitemane->IsEngaged())
194 whitemane->DespawnOrUnsummon();
195
197 {
198 go->SetGoState(GO_STATE_ACTIVE);
199 go->SetLootState(GO_ACTIVATED);
200 go->SetGameObjectFlag(GO_FLAG_IN_USE);
201 }
202
203 for (auto const& scarletCathedralNpcGuid : _ashbringerNpcGUID)
204 if (Creature* scarletNpc = instance->GetCreature(scarletCathedralNpcGuid))
205 if (scarletNpc->IsAlive() && !scarletNpc->IsEngaged())
206 scarletNpc->SetFaction(FACTION_FRIENDLY);
207 }
208 _ashencounter = data;
209 break;
211 _encounter = data;
212 break;
213 default:
214 break;
215 }
216 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
@ 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:943
@ GO_FLAG_IN_USE
Definition SharedDefines.h:1607
@ FACTION_FRIENDLY
Definition SharedDefines.h:189
Definition Creature.h:47
bool IsEngaged() const override
Definition Creature.cpp:2939
void DespawnOnEvade(Seconds respawnDelay=20s)
Definition Creature.cpp:2207
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2199
bool IsInEvadeMode() const
Definition Creature.h:138
Definition GameObject.h:120
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:120
Map * instance
Definition InstanceScript.h:149
GameObject * GetGameObject(ObjectGuid const &guid)
Definition Map.cpp:2419
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2414
bool IsAlive() const
Definition Unit.h:1793
float constexpr CATHEDRAL_PULL_RANGE
Definition instance_scarlet_monastery.cpp:60

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(), Creature::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
260{};

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
259{};

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: