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 Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerLeave (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
virtual void OnPlayerInWaterStateUpdate (Player *, bool)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnGameObject (uint32 type)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool 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
 
virtual void DoAction (int32)
 
void DoForAllMinions (uint32 id, std::function< void(Creature *)> exec)
 
void StoreGameObjectState (ObjectGuid::LowType spawnId, uint8 state)
 
uint8 GetStoredGameObjectState (ObjectGuid::LowType spawnId) const
 
void LoadInstanceSavedGameobjectStateData ()
 
bool IsBossDone (uint32 bossId) const
 
bool AllBossesDone () const
 
bool AllBossesDone (std::initializer_list< uint32 > bossIds) const
 
TeamId GetTeamIdInInstance () const
 
void SetTeamIdInInstance (TeamId teamId)
 
bool IsTwoFactionInstance () const
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
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
 
TaskScheduler scheduler
 

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 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)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_violet_hold_InstanceMapScript()

instance_violet_hold::instance_violet_hold_InstanceMapScript::instance_violet_hold_InstanceMapScript ( Map pMap)
inline
45: InstanceScript(pMap) {}
Definition InstanceScript.h:143

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.

641 {
642 switch (criteria_id)
643 {
645 return GateHealth == 100 && !bDefensesUsed;
648 return bAchiev;
649 }
650 return false;
651 }
bool bAchiev
Definition instance_violet_hold.cpp:56
uint8 GateHealth
Definition instance_violet_hold.cpp:53
bool bDefensesUsed
Definition instance_violet_hold.cpp:57
@ CRITERIA_DEFENSELESS
Definition violet_hold.h:149
@ CRITERIA_DEHYDRATION
Definition violet_hold.h:151
@ CRITERIA_A_VOID_DANCE
Definition violet_hold.h:150

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
542 {
543 uint8 aliveCount = 0;
544 Map::PlayerList const& pl = instance->GetPlayers();
545 for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
546 if (Player* plr = itr->GetSource())
547 if (plr->IsAlive() && !plr->IsGameMaster() && !plr->HasAura(27827)/*spirit of redemption aura*/ )
548 ++aliveCount;
549
550 bool need = enter ? aliveCount <= 1 : aliveCount == 0;
551 if (!need && CLEANED)
552 CLEANED = false;
553 return need;
554 }
std::uint8_t uint8
Definition Define.h:109
Map * instance
Definition InstanceScript.h:149
Definition LinkedList.h:139
Definition MapRefMgr.h:26
iterator begin()
Definition MapRefMgr.h:36
iterator end()
Definition MapRefMgr.h:37
PlayerList const & GetPlayers() const
Definition Map.h:333
Definition Player.h:1081
bool CLEANED
Definition instance_violet_hold.cpp:48

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.

294 {
295 switch (type)
296 {
298 return (uint32)EncounterStatus;
299 case DATA_WAVE_COUNT:
300 return (uint32)WaveCount;
302 return PortalLocation;
304 return uiFirstBoss;
306 return uiSecondBoss;
307 }
308
309 return 0;
310 }
std::uint32_t uint32
Definition Define.h:107
@ DATA_ENCOUNTER_STATUS
Definition eye_of_eternity.h:57
uint8 WaveCount
Definition instance_violet_hold.cpp:54
uint8 PortalLocation
Definition instance_violet_hold.cpp:55
uint32 uiSecondBoss
Definition instance_violet_hold.cpp:50
uint8 EncounterStatus
Definition instance_violet_hold.cpp:49
uint32 uiFirstBoss
Definition instance_violet_hold.cpp:50
@ 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

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 ZoneScript.

313 {
314 switch (identifier)
315 {
317 return NPC_PortalGUID;
319 return NPC_DoorSealGUID;
320 case DATA_EREKEM_GUID:
321 return NPC_ErekemGUID;
323 return NPC_ErekemGuardGUID[0];
325 return NPC_ErekemGuardGUID[1];
327 return NPC_IchoronGUID;
328 }
329
330 return ObjectGuid::Empty;
331 }
static ObjectGuid const Empty
Definition ObjectGuid.h:120
ObjectGuid NPC_PortalGUID
Definition instance_violet_hold.cpp:74
ObjectGuid NPC_IchoronGUID
Definition instance_violet_hold.cpp:80
ObjectGuid NPC_ErekemGuardGUID[2]
Definition instance_violet_hold.cpp:79
ObjectGuid NPC_DoorSealGUID
Definition instance_violet_hold.cpp:75
ObjectGuid NPC_ErekemGUID
Definition instance_violet_hold.cpp:78
@ 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

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.

87 {
89 memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
90 CLEANED = false;
92 uiFirstBoss = 0;
93 uiSecondBoss = 0;
94 events.Reset();
95 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
96 GateHealth = 100;
97 WaveCount = 0;
99 bDefensesUsed = false;
100
102 }
@ NOT_STARTED
Definition InstanceScript.h:58
#define DataHeader
Definition blackrock_depths.h:23
events
Definition boss_sartura.cpp:43
void SetHeaders(std::string const &dataHeaders)
Definition InstanceScript.cpp:153
GuidVector GO_ActivationCrystalGUID
Definition instance_violet_hold.cpp:59
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition instance_violet_hold.cpp:47
@ EVENT_CHECK_PLAYERS
Definition trial_of_the_champion.h:67

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
557 {
558 if (CLEANED)
559 return;
560 CLEANED = true;
561
562 // reset defense crystals
563 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
564 if (GameObject* go = instance->GetGameObject(guid))
565 {
566 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
567 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
568 }
569
570 // reset positions of Sinclari and Guards
571 if (Creature* c = instance->GetCreature(NPC_SinclariGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); }
572 for (uint8 i = 0; i < 4; ++i)
574 {
575 c->DespawnOrUnsummon();
576 c->SetRespawnTime(3);
578 c->SetVisible(false);
579 else
580 c->SetVisible(true);
581 c->SetReactState(REACT_AGGRESSIVE);
582 }
583
584 // remove portal if any
586 c->DespawnOrUnsummon();
588
589 // remove trash
590 for (ObjectGuid const& guid : trashMobs)
591 if (Creature* c = instance->GetCreature(guid))
592 c->DespawnOrUnsummon();
593
594 trashMobs.clear();
595
596 // clear door seal damaging auras:
598 c->RemoveAllAuras();
599
600 // open main gate
602
603 if (m_auiEncounter[MAX_ENCOUNTER - 1] != DONE) // instance not finished
604 {
605 // close all cells
614
615 // respawn bosses
616 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
617 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
618 if (Creature* c = instance->GetCreature(NPC_ErekemGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
619 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[0])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
620 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[1])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
621 if (Creature* c = instance->GetCreature(NPC_IchoronGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
622 if (Creature* c = instance->GetCreature(NPC_LavanthorGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
623 if (Creature* c = instance->GetCreature(NPC_XevozzGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
624 if (Creature* c = instance->GetCreature(NPC_ZuramatGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
625 if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) { c->DespawnOrUnsummon(); }
626 }
627
628 // reinitialize variables and events
631 GateHealth = 100;
632 WaveCount = 0;
633 bDefensesUsed = false;
636 events.Reset();
637 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
638 }
@ DONE
Definition InstanceScript.h:61
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1607
@ UNIT_FLAG_NON_ATTACKABLE
Definition UnitDefines.h:251
@ REACT_AGGRESSIVE
Definition Unit.h:550
@ WORLD_STATE_VIOLET_HOLD_SHOW
Definition WorldStateDefines.h:572
Definition Creature.h:43
Definition GameObject.h:120
Creature * GetCreature(uint32 type)
Definition InstanceScript.cpp:115
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition InstanceScript.cpp:125
GameObject * GetGameObject(uint32 type)
Definition InstanceScript.cpp:120
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition InstanceScript.cpp:621
Creature * GetCreature(ObjectGuid const guid)
Definition Map.cpp:2498
Definition ObjectGuid.h:118
void Clear()
Definition ObjectGuid.h:138
ObjectGuid GO_MoraggCellGUID
Definition instance_violet_hold.cpp:62
ObjectGuid NPC_MoraggGUID
Definition instance_violet_hold.cpp:77
ObjectGuid GO_ErekemLeftGuardCellGUID
Definition instance_violet_hold.cpp:65
ObjectGuid GO_XevozzCellGUID
Definition instance_violet_hold.cpp:68
ObjectGuid NPC_SinclariGUID
Definition instance_violet_hold.cpp:72
ObjectGuid NPC_ZuramatGUID
Definition instance_violet_hold.cpp:83
GuidSet trashMobs
Definition instance_violet_hold.cpp:71
ObjectGuid GO_LavanthorCellGUID
Definition instance_violet_hold.cpp:67
ObjectGuid NPC_CyanigosaGUID
Definition instance_violet_hold.cpp:84
ObjectGuid NPC_GuardGUID[4]
Definition instance_violet_hold.cpp:73
ObjectGuid GO_MainGateGUID
Definition instance_violet_hold.cpp:60
ObjectGuid GO_IchoronCellGUID
Definition instance_violet_hold.cpp:66
ObjectGuid NPC_XevozzGUID
Definition instance_violet_hold.cpp:82
ObjectGuid NPC_LavanthorGUID
Definition instance_violet_hold.cpp:81
ObjectGuid GO_ZuramatCellGUID
Definition instance_violet_hold.cpp:69
ObjectGuid GO_ErekemCellGUID
Definition instance_violet_hold.cpp:63
ObjectGuid GO_ErekemRightGuardCellGUID
Definition instance_violet_hold.cpp:64
#define MAX_ENCOUNTER
Definition violet_hold.h:21

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_VIOLET_HOLD_SHOW.

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

◆ IsEncounterInProgress()

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

Reimplemented from InstanceScript.

105 {
106 return false;
107 }

◆ OnCreatureCreate()

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

Reimplemented from ZoneScript.

110 {
111 switch (creature->GetEntry())
112 {
113 case NPC_SINCLARI:
114 NPC_SinclariGUID = creature->GetGUID();
115 break;
117 for (uint8 i = 0; i < 4; ++i)
118 if (!NPC_GuardGUID[i])
119 {
120 NPC_GuardGUID[i] = creature->GetGUID();
121 break;
122 }
123 break;
126 break;
128 NPC_PortalGUID = creature->GetGUID();
129 break;
131 NPC_DoorSealGUID = creature->GetGUID();
132 break;
133 // BOSSES BELOW:
134 case NPC_XEVOZZ:
135 NPC_XevozzGUID = creature->GetGUID();
136 break;
137 case NPC_LAVANTHOR:
138 NPC_LavanthorGUID = creature->GetGUID();
139 break;
140 case NPC_ICHORON:
141 NPC_IchoronGUID = creature->GetGUID();
142 break;
143 case NPC_ZURAMAT:
144 NPC_ZuramatGUID = creature->GetGUID();
145 break;
146 case NPC_EREKEM:
147 NPC_ErekemGUID = creature->GetGUID();
148 break;
149 case NPC_EREKEM_GUARD:
150 if (!NPC_ErekemGuardGUID[0])
151 NPC_ErekemGuardGUID[0] = creature->GetGUID();
152 else
153 NPC_ErekemGuardGUID[1] = creature->GetGUID();
154 break;
155 case NPC_MORAGG:
156 NPC_MoraggGUID = creature->GetGUID();
157 break;
158 case NPC_CYANIGOSA:
159 NPC_CyanigosaGUID = creature->GetGUID();
160 break;
161 }
162 }
@ IMMUNITY_ID
Definition SharedDefines.h:1400
uint32 GetEntry() const
Definition Object.h:115
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:112
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
Definition Unit.cpp:13434
@ 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:97

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 ZoneScript.

165 {
166 switch (go->GetEntry())
167 {
169 HandleGameObject(ObjectGuid::Empty, false, go); // make go not used yet
170 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
171 GO_ActivationCrystalGUID.push_back(go->GetGUID());
172 break;
173 case GO_MAIN_DOOR:
174 GO_MainGateGUID = go->GetGUID();
175 break;
176 // BOSS GATES BELOW:
179 break;
182 break;
183 case GO_EREKEM_DOOR:
185 break;
186 case GO_ZURAMAT_DOOR:
188 break;
191 break;
192 case GO_MORAGG_DOOR:
194 break;
195 case GO_ICHORON_DOOR:
197 break;
198 case GO_XEVOZZ_DOOR:
200 break;
201 }
202 }
void SetGameObjectFlag(GameObjectFlags flags)
Definition GameObject.h:217
@ 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

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.

525 {
526 if (DoNeedCleanup(plr->IsAlive()))
528
530 {
534 }
535 else
537
538 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
539 }
@ IN_PROGRESS
Definition InstanceScript.h:59
@ WORLD_STATE_VIOLET_HOLD_WAVE_COUNT
Definition WorldStateDefines.h:570
@ WORLD_STATE_VIOLET_HOLD_PRISON_STATE
Definition WorldStateDefines.h:571
void SendUpdateWorldState(uint32 variable, uint32 value) const
Definition PlayerUpdates.cpp:2243
bool IsAlive() const
Definition Unit.h:1707
bool DoNeedCleanup(bool enter)
Definition instance_violet_hold.cpp:541
void InstanceCleanup()
Definition instance_violet_hold.cpp:556

References DoNeedCleanup(), EncounterStatus, EVENT_CHECK_PLAYERS, GateHealth, IN_PROGRESS, InstanceCleanup(), Unit::IsAlive(), Player::SendUpdateWorldState(), WaveCount, WORLD_STATE_VIOLET_HOLD_PRISON_STATE, WORLD_STATE_VIOLET_HOLD_SHOW, and WORLD_STATE_VIOLET_HOLD_WAVE_COUNT.

◆ ReadSaveDataMore()

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

Reimplemented from InstanceScript.

654 {
656 CLEANED = false;
657 events.Reset();
658 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
659
660 data >> m_auiEncounter[0];
661 data >> m_auiEncounter[1];
662 data >> m_auiEncounter[2];
663 data >> uiFirstBoss;
664 }

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.

205 {
206 switch (type)
207 {
209 {
210 if (data)
211 bDefensesUsed = true;
212 const Position pos = {1919.09546f, 812.29724f, 86.2905f, M_PI};
214 }
215 break;
218 {
222 events.RescheduleEvent(EVENT_GUARDS_FALL_BACK, 4s);
223 }
224 break;
226 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 3s);
227 break;
229 PortalLocation = data;
230 break;
232 if (GateHealth > 0)
233 --GateHealth;
234 if (GateHealth == 0)
235 {
236 CLEANED = false;
238 }
240 break;
242 if (WaveCount == 6)
244 else
246 break;
247 case DATA_BOSS_DIED:
248 if (WaveCount == 6)
249 m_auiEncounter[0] = DONE;
250 else if (WaveCount == 12)
251 m_auiEncounter[1] = DONE;
252 else if (WaveCount == 18)
253 {
254 m_auiEncounter[2] = DONE;
259 {
260 c->AI()->Talk(SAY_SINCLARI_COMPLETE);
261 c->DespawnOrUnsummon();
262 c->SetRespawnTime(3);
263 }
264 }
265 SaveToDB();
266 if (WaveCount < 18)
267 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 35s);
268 break;
269 case DATA_FAILED:
270 CLEANED = false;
272 break;
273 case DATA_ACHIEV:
274 bAchiev = !!data;
275 break;
276 }
277 }
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr, Milliseconds delay=0s)
Causes the creature to talk/say the text assigned to their entry in the creature_text database table.
Definition CreatureAI.cpp:50
CreatureAI * AI() const
Definition Creature.h:141
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:2174
@ SAY_SINCLARI_LEAVING
Definition instance_violet_hold.cpp:28
@ SAY_SINCLARI_COMPLETE
Definition instance_violet_hold.cpp:30
Definition Position.h:27
void StartBossEncounter(uint8 uiBoss)
Definition instance_violet_hold.cpp:333
@ 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:113
@ EVENT_GUARDS_FALL_BACK
Definition violet_hold.h:109

References Creature::AI(), 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_COMPLETE, SAY_SINCLARI_LEAVING, StartBossEncounter(), Map::SummonCreature(), CreatureAI::Talk(), uiFirstBoss, uiSecondBoss, WaveCount, WORLD_STATE_VIOLET_HOLD_PRISON_STATE, and WORLD_STATE_VIOLET_HOLD_SHOW.

Referenced by Update().

◆ SetGuidData()

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

Reimplemented from ZoneScript.

280 {
281 switch (type)
282 {
284 trashMobs.insert(data);
285 break;
287 if (!CLEANED)
288 trashMobs.erase(data);
289 break;
290 }
291 }
@ 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
334 {
335 Creature* pBoss = nullptr;
336
337 switch (uiBoss)
338 {
339 case BOSS_MORAGG:
342 if (pBoss)
344 break;
345 case BOSS_EREKEM:
350 if (pBoss)
353 {
354 pGuard1->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
355 pGuard1->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
356 pGuard1->SetImmuneToNPC(false);
357 pGuard1->GetMotionMaster()->MovePoint(0, BossStartMove21);
358 }
360 {
361 pGuard2->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
362 pGuard2->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
363 pGuard2->SetImmuneToNPC(false);
364 pGuard2->GetMotionMaster()->MovePoint(0, BossStartMove22);
365 }
366 break;
367 case BOSS_ICHORON:
370 if (pBoss)
372 break;
373 case BOSS_LAVANTHOR:
376 if (pBoss)
378 break;
379 case BOSS_XEVOZZ:
382 if (pBoss)
384 break;
385 case BOSS_ZURAMAT:
388 if (pBoss)
390 break;
391 }
392
393 if (pBoss)
394 {
397 pBoss->SetImmuneToNPC(false);
399 if ((WaveCount == 6 && m_auiEncounter[0] == DONE) || (WaveCount == 12 && m_auiEncounter[1] == DONE))
400 pBoss->SetLootMode(0);
401 }
402 }
@ MOVEMENTFLAG_WALKING
Definition UnitDefines.h:373
void SetReactState(ReactStates state)
A creature can have 3 ReactStates : Agressive, Passive, Neutral.
Definition Creature.h:95
void SetLootMode(uint16 lootMode)
Definition Creature.h:246
void MovePoint(uint32 id, const Position &pos, bool generatePath=true, bool forceDestination=true)
Definition MotionMaster.h:213
void SetImmuneToNPC(bool apply, bool keepCombat=false)
Definition Unit.cpp:13662
MotionMaster * GetMotionMaster()
Definition Unit.h:1673
void RemoveUnitMovementFlag(uint32 f)
Definition Unit.h:744
void RemoveUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:720
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

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.

405 {
406 events.Update(diff);
407 switch (events.ExecuteEvent())
408 {
409 case 0:
410 break;
412 {
413 if (DoNeedCleanup(false))
415 events.Repeat(5s);
416 }
417 break;
419 {
420 for (uint8 i = 0; i < 4; ++i)
422 {
423 c->SetReactState(REACT_PASSIVE);
424 c->CombatStop();
425 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
426 c->GetMotionMaster()->MovePoint(0, guardMovePosition);
427 }
428 events.RescheduleEvent(EVENT_GUARDS_DISAPPEAR, 5s);
429 }
430 break;
432 {
433 for (uint8 i = 0; i < 4; ++i)
435 c->SetVisible(false);
436 events.RescheduleEvent(EVENT_SINCLARI_FALL_BACK, 2s);
437 }
438 break;
440 {
442 {
443 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
444 c->GetMotionMaster()->MovePoint(0, sinclariOutsidePosition);
445 }
447 events.RescheduleEvent(EVENT_START_ENCOUNTER, 4s);
448 }
449 break;
451 {
453 {
454 c->AI()->Talk(SAY_SINCLARI_DOOR_LOCK);
455 }
457 {
458 c->RemoveAllAuras(); // just to be sure...
459 }
460 GateHealth = 100;
465
466 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
467 if (GameObject* go = instance->GetGameObject(guid))
468 {
469 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
470 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // make it useable
471 }
472 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4s);
473 }
474 break;
476 ++WaveCount;
480 {
481 if (WaveCount % 6 != 0)
483 else if (WaveCount == 6 || WaveCount == 12) // first or second boss
484 {
485 if (!uiFirstBoss || !uiSecondBoss)
486 {
487 uiFirstBoss = urand(1, 6);
488 do { uiSecondBoss = urand(1, 6); }
489 while (uiFirstBoss == uiSecondBoss);
490 SaveToDB();
491 }
493 }
494 else // cyanigossa
495 {
497 {
498 cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_BLUE_AURA, false);
499 cyanigosa->AI()->Talk(CYANIGOSA_SAY_SPAWN);
500 cyanigosa->GetMotionMaster()->MoveJump(MiddleRoomLocation.GetPositionX(), MiddleRoomLocation.GetPositionY(), MiddleRoomLocation.GetPositionZ(), 10.0f, 20.0f);
501 }
502 events.RescheduleEvent(EVENT_CYANIGOSSA_TRANSFORM, 10s);
503 }
504 }
505 break;
508 {
509 c->RemoveAurasDueToSpell(SPELL_CYANIGOSA_BLUE_AURA);
510 c->CastSpell(c, SPELL_CYANIGOSA_TRANSFORM, 0);
511 events.RescheduleEvent(EVENT_CYANIGOSA_ATTACK, 2500ms);
512 }
513 break;
516 {
517 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
518 c->SetImmuneToNPC(false);
519 }
520 break;
521 }
522 }
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:52
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:50
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ REACT_PASSIVE
Definition Unit.h:548
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:2368
@ SAY_SINCLARI_DOOR_LOCK
Definition instance_violet_hold.cpp:29
@ CYANIGOSA_SAY_SPAWN
Definition instance_violet_hold.cpp:27
float GetPositionZ() const
Definition Position.h:123
float GetPositionX() const
Definition Position.h:121
float GetPositionY() const
Definition Position.h:122
void SetData(uint32 type, uint32 data) override
Definition instance_violet_hold.cpp:204
uint32 GetData(uint32 type) const override
Definition instance_violet_hold.cpp:293
const Position PortalLocations[]
Definition violet_hold.h:177
const Position sinclariOutsidePosition
Definition violet_hold.h:160
@ SPELL_CYANIGOSA_BLUE_AURA
Definition violet_hold.h:103
@ SPELL_CYANIGOSA_TRANSFORM
Definition violet_hold.h:102
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:112
@ EVENT_GUARDS_DISAPPEAR
Definition violet_hold.h:110
@ EVENT_CYANIGOSSA_TRANSFORM
Definition violet_hold.h:114
@ EVENT_SINCLARI_FALL_BACK
Definition violet_hold.h:111
@ EVENT_CYANIGOSA_ATTACK
Definition violet_hold.h:115

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(), SAY_SINCLARI_DOOR_LOCK, 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_VIOLET_HOLD_PRISON_STATE, WORLD_STATE_VIOLET_HOLD_SHOW, and WORLD_STATE_VIOLET_HOLD_WAVE_COUNT.

◆ WriteSaveDataMore()

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

Reimplemented from InstanceScript.

667 {
668 data << m_auiEncounter[0] << ' '
669 << m_auiEncounter[1] << ' '
670 << m_auiEncounter[2] << ' '
671 << uiFirstBoss << ' '
672 << uiSecondBoss << ' ';
673 }

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

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