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

Public Member Functions

 instance_karazhan_InstanceMapScript (Map *map)
 
void OnCreatureCreate (Creature *creature) override
 
void OnUnitDeath (Unit *unit) override
 
void SetData (uint32 type, uint32 data) override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SetGuidData (uint32 type, ObjectGuid data) override
 
void OnGameObjectCreate (GameObject *go) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 data) const 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

uint32 OperaEvent
 
uint32 OzDeathCount
 
uint32 OptionalBossCount
 
uint32 _chessTeam
 
uint32 _chessGamePhase
 
uint32 _chessEvent
 
ObjectGuid m_uiCurtainGUID
 
ObjectGuid m_uiStageDoorLeftGUID
 
ObjectGuid m_uiStageDoorRightGUID
 
ObjectGuid m_uiKilrekGUID
 
ObjectGuid m_uiTerestianGUID
 
ObjectGuid m_uiMoroesGUID
 
ObjectGuid m_uiNightBaneGUID
 
ObjectGuid m_uiLibraryDoor
 
ObjectGuid m_uiMassiveDoor
 
ObjectGuid m_uiSideEntranceDoor
 
ObjectGuid m_uiGamesmansDoor
 
ObjectGuid m_uiGamesmansExitDoor
 
ObjectGuid m_uiNetherspaceDoor
 
ObjectGuid MastersTerraceDoor [2]
 
ObjectGuid ImageGUID
 
ObjectGuid DustCoveredChest
 
ObjectGuid m_uiRelayGUID
 
ObjectGuid _barnesGUID
 
ObjectGuid _echoOfMedivhGUID
 
GuidVector _operaDecorations [EVENT_RAJ]
 
GuidSet _chessPiecesGUID
 
GuidSet _medivhCheatFiresGUID
 

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

instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript ( Map map)
inline
53 : InstanceScript(map)
54 {
58
59 // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered.
61 OzDeathCount = 0;
63
67 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ NOT_STARTED
Definition: InstanceScript.h:56
#define DataHeader
Definition: blackrock_depths.h:23
uint32 const EncounterCount
Definition: blackrock_spire.h:23
ObjectData const creatureData[]
Definition: instance_karazhan.cpp:35
@ CHESS_PHASE_NOT_STARTED
Definition: karazhan.h:169
@ EVENT_OZ
Definition: karazhan.h:75
@ EVENT_RAJ
Definition: karazhan.h:77
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
Definition: InstanceScript.h:140
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:265
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:172
uint32 OperaEvent
Definition: instance_karazhan.cpp:448
uint32 OzDeathCount
Definition: instance_karazhan.cpp:449
uint32 _chessTeam
Definition: instance_karazhan.cpp:451
uint32 _chessEvent
Definition: instance_karazhan.cpp:453
uint32 OptionalBossCount
Definition: instance_karazhan.cpp:450
uint32 _chessGamePhase
Definition: instance_karazhan.cpp:452

References _chessEvent, _chessGamePhase, _chessTeam, CHESS_PHASE_NOT_STARTED, creatureData, DataHeader, EncounterCount, EVENT_OZ, EVENT_RAJ, InstanceScript::LoadObjectData(), NOT_STARTED, OperaEvent, OptionalBossCount, OzDeathCount, InstanceScript::SetBossNumber(), InstanceScript::SetHeaders(), TEAM_NEUTRAL, and urand().

Member Function Documentation

◆ GetData()

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

384 {
385 switch (type)
386 {
388 return OperaEvent;
390 return OzDeathCount;
391 case CHESS_EVENT_TEAM:
392 return _chessTeam;
394 return _chessGamePhase;
395 case DATA_CHESS_EVENT:
396 return _chessEvent;
397 }
398
399 return 0;
400 }
@ DATA_CHESS_GAME_PHASE
Definition: karazhan.h:68
@ DATA_CHESS_EVENT
Definition: karazhan.h:39
@ CHESS_EVENT_TEAM
Definition: karazhan.h:66
@ DATA_OPERA_OZ_DEATHCOUNT
Definition: karazhan.h:44
@ DATA_OPERA_PERFORMANCE
Definition: karazhan.h:34

References _chessEvent, _chessGamePhase, _chessTeam, CHESS_EVENT_TEAM, DATA_CHESS_EVENT, DATA_CHESS_GAME_PHASE, DATA_OPERA_OZ_DEATHCOUNT, DATA_OPERA_PERFORMANCE, OperaEvent, and OzDeathCount.

◆ GetGuidData()

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::GetGuidData ( uint32  data) const
inlineoverridevirtual

Reimplemented from InstanceScript.

403 {
404 switch (data)
405 {
406 case DATA_KILREK:
407 return m_uiKilrekGUID;
408 case DATA_TERESTIAN:
409 return m_uiTerestianGUID;
410 case DATA_MOROES:
411 return m_uiMoroesGUID;
416 case DATA_GO_CURTAINS:
417 return m_uiCurtainGUID;
419 return m_uiLibraryDoor;
421 return m_uiMassiveDoor;
425 return m_uiGamesmansDoor;
429 return m_uiNetherspaceDoor;
431 return MastersTerraceDoor[0];
433 return MastersTerraceDoor[1];
435 return ImageGUID;
436 case DATA_NIGHTBANE:
437 return m_uiNightBaneGUID;
439 return _echoOfMedivhGUID;
441 return DustCoveredChest;
442 }
443
444 return ObjectGuid::Empty;
445 }
@ DATA_KILREK
Definition: karazhan.h:45
@ DATA_GO_STAGEDOORRIGHT
Definition: karazhan.h:51
@ DATA_GO_CURTAINS
Definition: karazhan.h:49
@ DATA_GO_MASSIVE_DOOR
Definition: karazhan.h:53
@ DATA_GO_STAGEDOORLEFT
Definition: karazhan.h:50
@ DATA_GO_GAME_EXIT_DOOR
Definition: karazhan.h:56
@ DATA_ECHO_OF_MEDIVH
Definition: karazhan.h:69
@ DATA_IMAGE_OF_MEDIVH
Definition: karazhan.h:57
@ DATA_DUST_COVERED_CHEST
Definition: karazhan.h:70
@ DATA_MASTERS_TERRACE_DOOR_1
Definition: karazhan.h:58
@ DATA_TERESTIAN
Definition: karazhan.h:37
@ DATA_GO_GAME_DOOR
Definition: karazhan.h:55
@ DATA_MOROES
Definition: karazhan.h:31
@ DATA_GO_SIDE_ENTRANCE_DOOR
Definition: karazhan.h:60
@ DATA_GO_LIBRARY_DOOR
Definition: karazhan.h:52
@ DATA_NIGHTBANE
Definition: karazhan.h:41
@ DATA_MASTERS_TERRACE_DOOR_2
Definition: karazhan.h:59
@ DATA_GO_NETHER_DOOR
Definition: karazhan.h:54
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid m_uiMassiveDoor
Definition: instance_karazhan.cpp:463
ObjectGuid _echoOfMedivhGUID
Definition: instance_karazhan.cpp:473
ObjectGuid m_uiNetherspaceDoor
Definition: instance_karazhan.cpp:467
ObjectGuid m_uiGamesmansDoor
Definition: instance_karazhan.cpp:465
ObjectGuid MastersTerraceDoor[2]
Definition: instance_karazhan.cpp:468
ObjectGuid m_uiGamesmansExitDoor
Definition: instance_karazhan.cpp:466
ObjectGuid m_uiLibraryDoor
Definition: instance_karazhan.cpp:462
ObjectGuid m_uiSideEntranceDoor
Definition: instance_karazhan.cpp:464
ObjectGuid m_uiKilrekGUID
Definition: instance_karazhan.cpp:458
ObjectGuid m_uiCurtainGUID
Definition: instance_karazhan.cpp:455
ObjectGuid DustCoveredChest
Definition: instance_karazhan.cpp:470
ObjectGuid m_uiStageDoorLeftGUID
Definition: instance_karazhan.cpp:456
ObjectGuid m_uiMoroesGUID
Definition: instance_karazhan.cpp:460
ObjectGuid m_uiTerestianGUID
Definition: instance_karazhan.cpp:459
ObjectGuid m_uiStageDoorRightGUID
Definition: instance_karazhan.cpp:457
ObjectGuid ImageGUID
Definition: instance_karazhan.cpp:469
ObjectGuid m_uiNightBaneGUID
Definition: instance_karazhan.cpp:461

References _echoOfMedivhGUID, DATA_DUST_COVERED_CHEST, DATA_ECHO_OF_MEDIVH, DATA_GO_CURTAINS, DATA_GO_GAME_DOOR, DATA_GO_GAME_EXIT_DOOR, DATA_GO_LIBRARY_DOOR, DATA_GO_MASSIVE_DOOR, DATA_GO_NETHER_DOOR, DATA_GO_SIDE_ENTRANCE_DOOR, DATA_GO_STAGEDOORLEFT, DATA_GO_STAGEDOORRIGHT, DATA_IMAGE_OF_MEDIVH, DATA_KILREK, DATA_MASTERS_TERRACE_DOOR_1, DATA_MASTERS_TERRACE_DOOR_2, DATA_MOROES, DATA_NIGHTBANE, DATA_TERESTIAN, DustCoveredChest, ObjectGuid::Empty, ImageGUID, m_uiCurtainGUID, m_uiGamesmansDoor, m_uiGamesmansExitDoor, m_uiKilrekGUID, m_uiLibraryDoor, m_uiMassiveDoor, m_uiMoroesGUID, m_uiNetherspaceDoor, m_uiNightBaneGUID, m_uiSideEntranceDoor, m_uiStageDoorLeftGUID, m_uiStageDoorRightGUID, m_uiTerestianGUID, and MastersTerraceDoor.

◆ OnCreatureCreate()

void instance_karazhan::instance_karazhan_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

70 {
71 switch (creature->GetEntry())
72 {
73 case NPC_KILREK:
74 m_uiKilrekGUID = creature->GetGUID();
75 break;
77 m_uiTerestianGUID = creature->GetGUID();
78 break;
79 case NPC_MOROES:
80 m_uiMoroesGUID = creature->GetGUID();
81 break;
82 case NPC_NIGHTBANE:
83 m_uiNightBaneGUID = creature->GetGUID();
84 break;
85 case NPC_RELAY:
86 m_uiRelayGUID = creature->GetGUID();
87 break;
88 case NPC_BARNES:
89 _barnesGUID = creature->GetGUID();
90 if (GetBossState(DATA_OPERA_PERFORMANCE) != DONE && !creature->IsAlive())
91 {
92 creature->Respawn(true);
93 }
94 break;
95 case NPC_PAWN_H:
96 case NPC_KNIGHT_H:
97 case NPC_QUEEN_H:
98 case NPC_BISHOP_H:
99 case NPC_ROOK_H:
100 case NPC_KING_H:
101 case NPC_PAWN_A:
102 case NPC_KNIGHT_A:
103 case NPC_QUEEN_A:
104 case NPC_BISHOP_A:
105 case NPC_ROOK_A:
106 case NPC_KING_A:
107 _chessPiecesGUID.insert(creature->GetGUID());
108 creature->SetHealth(creature->GetMaxHealth());
109 break;
111 _medivhCheatFiresGUID.insert(creature->GetGUID());
112 break;
114 _echoOfMedivhGUID = creature->GetGUID();
115 break;
116 default:
117 break;
118 }
119
121 }
@ DONE
Definition: InstanceScript.h:59
@ NPC_ECHO_OF_MEDIVH
Definition: karazhan.h:106
@ NPC_QUEEN_H
Definition: karazhan.h:111
@ NPC_ROOK_A
Definition: karazhan.h:116
@ NPC_KNIGHT_H
Definition: karazhan.h:109
@ NPC_KING_A
Definition: karazhan.h:118
@ NPC_TERESTIAN_ILLHOOF
Definition: karazhan.h:85
@ NPC_MOROES
Definition: karazhan.h:86
@ NPC_PAWN_H
Definition: karazhan.h:107
@ NPC_KILREK
Definition: karazhan.h:101
@ NPC_PAWN_A
Definition: karazhan.h:108
@ NPC_ROOK_H
Definition: karazhan.h:115
@ NPC_NIGHTBANE
Definition: karazhan.h:90
@ NPC_BARNES
Definition: karazhan.h:103
@ NPC_KING_H
Definition: karazhan.h:117
@ NPC_QUEEN_A
Definition: karazhan.h:112
@ NPC_BISHOP_H
Definition: karazhan.h:113
@ NPC_CHESS_EVENT_MEDIVH_CHEAT_FIRES
Definition: karazhan.h:119
@ NPC_BISHOP_A
Definition: karazhan.h:114
@ NPC_RELAY
Definition: karazhan.h:102
@ NPC_KNIGHT_A
Definition: karazhan.h:110
void Respawn(bool force=false)
Definition: Creature.cpp:2005
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
uint32 GetMaxHealth() const
Definition: Unit.h:1441
bool IsAlive() const
Definition: Unit.h:1808
void SetHealth(uint32 val)
Definition: Unit.cpp:15370
void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:58
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:230
ObjectGuid m_uiRelayGUID
Definition: instance_karazhan.cpp:471
GuidSet _chessPiecesGUID
Definition: instance_karazhan.cpp:476
ObjectGuid _barnesGUID
Definition: instance_karazhan.cpp:472
GuidSet _medivhCheatFiresGUID
Definition: instance_karazhan.cpp:477

References _barnesGUID, _chessPiecesGUID, _echoOfMedivhGUID, _medivhCheatFiresGUID, DATA_OPERA_PERFORMANCE, DONE, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), Unit::GetMaxHealth(), Unit::IsAlive(), m_uiKilrekGUID, m_uiMoroesGUID, m_uiNightBaneGUID, m_uiRelayGUID, m_uiTerestianGUID, NPC_BARNES, NPC_BISHOP_A, NPC_BISHOP_H, NPC_CHESS_EVENT_MEDIVH_CHEAT_FIRES, NPC_ECHO_OF_MEDIVH, NPC_KILREK, NPC_KING_A, NPC_KING_H, NPC_KNIGHT_A, NPC_KNIGHT_H, NPC_MOROES, NPC_NIGHTBANE, NPC_PAWN_A, NPC_PAWN_H, NPC_QUEEN_A, NPC_QUEEN_H, NPC_RELAY, NPC_ROOK_A, NPC_ROOK_H, NPC_TERESTIAN_ILLHOOF, InstanceScript::OnCreatureCreate(), Creature::Respawn(), and Unit::SetHealth().

◆ OnGameObjectCreate()

void instance_karazhan::instance_karazhan_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

307 {
308 switch (go->GetEntry())
309 {
310 case GO_STAGE_CURTAIN:
311 m_uiCurtainGUID = go->GetGUID();
312 break;
317 break;
322 break;
324 m_uiLibraryDoor = go->GetGUID();
325 break;
326 case GO_MASSIVE_DOOR:
327 m_uiMassiveDoor = go->GetGUID();
330 else
332 break;
335 break;
338 break;
343 else
345 break;
347 MastersTerraceDoor[0] = go->GetGUID();
348 break;
350 MastersTerraceDoor[1] = go->GetGUID();
351 break;
356 else
358 break;
361 break;
362 case GO_OZ_BACKDROP:
363 case GO_OZ_HAY:
364 _operaDecorations[EVENT_OZ - 1].push_back(go->GetGUID());
365 break;
366 case GO_HOOD_BACKDROP:
367 case GO_HOOD_TREE:
368 case GO_HOOD_HOUSE:
369 _operaDecorations[EVENT_HOOD - 1].push_back(go->GetGUID());
370 break;
371 case GO_RAJ_BACKDROP:
372 case GO_RAJ_MOON:
373 case GO_RAJ_BALCONY:
374 _operaDecorations[EVENT_RAJ - 1].push_back(go->GetGUID());
375 break;
376 default:
377 break;
378 }
379
381 }
@ GO_STATE_ACTIVE
Definition: GameObjectData.h:690
@ IN_PROGRESS
Definition: InstanceScript.h:57
@ EVENT_HOOD
Definition: karazhan.h:76
@ DATA_PRINCE
Definition: karazhan.h:61
@ DATA_ARAN
Definition: karazhan.h:36
@ GO_HOOD_BACKDROP
Definition: karazhan.h:140
@ GO_HOOD_HOUSE
Definition: karazhan.h:142
@ GO_STAGE_DOOR_RIGHT
Definition: karazhan.h:126
@ GO_STAGE_CURTAIN
Definition: karazhan.h:124
@ GO_RAJ_MOON
Definition: karazhan.h:144
@ GO_OZ_HAY
Definition: karazhan.h:139
@ GO_PRIVATE_LIBRARY_DOOR
Definition: karazhan.h:127
@ GO_RAJ_BACKDROP
Definition: karazhan.h:143
@ GO_MASSIVE_DOOR
Definition: karazhan.h:128
@ GO_RAJ_BALCONY
Definition: karazhan.h:145
@ GO_STAGE_DOOR_LEFT
Definition: karazhan.h:125
@ GO_NETHERSPACE_DOOR
Definition: karazhan.h:131
@ GO_GAMESMAN_HALL_EXIT_DOOR
Definition: karazhan.h:130
@ GO_HOOD_TREE
Definition: karazhan.h:141
@ GO_SIDE_ENTRANCE_DOOR
Definition: karazhan.h:134
@ GO_MASTERS_TERRACE_DOOR
Definition: karazhan.h:132
@ GO_MASTERS_TERRACE_DOOR2
Definition: karazhan.h:133
@ GO_GAMESMAN_HALL_DOOR
Definition: karazhan.h:129
@ GO_DUST_COVERED_CHEST
Definition: karazhan.h:135
@ GO_OZ_BACKDROP
Definition: karazhan.h:138
@ GO_FLAG_LOCKED
Definition: SharedDefines.h:1576
void SetGoState(GOState state)
Definition: GameObject.cpp:2467
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:221
void OnGameObjectCreate(GameObject *go) override
Definition: InstanceScript.cpp:70
GuidVector _operaDecorations[EVENT_RAJ]
Definition: instance_karazhan.cpp:475

References _operaDecorations, DATA_ARAN, DATA_OPERA_PERFORMANCE, DATA_PRINCE, DONE, DustCoveredChest, EVENT_HOOD, EVENT_OZ, EVENT_RAJ, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_DUST_COVERED_CHEST, GO_FLAG_LOCKED, GO_GAMESMAN_HALL_DOOR, GO_GAMESMAN_HALL_EXIT_DOOR, GO_HOOD_BACKDROP, GO_HOOD_HOUSE, GO_HOOD_TREE, GO_MASSIVE_DOOR, GO_MASTERS_TERRACE_DOOR, GO_MASTERS_TERRACE_DOOR2, GO_NETHERSPACE_DOOR, GO_OZ_BACKDROP, GO_OZ_HAY, GO_PRIVATE_LIBRARY_DOOR, GO_RAJ_BACKDROP, GO_RAJ_BALCONY, GO_RAJ_MOON, GO_SIDE_ENTRANCE_DOOR, GO_STAGE_CURTAIN, GO_STAGE_DOOR_LEFT, GO_STAGE_DOOR_RIGHT, GO_STATE_ACTIVE, IN_PROGRESS, m_uiCurtainGUID, m_uiGamesmansDoor, m_uiGamesmansExitDoor, m_uiLibraryDoor, m_uiMassiveDoor, m_uiNetherspaceDoor, m_uiSideEntranceDoor, m_uiStageDoorLeftGUID, m_uiStageDoorRightGUID, MastersTerraceDoor, InstanceScript::OnGameObjectCreate(), GameObject::RemoveGameObjectFlag(), GameObject::SetGameObjectFlag(), and GameObject::SetGoState().

◆ OnUnitDeath()

void instance_karazhan::instance_karazhan_InstanceMapScript::OnUnitDeath ( Unit unit)
inlineoverridevirtual

Reimplemented from ZoneScript.

124 {
125 Creature* creature = unit->ToCreature();
126 if (!creature)
127 return;
128
129 switch (creature->GetEntry())
130 {
133 case NPC_SHADOWBAT:
136 case NPC_PHASE_HOUND:
137 case NPC_DREADBEAST:
138 case NPC_SHADOWBEAST:
140 {
143 {
145 {
148 break;
151 break;
154 break;
155 }
156 }
157 }
158 break;
163 break;
164 default:
165 break;
166 }
167 }
@ TO_BE_DECIDED
Definition: InstanceScript.h:61
const Position OptionalSpawn[]
Definition: instance_karazhan.cpp:28
@ NPC_VAMPIRIC_SHADOWBAT
Definition: karazhan.h:96
@ NPC_PHASE_HOUND
Definition: karazhan.h:98
@ NPC_GREATER_SHADOWBAT
Definition: karazhan.h:97
@ NPC_SHADOWBEAST
Definition: karazhan.h:100
@ NPC_ROKAD_THE_RAVAGER
Definition: karazhan.h:83
@ NPC_SHADOWBAT
Definition: karazhan.h:95
@ NPC_HYAKISS_THE_LURKER
Definition: karazhan.h:82
@ NPC_SHADIKITH_THE_GLIDER
Definition: karazhan.h:84
@ NPC_DREADBEAST
Definition: karazhan.h:99
@ NPC_COLDMIST_WIDOW
Definition: karazhan.h:93
@ NPC_COLDMIST_STALKER
Definition: karazhan.h:94
@ OPTIONAL_BOSS_REQUIRED_DEATH_COUNT
Definition: karazhan.h:150
@ DATA_OPTIONAL_BOSS
Definition: karazhan.h:33
Definition: Creature.h:46
Creature * ToCreature()
Definition: Object.h:197
Map * instance
Definition: InstanceScript.h:146
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:2129
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_karazhan.cpp:269

References DATA_OPTIONAL_BOSS, DONE, InstanceScript::GetBossState(), Object::GetEntry(), InstanceScript::instance, NPC_COLDMIST_STALKER, NPC_COLDMIST_WIDOW, NPC_DREADBEAST, NPC_GREATER_SHADOWBAT, NPC_HYAKISS_THE_LURKER, NPC_PHASE_HOUND, NPC_ROKAD_THE_RAVAGER, NPC_SHADIKITH_THE_GLIDER, NPC_SHADOWBAT, NPC_SHADOWBEAST, NPC_VAMPIRIC_SHADOWBAT, OPTIONAL_BOSS_REQUIRED_DEATH_COUNT, OptionalBossCount, OptionalSpawn, SetBossState(), Map::SummonCreature(), TO_BE_DECIDED, Object::ToCreature(), and urand().

◆ SetBossState()

bool instance_karazhan::instance_karazhan_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

270 {
271 if (!InstanceScript::SetBossState(type, state))
272 return false;
273
274 switch (type)
275 {
277 if (state == DONE)
278 {
282 sideEntrance->RemoveGameObjectFlag(GO_FLAG_LOCKED);
284 }
285 else if (state == FAIL)
286 {
291 }
292 break;
293 default:
294 break;
295 }
296
297 return true;
298 }
@ FAIL
Definition: InstanceScript.h:58
@ ENCOUNTER_CREDIT_KILL_CREATURE
Definition: Map.h:307
Definition: GameObject.h:122
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:317
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
void DoRespawnCreature(ObjectGuid guid, bool force=false)
Definition: InstanceScript.cpp:503
void UpdateEncounterState(EncounterCreditType type, uint32 creditEntry, Unit *source)
Definition: Map.cpp:3450
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3298

References _barnesGUID, DATA_OPERA_PERFORMANCE, DONE, InstanceScript::DoRespawnCreature(), ENCOUNTER_CREDIT_KILL_CREATURE, FAIL, Map::GetGameObject(), GO_FLAG_LOCKED, InstanceScript::HandleGameObject(), InstanceScript::instance, m_uiCurtainGUID, m_uiSideEntranceDoor, m_uiStageDoorLeftGUID, m_uiStageDoorRightGUID, InstanceScript::SetBossState(), and Map::UpdateEncounterState().

Referenced by OnUnitDeath().

◆ SetData()

void instance_karazhan::instance_karazhan_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

170 {
171 switch (type)
172 {
174 if (data == SPECIAL)
175 ++OzDeathCount;
176 else if (data == IN_PROGRESS)
177 OzDeathCount = 0;
178 break;
180 {
181 for (ObjectGuid const& guid : _operaDecorations[data - 1])
182 {
184 }
185
186 break;
187 }
188 case DATA_CHESS_EVENT:
189 {
190 _chessEvent = data;
191
192 switch (data)
193 {
194 case IN_PROGRESS:
195 case SPECIAL:
196 {
198 for (ObjectGuid const& chessPieceGUID : _chessPiecesGUID)
199 {
200 if (Creature* piece = instance->GetCreature(chessPieceGUID))
201 {
203 {
204 if (piece->GetFaction() == CHESS_FACTION_ALLIANCE)
205 {
206 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
207 }
208 }
209 else if (_chessTeam == TEAM_HORDE)
210 {
211 if (piece->GetFaction() == CHESS_FACTION_HORDE)
212 {
213 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
214 }
215 }
216 else
217 {
218 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
219 }
220 }
221 }
222 break;
223 }
224 default:
226 break;
227 }
228 break;
229 }
230 case CHESS_EVENT_TEAM:
231 _chessTeam = data;
232 break;
234 for (ObjectGuid const& chessPieceGUID : _chessPiecesGUID)
235 {
236 if (Creature* piece = instance->GetCreature(chessPieceGUID))
237 {
238 piece->RemoveAllAuras();
239 piece->setDeathState(JUST_RESPAWNED);
240 piece->SetHealth(piece->GetMaxHealth());
241 float x, y, z, o;
242 piece->GetHomePosition(x, y, z, o);
243 piece->NearTeleportTo(x, y, z, o);
244 piece->AI()->DoAction(ACTION_CHESS_PIECE_RESET_ORIENTATION);
245 piece->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
246 piece->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
247 piece->AI()->Reset();
248 }
249 }
250
251 for (ObjectGuid const& medivhCheatFireGUID : _medivhCheatFiresGUID)
252 {
253 if (Creature* fire = instance->GetCreature(medivhCheatFireGUID))
254 {
255 fire->DespawnOrUnsummon();
256 }
257 }
258
259 _medivhCheatFiresGUID.clear();
260 break;
262 _chessGamePhase = data;
263 break;
264 default:
265 break;
266 }
267 }
constexpr auto DAY
Definition: Common.h:58
@ JUST_RESPAWNED
Definition: Unit.h:320
@ UNIT_NPC_FLAG_GOSSIP
Definition: Unit.h:516
@ UNIT_FLAG_NOT_SELECTABLE
Definition: Unit.h:473
@ SPECIAL
Definition: InstanceScript.h:60
@ CHESS_FACTION_HORDE
Definition: karazhan.h:180
@ CHESS_FACTION_ALLIANCE
Definition: karazhan.h:181
@ SPELL_GAME_IN_SESSION
Definition: karazhan.h:162
@ ACTION_CHESS_PIECE_RESET_ORIENTATION
Definition: karazhan.h:152
@ DATA_SPAWN_OPERA_DECORATIONS
Definition: karazhan.h:62
@ DATA_CHESS_REINIT_PIECES
Definition: karazhan.h:67
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
@ TEAM_HORDE
Definition: SharedDefines.h:733
Definition: ObjectGuid.h:120
void DoCastSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:605
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition: InstanceScript.cpp:587
void DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn=MINUTE)
Definition: InstanceScript.cpp:487
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293

References _chessEvent, _chessGamePhase, _chessPiecesGUID, _chessTeam, _medivhCheatFiresGUID, _operaDecorations, ACTION_CHESS_PIECE_RESET_ORIENTATION, CHESS_EVENT_TEAM, CHESS_FACTION_ALLIANCE, CHESS_FACTION_HORDE, DATA_CHESS_EVENT, DATA_CHESS_GAME_PHASE, DATA_CHESS_REINIT_PIECES, DATA_OPERA_OZ_DEATHCOUNT, DATA_SPAWN_OPERA_DECORATIONS, DAY, InstanceScript::DoCastSpellOnPlayers(), InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), InstanceScript::DoRespawnGameObject(), Map::GetCreature(), IN_PROGRESS, InstanceScript::instance, JUST_RESPAWNED, OzDeathCount, SPECIAL, SPELL_GAME_IN_SESSION, TEAM_ALLIANCE, TEAM_HORDE, UNIT_FLAG_NOT_SELECTABLE, and UNIT_NPC_FLAG_GOSSIP.

◆ SetGuidData()

void instance_karazhan::instance_karazhan_InstanceMapScript::SetGuidData ( uint32  type,
ObjectGuid  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

301 {
302 if (type == DATA_IMAGE_OF_MEDIVH)
303 ImageGUID = data;
304 }

References DATA_IMAGE_OF_MEDIVH, and ImageGUID.

Member Data Documentation

◆ _barnesGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::_barnesGUID
private

Referenced by OnCreatureCreate(), and SetBossState().

◆ _chessEvent

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::_chessEvent
private

◆ _chessGamePhase

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::_chessGamePhase
private

◆ _chessPiecesGUID

GuidSet instance_karazhan::instance_karazhan_InstanceMapScript::_chessPiecesGUID
private

Referenced by OnCreatureCreate(), and SetData().

◆ _chessTeam

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::_chessTeam
private

◆ _echoOfMedivhGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::_echoOfMedivhGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ _medivhCheatFiresGUID

GuidSet instance_karazhan::instance_karazhan_InstanceMapScript::_medivhCheatFiresGUID
private

Referenced by OnCreatureCreate(), and SetData().

◆ _operaDecorations

GuidVector instance_karazhan::instance_karazhan_InstanceMapScript::_operaDecorations[EVENT_RAJ]
private

Referenced by OnGameObjectCreate(), and SetData().

◆ DustCoveredChest

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::DustCoveredChest
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ ImageGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::ImageGUID
private

Referenced by GetGuidData(), and SetGuidData().

◆ m_uiCurtainGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiCurtainGUID
private

◆ m_uiGamesmansDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiGamesmansDoor
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiGamesmansExitDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiGamesmansExitDoor
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiKilrekGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiKilrekGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiLibraryDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiLibraryDoor
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiMassiveDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiMassiveDoor
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiMoroesGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiMoroesGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiNetherspaceDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiNetherspaceDoor
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ m_uiNightBaneGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiNightBaneGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ m_uiRelayGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiRelayGUID
private

Referenced by OnCreatureCreate().

◆ m_uiSideEntranceDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiSideEntranceDoor
private

◆ m_uiStageDoorLeftGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiStageDoorLeftGUID
private

◆ m_uiStageDoorRightGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiStageDoorRightGUID
private

◆ m_uiTerestianGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiTerestianGUID
private

Referenced by GetGuidData(), and OnCreatureCreate().

◆ MastersTerraceDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::MastersTerraceDoor[2]
private

Referenced by GetGuidData(), and OnGameObjectCreate().

◆ OperaEvent

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::OperaEvent
private

◆ OptionalBossCount

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::OptionalBossCount
private

◆ OzDeathCount

uint32 instance_karazhan::instance_karazhan_InstanceMapScript::OzDeathCount
private