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
 
void DoAction (int32 actionId) 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 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 ()
 
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
 
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 OnCreatureEvade (Creature *)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
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_uiNightBaneGUID
 
ObjectGuid m_uiLibraryDoor
 
ObjectGuid m_uiMassiveDoor
 
ObjectGuid m_uiGamesmansExitDoor
 
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
 
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_karazhan_InstanceMapScript()

instance_karazhan::instance_karazhan_InstanceMapScript::instance_karazhan_InstanceMapScript ( Map map)
inline
79 : InstanceScript(map)
80 {
85
86 // 1 - OZ, 2 - HOOD, 3 - RAJ, this never gets altered.
88 OzDeathCount = 0;
90
94 }
@ NOT_STARTED
Definition InstanceScript.h:58
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ TEAM_NEUTRAL
Definition SharedDefines.h:762
#define DataHeader
Definition blackrock_depths.h:23
uint32 const EncounterCount
Definition blackrock_spire.h:23
Definition InstanceScript.h:143
void SetBossNumber(uint32 number)
Definition InstanceScript.h:296
void LoadDoorData(DoorData const *data)
Definition InstanceScript.cpp:176
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition InstanceScript.cpp:188
ObjectData const gameObjectData[]
Definition instance_karazhan.cpp:53
ObjectData const creatureData[]
Definition instance_karazhan.cpp:36
DoorData const doorData[]
Definition instance_karazhan.cpp:59
@ CHESS_PHASE_NOT_STARTED
Definition karazhan.h:189
@ EVENT_OZ
Definition karazhan.h:81
@ EVENT_RAJ
Definition karazhan.h:83
uint32 OperaEvent
Definition instance_karazhan.cpp:476
uint32 OzDeathCount
Definition instance_karazhan.cpp:477
uint32 _chessTeam
Definition instance_karazhan.cpp:479
uint32 _chessEvent
Definition instance_karazhan.cpp:481
uint32 OptionalBossCount
Definition instance_karazhan.cpp:478
uint32 _chessGamePhase
Definition instance_karazhan.cpp:480

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

Member Function Documentation

◆ DoAction()

void instance_karazhan::instance_karazhan_InstanceMapScript::DoAction ( int32  actionId)
inlineoverridevirtual

Reimplemented from InstanceScript.

413 {
414 if (actionId == ACTION_SCHEDULE_RAJ_CHECK)
415 {
416 scheduler.Schedule(10s, [this](TaskContext)
417 {
420
421 if (julliane && romulo)
422 {
425 {
426 julliane->KillSelf();
428 romulo->KillSelf();
430 }
431 else
432 {
434 {
435 julliane->AI()->DoAction(ACTION_RESS_ROMULO);
436 }
437
439 {
440 julliane->AI()->DoAction(ACTION_DO_RESURRECT);
441 }
442 }
443 }
444 });
445 }
446 }
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
Definition Creature.h:43
CreatureAI * AI() const
Definition Creature.h:141
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
TaskScheduler scheduler
Definition InstanceScript.h:293
Definition TaskScheduler.h:421
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition TaskScheduler.h:232
virtual void DoAction(int32)
Definition UnitAI.h:212
bool HasUnitFlag(UnitFlags flags) const
Definition Unit.h:718
void KillSelf(bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition Unit.h:1168
void RemoveUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:720
@ ACTION_DO_RESURRECT
Definition karazhan.h:209
@ ACTION_SCHEDULE_RAJ_CHECK
Definition karazhan.h:207
@ ACTION_RESS_ROMULO
Definition karazhan.h:210
@ DATA_ROMULO
Definition karazhan.h:70
@ DATA_JULIANNE
Definition karazhan.h:71

References ACTION_DO_RESURRECT, ACTION_RESS_ROMULO, ACTION_SCHEDULE_RAJ_CHECK, Creature::AI(), DATA_JULIANNE, DATA_ROMULO, UnitAI::DoAction(), InstanceScript::GetCreature(), Unit::HasUnitFlag(), Unit::KillSelf(), Unit::RemoveUnitFlag(), TaskScheduler::Schedule(), InstanceScript::scheduler, and UNIT_FLAG_NOT_SELECTABLE.

◆ GetData()

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

Reimplemented from ZoneScript.

394 {
395 switch (type)
396 {
398 return OperaEvent;
400 return OzDeathCount;
401 case CHESS_EVENT_TEAM:
402 return _chessTeam;
404 return _chessGamePhase;
405 case DATA_CHESS_EVENT:
406 return _chessEvent;
407 }
408
409 return 0;
410 }
@ DATA_CHESS_GAME_PHASE
Definition karazhan.h:64
@ DATA_CHESS_EVENT
Definition karazhan.h:39
@ CHESS_EVENT_TEAM
Definition karazhan.h:62
@ DATA_OPERA_OZ_DEATHCOUNT
Definition karazhan.h:43
@ 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 ZoneScript.

449 {
450 switch (data)
451 {
456 case DATA_GO_CURTAINS:
457 return m_uiCurtainGUID;
459 return m_uiLibraryDoor;
461 return m_uiMassiveDoor;
463 return ImageGUID;
464 case DATA_NIGHTBANE:
465 return m_uiNightBaneGUID;
467 return _echoOfMedivhGUID;
469 return DustCoveredChest;
470 }
471
472 return ObjectGuid::Empty;
473 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
@ DATA_GO_STAGEDOORRIGHT
Definition karazhan.h:50
@ DATA_GO_CURTAINS
Definition karazhan.h:48
@ DATA_GO_MASSIVE_DOOR
Definition karazhan.h:52
@ DATA_GO_STAGEDOORLEFT
Definition karazhan.h:49
@ DATA_ECHO_OF_MEDIVH
Definition karazhan.h:65
@ DATA_IMAGE_OF_MEDIVH
Definition karazhan.h:55
@ DATA_DUST_COVERED_CHEST
Definition karazhan.h:66
@ DATA_GO_LIBRARY_DOOR
Definition karazhan.h:51
@ DATA_NIGHTBANE
Definition karazhan.h:41
ObjectGuid m_uiMassiveDoor
Definition instance_karazhan.cpp:488
ObjectGuid _echoOfMedivhGUID
Definition instance_karazhan.cpp:494
ObjectGuid m_uiLibraryDoor
Definition instance_karazhan.cpp:487
ObjectGuid m_uiCurtainGUID
Definition instance_karazhan.cpp:483
ObjectGuid DustCoveredChest
Definition instance_karazhan.cpp:491
ObjectGuid m_uiStageDoorLeftGUID
Definition instance_karazhan.cpp:484
ObjectGuid m_uiStageDoorRightGUID
Definition instance_karazhan.cpp:485
ObjectGuid ImageGUID
Definition instance_karazhan.cpp:490
ObjectGuid m_uiNightBaneGUID
Definition instance_karazhan.cpp:486

References _echoOfMedivhGUID, DATA_DUST_COVERED_CHEST, DATA_ECHO_OF_MEDIVH, DATA_GO_CURTAINS, DATA_GO_LIBRARY_DOOR, DATA_GO_MASSIVE_DOOR, DATA_GO_STAGEDOORLEFT, DATA_GO_STAGEDOORRIGHT, DATA_IMAGE_OF_MEDIVH, DATA_NIGHTBANE, DustCoveredChest, ObjectGuid::Empty, ImageGUID, m_uiCurtainGUID, m_uiLibraryDoor, m_uiMassiveDoor, m_uiNightBaneGUID, m_uiStageDoorLeftGUID, and m_uiStageDoorRightGUID.

◆ OnCreatureCreate()

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

Reimplemented from ZoneScript.

97 {
98 switch (creature->GetEntry())
99 {
100 case NPC_NIGHTBANE:
101 m_uiNightBaneGUID = creature->GetGUID();
102 break;
103 case NPC_RELAY:
104 m_uiRelayGUID = creature->GetGUID();
105 break;
106 case NPC_BARNES:
107 _barnesGUID = creature->GetGUID();
108 if (GetBossState(DATA_OPERA_PERFORMANCE) != DONE && !creature->IsAlive())
109 {
110 creature->Respawn(true);
111 }
112 break;
113 case NPC_PAWN_H:
114 case NPC_KNIGHT_H:
115 case NPC_QUEEN_H:
116 case NPC_BISHOP_H:
117 case NPC_ROOK_H:
118 case NPC_KING_H:
119 case NPC_PAWN_A:
120 case NPC_KNIGHT_A:
121 case NPC_QUEEN_A:
122 case NPC_BISHOP_A:
123 case NPC_ROOK_A:
124 case NPC_KING_A:
125 _chessPiecesGUID.insert(creature->GetGUID());
126 creature->SetHealth(creature->GetMaxHealth());
127 break;
129 _medivhCheatFiresGUID.insert(creature->GetGUID());
130 break;
132 _echoOfMedivhGUID = creature->GetGUID();
133 break;
134 case NPC_FIENDISH_IMP:
135 if (Creature* terestrian = GetCreature(DATA_TERESTIAN))
136 {
137 if (terestrian->AI())
138 {
139 terestrian->AI()->JustSummoned(creature);
140 creature->SetInCombatWithZone();
141 }
142 }
143 break;
144 default:
145 break;
146 }
147
149 }
@ DONE
Definition InstanceScript.h:61
void SetInCombatWithZone()
Set in combat all units in the dungeon/raid. Affect only units with IsAIEnabled.
Definition Creature.cpp:2828
void Respawn(bool force=false)
Definition Creature.cpp:2044
void OnCreatureCreate(Creature *creature) override
Definition InstanceScript.cpp:70
EncounterState GetBossState(uint32 id) const
Definition InstanceScript.h:242
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
uint32 GetMaxHealth() const
Definition Unit.h:1039
bool IsAlive() const
Definition Unit.h:1707
void SetHealth(uint32 val)
Definition Unit.cpp:15530
@ NPC_ECHO_OF_MEDIVH
Definition karazhan.h:121
@ NPC_QUEEN_H
Definition karazhan.h:126
@ NPC_ROOK_A
Definition karazhan.h:131
@ NPC_KNIGHT_H
Definition karazhan.h:124
@ NPC_KING_A
Definition karazhan.h:133
@ NPC_PAWN_H
Definition karazhan.h:122
@ NPC_PAWN_A
Definition karazhan.h:123
@ NPC_FIENDISH_IMP
Definition karazhan.h:118
@ NPC_ROOK_H
Definition karazhan.h:130
@ NPC_NIGHTBANE
Definition karazhan.h:96
@ NPC_BARNES
Definition karazhan.h:110
@ NPC_KING_H
Definition karazhan.h:132
@ NPC_QUEEN_A
Definition karazhan.h:127
@ NPC_BISHOP_H
Definition karazhan.h:128
@ NPC_CHESS_EVENT_MEDIVH_CHEAT_FIRES
Definition karazhan.h:134
@ NPC_BISHOP_A
Definition karazhan.h:129
@ NPC_RELAY
Definition karazhan.h:109
@ NPC_KNIGHT_A
Definition karazhan.h:125
@ DATA_TERESTIAN
Definition karazhan.h:37
ObjectGuid m_uiRelayGUID
Definition instance_karazhan.cpp:492
GuidSet _chessPiecesGUID
Definition instance_karazhan.cpp:497
ObjectGuid _barnesGUID
Definition instance_karazhan.cpp:493
GuidSet _medivhCheatFiresGUID
Definition instance_karazhan.cpp:498

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

◆ OnGameObjectCreate()

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

Reimplemented from ZoneScript.

334 {
335 switch (go->GetEntry())
336 {
337 case GO_STAGE_CURTAIN:
338 m_uiCurtainGUID = go->GetGUID();
339 break;
344 break;
349 break;
351 m_uiLibraryDoor = go->GetGUID();
352 break;
353 case GO_MASSIVE_DOOR:
354 m_uiMassiveDoor = go->GetGUID();
357 else
359 break;
362 break;
366 else
368 break;
371 break;
372 case GO_OZ_BACKDROP:
373 case GO_OZ_HAY:
374 _operaDecorations[EVENT_OZ - 1].push_back(go->GetGUID());
375 break;
376 case GO_HOOD_BACKDROP:
377 case GO_HOOD_TREE:
378 case GO_HOOD_HOUSE:
379 _operaDecorations[EVENT_HOOD - 1].push_back(go->GetGUID());
380 break;
381 case GO_RAJ_BACKDROP:
382 case GO_RAJ_MOON:
383 case GO_RAJ_BALCONY:
384 _operaDecorations[EVENT_RAJ - 1].push_back(go->GetGUID());
385 break;
386 default:
387 break;
388 }
389
391 }
@ GO_STATE_ACTIVE
Definition GameObjectData.h:689
@ IN_PROGRESS
Definition InstanceScript.h:59
@ GO_FLAG_LOCKED
Definition SharedDefines.h:1604
void SetGoState(GOState state)
Definition GameObject.cpp:2462
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:217
void RemoveGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:218
void OnGameObjectCreate(GameObject *go) override
Definition InstanceScript.cpp:85
@ EVENT_HOOD
Definition karazhan.h:82
@ DATA_ARAN
Definition karazhan.h:36
@ GO_HOOD_BACKDROP
Definition karazhan.h:160
@ GO_HOOD_HOUSE
Definition karazhan.h:162
@ GO_STAGE_DOOR_RIGHT
Definition karazhan.h:146
@ GO_STAGE_CURTAIN
Definition karazhan.h:144
@ GO_RAJ_MOON
Definition karazhan.h:164
@ GO_OZ_HAY
Definition karazhan.h:159
@ GO_PRIVATE_LIBRARY_DOOR
Definition karazhan.h:147
@ GO_RAJ_BACKDROP
Definition karazhan.h:163
@ GO_MASSIVE_DOOR
Definition karazhan.h:148
@ GO_RAJ_BALCONY
Definition karazhan.h:165
@ GO_STAGE_DOOR_LEFT
Definition karazhan.h:145
@ GO_GAMESMAN_HALL_EXIT_DOOR
Definition karazhan.h:150
@ GO_HOOD_TREE
Definition karazhan.h:161
@ GO_SIDE_ENTRANCE_DOOR
Definition karazhan.h:154
@ GO_DUST_COVERED_CHEST
Definition karazhan.h:155
@ GO_OZ_BACKDROP
Definition karazhan.h:158
GuidVector _operaDecorations[EVENT_RAJ]
Definition instance_karazhan.cpp:496
ObjectGuid m_uiGamesmansExitDoor
Definition instance_karazhan.cpp:489

References _operaDecorations, DATA_ARAN, DATA_OPERA_PERFORMANCE, DONE, DustCoveredChest, EVENT_HOOD, EVENT_OZ, EVENT_RAJ, InstanceScript::GetBossState(), Object::GetEntry(), Object::GetGUID(), GO_DUST_COVERED_CHEST, GO_FLAG_LOCKED, GO_GAMESMAN_HALL_EXIT_DOOR, GO_HOOD_BACKDROP, GO_HOOD_HOUSE, GO_HOOD_TREE, GO_MASSIVE_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_uiGamesmansExitDoor, m_uiLibraryDoor, m_uiMassiveDoor, m_uiStageDoorLeftGUID, m_uiStageDoorRightGUID, InstanceScript::OnGameObjectCreate(), GameObject::RemoveGameObjectFlag(), GameObject::SetGameObjectFlag(), and GameObject::SetGoState().

◆ OnUnitDeath()

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

Reimplemented from ZoneScript.

152 {
153 Creature* creature = unit->ToCreature();
154 if (!creature)
155 return;
156
157 switch (creature->GetEntry())
158 {
161 case NPC_SHADOWBAT:
164 case NPC_PHASE_HOUND:
165 case NPC_DREADBEAST:
166 case NPC_SHADOWBEAST:
168 {
171 {
173 {
176 break;
179 break;
182 break;
183 }
184 }
185 }
186 break;
192 break;
193 default:
194 break;
195 }
196 }
@ TO_BE_DECIDED
Definition InstanceScript.h:63
void PermBindAllPlayers()
Definition Map.cpp:2336
Map * instance
Definition InstanceScript.h:149
InstanceMap * ToInstanceMap()
Definition Map.h:393
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:2174
Creature * ToCreature()
Definition Object.h:205
const Position OptionalSpawn[]
Definition instance_karazhan.cpp:29
@ NPC_VAMPIRIC_SHADOWBAT
Definition karazhan.h:103
@ NPC_PHASE_HOUND
Definition karazhan.h:105
@ NPC_GREATER_SHADOWBAT
Definition karazhan.h:104
@ NPC_SHADOWBEAST
Definition karazhan.h:107
@ NPC_ROKAD_THE_RAVAGER
Definition karazhan.h:89
@ NPC_SHADOWBAT
Definition karazhan.h:102
@ NPC_HYAKISS_THE_LURKER
Definition karazhan.h:88
@ NPC_SHADIKITH_THE_GLIDER
Definition karazhan.h:90
@ NPC_DREADBEAST
Definition karazhan.h:106
@ NPC_COLDMIST_WIDOW
Definition karazhan.h:100
@ NPC_COLDMIST_STALKER
Definition karazhan.h:101
@ OPTIONAL_BOSS_REQUIRED_DEATH_COUNT
Definition karazhan.h:170
@ DATA_OPTIONAL_BOSS
Definition karazhan.h:33
bool SetBossState(uint32 type, EncounterState state) override
Definition instance_karazhan.cpp:298

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, InstanceMap::PermBindAllPlayers(), SetBossState(), Map::SummonCreature(), TO_BE_DECIDED, Object::ToCreature(), Map::ToInstanceMap(), and urand().

◆ SetBossState()

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

Reimplemented from InstanceScript.

299 {
300 if (!InstanceScript::SetBossState(type, state))
301 return false;
302
303 switch (type)
304 {
306 if (state == DONE)
307 {
311 }
312 else if (state == FAIL)
313 {
318 }
319 break;
320 default:
321 break;
322 }
323
324 return true;
325 }
@ FAIL
Definition InstanceScript.h:60
@ ENCOUNTER_CREDIT_KILL_CREATURE
Definition Map.h:151
virtual bool SetBossState(uint32 id, EncounterState state)
Definition InstanceScript.cpp:385
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition InstanceScript.cpp:125
void DoRespawnCreature(ObjectGuid guid, bool force=false)
Definition InstanceScript.cpp:605
void UpdateEncounterState(EncounterCreditType type, uint32 creditEntry, Unit *source)
Definition Map.cpp:2655

References _barnesGUID, DATA_OPERA_PERFORMANCE, DONE, InstanceScript::DoRespawnCreature(), ENCOUNTER_CREDIT_KILL_CREATURE, FAIL, InstanceScript::HandleGameObject(), InstanceScript::instance, m_uiCurtainGUID, 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.

199 {
200 switch (type)
201 {
203 if (data == SPECIAL)
204 ++OzDeathCount;
205 else if (data == IN_PROGRESS)
206 OzDeathCount = 0;
207 break;
209 {
210 for (ObjectGuid const& guid : _operaDecorations[data - 1])
211 {
213 }
214
215 break;
216 }
217 case DATA_CHESS_EVENT:
218 {
219 _chessEvent = data;
220
221 switch (data)
222 {
223 case IN_PROGRESS:
224 case SPECIAL:
225 {
227 for (ObjectGuid const& chessPieceGUID : _chessPiecesGUID)
228 {
229 if (Creature* piece = instance->GetCreature(chessPieceGUID))
230 {
232 {
233 if (piece->GetFaction() == CHESS_FACTION_ALLIANCE)
234 {
235 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
236 }
237 }
238 else if (_chessTeam == TEAM_HORDE)
239 {
240 if (piece->GetFaction() == CHESS_FACTION_HORDE)
241 {
242 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
243 }
244 }
245 else
246 {
247 piece->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
248 }
249 }
250 }
251 break;
252 case DONE:
255 break;
256 }
257 default:
259 break;
260 }
261 break;
262 }
263 case CHESS_EVENT_TEAM:
264 _chessTeam = data;
265 break;
267 for (ObjectGuid const& chessPieceGUID : _chessPiecesGUID)
268 {
269 if (Creature* piece = instance->GetCreature(chessPieceGUID))
270 {
271 piece->RemoveAllAuras();
272 piece->setDeathState(DeathState::JustRespawned);
273 piece->SetHealth(piece->GetMaxHealth());
274 piece->AI()->DoAction(ACTION_CHESS_PIECE_RESET_ORIENTATION);
275 piece->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE);
276 piece->AI()->Reset();
277 }
278 }
279
280 for (ObjectGuid const& medivhCheatFireGUID : _medivhCheatFiresGUID)
281 {
282 if (Creature* fire = instance->GetCreature(medivhCheatFireGUID))
283 {
284 fire->DespawnOrUnsummon();
285 }
286 }
287
288 _medivhCheatFiresGUID.clear();
289 break;
291 _chessGamePhase = data;
292 break;
293 default:
294 break;
295 }
296 }
constexpr auto DAY
Definition Common.h:49
@ SPECIAL
Definition InstanceScript.h:62
@ TEAM_ALLIANCE
Definition SharedDefines.h:760
@ TEAM_HORDE
Definition SharedDefines.h:761
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:315
void DoCastSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:694
void DoRemoveAurasDueToSpellOnPlayers(uint32 spell)
Definition InstanceScript.cpp:683
void DoRespawnGameObject(ObjectGuid guid, uint32 timeToDespawn=MINUTE)
Definition InstanceScript.cpp:573
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
Definition ObjectGuid.h:118
@ CHESS_FACTION_HORDE
Definition karazhan.h:200
@ CHESS_FACTION_ALLIANCE
Definition karazhan.h:201
@ SPELL_GAME_IN_SESSION
Definition karazhan.h:182
@ ACTION_CHESS_PIECE_RESET_ORIENTATION
Definition karazhan.h:172
@ DATA_SPAWN_OPERA_DECORATIONS
Definition karazhan.h:58
@ DATA_CHESS_REINIT_PIECES
Definition karazhan.h:63

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(), DONE, InstanceScript::DoRemoveAurasDueToSpellOnPlayers(), InstanceScript::DoRespawnGameObject(), Map::GetCreature(), InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, JustRespawned, m_uiGamesmansExitDoor, OzDeathCount, InstanceMap::PermBindAllPlayers(), SPECIAL, SPELL_GAME_IN_SESSION, TEAM_ALLIANCE, TEAM_HORDE, Map::ToInstanceMap(), 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.

328 {
329 if (type == DATA_IMAGE_OF_MEDIVH)
330 ImageGUID = data;
331 }

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_uiGamesmansExitDoor

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiGamesmansExitDoor
private

Referenced by OnGameObjectCreate(), and SetData().

◆ 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_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_uiStageDoorLeftGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiStageDoorLeftGUID
private

◆ m_uiStageDoorRightGUID

ObjectGuid instance_karazhan::instance_karazhan_InstanceMapScript::m_uiStageDoorRightGUID
private

◆ 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

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