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

Public Member Functions

 instance_culling_of_stratholme_InstanceMapScript (Map *pMap)
 
void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &packet) override
 
void OnPlayerEnter (Player *plr) override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 identifier) const override
 
void Update (uint32 diff) override
 
void UpdateEventState ()
 
void ChromieWhisper (uint8 textId)
 
void Reposition (Creature *arthas)
 
void Load (char const *data) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
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
 
Creature * GetCreature (uint32 type)
 
GameObject * GetGameObject (uint32 type)
 
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
 
void RegisterBossSpawn (ObjectGuid::LowType spawnId, uint32 bossId)
 
bool IsBossSpawnDone (ObjectGuid::LowType spawnId) 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)
 
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 _arthasGUID
 
ObjectGuid _infiniteGUID
 
ObjectGuid _shkafGateGUID
 
ObjectGuid _exitGateGUID
 
uint32 _crateCount
 
uint32 _showCrateTimer
 
uint32 _guardianTimer
 
bool _respawnAndReposition
 
uint32 _loadTimer
 

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

instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::instance_culling_of_stratholme_InstanceMapScript ( Map *  pMap)
inline
41 : InstanceScript(pMap)
42 {
43 // Instance
47 _crateCount = 0;
51 _loadTimer = 0;
52 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:311
void SetPersistentDataCount(uint32 number)
Definition InstanceScript.h:312
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:169
@ MAX_ENCOUNTERS
Definition deadmines.h:30
uint32 _crateCount
Definition instance_culling_of_stratholme.cpp:367
uint32 _loadTimer
Definition instance_culling_of_stratholme.cpp:372
uint32 _guardianTimer
Definition instance_culling_of_stratholme.cpp:369
uint32 _showCrateTimer
Definition instance_culling_of_stratholme.cpp:368
bool _respawnAndReposition
Definition instance_culling_of_stratholme.cpp:371
@ PERSISTENT_DATA_COUNT
Definition sunwell_plateau.h:58

References _crateCount, _guardianTimer, _loadTimer, _respawnAndReposition, _showCrateTimer, DataHeader, MAX_ENCOUNTERS, PERSISTENT_DATA_COUNT, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), and InstanceScript::SetPersistentDataCount().

Member Function Documentation

◆ ChromieWhisper()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::ChromieWhisper ( uint8  textId)
inline
298 {
299 if (!instance->GetPlayers().IsEmpty())
300 if (Player* player = instance->GetPlayers().getFirst()->GetSource())
301 {
302 Position pos = player->GetPosition();
304 {
305 cr->SetVisible(false);
306 cr->DespawnOrUnsummon(1s);
307 sCreatureTextMgr->SendChat(cr, textId, player, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
308 }
309 }
310 }
#define sCreatureTextMgr
Definition CreatureTextMgr.h:123
@ TEXT_RANGE_MAP
Definition CreatureTextMgr.h:33
@ CHAT_MSG_ADDON
Definition SharedDefines.h:3384
@ LANG_ADDON
Definition SharedDefines.h:741
Definition Creature.h:47
Map * instance
Definition InstanceScript.h:149
bool IsEmpty() const
Definition LinkedList.h:97
MapReference * getFirst()
Definition MapRefMgr.h:31
PlayerList const & GetPlayers() const
Definition Map.h:335
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition Object.cpp:2253
Definition Player.h:1086
FROM * GetSource() const
Definition Reference.h:97
@ NPC_CHROMIE_MIDDLE
Definition culling_of_stratholme.h:80
Definition Position.h:27
void GetPosition(float &x, float &y) const
Definition Position.h:126

References CHAT_MSG_ADDON, MapRefMgr::getFirst(), Map::GetPlayers(), Position::GetPosition(), Reference< TO, FROM >::GetSource(), InstanceScript::instance, LinkedListHead::IsEmpty(), LANG_ADDON, NPC_CHROMIE_MIDDLE, sCreatureTextMgr, Map::SummonCreature(), and TEXT_RANGE_MAP.

Referenced by Update(), and UpdateEventState().

◆ FillInitialWorldStates()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::FillInitialWorldStates ( WorldPackets::WorldState::InitWorldStates &  packet)
inlineoverridevirtual

Reimplemented from InstanceScript.

55 {
56 packet.Worldstates.reserve(5);
62 }
@ WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED
Definition WorldStateDefines.h:556
@ WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN
Definition WorldStateDefines.h:558
@ WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES
Definition WorldStateDefines.h:555
@ WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT
Definition WorldStateDefines.h:557
@ WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW
Definition WorldStateDefines.h:559
std::vector< WorldStateInfo > Worldstates
Definition WorldStatePackets.h:46

References _crateCount, WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED, WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT, and WorldPackets::WorldState::InitWorldStates::Worldstates.

◆ GetData()

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

176 {
177 switch (type)
178 {
182 return _guardianTimer;
185 }
186 return 0;
187 }
uint32 GetPersistentData(uint32 index) const
Definition InstanceScript.h:260
@ PERSISTENT_DATA_ARTHAS_EVENT
Definition culling_of_stratholme.h:38
@ COS_PROGRESS_FINISHED_INTRO
Definition culling_of_stratholme.h:138
@ DATA_GUARDIANTIME_EVENT
Definition culling_of_stratholme.h:46
@ DATA_INTRO_EVENT_FINISHED
Definition culling_of_stratholme.h:55
@ DATA_ARTHAS_EVENT
Definition culling_of_stratholme.h:45

References _guardianTimer, COS_PROGRESS_FINISHED_INTRO, DATA_ARTHAS_EVENT, DATA_GUARDIANTIME_EVENT, DATA_INTRO_EVENT_FINISHED, InstanceScript::GetPersistentData(), and PERSISTENT_DATA_ARTHAS_EVENT.

Referenced by Reposition(), and SetData().

◆ GetGuidData()

ObjectGuid instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::GetGuidData ( uint32  identifier) const
inlineoverridevirtual

Reimplemented from ZoneScript.

190 {
191 switch (identifier)
192 {
193 case DATA_SHKAF_GATE:
194 return _shkafGateGUID;
195 case DATA_ARTHAS:
196 return _arthasGUID;
197 case DATA_EXIT_GATE:
198 return _exitGateGUID;
199 }
200
201 return ObjectGuid::Empty;
202 }
static ObjectGuid const Empty
Definition ObjectGuid.h:123
@ DATA_SHKAF_GATE
Definition culling_of_stratholme.h:62
@ DATA_EXIT_GATE
Definition culling_of_stratholme.h:63
@ DATA_ARTHAS
Definition culling_of_stratholme.h:60
ObjectGuid _arthasGUID
Definition instance_culling_of_stratholme.cpp:361
ObjectGuid _shkafGateGUID
Definition instance_culling_of_stratholme.cpp:365
ObjectGuid _exitGateGUID
Definition instance_culling_of_stratholme.cpp:366

References _arthasGUID, _exitGateGUID, _shkafGateGUID, DATA_ARTHAS, DATA_EXIT_GATE, DATA_SHKAF_GATE, and ObjectGuid::Empty.

◆ Load()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Load ( char const *  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

352 {
354
356 _loadTimer++;
357 }
virtual void Load(char const *data)
Definition InstanceScript.cpp:475
@ PERSISTENT_DATA_GUARDIAN_TIMER
Definition culling_of_stratholme.h:39

References _guardianTimer, _loadTimer, InstanceScript::GetPersistentData(), InstanceScript::Load(), and PERSISTENT_DATA_GUARDIAN_TIMER.

◆ OnCreatureCreate()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::OnCreatureCreate ( Creature *  creature)
inlineoverridevirtual

Reimplemented from ZoneScript.

74 {
75 switch (creature->GetEntry())
76 {
77 case NPC_ARTHAS:
78 _arthasGUID = creature->GetGUID();
80 creature->SetVisible(false);
81 else
82 Reposition(creature);
83 break;
84 case NPC_INFINITE:
85 _infiniteGUID = creature->GetGUID();
86 break;
87 }
88 }
uint32 GetEntry() const
Definition Object.h:123
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
void SetVisible(bool x)
Definition Unit.cpp:10916
@ NPC_ARTHAS
Definition culling_of_stratholme.h:73
@ NPC_INFINITE
Definition culling_of_stratholme.h:72
@ COS_PROGRESS_FINISHED
Definition culling_of_stratholme.h:146
void Reposition(Creature *arthas)
Definition instance_culling_of_stratholme.cpp:312
ObjectGuid _infiniteGUID
Definition instance_culling_of_stratholme.cpp:362

References _arthasGUID, _infiniteGUID, COS_PROGRESS_FINISHED, Object::GetEntry(), Object::GetGUID(), InstanceScript::GetPersistentData(), NPC_ARTHAS, NPC_INFINITE, PERSISTENT_DATA_ARTHAS_EVENT, Reposition(), and Unit::SetVisible().

◆ OnGameObjectCreate()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::OnGameObjectCreate ( GameObject *  go)
inlineoverridevirtual

Reimplemented from ZoneScript.

91 {
92 switch (go->GetEntry())
93 {
94 case GO_SHKAF_GATE:
95 _shkafGateGUID = go->GetGUID();
98 break;
99 case GO_EXIT_GATE:
100 _exitGateGUID = go->GetGUID();
103 break;
104 }
105 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:708
void SetGoState(GOState state)
Definition GameObject.cpp:2582
@ GO_SHKAF_GATE
Definition culling_of_stratholme.h:87
@ COS_PROGRESS_KILLED_EPOCH
Definition culling_of_stratholme.h:143
@ GO_EXIT_GATE
Definition stratholme.h:75

References _exitGateGUID, _shkafGateGUID, COS_PROGRESS_FINISHED, COS_PROGRESS_KILLED_EPOCH, Object::GetEntry(), Object::GetGUID(), InstanceScript::GetPersistentData(), GO_EXIT_GATE, GO_SHKAF_GATE, GO_STATE_ACTIVE, PERSISTENT_DATA_ARTHAS_EVENT, and GameObject::SetGoState().

◆ OnPlayerEnter()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::OnPlayerEnter ( Player *  plr)
inlineoverridevirtual

Reimplemented from InstanceScript.

65 {
68
69 if (plr->getRace() != RACE_HUMAN && plr->getRace() != RACE_DWARF && plr->getRace() != RACE_GNOME)
70 plr->CastSpell(plr, ((plr->getGender() == GENDER_MALE) ? SPELL_HUMAN_MALE : SPELL_HUMAN_FEMALE), true);
71 }
@ GENDER_MALE
Definition SharedDefines.h:61
@ RACE_DWARF
Definition SharedDefines.h:73
@ RACE_GNOME
Definition SharedDefines.h:77
@ RACE_HUMAN
Definition SharedDefines.h:71
uint32 GetPlayersCountExceptGMs(bool aliveOnly=false) const
Definition Map.cpp:1874
uint8 getGender() const
Definition Unit.h:854
uint8 getRace(bool original=false) const
Definition Unit.cpp:16768
SpellCastResult CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition Unit.cpp:1378
@ SPELL_HUMAN_MALE
Definition culling_of_stratholme.h:101
@ SPELL_HUMAN_FEMALE
Definition culling_of_stratholme.h:100
@ DATA_ARTHAS_REPOSITION
Definition culling_of_stratholme.h:53
void SetData(uint32 type, uint32 data) override
Definition instance_culling_of_stratholme.cpp:107

References Unit::CastSpell(), DATA_ARTHAS_REPOSITION, GENDER_MALE, Unit::getGender(), Map::GetPlayersCountExceptGMs(), Unit::getRace(), InstanceScript::instance, RACE_DWARF, RACE_GNOME, RACE_HUMAN, SetData(), SPELL_HUMAN_FEMALE, and SPELL_HUMAN_MALE.

◆ Reposition()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Reposition ( Creature *  arthas)
inline
313 {
314 switch (GetData(DATA_ARTHAS_EVENT))
315 {
317 arthas->UpdatePosition(LeaderIntroPos2, true);
320 break;
327 break;
329 arthas->UpdatePosition(LeaderIntroPos3, true);
332 break;
334 arthas->UpdatePosition(LeaderIntroPos4, true);
337 break;
339 arthas->UpdatePosition(LeaderIntroPos5, true);
342 break;
344 arthas->UpdatePosition(LeaderIntroPos6, true);
347 break;
348 }
349 }
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:347
void SetFacingTo(float ori)
Definition Unit.cpp:16157
virtual bool UpdatePosition(float x, float y, float z, float ang, bool teleport=false)
Definition Unit.cpp:15696
const Position LeaderIntroPos6
Definition culling_of_stratholme.h:168
const Position LeaderIntroPos5
Definition culling_of_stratholme.h:167
const Position LeaderIntroPos2
Definition culling_of_stratholme.h:163
@ COS_PROGRESS_REACHED_TOWN_HALL
Definition culling_of_stratholme.h:142
@ COS_PROGRESS_LAST_CITY
Definition culling_of_stratholme.h:144
@ COS_PROGRESS_KILLED_MEATHOOK
Definition culling_of_stratholme.h:140
@ COS_PROGRESS_FINISHED_CITY_INTRO
Definition culling_of_stratholme.h:139
@ COS_PROGRESS_KILLED_SALRAMM
Definition culling_of_stratholme.h:141
@ COS_PROGRESS_BEFORE_MALGANIS
Definition culling_of_stratholme.h:145
const Position LeaderIntroPos3
Definition culling_of_stratholme.h:165
const Position LeaderIntroPos2special
Definition culling_of_stratholme.h:164
const Position LeaderIntroPos4
Definition culling_of_stratholme.h:166
float GetOrientation() const
Definition Position.h:124
uint32 GetData(uint32 type) const override
Definition instance_culling_of_stratholme.cpp:175

References COS_PROGRESS_BEFORE_MALGANIS, COS_PROGRESS_FINISHED_CITY_INTRO, COS_PROGRESS_FINISHED_INTRO, COS_PROGRESS_KILLED_EPOCH, COS_PROGRESS_KILLED_MEATHOOK, COS_PROGRESS_KILLED_SALRAMM, COS_PROGRESS_LAST_CITY, COS_PROGRESS_REACHED_TOWN_HALL, DATA_ARTHAS_EVENT, GetData(), Position::GetOrientation(), LeaderIntroPos2, LeaderIntroPos2special, LeaderIntroPos3, LeaderIntroPos4, LeaderIntroPos5, LeaderIntroPos6, Unit::SetFacingTo(), Creature::SetHomePosition(), and Unit::UpdatePosition().

Referenced by OnCreatureCreate(), and SetData().

◆ SetData()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

108 {
109 switch (type)
110 {
111 case DATA_SHOW_CRATES:
113 return;
115 if (!instance->IsHeroic() || !_guardianTimer)
116 return;
119 if (data == 0)
120 {
121 _guardianTimer = 0;
123 }
124 else if (!_infiniteGUID)
126 return;
127 case DATA_START_WAVES:
129 if (instance->IsHeroic())
130 {
133 if (!_infiniteGUID)
135 }
136 return;
137 case DATA_CRATE_COUNT:
138 _crateCount++;
139 if (_crateCount == 5)
140 {
141 Map::PlayerList const& PlayerList = instance->GetPlayers();
142 if (!PlayerList.IsEmpty())
143 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
144 i->GetSource()->KilledMonsterCredit(NPC_GRAIN_CREATE_TRIGGER);
145
149 }
150
152 return;
155 if (data == COS_PROGRESS_START_INTRO)
156 {
158 arthas->AI()->DoAction(ACTION_START_EVENT);
159 }
160 else if (data == COS_PROGRESS_KILLED_SALRAMM)
161 {
163 arthas->AI()->DoAction(ACTION_KILLED_SALRAMM);
164 }
165 break;
167 if (data == 2)
169 else if (Creature* arthas = instance->GetCreature(_arthasGUID))
170 Reposition(arthas);
171 return;
172 }
173 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
constexpr auto MINUTE
Definition Common.h:47
std::uint32_t uint32
Definition Define.h:107
@ ACTION_START_EVENT
Definition boss_apothecary_hummel.cpp:65
void StorePersistentData(uint32 index, uint32 data)
Definition InstanceScript.cpp:446
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition InstanceScript.cpp:645
Definition LinkedList.h:139
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
bool IsHeroic() const
Definition Map.h:303
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2442
@ ACTION_KILLED_SALRAMM
Definition culling_of_stratholme.h:153
@ NPC_GRAIN_CREATE_TRIGGER
Definition culling_of_stratholme.h:81
@ COS_PROGRESS_CRATES_FOUND
Definition culling_of_stratholme.h:136
@ COS_PROGRESS_START_INTRO
Definition culling_of_stratholme.h:137
@ EVENT_SRC_CORRUPTOR
Definition culling_of_stratholme.h:129
const Position EventPos[]
Definition culling_of_stratholme.h:170
@ DATA_SHOW_INFINITE_TIMER
Definition culling_of_stratholme.h:52
@ DATA_START_WAVES
Definition culling_of_stratholme.h:51
@ DATA_CRATE_COUNT
Definition culling_of_stratholme.h:50
@ DATA_SHOW_CRATES
Definition culling_of_stratholme.h:49

References _arthasGUID, _crateCount, _guardianTimer, _infiniteGUID, _respawnAndReposition, _showCrateTimer, ACTION_KILLED_SALRAMM, ACTION_START_EVENT, MapRefMgr::begin(), COS_PROGRESS_CRATES_FOUND, COS_PROGRESS_KILLED_SALRAMM, COS_PROGRESS_START_INTRO, DATA_ARTHAS_EVENT, DATA_ARTHAS_REPOSITION, DATA_CRATE_COUNT, DATA_SHOW_CRATES, DATA_SHOW_INFINITE_TIMER, DATA_START_WAVES, InstanceScript::DoUpdateWorldState(), MapRefMgr::end(), EVENT_SRC_CORRUPTOR, EventPos, Map::GetCreature(), GetData(), Map::GetPlayers(), IN_MILLISECONDS, InstanceScript::instance, LinkedListHead::IsEmpty(), Map::IsHeroic(), MINUTE, NPC_GRAIN_CREATE_TRIGGER, NPC_INFINITE, PERSISTENT_DATA_ARTHAS_EVENT, PERSISTENT_DATA_GUARDIAN_TIMER, Reposition(), SetData(), InstanceScript::StorePersistentData(), Map::SummonCreature(), WORLD_STATE_CULLING_OF_STRATHOLME_CRATES_REVEALED, WORLD_STATE_CULLING_OF_STRATHOLME_SHOW_CRATES, WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW, and WORLD_STATE_CULLING_OF_STRATHOLME_WAVE_COUNT.

Referenced by OnPlayerEnter(), and SetData().

◆ Update()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

205 {
206 if (_loadTimer)
207 {
208 _loadTimer += diff;
209 if (_loadTimer > 3000)
210 {
212 _loadTimer = 0;
213 }
214 }
215 // Used when arthas dies
217 {
219 {
220 if (!arthas->IsAlive())
221 {
222 arthas->setDeathState(DeathState::Dead);
223 arthas->Respawn();
224 }
225 else
226 {
227 arthas->AI()->Reset();
228 _respawnAndReposition = false;
229 }
230 }
231 }
232
233 // Used after 5-th crates is revealed
234 if (_showCrateTimer)
235 {
236 _showCrateTimer += diff;
237 if (_showCrateTimer >= 20000)
238 {
240 _showCrateTimer = 0; // just to be sure
241 }
242 }
243
244 // Used to display how much time players have
245 if (_guardianTimer)
246 {
248 _guardianTimer -= diff;
250
251 if (divAfter == 0)
252 {
253 _guardianTimer = 0;
256
257 // Inform infinite we run out of time
260 cr->AI()->DoAction(ACTION_RUN_OUT_OF_TIME);
261 }
262 else if (div > divAfter)
263 {
264 if (divAfter == 5)
266 else if (divAfter == 1)
268
271 }
272 }
273 }
@ ACTION_RUN_OUT_OF_TIME
Definition culling_of_stratholme.h:157
void ChromieWhisper(uint8 textId)
Definition instance_culling_of_stratholme.cpp:297
void UpdateEventState()
Definition instance_culling_of_stratholme.cpp:275

References _arthasGUID, _guardianTimer, _infiniteGUID, _loadTimer, _respawnAndReposition, _showCrateTimer, ACTION_RUN_OUT_OF_TIME, ChromieWhisper(), Dead, InstanceScript::DoUpdateWorldState(), Map::GetCreature(), IN_MILLISECONDS, InstanceScript::instance, Map::IsHeroic(), MINUTE, PERSISTENT_DATA_GUARDIAN_TIMER, InstanceScript::StorePersistentData(), UpdateEventState(), WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN, and WORLD_STATE_CULLING_OF_STRATHOLME_TIME_GUARDIAN_SHOW.

◆ UpdateEventState()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::UpdateEventState ( )
inline

Member Data Documentation

◆ _arthasGUID

ObjectGuid instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_arthasGUID
private

◆ _crateCount

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_crateCount
private

◆ _exitGateGUID

ObjectGuid instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_exitGateGUID
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _guardianTimer

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_guardianTimer
private

◆ _infiniteGUID

ObjectGuid instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_infiniteGUID
private

Referenced by OnCreatureCreate(), SetData(), and Update().

◆ _loadTimer

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_loadTimer
private

◆ _respawnAndReposition

bool instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_respawnAndReposition
private

◆ _shkafGateGUID

ObjectGuid instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_shkafGateGUID
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ _showCrateTimer

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_showCrateTimer
private

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