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

Public Member Functions

 instance_shattered_halls_InstanceMapScript (Map *map)
 
void Initialize () override
 
void OnPlayerEnter (Player *player) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnCreatureCreate (Creature *creature) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SetData (uint32 type, uint32 data) override
 
ObjectGuid GetGuidData (uint32 data) const override
 
void Update (uint32 diff) override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) 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)
 

Protected Attributes

ObjectGuid warchiefKargathGUID
 
ObjectGuid nethekurseDoor1GUID
 
ObjectGuid nethekurseDoor2GUID
 
ObjectGuid executionerGUID
 
ObjectGuid prisonerGUID [3]
 
uint32 RescueTimer
 
TeamId TeamIdInInstance
 

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_shattered_halls_InstanceMapScript()

instance_shattered_halls::instance_shattered_halls_InstanceMapScript::instance_shattered_halls_InstanceMapScript ( Map map)
inline
35: InstanceScript(map) { }
Definition: InstanceScript.h:140

Member Function Documentation

◆ GetGuidData()

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::GetGuidData ( uint32  data) const
inlineoverridevirtual

Reimplemented from InstanceScript.

144 {
145 switch (data)
146 {
147 case DATA_PRISONER_1:
148 case DATA_PRISONER_2:
149 case DATA_PRISONER_3:
150 return prisonerGUID[data - DATA_PRISONER_1];
151 case DATA_EXECUTIONER:
152 return executionerGUID;
153 }
154
155 return ObjectGuid::Empty;
156 }
@ DATA_PRISONER_1
Definition: shattered_halls.h:35
@ DATA_PRISONER_3
Definition: shattered_halls.h:37
@ DATA_PRISONER_2
Definition: shattered_halls.h:36
@ DATA_EXECUTIONER
Definition: shattered_halls.h:38
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid prisonerGUID[3]
Definition: instance_shattered_halls.cpp:205
ObjectGuid executionerGUID
Definition: instance_shattered_halls.cpp:204

References DATA_EXECUTIONER, DATA_PRISONER_1, DATA_PRISONER_2, DATA_PRISONER_3, ObjectGuid::Empty, executionerGUID, and prisonerGUID.

◆ Initialize()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

38 {
40
43 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:62
constexpr auto MINUTE
Definition: Common.h:56
@ ENCOUNTER_COUNT
Definition: shattered_halls.h:32
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:265
TeamId TeamIdInInstance
Definition: instance_shattered_halls.cpp:207
uint32 RescueTimer
Definition: instance_shattered_halls.cpp:206

References ENCOUNTER_COUNT, IN_MILLISECONDS, MINUTE, RescueTimer, InstanceScript::SetBossNumber(), TEAM_NEUTRAL, and TeamIdInInstance.

◆ OnCreatureCreate()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

69 {
71 {
72 Map::PlayerList const& players = instance->GetPlayers();
73 if (!players.IsEmpty())
74 if (Player* player = players.begin()->GetSource())
75 TeamIdInInstance = player->GetTeamId();
76 }
77
78 switch (creature->GetEntry())
79 {
81 warchiefKargathGUID = creature->GetGUID();
82 break;
85 creature->AddLootMode(2);
86 executionerGUID = creature->GetGUID();
87 break;
91 prisonerGUID[0] = creature->GetGUID();
92 break;
96 prisonerGUID[1] = creature->GetGUID();
97 break;
100 creature->UpdateEntry(NPC_SCOUT_ORGARR);
101 prisonerGUID[2] = creature->GetGUID();
102 break;
103 }
104 }
@ NPC_RIFLEMAN_BROWNBEARD
Definition: shattered_halls.h:49
@ NPC_KORAG_PROUDMANE
Definition: shattered_halls.h:52
@ NPC_CAPTAIN_ALINA
Definition: shattered_halls.h:50
@ NPC_SHATTERED_EXECUTIONER
Definition: shattered_halls.h:48
@ NPC_PRIVATE_JACINT
Definition: shattered_halls.h:51
@ NPC_SCOUT_ORGARR
Definition: shattered_halls.h:54
@ NPC_WARCHIEF_KARGATH
Definition: shattered_halls.h:44
@ NPC_CAPTAIN_BONESHATTER
Definition: shattered_halls.h:53
@ TEAM_HORDE
Definition: SharedDefines.h:733
bool IsEmpty() const
Definition: LinkedList.h:97
FROM * GetSource() const
Definition: Reference.h:97
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:483
void AddLootMode(uint16 lootMode)
Definition: Creature.h:235
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
Definition: Player.h:1046
Map * instance
Definition: InstanceScript.h:146
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
ObjectGuid warchiefKargathGUID
Definition: instance_shattered_halls.cpp:200

References Creature::AddLootMode(), MapRefMgr::begin(), executionerGUID, Object::GetEntry(), Object::GetGUID(), Map::GetPlayers(), Reference< TO, FROM >::GetSource(), IN_MILLISECONDS, InstanceScript::instance, LinkedListHead::IsEmpty(), MINUTE, NPC_CAPTAIN_ALINA, NPC_CAPTAIN_BONESHATTER, NPC_KORAG_PROUDMANE, NPC_PRIVATE_JACINT, NPC_RIFLEMAN_BROWNBEARD, NPC_SCOUT_ORGARR, NPC_SHATTERED_EXECUTIONER, NPC_WARCHIEF_KARGATH, prisonerGUID, RescueTimer, TEAM_HORDE, TEAM_NEUTRAL, TeamIdInInstance, Creature::UpdateEntry(), and warchiefKargathGUID.

◆ OnGameObjectCreate()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

52 {
53 switch (go->GetEntry())
54 {
59 break;
64 break;
65 }
66 }
@ DONE
Definition: InstanceScript.h:59
@ GO_GRAND_WARLOCK_CHAMBER_DOOR_1
Definition: shattered_halls.h:59
@ GO_GRAND_WARLOCK_CHAMBER_DOOR_2
Definition: shattered_halls.h:60
@ DATA_NETHEKURSE
Definition: shattered_halls.h:29
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230
ObjectGuid nethekurseDoor2GUID
Definition: instance_shattered_halls.cpp:202
ObjectGuid nethekurseDoor1GUID
Definition: instance_shattered_halls.cpp:201

References DATA_NETHEKURSE, DONE, ObjectGuid::Empty, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_GRAND_WARLOCK_CHAMBER_DOOR_1, GO_GRAND_WARLOCK_CHAMBER_DOOR_2, InstanceScript::HandleGameObject(), nethekurseDoor1GUID, and nethekurseDoor2GUID.

◆ OnPlayerEnter()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::OnPlayerEnter ( Player player)
inlineoverridevirtual

Reimplemented from InstanceScript.

46 {
48 TeamIdInInstance = player->GetTeamId();
49 }
TeamId GetTeamId(bool original=false) const
Definition: Player.h:2059

References Player::GetTeamId(), TEAM_NEUTRAL, and TeamIdInInstance.

◆ ReadSaveDataMore()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

190 {
191 data >> RescueTimer;
192 }

References RescueTimer.

◆ SetBossState()

bool instance_shattered_halls::instance_shattered_halls_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

107 {
108 if (!InstanceScript::SetBossState(type, state))
109 return false;
110
111 switch (type)
112 {
113 case DATA_NETHEKURSE:
114 if (state == IN_PROGRESS)
115 {
118 }
119 else
120 {
123 }
124 break;
125 }
126 return true;
127 }
@ IN_PROGRESS
Definition: InstanceScript.h:57
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:317

References DATA_NETHEKURSE, InstanceScript::HandleGameObject(), IN_PROGRESS, nethekurseDoor1GUID, nethekurseDoor2GUID, and InstanceScript::SetBossState().

◆ SetData()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

130 {
131 if (type == DATA_ENTERED_ROOM && data == DATA_ENTERED_ROOM && RescueTimer == 100 * MINUTE * IN_MILLISECONDS)
132 {
134 instance->LoadGrid(230, -80);
135
138
140 }
141 }
#define sCreatureTextMgr
Definition: CreatureTextMgr.h:119
@ TEXT_RANGE_MAP
Definition: CreatureTextMgr.h:33
@ SPELL_KARGATHS_EXECUTIONER_1
Definition: shattered_halls.h:65
@ DATA_ENTERED_ROOM
Definition: shattered_halls.h:34
@ CHAT_MSG_ADDON
Definition: SharedDefines.h:3123
@ LANG_ADDON
Definition: SharedDefines.h:725
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
Definition: Creature.h:46
void DoCastSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:605
void LoadGrid(float x, float y)
Definition: Map.cpp:494
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293

References CHAT_MSG_ADDON, DATA_ENTERED_ROOM, InstanceScript::DoCastSpellOnPlayers(), Map::GetCreature(), IN_MILLISECONDS, InstanceScript::instance, LANG_ADDON, Map::LoadGrid(), MINUTE, RescueTimer, sCreatureTextMgr, SPELL_KARGATHS_EXECUTIONER_1, TEAM_ALLIANCE, TeamIdInInstance, TEXT_RANGE_MAP, and warchiefKargathGUID.

◆ Update()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

159 {
161 {
162 RescueTimer -= std::min(RescueTimer, diff);
163
164 if ((RescueTimer / IN_MILLISECONDS) == 25 * MINUTE)
165 {
168 if (Creature* prisoner = instance->GetCreature(prisonerGUID[0]))
169 Unit::Kill(prisoner, prisoner);
170 if (Creature* executioner = instance->GetCreature(executionerGUID))
171 executioner->RemoveLootMode(2);
172 }
173 else if ((RescueTimer / IN_MILLISECONDS) == 15 * MINUTE)
174 {
177 if (Creature* prisoner = instance->GetCreature(prisonerGUID[1]))
178 Unit::Kill(prisoner, prisoner);
179 }
180 else if ((RescueTimer / IN_MILLISECONDS) == 0)
181 {
183 if (Creature* prisoner = instance->GetCreature(prisonerGUID[2]))
184 Unit::Kill(prisoner, prisoner);
185 }
186 }
187 }
@ SPELL_KARGATHS_EXECUTIONER_2
Definition: shattered_halls.h:66
@ SPELL_KARGATHS_EXECUTIONER_3
Definition: shattered_halls.h:67
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition: Unit.cpp:17862
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:587

References InstanceScript::DoCastSpellOnPlayers(), InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), executionerGUID, Map::GetCreature(), IN_MILLISECONDS, InstanceScript::instance, Unit::Kill(), MINUTE, prisonerGUID, RescueTimer, SPELL_KARGATHS_EXECUTIONER_1, SPELL_KARGATHS_EXECUTIONER_2, and SPELL_KARGATHS_EXECUTIONER_3.

◆ WriteSaveDataMore()

void instance_shattered_halls::instance_shattered_halls_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

195 {
196 data << RescueTimer;
197 }

References RescueTimer.

Member Data Documentation

◆ executionerGUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::executionerGUID
protected

◆ nethekurseDoor1GUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::nethekurseDoor1GUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ nethekurseDoor2GUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::nethekurseDoor2GUID
protected

Referenced by OnGameObjectCreate(), and SetBossState().

◆ prisonerGUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::prisonerGUID[3]
protected

◆ RescueTimer

uint32 instance_shattered_halls::instance_shattered_halls_InstanceMapScript::RescueTimer
protected

◆ TeamIdInInstance

TeamId instance_shattered_halls::instance_shattered_halls_InstanceMapScript::TeamIdInInstance
protected

◆ warchiefKargathGUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::warchiefKargathGUID
protected

Referenced by OnCreatureCreate(), and SetData().