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)
 
bool IsEncounterInProgress () const override
 
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)
 
std::string GetSaveData () override
 
void Load (const char *in) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void CreatureLooted (Creature *, LootType)
 
void SaveToDB ()
 
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 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)
 
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 _encounterState
 
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
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)
 
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
45 _crateCount = 0;
50 _loadTimer = 0;
51 }
#define DataHeader
Definition blackrock_depths.h:23
Definition InstanceScript.h:143
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
@ COS_PROGRESS_NOT_STARTED
Definition culling_of_stratholme.h:118
uint32 _encounterState
Definition instance_culling_of_stratholme.cpp:406
uint32 _crateCount
Definition instance_culling_of_stratholme.cpp:407
uint32 _loadTimer
Definition instance_culling_of_stratholme.cpp:412
uint32 _guardianTimer
Definition instance_culling_of_stratholme.cpp:409
uint32 _showCrateTimer
Definition instance_culling_of_stratholme.cpp:408
bool _respawnAndReposition
Definition instance_culling_of_stratholme.cpp:411

References _crateCount, _encounterState, _guardianTimer, _loadTimer, _respawnAndReposition, _showCrateTimer, COS_PROGRESS_NOT_STARTED, DataHeader, and InstanceScript::SetHeaders().

Member Function Documentation

◆ ChromieWhisper()

void instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::ChromieWhisper ( uint8  textId)
inline
304 {
305 if (!instance->GetPlayers().IsEmpty())
306 if (Player* player = instance->GetPlayers().getFirst()->GetSource())
307 {
308 Position pos = player->GetPosition();
310 {
311 cr->SetVisible(false);
312 cr->DespawnOrUnsummon(1s);
313 sCreatureTextMgr->SendChat(cr, textId, player, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);
314 }
315 }
316 }
#define sCreatureTextMgr
Definition CreatureTextMgr.h:110
@ TEXT_RANGE_MAP
Definition CreatureTextMgr.h:33
@ CHAT_MSG_ADDON
Definition SharedDefines.h:3368
@ 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:327
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:2159
Definition Player.h:1084
FROM * GetSource() const
Definition Reference.h:97
@ NPC_CHROMIE_MIDDLE
Definition culling_of_stratholme.h:63
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.

59 {
60 packet.Worldstates.reserve(5);
66 }
@ 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.

184 {
185 switch (type)
186 {
188 return _encounterState;
190 return _guardianTimer;
193 }
194 return 0;
195 }
@ COS_PROGRESS_FINISHED_INTRO
Definition culling_of_stratholme.h:121
@ DATA_GUARDIANTIME_EVENT
Definition culling_of_stratholme.h:29
@ DATA_INTRO_EVENT_FINISHED
Definition culling_of_stratholme.h:38
@ DATA_ARTHAS_EVENT
Definition culling_of_stratholme.h:28

References _encounterState, _guardianTimer, COS_PROGRESS_FINISHED_INTRO, DATA_ARTHAS_EVENT, DATA_GUARDIANTIME_EVENT, and DATA_INTRO_EVENT_FINISHED.

Referenced by Reposition(), and SetData().

◆ GetGuidData()

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

Reimplemented from ZoneScript.

198 {
199 switch (identifier)
200 {
201 case DATA_SHKAF_GATE:
202 return _shkafGateGUID;
203 case DATA_ARTHAS:
204 return _arthasGUID;
205 case DATA_EXIT_GATE:
206 return _exitGateGUID;
207 }
208
209 return ObjectGuid::Empty;
210 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ DATA_SHKAF_GATE
Definition culling_of_stratholme.h:45
@ DATA_EXIT_GATE
Definition culling_of_stratholme.h:46
@ DATA_ARTHAS
Definition culling_of_stratholme.h:43
ObjectGuid _arthasGUID
Definition instance_culling_of_stratholme.cpp:400
ObjectGuid _shkafGateGUID
Definition instance_culling_of_stratholme.cpp:404
ObjectGuid _exitGateGUID
Definition instance_culling_of_stratholme.cpp:405

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

◆ GetSaveData()

std::string instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::GetSaveData ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

358 {
360
361 std::ostringstream saveStream;
362 saveStream << "C S " << _encounterState << ' ' << _guardianTimer;
363
365 return saveStream.str();
366 }
#define OUT_SAVE_INST_DATA_COMPLETE
Definition InstanceScript.h:30
#define OUT_SAVE_INST_DATA
Definition InstanceScript.h:29

References _encounterState, _guardianTimer, OUT_SAVE_INST_DATA, and OUT_SAVE_INST_DATA_COMPLETE.

◆ IsEncounterInProgress()

bool instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

54 {
55 return false;
56 }

◆ Load()

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

Reimplemented from InstanceScript.

369 {
370 if (!in)
371 {
373 return;
374 }
375
377
378 char dataHead1, dataHead2;
379 uint32 data0, data1;
380
381 std::istringstream loadStream(in);
382 loadStream >> dataHead1 >> dataHead2 >> data0 >> data1;
383
384 if (dataHead1 == 'C' && dataHead2 == 'S')
385 {
386 _encounterState = data0;
387 _guardianTimer = data1;
388
389 //UpdateEventState();
390 _loadTimer++;
391 }
392 else
394
396 }
std::uint32_t uint32
Definition Define.h:107
#define OUT_LOAD_INST_DATA_FAIL
Definition InstanceScript.h:33
#define OUT_LOAD_INST_DATA_COMPLETE
Definition InstanceScript.h:32
#define OUT_LOAD_INST_DATA(a)
Definition InstanceScript.h:31

References _encounterState, _guardianTimer, _loadTimer, OUT_LOAD_INST_DATA, OUT_LOAD_INST_DATA_COMPLETE, and OUT_LOAD_INST_DATA_FAIL.

◆ OnCreatureCreate()

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

Reimplemented from ZoneScript.

78 {
79 switch (creature->GetEntry())
80 {
81 case NPC_ARTHAS:
82 _arthasGUID = creature->GetGUID();
84 creature->SetVisible(false);
85 else
86 Reposition(creature);
87 break;
88 case NPC_INFINITE:
89 _infiniteGUID = creature->GetGUID();
90 break;
91 }
92 }
uint32 GetEntry() const
Definition Object.h:116
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
void SetVisible(bool x)
Definition Unit.cpp:11179
@ NPC_ARTHAS
Definition culling_of_stratholme.h:56
@ NPC_INFINITE
Definition culling_of_stratholme.h:55
@ COS_PROGRESS_FINISHED
Definition culling_of_stratholme.h:129
void Reposition(Creature *arthas)
Definition instance_culling_of_stratholme.cpp:318
ObjectGuid _infiniteGUID
Definition instance_culling_of_stratholme.cpp:401

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

◆ OnGameObjectCreate()

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

Reimplemented from ZoneScript.

95 {
96 switch (go->GetEntry())
97 {
98 case GO_SHKAF_GATE:
99 _shkafGateGUID = go->GetGUID();
102 break;
103 case GO_EXIT_GATE:
104 _exitGateGUID = go->GetGUID();
107 break;
108 }
109 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:707
void SetGoState(GOState state)
Definition GameObject.cpp:2462
@ GO_SHKAF_GATE
Definition culling_of_stratholme.h:70
@ COS_PROGRESS_KILLED_EPOCH
Definition culling_of_stratholme.h:126
@ GO_EXIT_GATE
Definition stratholme.h:74

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

◆ OnPlayerEnter()

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

Reimplemented from InstanceScript.

69 {
72
73 if (plr->getRace() != RACE_HUMAN && plr->getRace() != RACE_DWARF && plr->getRace() != RACE_GNOME)
74 plr->CastSpell(plr, ((plr->getGender() == GENDER_MALE) ? SPELL_HUMAN_MALE : SPELL_HUMAN_FEMALE), true);
75 }
@ 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() const
Definition Map.cpp:1834
uint8 getGender() const
Definition Unit.h:848
uint8 getRace(bool original=false) const
Definition Unit.cpp:17262
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:1302
@ SPELL_HUMAN_MALE
Definition culling_of_stratholme.h:84
@ SPELL_HUMAN_FEMALE
Definition culling_of_stratholme.h:83
@ DATA_ARTHAS_REPOSITION
Definition culling_of_stratholme.h:36
void SetData(uint32 type, uint32 data) override
Definition instance_culling_of_stratholme.cpp:111

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
319 {
320 switch (GetData(DATA_ARTHAS_EVENT))
321 {
323 arthas->UpdatePosition(LeaderIntroPos2, true);
326 break;
333 break;
335 arthas->UpdatePosition(LeaderIntroPos3, true);
338 break;
340 arthas->UpdatePosition(LeaderIntroPos4, true);
343 break;
345 arthas->UpdatePosition(LeaderIntroPos5, true);
348 break;
350 arthas->UpdatePosition(LeaderIntroPos6, true);
353 break;
354 }
355 }
void SetHomePosition(float x, float y, float z, float o)
Definition Creature.h:338
void SetFacingTo(float ori)
Definition Unit.cpp:16660
virtual bool UpdatePosition(float x, float y, float z, float ang, bool teleport=false)
Definition Unit.cpp:16164
const Position LeaderIntroPos6
Definition culling_of_stratholme.h:151
const Position LeaderIntroPos5
Definition culling_of_stratholme.h:150
const Position LeaderIntroPos2
Definition culling_of_stratholme.h:146
@ COS_PROGRESS_REACHED_TOWN_HALL
Definition culling_of_stratholme.h:125
@ COS_PROGRESS_LAST_CITY
Definition culling_of_stratholme.h:127
@ COS_PROGRESS_KILLED_MEATHOOK
Definition culling_of_stratholme.h:123
@ COS_PROGRESS_FINISHED_CITY_INTRO
Definition culling_of_stratholme.h:122
@ COS_PROGRESS_KILLED_SALRAMM
Definition culling_of_stratholme.h:124
@ COS_PROGRESS_BEFORE_MALGANIS
Definition culling_of_stratholme.h:128
const Position LeaderIntroPos3
Definition culling_of_stratholme.h:148
const Position LeaderIntroPos2special
Definition culling_of_stratholme.h:147
const Position LeaderIntroPos4
Definition culling_of_stratholme.h:149
float GetOrientation() const
Definition Position.h:124
uint32 GetData(uint32 type) const override
Definition instance_culling_of_stratholme.cpp:183

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.

112 {
113 switch (type)
114 {
115 case DATA_SHOW_CRATES:
117 return;
119 if (!instance->IsHeroic() || !_guardianTimer)
120 return;
123 if (data == 0)
124 {
125 _guardianTimer = 0;
126 SaveToDB();
127 }
128 else if (!_infiniteGUID)
130 return;
131 case DATA_START_WAVES:
133 if (instance->IsHeroic())
134 {
137 if (!_infiniteGUID)
139 }
140 return;
141 case DATA_CRATE_COUNT:
142 _crateCount++;
143 if (_crateCount == 5)
144 {
145 Map::PlayerList const& PlayerList = instance->GetPlayers();
146 if (!PlayerList.IsEmpty())
147 for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
148 i->GetSource()->KilledMonsterCredit(NPC_GRAIN_CREATE_TRIGGER);
149
153 }
154
156 return;
158 // Start Event
159 _encounterState = data;
160 if (data == COS_PROGRESS_START_INTRO)
161 {
163 arthas->AI()->DoAction(ACTION_START_EVENT);
164 }
165 else if (data == COS_PROGRESS_KILLED_SALRAMM)
166 {
168 arthas->AI()->DoAction(ACTION_KILLED_SALRAMM);
169 }
170 break;
172 if (data == 2)
174 else if (Creature* arthas = instance->GetCreature(_arthasGUID))
175 Reposition(arthas);
176 return;
177 }
178
179 if (type == DATA_ARTHAS_EVENT)
180 SaveToDB();
181 }
constexpr auto IN_MILLISECONDS
Definition Common.h:53
constexpr auto MINUTE
Definition Common.h:47
@ ACTION_START_EVENT
Definition chapter5.cpp:194
void SaveToDB()
Definition InstanceScript.cpp:41
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition InstanceScript.cpp:621
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:300
Creature * GetCreature(ObjectGuid const &guid)
Definition Map.cpp:2357
@ ACTION_KILLED_SALRAMM
Definition culling_of_stratholme.h:136
@ NPC_GRAIN_CREATE_TRIGGER
Definition culling_of_stratholme.h:64
@ COS_PROGRESS_CRATES_FOUND
Definition culling_of_stratholme.h:119
@ COS_PROGRESS_START_INTRO
Definition culling_of_stratholme.h:120
@ EVENT_SRC_CORRUPTOR
Definition culling_of_stratholme.h:112
const Position EventPos[]
Definition culling_of_stratholme.h:153
@ DATA_SHOW_INFINITE_TIMER
Definition culling_of_stratholme.h:35
@ DATA_START_WAVES
Definition culling_of_stratholme.h:34
@ DATA_CRATE_COUNT
Definition culling_of_stratholme.h:33
@ DATA_SHOW_CRATES
Definition culling_of_stratholme.h:32

References _arthasGUID, _crateCount, _encounterState, _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, Reposition(), InstanceScript::SaveToDB(), SetData(), 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.

213 {
214 if (_loadTimer)
215 {
216 _loadTimer += diff;
217 if (_loadTimer > 3000)
218 {
220 _loadTimer = 0;
221 }
222 }
223 // Used when arthas dies
225 {
227 {
228 if (!arthas->IsAlive())
229 {
230 arthas->setDeathState(DeathState::Dead);
231 arthas->Respawn();
232 }
233 else
234 {
235 arthas->AI()->Reset();
236 _respawnAndReposition = false;
237 }
238 }
239 }
240
241 // Used after 5-th crates is revealed
242 if (_showCrateTimer)
243 {
244 _showCrateTimer += diff;
245 if (_showCrateTimer >= 20000)
246 {
248 _showCrateTimer = 0; // just to be sure
249 }
250 }
251
252 // Used to display how much time players have
253 if (_guardianTimer)
254 {
256 _guardianTimer -= diff;
258
259 if (divAfter == 0)
260 {
261 _guardianTimer = 0;
263
264 // Inform infinite we run out of time
267 cr->AI()->DoAction(ACTION_RUN_OUT_OF_TIME);
268 }
269 else if (div > divAfter)
270 {
271 if (divAfter == 5)
273 else if (divAfter == 1)
275
277 SaveToDB();
278 }
279 }
280 }
@ ACTION_RUN_OUT_OF_TIME
Definition culling_of_stratholme.h:140
void ChromieWhisper(uint8 textId)
Definition instance_culling_of_stratholme.cpp:303
void UpdateEventState()
Definition instance_culling_of_stratholme.cpp:282

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, InstanceScript::SaveToDB(), 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

◆ _encounterState

uint32 instance_culling_of_stratholme::instance_culling_of_stratholme_InstanceMapScript::_encounterState
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: