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

Public Member Functions

 instance_obsidian_sanctum_InstanceMapScript (Map *pMap)
 
bool IsEncounterInProgress () const override
 
void OnCreatureCreate (Creature *pCreature) override
 
ObjectGuid GetGuidData (uint32 uiData) const override
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *source, Unit const *, uint32) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void DoAction (int32 action) 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 OnPlayerAreaUpdate (Player *, uint32, uint32)
 
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 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 (WorldPacket &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
- 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 OnCreatureCreate (Creature *)
 
virtual void OnCreatureRemove (Creature *)
 
virtual void OnGameObjectCreate (GameObject *)
 
virtual void OnGameObjectRemove (GameObject *)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Private Attributes

ObjectGuid m_uiSartharionGUID
 
ObjectGuid m_uiTenebronGUID
 
ObjectGuid m_uiShadronGUID
 
ObjectGuid m_uiVesperonGUID
 
ObjectGuid m_uiPortalGUID
 
uint8 portalCount
 

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 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 AddObject (Creature *obj, bool add)
 
void AddObject (GameObject *obj, bool add)
 
void AddObject (WorldObject *obj, uint32 type, bool add)
 
void AddDoor (GameObject *door, bool add)
 
void AddMinion (Creature *minion, bool add)
 
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_obsidian_sanctum_InstanceMapScript()

instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::instance_obsidian_sanctum_InstanceMapScript ( Map pMap)
inline
42 : InstanceScript(pMap), portalCount(0)
43 {
47 }
#define DataHeader
Definition: blackrock_depths.h:23
@ MAX_ENCOUNTERS
Definition: deadmines.h:30
BossBoundaryData const boundaries
Definition: instance_obsidian_sanctum.cpp:25
Definition: InstanceScript.h:140
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:265
void LoadBossBoundaries(BossBoundaryData const &data)
Definition: InstanceScript.cpp:130
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
uint8 portalCount
Definition: instance_obsidian_sanctum.cpp:214

References boundaries, DataHeader, InstanceScript::LoadBossBoundaries(), MAX_ENCOUNTERS, InstanceScript::SetBossNumber(), and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  source,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

97 {
98 switch(criteria_id)
99 {
100 // Gonna Go When the Volcano Blows (10 player) (2047)
101 case 7326:
102 // Gonna Go When the Volcano Blows (25 player) (2048)
103 case 7327:
104 {
105 Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
106 return sartharion && !sartharion->AI()->GetData(source->GetGUID().GetCounter());
107 }
108 // Less Is More (10 player) (624)
109 case 7189:
110 case 7190:
111 case 7191:
112 case 522:
113 {
115 }
116 // Less Is More (25 player) (1877)
117 case 7185:
118 case 7186:
119 case 7187:
120 case 7188:
121 {
122 return instance->GetPlayersCountExceptGMs() < 21;
123 }
124 // Twilight Assist (10 player) (2049)
125 case 7328:
126 // Twilight Assist (25 player) (2052)
127 case 7331:
128 {
129 Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
130 return sartharion && sartharion->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 1;
131 }
132 // Twilight Duo (10 player) (2050)
133 case 7329:
134 // Twilight Duo (25 player) (2053)
135 case 7332:
136 {
137 Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
138 return sartharion && sartharion->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 2;
139 }
140 // Twilight Zone (10 player) (2051)
141 case 7330:
142 // Twilight Zone (25 player) (2054)
143 case 7333:
144 {
145 Creature const* sartharion = instance->GetCreature(m_uiSartharionGUID);
146 return sartharion && sartharion->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 3;
147 }
148 }
149
150 return false;
151 }
@ DATA_ACHIEVEMENT_DRAGONS_COUNT
Definition: obsidian_sanctum.h:37
virtual uint32 GetData(uint32) const
Definition: UnitAI.h:202
Definition: Creature.h:46
CreatureAI * AI() const
Definition: Creature.h:135
Map * instance
Definition: InstanceScript.h:146
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293
uint32 GetPlayersCountExceptGMs() const
Definition: Map.cpp:2729
ObjectGuid m_uiSartharionGUID
Definition: instance_obsidian_sanctum.cpp:209

References Creature::AI(), DATA_ACHIEVEMENT_DRAGONS_COUNT, ObjectGuid::GetCounter(), Map::GetCreature(), UnitAI::GetData(), Object::GetGUID(), Map::GetPlayersCountExceptGMs(), InstanceScript::instance, and m_uiSartharionGUID.

◆ DoAction()

void instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from InstanceScript.

168 {
169 switch (action)
170 {
172 {
173 if (!m_uiPortalGUID)
174 {
176 {
177 if (GameObject* portal = sartharion->SummonGameObject(GO_TWILIGHT_PORTAL, 3247.29f, 529.804f, 58.9595f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0))
178 {
179 sartharion->RemoveGameObject(portal, false);
180 m_uiPortalGUID = portal->GetGUID();
181 }
182 }
183
184 portalCount = 0;
185 }
186
187 ++portalCount;
188 break;
189 }
191 {
192 --portalCount;
193 if (!portalCount)
194 {
196 {
197 go->Delete();
198 }
199
202 }
203 break;
204 }
205 }
206 }
@ ACTION_ADD_PORTAL
Definition: obsidian_sanctum.h:60
@ ACTION_CLEAR_PORTAL
Definition: obsidian_sanctum.h:59
@ GO_TWILIGHT_PORTAL
Definition: obsidian_sanctum.h:48
@ SPELL_TWILIGHT_SHIFT
Definition: obsidian_sanctum.h:52
Definition: GameObject.h:122
GameObject * SummonGameObject(uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Definition: Object.cpp:2332
void Clear()
Definition: ObjectGuid.h:140
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:587
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3298
ObjectGuid m_uiPortalGUID
Definition: instance_obsidian_sanctum.cpp:213

References ACTION_ADD_PORTAL, ACTION_CLEAR_PORTAL, ObjectGuid::Clear(), InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), Map::GetCreature(), Map::GetGameObject(), GO_TWILIGHT_PORTAL, InstanceScript::instance, m_uiPortalGUID, m_uiSartharionGUID, portalCount, SPELL_TWILIGHT_SHIFT, and WorldObject::SummonGameObject().

◆ GetGuidData()

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::GetGuidData ( uint32  uiData) const
inlineoverridevirtual

Reimplemented from InstanceScript.

80 {
81 switch(uiData)
82 {
83 case DATA_SARTHARION:
84 return m_uiSartharionGUID;
85 case DATA_TENEBRON:
86 return m_uiTenebronGUID;
87 case DATA_SHADRON:
88 return m_uiShadronGUID;
89 case DATA_VESPERON:
90 return m_uiVesperonGUID;
91 }
92
93 return ObjectGuid::Empty;
94 }
@ DATA_VESPERON
Definition: obsidian_sanctum.h:32
@ DATA_TENEBRON
Definition: obsidian_sanctum.h:31
@ DATA_SARTHARION
Definition: obsidian_sanctum.h:30
@ DATA_SHADRON
Definition: obsidian_sanctum.h:33
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid m_uiShadronGUID
Definition: instance_obsidian_sanctum.cpp:211
ObjectGuid m_uiVesperonGUID
Definition: instance_obsidian_sanctum.cpp:212
ObjectGuid m_uiTenebronGUID
Definition: instance_obsidian_sanctum.cpp:210

References DATA_SARTHARION, DATA_SHADRON, DATA_TENEBRON, DATA_VESPERON, ObjectGuid::Empty, m_uiSartharionGUID, m_uiShadronGUID, m_uiTenebronGUID, and m_uiVesperonGUID.

◆ IsEncounterInProgress()

bool instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

50 {
51 for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
52 {
53 if (GetBossState(i) == IN_PROGRESS)
54 return true;
55 }
56
57 return false;
58 }
std::uint8_t uint8
Definition: Define.h:110
@ IN_PROGRESS
Definition: InstanceScript.h:57
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230

References InstanceScript::GetBossState(), IN_PROGRESS, and MAX_ENCOUNTERS.

◆ OnCreatureCreate()

void instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::OnCreatureCreate ( Creature pCreature)
inlineoverridevirtual

Reimplemented from InstanceScript.

61 {
62 switch(pCreature->GetEntry())
63 {
64 case NPC_SARTHARION:
65 m_uiSartharionGUID = pCreature->GetGUID();
66 break;
67 case NPC_TENEBRON:
68 m_uiTenebronGUID = pCreature->GetGUID();
69 break;
70 case NPC_SHADRON:
71 m_uiShadronGUID = pCreature->GetGUID();
72 break;
73 case NPC_VESPERON:
74 m_uiVesperonGUID = pCreature->GetGUID();
75 break;
76 }
77 }
@ NPC_SARTHARION
Definition: ScriptedCreature.cpp:522
@ NPC_VESPERON
Definition: obsidian_sanctum.h:44
@ NPC_SHADRON
Definition: obsidian_sanctum.h:43
@ NPC_TENEBRON
Definition: obsidian_sanctum.h:42
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106

References Object::GetEntry(), Object::GetGUID(), m_uiSartharionGUID, m_uiShadronGUID, m_uiTenebronGUID, m_uiVesperonGUID, NPC_SARTHARION, NPC_SHADRON, NPC_TENEBRON, and NPC_VESPERON.

◆ SetBossState()

bool instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

154 {
155 if (InstanceScript::SetBossState(type, state))
156 {
157 return false;
158 }
159
160 if (state == DONE)
161 {
162 SaveToDB();
163 }
164 return true;
165 }
@ DONE
Definition: InstanceScript.h:59
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:317
void SaveToDB()
Definition: InstanceScript.cpp:41

References DONE, InstanceScript::SaveToDB(), and InstanceScript::SetBossState().

Member Data Documentation

◆ m_uiPortalGUID

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiPortalGUID
private

Referenced by DoAction().

◆ m_uiSartharionGUID

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiSartharionGUID
private

◆ m_uiShadronGUID

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiShadronGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiTenebronGUID

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiTenebronGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiVesperonGUID

ObjectGuid instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::m_uiVesperonGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ portalCount

uint8 instance_obsidian_sanctum::instance_obsidian_sanctum_InstanceMapScript::portalCount
private

Referenced by DoAction().