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 OnCreatureCreate (Creature *creature) 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 Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
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 uint32 GetData (uint32) const
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Protected Attributes

ObjectGuid ExecutionerGUID
 
ObjectGuid PrisonerGUID [3]
 
uint32 RescueTimer
 

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)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_shattered_halls_InstanceMapScript()

instance_shattered_halls::instance_shattered_halls_InstanceMapScript::instance_shattered_halls_InstanceMapScript ( Map map)
inline
55: InstanceScript(map) { }
Definition InstanceScript.h:143

Member Function Documentation

◆ GetGuidData()

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

Reimplemented from ZoneScript.

111 {
112 switch (data)
113 {
114 case DATA_PRISONER_1:
115 case DATA_PRISONER_2:
116 case DATA_PRISONER_3:
117 return PrisonerGUID[data - DATA_PRISONER_1];
118 case DATA_EXECUTIONER:
119 return ExecutionerGUID;
120 }
121
122 return ObjectGuid::Empty;
123 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ DATA_PRISONER_1
Definition shattered_halls.h:34
@ DATA_PRISONER_3
Definition shattered_halls.h:36
@ DATA_PRISONER_2
Definition shattered_halls.h:35
@ DATA_EXECUTIONER
Definition shattered_halls.h:37
ObjectGuid PrisonerGUID[3]
Definition instance_shattered_halls.cpp:168
ObjectGuid ExecutionerGUID
Definition instance_shattered_halls.cpp:167

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.

58 {
63 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
constexpr auto MINUTE
Definition Common.h:47
void SetBossNumber(uint32 number)
Definition InstanceScript.h:296
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:176
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:188
ObjectData const creatureData[]
Definition instance_shattered_halls.cpp:26
DoorData const doorData[]
Definition instance_shattered_halls.cpp:36
@ ENCOUNTER_COUNT
Definition shattered_halls.h:31
uint32 RescueTimer
Definition instance_shattered_halls.cpp:169

References creatureData, doorData, ENCOUNTER_COUNT, IN_MILLISECONDS, InstanceScript::LoadDoorData(), InstanceScript::LoadObjectData(), MINUTE, RescueTimer, and InstanceScript::SetBossNumber().

◆ OnCreatureCreate()

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

Reimplemented from ZoneScript.

66 {
67 switch (creature->GetEntry())
68 {
71 creature->AddLootMode(2);
72 ExecutionerGUID = creature->GetGUID();
73 break;
77 PrisonerGUID[0] = creature->GetGUID();
78 break;
82 PrisonerGUID[1] = creature->GetGUID();
83 break;
87 PrisonerGUID[2] = creature->GetGUID();
88 break;
91 creature->UpdateEntry(NPC_DRISELLA);
92 break;
93 }
95 }
@ TEAM_HORDE
Definition SharedDefines.h:761
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition Creature.cpp:542
void AddLootMode(uint16 lootMode)
Definition Creature.h:247
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:70
TeamId GetTeamIdInInstance() const
Definition InstanceScript.h:289
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
@ NPC_RIFLEMAN_BROWNBEARD
Definition shattered_halls.h:63
@ NPC_KORAG_PROUDMANE
Definition shattered_halls.h:66
@ NPC_CAPTAIN_ALINA
Definition shattered_halls.h:64
@ NPC_SHATTERED_EXECUTIONER
Definition shattered_halls.h:62
@ NPC_DRISELLA
Definition shattered_halls.h:71
@ NPC_RANDY_WHIZZLESPROCKET
Definition shattered_halls.h:73
@ NPC_PRIVATE_JACINT
Definition shattered_halls.h:65
@ NPC_SCOUT_ORGARR
Definition shattered_halls.h:68
@ NPC_CAPTAIN_BONESHATTER
Definition shattered_halls.h:67

References Creature::AddLootMode(), ExecutionerGUID, Object::GetEntry(), Object::GetGUID(), InstanceScript::GetTeamIdInInstance(), IN_MILLISECONDS, MINUTE, NPC_CAPTAIN_ALINA, NPC_CAPTAIN_BONESHATTER, NPC_DRISELLA, NPC_KORAG_PROUDMANE, NPC_PRIVATE_JACINT, NPC_RANDY_WHIZZLESPROCKET, NPC_RIFLEMAN_BROWNBEARD, NPC_SCOUT_ORGARR, NPC_SHATTERED_EXECUTIONER, InstanceScript::OnCreatureCreate(), PrisonerGUID, RescueTimer, TEAM_HORDE, and Creature::UpdateEntry().

◆ ReadSaveDataMore()

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

Reimplemented from InstanceScript.

157 {
158 data >> RescueTimer;
159 }

References RescueTimer.

◆ SetData()

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

Reimplemented from ZoneScript.

98 {
99 if (type == DATA_ENTERED_ROOM && data == DATA_ENTERED_ROOM && RescueTimer == 100 * MINUTE * IN_MILLISECONDS)
100 {
102
103 if (Creature* kargath = GetCreature(DATA_KARGATH))
105
107 }
108 }
#define sCreatureTextMgr
Definition CreatureTextMgr.h:119
@ TEXT_RANGE_MAP
Definition CreatureTextMgr.h:33
@ CHAT_MSG_ADDON
Definition SharedDefines.h:3151
@ LANG_ADDON
Definition SharedDefines.h:753
@ TEAM_ALLIANCE
Definition SharedDefines.h:760
Definition Creature.h:43
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
void DoCastSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:694
@ SPELL_KARGATHS_EXECUTIONER_1
Definition shattered_halls.h:84
@ DATA_KARGATH
Definition shattered_halls.h:29
@ DATA_ENTERED_ROOM
Definition shattered_halls.h:33

References CHAT_MSG_ADDON, DATA_ENTERED_ROOM, DATA_KARGATH, InstanceScript::DoCastSpellOnPlayers(), InstanceScript::GetCreature(), InstanceScript::GetTeamIdInInstance(), IN_MILLISECONDS, LANG_ADDON, MINUTE, RescueTimer, sCreatureTextMgr, SPELL_KARGATHS_EXECUTIONER_1, TEAM_ALLIANCE, and TEXT_RANGE_MAP.

◆ Update()

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

Reimplemented from InstanceScript.

126 {
128 {
129 RescueTimer -= std::min(RescueTimer, diff);
130
131 if ((RescueTimer / IN_MILLISECONDS) == 25 * MINUTE)
132 {
135 if (Creature* prisoner = instance->GetCreature(PrisonerGUID[0]))
136 Unit::Kill(prisoner, prisoner);
137 if (Creature* executioner = instance->GetCreature(ExecutionerGUID))
138 executioner->RemoveLootMode(2);
139 }
140 else if ((RescueTimer / IN_MILLISECONDS) == 15 * MINUTE)
141 {
144 if (Creature* prisoner = instance->GetCreature(PrisonerGUID[1]))
145 Unit::Kill(prisoner, prisoner);
146 }
147 else if ((RescueTimer / IN_MILLISECONDS) == 0)
148 {
150 if (Creature* prisoner = instance->GetCreature(PrisonerGUID[2]))
151 Unit::Kill(prisoner, prisoner);
152 }
153 }
154 }
Map * instance
Definition InstanceScript.h:149
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:683
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
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:17754
@ SPELL_KARGATHS_EXECUTIONER_2
Definition shattered_halls.h:85
@ SPELL_KARGATHS_EXECUTIONER_3
Definition shattered_halls.h:86

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.

162 {
163 data << RescueTimer;
164 }

References RescueTimer.

Member Data Documentation

◆ ExecutionerGUID

ObjectGuid instance_shattered_halls::instance_shattered_halls_InstanceMapScript::ExecutionerGUID
protected

◆ PrisonerGUID

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

◆ RescueTimer

uint32 instance_shattered_halls::instance_shattered_halls_InstanceMapScript::RescueTimer
protected

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