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
 
Creature * GetCreature (uint32 type)
 
GameObject * GetGameObject (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
Map * instance
 
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
93 : InstanceScript(map)
94 {
96 }
#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.

261 {
262 switch (type)
263 {
265 return _encounter;
266 break;
268 return _encounter;
269 break;
271 return _ashencounter;
272 break;
273 default:
274 return 0;
275 break;
276 }
277 }
@ TYPE_ASHBRINGER_EVENT
Definition instance_scarlet_monastery.cpp:66
@ DATA_HORSEMAN_EVENT
Definition instance_scarlet_monastery.cpp:71
@ TYPE_MOGRAINE_AND_WHITE_EVENT
Definition instance_scarlet_monastery.cpp:65
uint32 _encounter
Definition instance_scarlet_monastery.cpp:283
uint32 _ashencounter
Definition instance_scarlet_monastery.cpp:284

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.

243 {
244 switch (type)
245 {
246 case DATA_MOGRAINE:
247 return _mograineGUID;
248 case DATA_WHITEMANE:
249 return _whitemaneGUID;
252 case DATA_DOOR_CHAPEL:
253 return _doorChapelGUID;
254 default:
255 return ObjectGuid::Empty;
256 break;
257 }
258 }
static ObjectGuid const Empty
Definition ObjectGuid.h:123
@ DATA_DOOR_CHAPEL
Definition instance_scarlet_monastery.cpp:74
@ DATA_MOGRAINE
Definition instance_scarlet_monastery.cpp:68
@ DATA_WHITEMANE
Definition instance_scarlet_monastery.cpp:69
@ DATA_DOOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:70
ObjectGuid _doorHighInquisitorGUID
Definition instance_scarlet_monastery.cpp:279
ObjectGuid _doorChapelGUID
Definition instance_scarlet_monastery.cpp:280
ObjectGuid _mograineGUID
Definition instance_scarlet_monastery.cpp:281
ObjectGuid _whitemaneGUID
Definition instance_scarlet_monastery.cpp:282

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.

115 {
116 switch (creature->GetEntry())
117 {
118 //church
119 case NPC_RABBIT:
120
121 //cemetery
123 case NPC_RAT:
133 return;
135 _mograineGUID = creature->GetGUID();
136 break;
138 _whitemaneGUID = creature->GetGUID();
139 break;
140 default:
141 break;
142 }
143
144 _ashbringerNpcGUID.emplace(creature->GetGUID());
145 }
uint32 GetEntry() const
Definition Object.h:123
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
@ NPC_INQUISITOR_WHITEMANE
Definition instance_scarlet_monastery.cpp:27
@ NPC_COMMANDER_MOGRAINE
Definition instance_scarlet_monastery.cpp:26
@ NPC_SCARLET_TORTURER
Definition instance_scarlet_monastery.cpp:55
@ NPC_HAUNTING_PHANTASM
Definition instance_scarlet_monastery.cpp:57
@ NPC_INTERROGATOR_VISHAS
Definition instance_scarlet_monastery.cpp:50
@ NPC_RABBIT
Definition instance_scarlet_monastery.cpp:47
@ NPC_SCARLET_SENTRY
Definition instance_scarlet_monastery.cpp:52
@ NPC_FALLON_CHAMPION
Definition instance_scarlet_monastery.cpp:58
@ NPC_SUFFERING_VICTIM
Definition instance_scarlet_monastery.cpp:60
@ NPC_ANGUISHED_DEAD
Definition instance_scarlet_monastery.cpp:56
@ NPC_UNFETTERED_SPIRIT
Definition instance_scarlet_monastery.cpp:54
@ NPC_BLOODMAGE_THALNOS
Definition instance_scarlet_monastery.cpp:59
@ NPC_SCARLET_SCRYER
Definition instance_scarlet_monastery.cpp:53
@ NPC_RAT
Definition instance_scarlet_monastery.cpp:51
GuidSet _ashbringerNpcGUID
Definition instance_scarlet_monastery.cpp:285

References _ashbringerNpcGUID, _mograineGUID, _whitemaneGUID, Object::GetEntry(), Object::GetGUID(), NPC_ANGUISHED_DEAD, NPC_BLOODMAGE_THALNOS, NPC_COMMANDER_MOGRAINE, NPC_FALLON_CHAMPION, NPC_HAUNTING_PHANTASM, NPC_INQUISITOR_WHITEMANE, NPC_INTERROGATOR_VISHAS, NPC_RABBIT, NPC_RAT, NPC_SCARLET_SCRYER, NPC_SCARLET_SENTRY, NPC_SCARLET_TORTURER, NPC_SUFFERING_VICTIM, and NPC_UNFETTERED_SPIRIT.

◆ OnGameObjectCreate()

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

Reimplemented from ZoneScript.

99 {
100 switch (go->GetEntry())
101 {
102 // case ENTRY_PUMPKIN_SHRINE: PumpkinShrineGUID = go->GetGUID(); break;
105 break;
106 case GO_CHAPEL_DOOR:
107 _doorChapelGUID = go->GetGUID();
108 break;
109 default:
110 break;
111 }
112 }
@ 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.

148 {
149 switch (type)
150 {
152 if (data == IN_PROGRESS)
153 {
154 if (Creature* mograine = instance->GetCreature(_mograineGUID))
155 {
156 std::list<Creature*> creatureList;
163 for (std::list<Creature*>::iterator itr = creatureList.begin(); itr != creatureList.end(); ++itr)
164 {
165 if (Creature* creature = *itr)
166 creature->AI()->AttackStart(mograine->GetVictim());
167 }
168 }
170 }
171 if (data == FAIL)
172 {
174 if (!whitemane)
175 return;
176
178 if (!mograine)
179 return;
180
181 if (whitemane->IsAlive() && mograine->IsAlive())
182 {
183 // When Whitemane emerges from the main gate, Whitemane will stand next to Mograine's corpse and will not reset Whitemane
184 if (whitemane->IsEngaged()||whitemane->IsInEvadeMode())
185 whitemane->DespawnOnEvade(20s);
186
187 mograine->DespawnOnEvade(20s);
189 return;
190 }
191
192 // Whitemane will not be able to fight Mograine again when he dies
193 if (!whitemane->IsAlive())
194 {
195 mograine->DespawnOrUnsummon();
196 _encounter = data;
197 return;
198 }
199
200 if (whitemane->IsAlive() && !mograine->IsAlive())
201 {
202 whitemane->DespawnOnEvade(20s);
203 _encounter = data;
204 return;
205 }
206
207 _encounter = data;
208 }
209 if (data == DONE)
211 break;
213 if (data == IN_PROGRESS)
214 {
215 // the ashbringer incident did not sniff out any data from whitemane
216 if (Creature* whitemane = instance->GetCreature(_whitemaneGUID))
217 if (whitemane->IsAlive() && !whitemane->IsEngaged())
218 whitemane->DespawnOrUnsummon();
219
221 {
222 go->SetGoState(GO_STATE_ACTIVE);
223 go->SetLootState(GO_ACTIVATED);
224 go->SetGameObjectFlag(GO_FLAG_IN_USE);
225 }
226
227 for (auto const& scarletCathedralNpcGuid : _ashbringerNpcGUID)
228 if (Creature* scarletNpc = instance->GetCreature(scarletCathedralNpcGuid))
229 if (scarletNpc->IsAlive() && !scarletNpc->IsEngaged())
230 scarletNpc->SetFaction(FACTION_FRIENDLY);
231 }
232 _ashencounter = data;
233 break;
235 _encounter = data;
236 break;
237 default:
238 break;
239 }
240 }
@ 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:2958
void DespawnOnEvade(Seconds respawnDelay=20s)
Definition Creature.cpp:2224
void DespawnOrUnsummon(Milliseconds msTimeToDespawn=0ms, Seconds forcedRespawnTimer=0s)
Definition Creature.cpp:2216
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:2447
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2442
bool IsAlive() const
Definition Unit.h:1796
@ NPC_SCARLET_ABBOT
Definition instance_scarlet_monastery.cpp:35
@ NPC_SCARLET_MONK
Definition instance_scarlet_monastery.cpp:36
@ NPC_SCARLET_WIZARD
Definition instance_scarlet_monastery.cpp:32
@ NPC_SCARLET_CHAPLAIN
Definition instance_scarlet_monastery.cpp:31
@ NPC_SCARLET_CENTURION
Definition instance_scarlet_monastery.cpp:33
@ NPC_SCARLET_CHAMPION
Definition instance_scarlet_monastery.cpp:34
float constexpr CATHEDRAL_PULL_RANGE
Definition instance_scarlet_monastery.cpp:79

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

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

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: