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.

652 {
653 switch (criteria_id)
654 {
656 return GateHealth == 100 && !bDefensesUsed;
659 return bAchiev;
660 }
661 return false;
662 }
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
547 {
548 uint8 aliveCount = 0;
549 Map::PlayerList const& pl = instance->GetPlayers();
550 for( Map::PlayerList::const_iterator itr = pl.begin(); itr != pl.end(); ++itr )
551 if (Player* plr = itr->GetSource())
552 if (plr->IsAlive() && !plr->IsGameMaster() && !plr->HasAura(27827)/*spirit of redemption aura*/ )
553 ++aliveCount;
554
555 bool need = enter ? aliveCount <= 1 : aliveCount == 0;
556 if (!need && CLEANED)
557 CLEANED = false;
558 return need;
559 }
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:1082
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.

298 {
299 switch (type)
300 {
302 return (uint32)EncounterStatus;
303 case DATA_WAVE_COUNT:
304 return (uint32)WaveCount;
306 return PortalLocation;
308 return uiFirstBoss;
310 return uiSecondBoss;
311 }
312
313 return 0;
314 }
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.

317 {
318 switch (identifier)
319 {
321 return NPC_PortalGUID;
323 return NPC_DoorSealGUID;
324 case DATA_EREKEM_GUID:
325 return NPC_ErekemGUID;
327 return NPC_ErekemGuardGUID[0];
329 return NPC_ErekemGuardGUID[1];
331 return NPC_IchoronGUID;
332 }
333
334 return ObjectGuid::Empty;
335 }
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
562 {
563 if (CLEANED)
564 return;
565 CLEANED = true;
566
567 // reset defense crystals
568 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
569 if (GameObject* go = instance->GetGameObject(guid))
570 {
571 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
572 go->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // not useable at the beginning
573 }
574
575 // reset positions of Sinclari and Guards
577 {
578 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
579 c->DespawnOrUnsummon();
580 c->SetRespawnTime(3);
581 }
582
583 for (uint8 i = 0; i < 4; ++i)
585 {
586 c->DespawnOrUnsummon();
587 c->SetRespawnTime(3);
589 c->SetVisible(false);
590 else
591 c->SetVisible(true);
592 c->SetReactState(REACT_AGGRESSIVE);
593 }
594
595 // remove portal if any
597 c->DespawnOrUnsummon();
599
600 // remove trash
601 for (ObjectGuid const& guid : trashMobs)
602 if (Creature* c = instance->GetCreature(guid))
603 c->DespawnOrUnsummon();
604
605 trashMobs.clear();
606
607 // clear door seal damaging auras:
609 c->RemoveAllAuras();
610
611 // open main gate
613
614 if (m_auiEncounter[MAX_ENCOUNTER - 1] != DONE) // instance not finished
615 {
616 // close all cells
625
626 // respawn bosses
627 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
628 if (Creature* c = instance->GetCreature(NPC_MoraggGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
629 if (Creature* c = instance->GetCreature(NPC_ErekemGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
630 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[0])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
631 if (Creature* c = instance->GetCreature(NPC_ErekemGuardGUID[1])) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
632 if (Creature* c = instance->GetCreature(NPC_IchoronGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
633 if (Creature* c = instance->GetCreature(NPC_LavanthorGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
634 if (Creature* c = instance->GetCreature(NPC_XevozzGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
635 if (Creature* c = instance->GetCreature(NPC_ZuramatGUID)) { c->DespawnOrUnsummon(); c->SetRespawnTime(3); c->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE); c->SetImmuneToNPC(true); }
636 if (Creature* c = instance->GetCreature(NPC_CyanigosaGUID)) { c->DespawnOrUnsummon(); }
637 }
638
639 // reinitialize variables and events
642 GateHealth = 100;
643 WaveCount = 0;
644 bDefensesUsed = false;
647 events.Reset();
648 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
649 }
@ DONE
Definition InstanceScript.h:61
@ GO_FLAG_NOT_SELECTABLE
Definition SharedDefines.h:1607
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:315
@ UNIT_FLAG_NON_ATTACKABLE
Definition UnitDefines.h:251
@ REACT_AGGRESSIVE
Definition Unit.h:551
@ 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, UNIT_NPC_FLAG_GOSSIP, 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:116
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
void ApplySpellImmune(uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
Definition Unit.cpp:13433
@ 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.

530 {
531 if (DoNeedCleanup(plr->IsAlive()))
533
535 {
539 }
540 else
542
543 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 5s);
544 }
@ 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:1698
bool DoNeedCleanup(bool enter)
Definition instance_violet_hold.cpp:546
void InstanceCleanup()
Definition instance_violet_hold.cpp:561

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.

665 {
667 CLEANED = false;
668 events.Reset();
669 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
670
671 data >> m_auiEncounter[0];
672 data >> m_auiEncounter[1];
673 data >> m_auiEncounter[2];
674 data >> uiFirstBoss;
675 }

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
Todo:
: Missing orientation for Sinclari's movement and "interaction" animation with the nearby crystal.

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 {
221 {
223 c->AI()->Talk(SAY_SINCLARI_LEAVING);
225 }
226 events.RescheduleEvent(EVENT_GUARDS_FALL_BACK, 4s);
227 }
228 break;
230 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 3s);
231 break;
233 PortalLocation = data;
234 break;
236 if (GateHealth > 0)
237 --GateHealth;
238 if (GateHealth == 0)
239 {
240 CLEANED = false;
242 }
244 break;
246 if (WaveCount == 6)
248 else
250 break;
251 case DATA_BOSS_DIED:
252 if (WaveCount == 6)
253 m_auiEncounter[0] = DONE;
254 else if (WaveCount == 12)
255 m_auiEncounter[1] = DONE;
256 else if (WaveCount == 18)
257 {
258 m_auiEncounter[2] = DONE;
263 {
264 c->AI()->Talk(SAY_SINCLARI_COMPLETE);
265 c->DespawnOrUnsummon();
266 c->SetRespawnTime(3);
267 }
268 }
269 SaveToDB();
270 if (WaveCount < 18)
271 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 35s);
272 break;
273 case DATA_FAILED:
274 CLEANED = false;
276 break;
277 case DATA_ACHIEV:
278 bAchiev = !!data;
279 break;
280 }
281 }
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
void RemoveNpcFlag(NPCFlags flags)
Definition Unit.h:720
@ 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:337
@ 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 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, Unit::RemoveNpcFlag(), InstanceScript::SaveToDB(), SAY_SINCLARI_COMPLETE, SAY_SINCLARI_LEAVING, StartBossEncounter(), Map::SummonCreature(), uiFirstBoss, uiSecondBoss, UNIT_NPC_FLAG_GOSSIP, 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.

284 {
285 switch (type)
286 {
288 trashMobs.insert(data);
289 break;
291 if (!CLEANED)
292 trashMobs.erase(data);
293 break;
294 }
295 }
@ 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
338 {
339 Creature* pBoss = nullptr;
340
341 switch (uiBoss)
342 {
343 case BOSS_MORAGG:
346 if (pBoss)
348 break;
349 case BOSS_EREKEM:
354 if (pBoss)
357 {
358 pGuard1->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
359 pGuard1->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
360 pGuard1->SetImmuneToNPC(false);
361 pGuard1->GetMotionMaster()->MovePoint(0, BossStartMove21);
362 }
364 {
365 pGuard2->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
366 pGuard2->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
367 pGuard2->SetImmuneToNPC(false);
368 pGuard2->GetMotionMaster()->MovePoint(0, BossStartMove22);
369 }
370 break;
371 case BOSS_ICHORON:
374 if (pBoss)
376 break;
377 case BOSS_LAVANTHOR:
380 if (pBoss)
382 break;
383 case BOSS_XEVOZZ:
386 if (pBoss)
388 break;
389 case BOSS_ZURAMAT:
392 if (pBoss)
394 break;
395 }
396
397 if (pBoss)
398 {
401 pBoss->SetImmuneToNPC(false);
403 if ((WaveCount == 6 && m_auiEncounter[0] == DONE) || (WaveCount == 12 && m_auiEncounter[1] == DONE))
404 pBoss->SetLootMode(0);
405 }
406 }
@ 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:13661
MotionMaster * GetMotionMaster()
Definition Unit.h:1664
void RemoveUnitMovementFlag(uint32 f)
Definition Unit.h:728
void RemoveUnitFlag(UnitFlags flags)
UnitFlags available in UnitDefines.h.
Definition Unit.h:704
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.

409 {
410 events.Update(diff);
411 switch (events.ExecuteEvent())
412 {
413 case 0:
414 break;
416 {
417 if (DoNeedCleanup(false))
419 events.Repeat(5s);
420 }
421 break;
423 {
424 for (uint8 i = 0; i < 4; ++i)
426 {
427 c->SetReactState(REACT_PASSIVE);
428 c->CombatStop();
429 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
430 c->GetMotionMaster()->MovePoint(0, guardMovePosition);
431 }
432 events.RescheduleEvent(EVENT_GUARDS_DISAPPEAR, 5s);
433 }
434 break;
436 {
437 for (uint8 i = 0; i < 4; ++i)
439 c->SetVisible(false);
440 events.RescheduleEvent(EVENT_SINCLARI_FALL_BACK, 2s);
441 }
442 break;
444 {
446 {
447 c->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
448 c->GetMotionMaster()->MovePoint(0, sinclariOutsidePosition);
449 }
451 events.RescheduleEvent(EVENT_START_ENCOUNTER, 4s);
452 }
453 break;
455 {
457 {
458 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
459 c->AI()->Talk(SAY_SINCLARI_DOOR_LOCK);
460 }
462 {
463 c->RemoveAllAuras(); // just to be sure...
464 }
465 GateHealth = 100;
470
471 for (ObjectGuid const& guid : GO_ActivationCrystalGUID)
472 if (GameObject* go = instance->GetGameObject(guid))
473 {
474 HandleGameObject(ObjectGuid::Empty, false, go); // not used yet
475 go->RemoveGameObjectFlag(GO_FLAG_NOT_SELECTABLE); // make it useable
476 }
477 events.RescheduleEvent(EVENT_SUMMON_PORTAL, 4s);
478 }
479 break;
481 ++WaveCount;
485 {
486 if (WaveCount % 6 != 0)
488 else if (WaveCount == 6 || WaveCount == 12) // first or second boss
489 {
490 if (!uiFirstBoss || !uiSecondBoss)
491 {
492 uiFirstBoss = urand(1, 6);
493 do { uiSecondBoss = urand(1, 6); }
494 while (uiFirstBoss == uiSecondBoss);
495 SaveToDB();
496 }
498 }
499 else // cyanigossa
500 {
502 {
503 cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_BLUE_AURA, false);
504 cyanigosa->AI()->Talk(CYANIGOSA_SAY_SPAWN);
505 cyanigosa->GetMotionMaster()->MoveJump(MiddleRoomLocation.GetPositionX(), MiddleRoomLocation.GetPositionY(), MiddleRoomLocation.GetPositionZ(), 10.0f, 20.0f);
506 }
507 events.RescheduleEvent(EVENT_CYANIGOSSA_TRANSFORM, 10s);
508 }
509 }
510 break;
513 {
514 c->RemoveAurasDueToSpell(SPELL_CYANIGOSA_BLUE_AURA);
515 c->CastSpell(c, SPELL_CYANIGOSA_TRANSFORM, 0);
516 events.RescheduleEvent(EVENT_CYANIGOSA_ATTACK, 2500ms);
517 }
518 break;
521 {
522 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
523 c->SetImmuneToNPC(false);
524 }
525 break;
526 }
527 }
@ TEMPSUMMON_DEAD_DESPAWN
Definition Object.h:53
@ TEMPSUMMON_CORPSE_DESPAWN
Definition Object.h:51
uint32 urand(uint32 min, uint32 max)
Definition Random.cpp:44
@ REACT_PASSIVE
Definition Unit.h:549
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:297
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, UNIT_NPC_FLAG_GOSSIP, 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.

678 {
679 data << m_auiEncounter[0] << ' '
680 << m_auiEncounter[1] << ' '
681 << m_auiEncounter[2] << ' '
682 << uiFirstBoss << ' '
683 << uiSecondBoss << ' ';
684 }

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: