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

Public Member Functions

 instance_violet_hold_InstanceMapScript (Map *pMap)
 
void Initialize () override
 
bool IsEncounterInProgress () const override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void SetData (uint32 type, uint32 data) override
 
void SetGuidData (uint32 type, ObjectGuid data) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 identifier) const override
 
void StartBossEncounter (uint8 uiBoss)
 
void Update (uint32 diff) override
 
void OnPlayerEnter (Player *plr) override
 
bool DoNeedCleanup (bool enter)
 
void InstanceCleanup ()
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) override
 
void ReadSaveDataMore (std::istringstream &data) override
 
void WriteSaveDataMore (std::ostringstream &data) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void 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)
 

Public Attributes

uint32 m_auiEncounter [MAX_ENCOUNTER]
 
bool CLEANED
 
uint8 EncounterStatus
 
uint32 uiFirstBoss
 
uint32 uiSecondBoss
 
std::string str_data
 
EventMap events
 
uint8 GateHealth
 
uint8 WaveCount
 
uint8 PortalLocation
 
bool bAchiev
 
bool bDefensesUsed
 
GuidVector GO_ActivationCrystalGUID
 
ObjectGuid GO_MainGateGUID
 
ObjectGuid GO_MoraggCellGUID
 
ObjectGuid GO_ErekemCellGUID
 
ObjectGuid GO_ErekemRightGuardCellGUID
 
ObjectGuid GO_ErekemLeftGuardCellGUID
 
ObjectGuid GO_IchoronCellGUID
 
ObjectGuid GO_LavanthorCellGUID
 
ObjectGuid GO_XevozzCellGUID
 
ObjectGuid GO_ZuramatCellGUID
 
GuidSet trashMobs
 
ObjectGuid NPC_SinclariGUID
 
ObjectGuid NPC_GuardGUID [4]
 
ObjectGuid NPC_PortalGUID
 
ObjectGuid NPC_DoorSealGUID
 
ObjectGuid NPC_MoraggGUID
 
ObjectGuid NPC_ErekemGUID
 
ObjectGuid NPC_ErekemGuardGUID [2]
 
ObjectGuid NPC_IchoronGUID
 
ObjectGuid NPC_LavanthorGUID
 
ObjectGuid NPC_XevozzGUID
 
ObjectGuid NPC_ZuramatGUID
 
ObjectGuid NPC_CyanigosaGUID
 
- Public Attributes inherited from InstanceScript
Mapinstance
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- 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_violet_hold_InstanceMapScript()

instance_violet_hold::instance_violet_hold_InstanceMapScript::instance_violet_hold_InstanceMapScript ( Map pMap)
inline
41: InstanceScript(pMap) {}
Definition: InstanceScript.h:140

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

626 {
627 switch(criteria_id)
628 {
630 return GateHealth == 100 && !bDefensesUsed;
633 return bAchiev;
634 }
635 return false;
636 }
@ CRITERIA_DEFENSELESS
Definition: violet_hold.h:149
@ CRITERIA_DEHYDRATION
Definition: violet_hold.h:151
@ CRITERIA_A_VOID_DANCE
Definition: violet_hold.h:150
bool bAchiev
Definition: instance_violet_hold.cpp:52
uint8 GateHealth
Definition: instance_violet_hold.cpp:49
bool bDefensesUsed
Definition: instance_violet_hold.cpp:53

References bAchiev, bDefensesUsed, CRITERIA_A_VOID_DANCE, CRITERIA_DEFENSELESS, CRITERIA_DEHYDRATION, and GateHealth.

◆ DoNeedCleanup()

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::DoNeedCleanup ( bool  enter)
inline
527 {
528 uint8 aliveCount = 0;
529 Map::PlayerList const& pl = instance->GetPlayers();
530 for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
531 if( Player* plr = itr->GetSource() )
532 if( plr->IsAlive() && !plr->IsGameMaster() && !plr->HasAura(27827)/*spirit of redemption aura*/ )
533 ++aliveCount;
534
535 bool need = enter ? aliveCount <= 1 : aliveCount == 0;
536 if( !need && CLEANED )
537 CLEANED = false;
538 return need;
539 }
std::uint8_t uint8
Definition: Define.h:110
Definition: LinkedList.h:139
Definition: Player.h:1046
Map * instance
Definition: InstanceScript.h:146
PlayerList const & GetPlayers() const
Definition: Map.h:484
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
iterator end()
Definition: MapRefMgr.h:37
bool CLEANED
Definition: instance_violet_hold.cpp:44

References MapRefMgr::begin(), CLEANED, MapRefMgr::end(), Map::GetPlayers(), and InstanceScript::instance.

Referenced by OnPlayerEnter(), and Update().

◆ GetData()

uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

285 {
286 switch(type)
287 {
289 return (uint32)EncounterStatus;
290 case DATA_WAVE_COUNT:
291 return (uint32)WaveCount;
293 return PortalLocation;
295 return uiFirstBoss;
297 return uiSecondBoss;
298 }
299
300 return 0;
301 }
std::uint32_t uint32
Definition: Define.h:108
@ DATA_ENCOUNTER_STATUS
Definition: eye_of_eternity.h:57
@ DATA_FIRST_BOSS_NUMBER
Definition: violet_hold.h:134
@ DATA_WAVE_COUNT
Definition: violet_hold.h:130
@ DATA_SECOND_BOSS_NUMBER
Definition: violet_hold.h:135
@ DATA_PORTAL_LOCATION
Definition: violet_hold.h:131
uint8 WaveCount
Definition: instance_violet_hold.cpp:50
uint8 PortalLocation
Definition: instance_violet_hold.cpp:51
uint32 uiSecondBoss
Definition: instance_violet_hold.cpp:46
uint8 EncounterStatus
Definition: instance_violet_hold.cpp:45
uint32 uiFirstBoss
Definition: instance_violet_hold.cpp:46

References DATA_ENCOUNTER_STATUS, DATA_FIRST_BOSS_NUMBER, DATA_PORTAL_LOCATION, DATA_SECOND_BOSS_NUMBER, DATA_WAVE_COUNT, EncounterStatus, PortalLocation, uiFirstBoss, uiSecondBoss, and WaveCount.

Referenced by Update().

◆ GetGuidData()

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GetGuidData ( uint32  identifier) const
inlineoverridevirtual

Reimplemented from InstanceScript.

304 {
305 switch (identifier)
306 {
308 return NPC_PortalGUID;
310 return NPC_DoorSealGUID;
311 case DATA_EREKEM_GUID:
312 return NPC_ErekemGUID;
314 return NPC_ErekemGuardGUID[0];
316 return NPC_ErekemGuardGUID[1];
318 return NPC_IchoronGUID;
319 }
320
321 return ObjectGuid::Empty;
322 }
@ DATA_TELEPORTATION_PORTAL_GUID
Definition: violet_hold.h:132
@ DATA_DOOR_SEAL_GUID
Definition: violet_hold.h:133
@ DATA_ICHORON_GUID
Definition: violet_hold.h:143
@ DATA_EREKEM_GUARD_2_GUID
Definition: violet_hold.h:142
@ DATA_EREKEM_GUARD_1_GUID
Definition: violet_hold.h:141
@ DATA_EREKEM_GUID
Definition: violet_hold.h:140
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid NPC_PortalGUID
Definition: instance_violet_hold.cpp:70
ObjectGuid NPC_IchoronGUID
Definition: instance_violet_hold.cpp:76
ObjectGuid NPC_ErekemGuardGUID[2]
Definition: instance_violet_hold.cpp:75
ObjectGuid NPC_DoorSealGUID
Definition: instance_violet_hold.cpp:71
ObjectGuid NPC_ErekemGUID
Definition: instance_violet_hold.cpp:74

References DATA_DOOR_SEAL_GUID, DATA_EREKEM_GUARD_1_GUID, DATA_EREKEM_GUARD_2_GUID, DATA_EREKEM_GUID, DATA_ICHORON_GUID, DATA_TELEPORTATION_PORTAL_GUID, ObjectGuid::Empty, NPC_DoorSealGUID, NPC_ErekemGuardGUID, NPC_ErekemGUID, NPC_IchoronGUID, and NPC_PortalGUID.

◆ Initialize()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

83 {
85 memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
86 CLEANED = false;
88 uiFirstBoss = 0;
89 uiSecondBoss = 0;
90 events.Reset();
91 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
92 GateHealth = 100;
93 WaveCount = 0;
95 bDefensesUsed = false;
96
98 }
@ NOT_STARTED
Definition: InstanceScript.h:56
#define DataHeader
Definition: blackrock_depths.h:23
@ EVENT_CHECK_PLAYERS
Definition: boss_kiljaeden.cpp:117
events
Definition: boss_sartura.cpp:43
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
GuidVector GO_ActivationCrystalGUID
Definition: instance_violet_hold.cpp:55
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_violet_hold.cpp:43

References bDefensesUsed, CLEANED, DataHeader, EncounterStatus, EVENT_CHECK_PLAYERS, GateHealth, GO_ActivationCrystalGUID, m_auiEncounter, NOT_STARTED, PortalLocation, InstanceScript::SetHeaders(), uiFirstBoss, uiSecondBoss, and WaveCount.

◆ InstanceCleanup()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::InstanceCleanup ( )
inline
542 {
543 if( CLEANED )
544 return;
545 CLEANED = true;
546
547 // reset defense crystals
548 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
549 if (GameObject* go = instance->GetGameObject(guid))
550 {
551 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
552 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
553 }
554
555 // reset positions of Sinclari and Guards
556 if (Creature* c = instance->GetCreature(NPC_SinclariGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); }
557 for (uint8 i = 0; i < 4; ++i)
559 {
560 c->DespawnOrUnsummon();
561 c->SetRespawnTime(3);
563 c->SetVisible(false);
564 else
565 c->SetVisible(true);
566 c->SetReactState(REACT_AGGRESSIVE);
567 }
568
569 // remove portal if any
571 c->DespawnOrUnsummon();
573
574 // remove trash
575 for (ObjectGuid const& guid : trashMobs)
576 if (Creature* c = instance->GetCreature(guid))
577 c->DespawnOrUnsummon();
578
579 trashMobs.clear();
580
581 // clear door seal damaging auras:
583 c->RemoveAllAuras();
584
585 // open main gate
587
588 if (m_auiEncounter[MAX_ENCOUNTER - 1] != DONE) // instance not finished
589 {
590 // close all cells
599
600 // respawn bosses
601 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
602 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
603 if (Creature* c = instance->GetCreature(NPC_ErekemGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
604 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[0])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
605 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[1])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
606 if (Creature* c = instance->GetCreature(NPC_IchoronGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
607 if (Creature* c = instance->GetCreature(NPC_LavanthorGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
608 if (Creature* c = instance->GetCreature(NPC_XevozzGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
609 if (Creature* c = instance->GetCreature(NPC_ZuramatGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
610 if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) { c->DespawnOrUnsummon(); }
611 }
612
613 // reinitialize variables and events
616 GateHealth = 100;
617 WaveCount = 0;
618 bDefensesUsed = false;
621 events.Reset();
622 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
623 }
@ REACT_AGGRESSIVE
Definition: Unit.h:1025
@ UNIT_FLAG_NON_ATTACKABLE
Definition: Unit.h:449
@ DONE
Definition: InstanceScript.h:59
@ WORLD_STATE_VH_SHOW
Definition: violet_hold.h:94
#define MAX_ENCOUNTER
Definition: violet_hold.h:21
@ GO_FLAG_NOT_SELECTABLE
Definition: SharedDefines.h:1579
Definition: Creature.h:46
Definition: GameObject.h:122
Definition: ObjectGuid.h:120
void Clear()
Definition: ObjectGuid.h:140
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:519
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3298
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293
ObjectGuid GO_MoraggCellGUID
Definition: instance_violet_hold.cpp:58
ObjectGuid NPC_MoraggGUID
Definition: instance_violet_hold.cpp:73
ObjectGuid GO_ErekemLeftGuardCellGUID
Definition: instance_violet_hold.cpp:61
ObjectGuid GO_XevozzCellGUID
Definition: instance_violet_hold.cpp:64
ObjectGuid NPC_SinclariGUID
Definition: instance_violet_hold.cpp:68
ObjectGuid NPC_ZuramatGUID
Definition: instance_violet_hold.cpp:79
GuidSet trashMobs
Definition: instance_violet_hold.cpp:67
ObjectGuid GO_LavanthorCellGUID
Definition: instance_violet_hold.cpp:63
ObjectGuid NPC_CyanigosaGUID
Definition: instance_violet_hold.cpp:80
ObjectGuid NPC_GuardGUID[4]
Definition: instance_violet_hold.cpp:69
ObjectGuid GO_MainGateGUID
Definition: instance_violet_hold.cpp:56
ObjectGuid GO_IchoronCellGUID
Definition: instance_violet_hold.cpp:62
ObjectGuid NPC_XevozzGUID
Definition: instance_violet_hold.cpp:78
ObjectGuid NPC_LavanthorGUID
Definition: instance_violet_hold.cpp:77
ObjectGuid GO_ZuramatCellGUID
Definition: instance_violet_hold.cpp:65
ObjectGuid GO_ErekemCellGUID
Definition: instance_violet_hold.cpp:59
ObjectGuid GO_ErekemRightGuardCellGUID
Definition: instance_violet_hold.cpp:60

References bDefensesUsed, CLEANED, ObjectGuid::Clear(), DONE, InstanceScript::DoUpdateWorldState(), ObjectGuid::Empty, EncounterStatus, EVENT_CHECK_PLAYERS, GateHealth, Map::GetCreature(), Map::GetGameObject(), GO_ActivationCrystalGUID, GO_ErekemCellGUID, GO_ErekemLeftGuardCellGUID, GO_ErekemRightGuardCellGUID, GO_FLAG_NOT_SELECTABLE, GO_IchoronCellGUID, GO_LavanthorCellGUID, GO_MainGateGUID, GO_MoraggCellGUID, GO_XevozzCellGUID, GO_ZuramatCellGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, m_auiEncounter, MAX_ENCOUNTER, NOT_STARTED, NPC_CyanigosaGUID, NPC_DoorSealGUID, NPC_ErekemGuardGUID, NPC_ErekemGUID, NPC_GuardGUID, NPC_IchoronGUID, NPC_LavanthorGUID, NPC_MoraggGUID, NPC_PortalGUID, NPC_SinclariGUID, NPC_XevozzGUID, NPC_ZuramatGUID, REACT_AGGRESSIVE, trashMobs, UNIT_FLAG_NON_ATTACKABLE, WaveCount, and WORLD_STATE_VH_SHOW.

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

◆ IsEncounterInProgress()

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

101 {
102 return false;
103 }

◆ OnCreatureCreate()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

106 {
107 switch(creature->GetEntry())
108 {
109 case NPC_SINCLARI:
110 NPC_SinclariGUID = creature->GetGUID();
111 break;
113 for (uint8 i = 0; i < 4; ++i)
114 if (!NPC_GuardGUID[i])
115 {
116 NPC_GuardGUID[i] = creature->GetGUID();
117 break;
118 }
119 break;
122 break;
124 NPC_PortalGUID = creature->GetGUID();
125 break;
127 NPC_DoorSealGUID = creature->GetGUID();
128 break;
129 // BOSSES BELOW:
130 case NPC_XEVOZZ:
131 NPC_XevozzGUID = creature->GetGUID();
132 break;
133 case NPC_LAVANTHOR:
134 NPC_LavanthorGUID = creature->GetGUID();
135 break;
136 case NPC_ICHORON:
137 NPC_IchoronGUID = creature->GetGUID();
138 break;
139 case NPC_ZURAMAT:
140 NPC_ZuramatGUID = creature->GetGUID();
141 break;
142 case NPC_EREKEM:
143 NPC_ErekemGUID = creature->GetGUID();
144 break;
145 case NPC_EREKEM_GUARD:
146 if (!NPC_ErekemGuardGUID[0])
147 NPC_ErekemGuardGUID[0] = creature->GetGUID();
148 else
149 NPC_ErekemGuardGUID[1] = creature->GetGUID();
150 break;
151 case NPC_MORAGG:
152 NPC_MoraggGUID = creature->GetGUID();
153 break;
154 case NPC_CYANIGOSA:
155 NPC_CyanigosaGUID = creature->GetGUID();
156 break;
157 }
158 }
@ NPC_EREKEM_GUARD
Definition: violet_hold.h:45
@ NPC_PRISON_DOOR_SEAL
Definition: violet_hold.h:33
@ NPC_LAVANTHOR
Definition: violet_hold.h:41
@ NPC_EREKEM
Definition: violet_hold.h:44
@ NPC_MORAGG
Definition: violet_hold.h:46
@ NPC_VIOLET_HOLD_GUARD
Definition: violet_hold.h:37
@ NPC_CYANIGOSA
Definition: violet_hold.h:47
@ NPC_ICHORON
Definition: violet_hold.h:42
@ NPC_ZURAMAT
Definition: violet_hold.h:43
@ NPC_SINCLARI
Definition: violet_hold.h:36
@ NPC_XEVOZZ
Definition: violet_hold.h:40
@ NPC_TELEPORTATION_PORTAL
Definition: violet_hold.h:31
@ NPC_DEFENSE_DUMMY_TARGET
Definition: violet_hold.h:34
@ SPELL_ARCANE_LIGHTNING
Definition: violet_hold.h:102
@ IMMUNITY_ID
Definition: SharedDefines.h:1372
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
Definition: Unit.cpp:13300

References Unit::ApplySpellImmune(), Object::GetEntry(), Object::GetGUID(), IMMUNITY_ID, NPC_CYANIGOSA, NPC_CyanigosaGUID, NPC_DEFENSE_DUMMY_TARGET, NPC_DoorSealGUID, NPC_EREKEM, NPC_EREKEM_GUARD, NPC_ErekemGuardGUID, NPC_ErekemGUID, NPC_GuardGUID, NPC_ICHORON, NPC_IchoronGUID, NPC_LAVANTHOR, NPC_LavanthorGUID, NPC_MORAGG, NPC_MoraggGUID, NPC_PortalGUID, NPC_PRISON_DOOR_SEAL, NPC_SINCLARI, NPC_SinclariGUID, NPC_TELEPORTATION_PORTAL, NPC_VIOLET_HOLD_GUARD, NPC_XEVOZZ, NPC_XevozzGUID, NPC_ZURAMAT, NPC_ZuramatGUID, and SPELL_ARCANE_LIGHTNING.

◆ OnGameObjectCreate()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

161 {
162 switch(go->GetEntry())
163 {
165 HandleGameObject(ObjectGuid::Empty, false, go); // make go not used yet
166 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
167 GO_ActivationCrystalGUID.push_back(go->GetGUID());
168 break;
169 case GO_MAIN_DOOR:
170 GO_MainGateGUID = go->GetGUID();
171 break;
172 // BOSS GATES BELOW:
175 break;
178 break;
179 case GO_EREKEM_DOOR:
181 break;
182 case GO_ZURAMAT_DOOR:
184 break;
187 break;
188 case GO_MORAGG_DOOR:
190 break;
191 case GO_ICHORON_DOOR:
193 break;
194 case GO_XEVOZZ_DOOR:
196 break;
197 }
198 }
@ GO_XEVOZZ_DOOR
Definition: violet_hold.h:68
@ GO_ICHORON_DOOR
Definition: violet_hold.h:70
@ GO_ACTIVATION_CRYSTAL
Definition: violet_hold.h:77
@ GO_LAVANTHOR_DOOR
Definition: violet_hold.h:69
@ GO_EREKEM_DOOR
Definition: violet_hold.h:72
@ GO_MORAGG_DOOR
Definition: violet_hold.h:75
@ GO_ZURAMAT_DOOR
Definition: violet_hold.h:71
@ GO_EREKEM_GUARD_2_DOOR
Definition: violet_hold.h:74
@ GO_EREKEM_GUARD_1_DOOR
Definition: violet_hold.h:73
@ GO_MAIN_DOOR
Definition: violet_hold.h:67
void SetGameObjectFlag(GameObjectFlags flags)
Definition: GameObject.h:220

References ObjectGuid::Empty, Object::GetEntry(), Object::GetGUID(), GO_ACTIVATION_CRYSTAL, GO_ActivationCrystalGUID, GO_EREKEM_DOOR, GO_EREKEM_GUARD_1_DOOR, GO_EREKEM_GUARD_2_DOOR, GO_ErekemCellGUID, GO_ErekemLeftGuardCellGUID, GO_ErekemRightGuardCellGUID, GO_FLAG_NOT_SELECTABLE, GO_ICHORON_DOOR, GO_IchoronCellGUID, GO_LAVANTHOR_DOOR, GO_LavanthorCellGUID, GO_MAIN_DOOR, GO_MainGateGUID, GO_MORAGG_DOOR, GO_MoraggCellGUID, GO_XEVOZZ_DOOR, GO_XevozzCellGUID, GO_ZURAMAT_DOOR, GO_ZuramatCellGUID, InstanceScript::HandleGameObject(), and GameObject::SetGameObjectFlag().

◆ OnPlayerEnter()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::OnPlayerEnter ( Player plr)
inlineoverridevirtual

Reimplemented from InstanceScript.

510 {
511 if( DoNeedCleanup(plr->IsAlive()) )
513
515 {
519 }
520 else
522
523 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
524 }
@ IN_PROGRESS
Definition: InstanceScript.h:57
@ WORLD_STATE_VH_WAVE_COUNT
Definition: violet_hold.h:96
@ WORLD_STATE_VH_PRISON_STATE
Definition: violet_hold.h:95
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition: PlayerUpdates.cpp:2194
bool IsAlive() const
Definition: Unit.h:1808
bool DoNeedCleanup(bool enter)
Definition: instance_violet_hold.cpp:526
void InstanceCleanup()
Definition: instance_violet_hold.cpp:541

References DoNeedCleanup(), EncounterStatus, EVENT_CHECK_PLAYERS, GateHealth, IN_PROGRESS, InstanceCleanup(), Unit::IsAlive(), Player::SendUpdateWorldState(), WaveCount, WORLD_STATE_VH_PRISON_STATE, WORLD_STATE_VH_SHOW, and WORLD_STATE_VH_WAVE_COUNT.

◆ ReadSaveDataMore()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::ReadSaveDataMore ( std::istringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

639 {
641 CLEANED = false;
642 events.Reset();
643 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
644
645 data >> m_auiEncounter[0];
646 data >> m_auiEncounter[1];
647 data >> m_auiEncounter[2];
648 data >> uiFirstBoss;
649 }

References CLEANED, EncounterStatus, EVENT_CHECK_PLAYERS, m_auiEncounter, NOT_STARTED, and uiFirstBoss.

◆ SetData()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

201 {
202 switch(type)
203 {
205 {
206 if (data)
207 bDefensesUsed = true;
208 const Position pos = {1919.09546f, 812.29724f, 86.2905f, M_PI};
210 }
211 break;
214 {
217 c->AI()->Talk(SAY_SINCLARI_1);
218 events.RescheduleEvent(EVENT_GUARDS_FALL_BACK, 4s);
219 }
220 break;
222 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 3s);
223 break;
225 PortalLocation = data;
226 break;
228 if (GateHealth > 0)
229 --GateHealth;
230 if (GateHealth == 0)
231 {
232 CLEANED = false;
234 }
236 break;
238 if (WaveCount == 6)
240 else
242 break;
243 case DATA_BOSS_DIED:
244 if (WaveCount == 6)
245 m_auiEncounter[0] = DONE;
246 else if (WaveCount == 12)
247 m_auiEncounter[1] = DONE;
248 else if (WaveCount == 18)
249 {
250 m_auiEncounter[2] = DONE;
254 if (Creature* c = instance->GetCreature(NPC_SinclariGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); }
255 }
256 SaveToDB();
257 if (WaveCount < 18)
258 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 35s);
259 break;
260 case DATA_FAILED:
261 CLEANED = false;
263 break;
264 case DATA_ACHIEV:
265 bAchiev = !!data;
266 break;
267 }
268 }
@ SAY_SINCLARI_1
Definition: instance_violet_hold.cpp:26
@ NPC_DEFENSE_SYSTEM
Definition: violet_hold.h:32
@ DATA_ACHIEV
Definition: violet_hold.h:144
@ DATA_START_INSTANCE
Definition: violet_hold.h:126
@ DATA_BOSS_DIED
Definition: violet_hold.h:138
@ DATA_PORTAL_DEFEATED
Definition: violet_hold.h:129
@ DATA_DECRASE_DOOR_HEALTH
Definition: violet_hold.h:137
@ DATA_FAILED
Definition: violet_hold.h:139
@ DATA_ACTIVATE_DEFENSE_SYSTEM
Definition: violet_hold.h:124
@ DATA_RELEASE_BOSS
Definition: violet_hold.h:136
@ EVENT_SUMMON_PORTAL
Definition: violet_hold.h:117
@ EVENT_GUARDS_FALL_BACK
Definition: violet_hold.h:113
Definition: Position.h:28
void SaveToDB()
Definition: InstanceScript.cpp:41
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
void StartBossEncounter(uint8 uiBoss)
Definition: instance_violet_hold.cpp:324

References bAchiev, bDefensesUsed, CLEANED, DATA_ACHIEV, DATA_ACTIVATE_DEFENSE_SYSTEM, DATA_BOSS_DIED, DATA_DECRASE_DOOR_HEALTH, DATA_FAILED, DATA_PORTAL_DEFEATED, DATA_PORTAL_LOCATION, DATA_RELEASE_BOSS, DATA_START_INSTANCE, DONE, InstanceScript::DoUpdateWorldState(), EncounterStatus, EVENT_GUARDS_FALL_BACK, EVENT_SUMMON_PORTAL, GateHealth, Map::GetCreature(), GO_MainGateGUID, InstanceScript::HandleGameObject(), IN_PROGRESS, InstanceScript::instance, InstanceCleanup(), m_auiEncounter, NOT_STARTED, NPC_DEFENSE_SYSTEM, NPC_SinclariGUID, PortalLocation, InstanceScript::SaveToDB(), SAY_SINCLARI_1, StartBossEncounter(), Map::SummonCreature(), uiFirstBoss, uiSecondBoss, WaveCount, WORLD_STATE_VH_PRISON_STATE, and WORLD_STATE_VH_SHOW.

Referenced by Update().

◆ SetGuidData()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::SetGuidData ( uint32  type,
ObjectGuid  data 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

271 {
272 switch(type)
273 {
275 trashMobs.insert(data);
276 break;
278 if (!CLEANED)
279 trashMobs.erase(data);
280 break;
281 }
282 }
@ DATA_DELETE_TRASH_MOB
Definition: violet_hold.h:128
@ DATA_ADD_TRASH_MOB
Definition: violet_hold.h:127

References CLEANED, DATA_ADD_TRASH_MOB, DATA_DELETE_TRASH_MOB, and trashMobs.

◆ StartBossEncounter()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::StartBossEncounter ( uint8  uiBoss)
inline
325 {
326 Creature* pBoss = nullptr;
327
328 switch(uiBoss)
329 {
330 case BOSS_MORAGG:
333 if (pBoss)
335 break;
336 case BOSS_EREKEM:
341 if (pBoss)
344 {
345 pGuard1->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
346 pGuard1->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
347 pGuard1->SetImmuneToNPC(false);
348 pGuard1->GetMotionMaster()->MovePoint(0, BossStartMove21);
349 }
351 {
352 pGuard2->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
353 pGuard2->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
354 pGuard2->SetImmuneToNPC(false);
355 pGuard2->GetMotionMaster()->MovePoint(0, BossStartMove22);
356 }
357 break;
358 case BOSS_ICHORON:
361 if (pBoss)
363 break;
364 case BOSS_LAVANTHOR:
367 if (pBoss)
369 break;
370 case BOSS_XEVOZZ:
373 if (pBoss)
375 break;
376 case BOSS_ZURAMAT:
379 if (pBoss)
381 break;
382 }
383
384 if (pBoss)
385 {
388 pBoss->SetImmuneToNPC(false);
390 if ((WaveCount == 6 && m_auiEncounter[0] == DONE) || (WaveCount == 12 && m_auiEncounter[1] == DONE))
391 pBoss->SetLootMode(0);
392 }
393 }
@ MOVEMENTFLAG_WALKING
Definition: Unit.h:560
const Position BossStartMove3
Definition: violet_hold.h:167
const Position BossStartMove22
Definition: violet_hold.h:166
const Position BossStartMove6
Definition: violet_hold.h:170
@ BOSS_XEVOZZ
Definition: violet_hold.h:87
@ BOSS_ZURAMAT
Definition: violet_hold.h:88
@ BOSS_MORAGG
Definition: violet_hold.h:83
@ BOSS_LAVANTHOR
Definition: violet_hold.h:86
@ BOSS_EREKEM
Definition: violet_hold.h:84
@ BOSS_ICHORON
Definition: violet_hold.h:85
const Position BossStartMove2
Definition: violet_hold.h:164
const Position BossStartMove21
Definition: violet_hold.h:165
const Position BossStartMove1
Definition: violet_hold.h:163
const Position BossStartMove4
Definition: violet_hold.h:168
const Position BossStartMove5
Definition: violet_hold.h:169
void SetReactState(ReactStates st)
Definition: Creature.h:89
void SetLootMode(uint16 lootMode)
Definition: Creature.h:234
void SetImmuneToNPC(bool apply, bool keepCombat=false)
Definition: Unit.cpp:13527
MotionMaster * GetMotionMaster()
Definition: Unit.h:2262
void RemoveUnitMovementFlag(uint32 f)
Definition: Unit.h:2273
void RemoveUnitFlag(UnitFlags flags)
Definition: Unit.h:1482
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition: MotionMaster.h:210

References BOSS_EREKEM, BOSS_ICHORON, BOSS_LAVANTHOR, BOSS_MORAGG, BOSS_XEVOZZ, BOSS_ZURAMAT, BossStartMove1, BossStartMove2, BossStartMove21, BossStartMove22, BossStartMove3, BossStartMove4, BossStartMove5, BossStartMove6, DONE, Map::GetCreature(), Unit::GetMotionMaster(), GO_ErekemCellGUID, GO_ErekemLeftGuardCellGUID, GO_ErekemRightGuardCellGUID, GO_IchoronCellGUID, GO_LavanthorCellGUID, GO_MoraggCellGUID, GO_XevozzCellGUID, GO_ZuramatCellGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, m_auiEncounter, MOVEMENTFLAG_WALKING, MotionMaster::MovePoint(), NPC_ErekemGuardGUID, NPC_ErekemGUID, NPC_IchoronGUID, NPC_LavanthorGUID, NPC_MoraggGUID, NPC_XevozzGUID, NPC_ZuramatGUID, REACT_AGGRESSIVE, Unit::RemoveUnitFlag(), Unit::RemoveUnitMovementFlag(), Unit::SetImmuneToNPC(), Creature::SetLootMode(), Creature::SetReactState(), UNIT_FLAG_NON_ATTACKABLE, and WaveCount.

Referenced by SetData().

◆ Update()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

396 {
397 events.Update(diff);
398 switch( events.ExecuteEvent() )
399 {
400 case 0:
401 break;
403 {
404 if( DoNeedCleanup(false) )
406 events.Repeat(5s);
407 }
408 break;
410 {
411 for (uint8 i = 0; i < 4; ++i)
413 {
414 c->SetReactState(REACT_PASSIVE);
415 c->CombatStop();
416 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
417 c->GetMotionMaster()->MovePoint(0, guardMovePosition);
418 }
419 events.RescheduleEvent(EVENT_GUARDS_DISAPPEAR, 5s);
420 }
421 break;
423 {
424 for (uint8 i = 0; i < 4; ++i)
426 c->SetVisible(false);
427 events.RescheduleEvent(EVENT_SINCLARI_FALL_BACK, 2s);
428 }
429 break;
431 {
433 {
434 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
435 c->GetMotionMaster()->MovePoint(0, sinclariOutsidePosition);
436 }
438 events.RescheduleEvent(EVENT_START_ENCOUNTER, 4s);
439 }
440 break;
442 {
444 c->RemoveAllAuras(); // just to be sure...
445 GateHealth = 100;
450
451 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
452 if (GameObject* go = instance->GetGameObject(guid))
453 {
454 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
455 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // make it useable
456 }
457 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4s);
458 }
459 break;
461 ++WaveCount;
465 {
466 if (WaveCount % 6 != 0)
468 else if (WaveCount == 6 || WaveCount == 12) // first or second boss
469 {
470 if (!uiFirstBoss || !uiSecondBoss)
471 {
472 uiFirstBoss = urand(1, 6);
473 do { uiSecondBoss = urand(1, 6); }
474 while (uiFirstBoss == uiSecondBoss);
475 SaveToDB();
476 }
478 }
479 else // cyanigossa
480 {
482 {
483 cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_BLUE_AURA, false);
484 cyanigosa->AI()->Talk(CYANIGOSA_SAY_SPAWN);
485 cyanigosa->GetMotionMaster()->MoveJump(MiddleRoomLocation.GetPositionX(), MiddleRoomLocation.GetPositionY(), MiddleRoomLocation.GetPositionZ(), 10.0f, 20.0f);
486 }
487 events.RescheduleEvent(EVENT_CYANIGOSSA_TRANSFORM, 10s);
488 }
489 }
490 break;
493 {
494 c->RemoveAurasDueToSpell(SPELL_CYANIGOSA_BLUE_AURA);
495 c->CastSpell(c, SPELL_CYANIGOSA_TRANSFORM, 0);
496 events.RescheduleEvent(EVENT_CYANIGOSA_ATTACK, 2500ms);
497 }
498 break;
501 {
502 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
503 c->SetImmuneToNPC(false);
504 }
505 break;
506 }
507 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ TEMPSUMMON_DEAD_DESPAWN
Definition: Object.h:48
@ TEMPSUMMON_CORPSE_DESPAWN
Definition: Object.h:46
@ REACT_PASSIVE
Definition: Unit.h:1023
@ CYANIGOSA_SAY_SPAWN
Definition: instance_violet_hold.cpp:25
const Position PortalLocations[]
Definition: violet_hold.h:177
const Position sinclariOutsidePosition
Definition: violet_hold.h:160
@ SPELL_CYANIGOSA_BLUE_AURA
Definition: violet_hold.h:107
@ SPELL_CYANIGOSA_TRANSFORM
Definition: violet_hold.h:106
const Position guardMovePosition
Definition: violet_hold.h:158
const Position MiddleRoomLocation
Definition: violet_hold.h:173
const Position MiddleRoomPortalSaboLocation
Definition: violet_hold.h:161
const Position CyanigosasSpawnLocation
Definition: violet_hold.h:172
@ EVENT_START_ENCOUNTER
Definition: violet_hold.h:116
@ EVENT_GUARDS_DISAPPEAR
Definition: violet_hold.h:114
@ EVENT_CYANIGOSSA_TRANSFORM
Definition: violet_hold.h:118
@ EVENT_SINCLARI_FALL_BACK
Definition: violet_hold.h:115
@ EVENT_CYANIGOSA_ATTACK
Definition: violet_hold.h:119
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2318
float GetPositionZ() const
Definition: Position.h:119
float GetPositionX() const
Definition: Position.h:117
float GetPositionY() const
Definition: Position.h:118
void SetData(uint32 type, uint32 data) override
Definition: instance_violet_hold.cpp:200
uint32 GetData(uint32 type) const override
Definition: instance_violet_hold.cpp:284

References CYANIGOSA_SAY_SPAWN, CyanigosasSpawnLocation, DATA_ACTIVATE_DEFENSE_SYSTEM, DATA_PORTAL_LOCATION, DoNeedCleanup(), InstanceScript::DoUpdateWorldState(), ObjectGuid::Empty, EVENT_CHECK_PLAYERS, EVENT_CYANIGOSA_ATTACK, EVENT_CYANIGOSSA_TRANSFORM, EVENT_GUARDS_DISAPPEAR, EVENT_GUARDS_FALL_BACK, EVENT_SINCLARI_FALL_BACK, EVENT_START_ENCOUNTER, EVENT_SUMMON_PORTAL, GateHealth, Map::GetCreature(), GetData(), Map::GetGameObject(), Position::GetPositionX(), Position::GetPositionY(), Position::GetPositionZ(), GO_ActivationCrystalGUID, GO_FLAG_NOT_SELECTABLE, GO_MainGateGUID, guardMovePosition, InstanceScript::HandleGameObject(), InstanceScript::instance, InstanceCleanup(), MiddleRoomLocation, MiddleRoomPortalSaboLocation, MOVEMENTFLAG_WALKING, NPC_CYANIGOSA, NPC_CyanigosaGUID, NPC_DoorSealGUID, NPC_GuardGUID, NPC_SinclariGUID, NPC_TELEPORTATION_PORTAL, PortalLocations, REACT_PASSIVE, InstanceScript::SaveToDB(), SetData(), sinclariOutsidePosition, SPELL_CYANIGOSA_BLUE_AURA, SPELL_CYANIGOSA_TRANSFORM, WorldObject::SummonCreature(), TEMPSUMMON_CORPSE_DESPAWN, TEMPSUMMON_DEAD_DESPAWN, uiFirstBoss, uiSecondBoss, UNIT_FLAG_NON_ATTACKABLE, urand(), WaveCount, WORLD_STATE_VH_PRISON_STATE, WORLD_STATE_VH_SHOW, and WORLD_STATE_VH_WAVE_COUNT.

◆ WriteSaveDataMore()

void instance_violet_hold::instance_violet_hold_InstanceMapScript::WriteSaveDataMore ( std::ostringstream &  data)
inlineoverridevirtual

Reimplemented from InstanceScript.

652 {
653 data << m_auiEncounter[0] << ' '
654 << m_auiEncounter[1] << ' '
655 << m_auiEncounter[2] << ' '
656 << uiFirstBoss << ' '
657 << uiSecondBoss << ' ';
658 }

References m_auiEncounter, uiFirstBoss, and uiSecondBoss.

Member Data Documentation

◆ bAchiev

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::bAchiev

◆ bDefensesUsed

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::bDefensesUsed

◆ CLEANED

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::CLEANED

◆ EncounterStatus

uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::EncounterStatus

◆ events

EventMap instance_violet_hold::instance_violet_hold_InstanceMapScript::events

◆ GateHealth

uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::GateHealth

◆ GO_ActivationCrystalGUID

GuidVector instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_ActivationCrystalGUID

◆ GO_ErekemCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_ErekemCellGUID

◆ GO_ErekemLeftGuardCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_ErekemLeftGuardCellGUID

◆ GO_ErekemRightGuardCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_ErekemRightGuardCellGUID

◆ GO_IchoronCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_IchoronCellGUID

◆ GO_LavanthorCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_LavanthorCellGUID

◆ GO_MainGateGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_MainGateGUID

◆ GO_MoraggCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_MoraggCellGUID

◆ GO_XevozzCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_XevozzCellGUID

◆ GO_ZuramatCellGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::GO_ZuramatCellGUID

◆ m_auiEncounter

uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::m_auiEncounter[MAX_ENCOUNTER]

◆ NPC_CyanigosaGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_CyanigosaGUID

◆ NPC_DoorSealGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_DoorSealGUID

◆ NPC_ErekemGuardGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_ErekemGuardGUID[2]

◆ NPC_ErekemGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_ErekemGUID

◆ NPC_GuardGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_GuardGUID[4]

◆ NPC_IchoronGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_IchoronGUID

◆ NPC_LavanthorGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_LavanthorGUID

◆ NPC_MoraggGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_MoraggGUID

◆ NPC_PortalGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_PortalGUID

◆ NPC_SinclariGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_SinclariGUID

◆ NPC_XevozzGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_XevozzGUID

◆ NPC_ZuramatGUID

ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::NPC_ZuramatGUID

◆ PortalLocation

uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::PortalLocation

Referenced by GetData(), Initialize(), and SetData().

◆ str_data

std::string instance_violet_hold::instance_violet_hold_InstanceMapScript::str_data

◆ trashMobs

GuidSet instance_violet_hold::instance_violet_hold_InstanceMapScript::trashMobs

Referenced by InstanceCleanup(), and SetGuidData().

◆ uiFirstBoss

uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::uiFirstBoss

◆ uiSecondBoss

uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::uiSecondBoss

◆ WaveCount

uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::WaveCount