TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
instance_violet_hold::instance_violet_hold_InstanceMapScript Struct Reference

Public Member Functions

 instance_violet_hold_InstanceMapScript (Map *map)
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
void FillInitialWorldStates (WorldPackets::WorldState::InitWorldStates &data) override
 
bool CheckRequiredBosses (uint32 bossId, Player const *player=nullptr) const override
 
bool SetBossState (uint32 type, EncounterState state) override
 
void SetData (uint32 type, uint32 data) override
 
uint32 GetData (uint32 type) const override
 
ObjectGuid GetGuidData (uint32 type) const override
 
void SpawnPortal ()
 
void HandleCells (uint8 bossId, bool open=true)
 
void StartBossEncounter (uint8 bossId)
 
void ResetBossEncounter (uint8 bossId)
 
void AddWave ()
 
void WriteSaveDataMore (std::ostringstream &data) override
 
void ReadSaveDataMore (std::istringstream &data) override
 
bool CheckWipe () const
 
void UpdateKilledBoss (Creature *boss)
 
void Update (uint32 diff) override
 
void ScheduleCyanigosaIntro ()
 
void ProcessEvent (WorldObject *, uint32 eventId) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
virtual ~InstanceScript ()
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual bool IsEncounterInProgress () const
 
ObjectGuid GetObjectGuid (uint32 type) const
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoCloseDoorOrButton (ObjectGuid guid)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=NULL)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
bool ServerAllowsTwoSideGroups ()
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary constGetBossBoundary (uint32 id) const
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=NULL, uint32=0)
 
void UpdateEncounterState (EncounterCreditType type, uint32 creditEntry, Unit *source)
 
void SetCompletedEncountersMask (uint32 newMask)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=NULL, uint8 param1=0, uint8 param2=0)
 
void UpdatePhasing ()
 
uint32 GetEncounterCount () 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 SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 

Static Public Member Functions

static bool IsBossWave (uint8 wave)
 
- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 

Protected Attributes

TaskScheduler Scheduler
 
ObjectGuid ErekemGuardGUIDs [ErekemGuardCount]
 
ObjectGuid ActivationCrystalGUIDs [ActivationCrystalCount]
 
uint32 FirstBossId
 
uint32 SecondBossId
 
uint8 DoorIntegrity
 
uint8 WaveCount
 
uint8 EventState
 
uint8 LastPortalLocation
 
bool Defenseless
 

Static Protected Attributes

static uint8 const ErekemGuardCount = 2
 
static uint8 const ActivationCrystalCount = 5
 

Additional Inherited Members

- Public Attributes inherited from InstanceScript
Mapinstance
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (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)
 
virtual void AddDoor (GameObject *door, bool add)
 
void AddMinion (Creature *minion, bool add)
 
virtual void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
BossInfoGetBossInfo (uint32 id)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
bool _SkipCheckRequiredBosses (Player const *player=nullptr) const
 

Constructor & Destructor Documentation

instance_violet_hold::instance_violet_hold_InstanceMapScript::instance_violet_hold_InstanceMapScript ( Map map)
inline
194  : InstanceScript(map)
195  {
200 
201  FirstBossId = 0;
202  SecondBossId = 0;
203 
204  DoorIntegrity = 100;
205  WaveCount = 0;
207 
209 
210  Defenseless = true;
211  }
ObjectData const creatureData[]
Definition: instance_violet_hold.cpp:153
uint32 const EncounterCount
Definition: baradin_hold.h:28
uint8 LastPortalLocation
Definition: instance_violet_hold.cpp:936
void SetBossNumber(uint32 number)
Definition: InstanceScript.h:258
uint8 EventState
Definition: instance_violet_hold.cpp:935
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:98
#define DataHeader
Definition: baradin_hold.h:25
InstanceScript(Map *map)
Definition: InstanceScript.h:144
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
void LoadMinionData(MinionData const *data)
Definition: InstanceScript.cpp:112
Definition: InstanceScript.h:58
uint32 const EncouterPortalsCount
Definition: instance_violet_hold.cpp:65
ObjectData const gameObjectData[]
Definition: instance_violet_hold.cpp:167
uint8 DoorIntegrity
Definition: instance_violet_hold.cpp:933
bool Defenseless
Definition: instance_violet_hold.cpp:938
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
void LoadObjectData(ObjectData const *creatureData, ObjectData const *gameObjectData)
Definition: InstanceScript.cpp:136
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931
MinionData const minionData[]
Definition: instance_violet_hold.cpp:181

+ Here is the call graph for this function:

Member Function Documentation

void instance_violet_hold::instance_violet_hold_InstanceMapScript::AddWave ( )
inline
751  {
753 
754  switch (WaveCount)
755  {
756  case 6:
757  if (FirstBossId == 0)
759  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
760  {
762  sinclari->SummonCreature(NPC_SABOTEOUR, SaboteurSpawnLocation, TEMPSUMMON_DEAD_DESPAWN);
763  }
764  break;
765  case 12:
766  if (SecondBossId == 0)
767  do
768  {
770  } while (SecondBossId == FirstBossId);
771  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
772  {
774  sinclari->SummonCreature(NPC_SABOTEOUR, SaboteurSpawnLocation, TEMPSUMMON_DEAD_DESPAWN);
775  }
776  break;
777  case 18:
778  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
779  {
782  cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_ARCANE_POWER_STATE, true);
784  }
785  break;
786  default:
787  SpawnPortal();
788  break;
789  }
790  }
Definition: violet_hold.h:140
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Position const SaboteurSpawnLocation
Definition: instance_violet_hold.cpp:35
Position const PortalIntroPositions[PortalIntroPositionsSize]
Definition: instance_violet_hold.cpp:56
Definition: Creature.h:467
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: Object.h:60
void ScheduleCyanigosaIntro()
Definition: instance_violet_hold.cpp:882
Definition: instance_violet_hold.cpp:147
Definition: violet_hold.h:55
Definition: violet_hold.h:116
Definition: Object.h:56
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
Definition: violet_hold.h:50
void SpawnPortal()
Definition: instance_violet_hold.cpp:487
Definition: violet_hold.h:81
Definition: violet_hold.h:90
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:473
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
Position const CyanigosaSpawnLocation
Definition: instance_violet_hold.cpp:32
Definition: violet_hold.h:113
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::CheckRequiredBosses ( uint32  bossId,
Player const player = nullptr 
) const
inlineoverridevirtual

old code used cell door state to check this

Reimplemented from InstanceScript.

297  {
298  if (_SkipCheckRequiredBosses(player))
299  return true;
300 
301  switch (bossId)
302  {
303  case DATA_MORAGG:
304  case DATA_EREKEM:
305  case DATA_ICHORON:
306  case DATA_LAVANTHOR:
307  case DATA_XEVOZZ:
308  case DATA_ZURAMAT:
310  if (!(WaveCount == 6 && FirstBossId == bossId) && !(WaveCount == 12 && SecondBossId == bossId))
311  return false;
312  break;
313  case DATA_CYANIGOSA:
314  if (WaveCount < 18)
315  return false;
316  break;
317  default:
318  break;
319  }
320 
321  return true;
322  }
Definition: violet_hold.h:52
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: violet_hold.h:55
Definition: violet_hold.h:50
Definition: violet_hold.h:54
bool _SkipCheckRequiredBosses(Player const *player=nullptr) const
Definition: InstanceScript.cpp:313
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
Definition: violet_hold.h:53
Definition: violet_hold.h:48
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931
Definition: violet_hold.h:51

+ Here is the call graph for this function:

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::CheckWipe ( ) const
inline
804  {
805  Map::PlayerList const& players = instance->GetPlayers();
806  for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)
807  {
808  Player* player = itr->GetSource();
809  if (player->IsGameMaster())
810  continue;
811 
812  if (player->IsAlive())
813  return false;
814  }
815 
816  return true;
817  }
iterator begin()
Definition: MapRefManager.h:37
Map * instance
Definition: InstanceScript.h:148
Definition: LinkedList.h:141
PlayerList const & GetPlayers() const
Definition: Map.h:433
Definition: MapRefManager.h:26
iterator end()
Definition: MapRefManager.h:38

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::FillInitialWorldStates ( WorldPackets::WorldState::InitWorldStates data)
inlineoverridevirtual

Reimplemented from InstanceScript.

290  {
291  data.Worldstates.emplace_back(uint32(WORLD_STATE_VH_SHOW), uint32(EventState == IN_PROGRESS ? 1 : 0));
294  }
std::list< WorldStateInfo > Worldstates
Definition: WorldStatePackets.h:47
Definition: violet_hold.h:140
Definition: violet_hold.h:139
uint8 EventState
Definition: instance_violet_hold.cpp:935
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: violet_hold.h:138
Definition: InstanceScript.h:59
uint8 DoorIntegrity
Definition: instance_violet_hold.cpp:933
uint32_t uint32
Definition: g3dmath.h:168
uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::GetData ( uint32  type) const
inlineoverridevirtual

Reimplemented from ZoneScript.

451  {
452  switch (type)
453  {
454  case DATA_1ST_BOSS:
455  return FirstBossId;
456  case DATA_2ND_BOSS:
457  return SecondBossId;
459  return EventState;
460  case DATA_WAVE_COUNT:
461  return WaveCount;
462  case DATA_DOOR_INTEGRITY:
463  return DoorIntegrity;
464  case DATA_DEFENSELESS:
465  return Defenseless ? 1 : 0;
466  default:
467  break;
468  }
469 
470  return 0;
471  }
Definition: violet_hold.h:63
uint8 EventState
Definition: instance_violet_hold.cpp:935
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: violet_hold.h:47
Definition: halls_of_reflection.h:42
uint8 DoorIntegrity
Definition: instance_violet_hold.cpp:933
Definition: violet_hold.h:46
bool Defenseless
Definition: instance_violet_hold.cpp:938
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
Definition: violet_hold.h:60
Definition: violet_hold.h:58
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931

+ Here is the caller graph for this function:

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

Reimplemented from InstanceScript.

474  {
475  switch (type)
476  {
477  case DATA_EREKEM_GUARD_1:
478  case DATA_EREKEM_GUARD_2:
479  return ErekemGuardGUIDs[type - DATA_EREKEM_GUARD_1];
480  default:
481  break;
482  }
483 
484  return InstanceScript::GetGuidData(type);
485  }
ObjectGuid ErekemGuardGUIDs[ErekemGuardCount]
Definition: instance_violet_hold.cpp:925
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: violet_hold.h:66
Definition: violet_hold.h:67

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::HandleCells ( uint8  bossId,
bool  open = true 
)
inline
506  {
507  switch (bossId)
508  {
509  case DATA_MORAGG:
511  break;
512  case DATA_EREKEM:
516  break;
517  case DATA_ICHORON:
519  break;
520  case DATA_LAVANTHOR:
522  break;
523  case DATA_XEVOZZ:
525  break;
526  case DATA_ZURAMAT:
528  break;
529  default:
530  break;
531  }
532  }
Definition: violet_hold.h:73
Definition: violet_hold.h:74
Definition: violet_hold.h:52
Definition: violet_hold.h:77
ObjectGuid GetObjectGuid(uint32 type) const
Definition: InstanceScript.cpp:85
Definition: violet_hold.h:72
Definition: violet_hold.h:55
Definition: violet_hold.h:50
Definition: violet_hold.h:75
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:397
Definition: violet_hold.h:54
Definition: violet_hold.h:70
Definition: violet_hold.h:76
Definition: violet_hold.h:53
Definition: violet_hold.h:71
Definition: violet_hold.h:51

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static bool instance_violet_hold::instance_violet_hold_InstanceMapScript::IsBossWave ( uint8  wave)
inlinestatic
917  {
918  return wave && ((wave % 6) == 0);
919  }

+ Here is the caller graph for this function:

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

Reimplemented from InstanceScript.

214  {
216 
217  switch (creature->GetEntry())
218  {
219  case NPC_EREKEM_GUARD:
220  for (uint8 i = 0; i < ErekemGuardCount; ++i)
221  if (ErekemGuardGUIDs[i].IsEmpty())
222  {
223  ErekemGuardGUIDs[i] = creature->GetGUID();
224  break;
225  }
226  break;
227  default:
228  break;
229  }
230  }
ObjectGuid ErekemGuardGUIDs[ErekemGuardCount]
Definition: instance_violet_hold.cpp:925
virtual void OnCreatureCreate(Creature *creature) override
Definition: InstanceScript.cpp:61
ObjectGuid const & GetGUID() const
Definition: Object.h:105
static uint8 const ErekemGuardCount
Definition: instance_violet_hold.cpp:924
uint8_t uint8
Definition: Define.h:152
uint32 GetEntry() const
Definition: Object.h:107
Definition: violet_hold.h:102

+ Here is the call graph for this function:

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

Reimplemented from InstanceScript.

233  {
235 
236  switch (creature->GetEntry())
237  {
238  case NPC_EREKEM_GUARD:
239  for (uint8 i = 0; i < ErekemGuardCount; ++i)
240  if (ErekemGuardGUIDs[i] == creature->GetGUID())
241  {
242  ErekemGuardGUIDs[i].Clear();
243  break;
244  }
245  break;
246  default:
247  break;
248  }
249  }
ObjectGuid ErekemGuardGUIDs[ErekemGuardCount]
Definition: instance_violet_hold.cpp:925
virtual void OnCreatureRemove(Creature *creature) override
Definition: InstanceScript.cpp:67
void Clear()
Definition: ObjectGuid.h:215
ObjectGuid const & GetGUID() const
Definition: Object.h:105
static uint8 const ErekemGuardCount
Definition: instance_violet_hold.cpp:924
uint8_t uint8
Definition: Define.h:152
uint32 GetEntry() const
Definition: Object.h:107
Definition: violet_hold.h:102

+ Here is the call graph for this function:

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

Reimplemented from InstanceScript.

252  {
254 
255  switch (go->GetEntry())
256  {
258  for (uint8 i = 0; i < ActivationCrystalCount; ++i)
259  if (ActivationCrystalGUIDs[i].IsEmpty())
260  {
261  ActivationCrystalGUIDs[i] = go->GetGUID();
262  break;
263  }
264  break;
265  default:
266  break;
267  }
268  }
Definition: violet_hold.h:132
ObjectGuid ActivationCrystalGUIDs[ActivationCrystalCount]
Definition: instance_violet_hold.cpp:928
virtual void OnGameObjectCreate(GameObject *go) override
Definition: InstanceScript.cpp:73
static uint8 const ActivationCrystalCount
Definition: instance_violet_hold.cpp:927
ObjectGuid const & GetGUID() const
Definition: Object.h:105
uint8_t uint8
Definition: Define.h:152
uint32 GetEntry() const
Definition: Object.h:107

+ Here is the call graph for this function:

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

Reimplemented from InstanceScript.

271  {
273 
274  switch (go->GetEntry())
275  {
277  for (uint8 i = 0; i < ActivationCrystalCount; ++i)
278  if (ActivationCrystalGUIDs[i] == go->GetGUID())
279  {
281  break;
282  }
283  break;
284  default:
285  break;
286  }
287  }
Definition: violet_hold.h:132
virtual void OnGameObjectRemove(GameObject *go) override
Definition: InstanceScript.cpp:79
ObjectGuid ActivationCrystalGUIDs[ActivationCrystalCount]
Definition: instance_violet_hold.cpp:928
void Clear()
Definition: ObjectGuid.h:215
static uint8 const ActivationCrystalCount
Definition: instance_violet_hold.cpp:927
ObjectGuid const & GetGUID() const
Definition: Object.h:105
uint8_t uint8
Definition: Define.h:152
uint32 GetEntry() const
Definition: Object.h:107

+ Here is the call graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::ProcessEvent ( WorldObject ,
uint32  eventId 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

908  {
909  if (eventId == EVENT_ACTIVATE_CRYSTAL)
910  {
912  Defenseless = false;
913  }
914  }
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=NULL, uint32 duration=0, Unit *summoner=NULL, uint32 spellId=0, uint32 vehId=0)
Definition: Object.cpp:2219
Position const DefenseSystemLocation
Definition: instance_violet_hold.cpp:30
Definition: violet_hold.h:145
Map * instance
Definition: InstanceScript.h:148
Definition: violet_hold.h:118
bool Defenseless
Definition: instance_violet_hold.cpp:938

+ Here is the call graph for this function:

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

Reimplemented from InstanceScript.

798  {
799  data >> FirstBossId;
800  data >> SecondBossId;
801  }
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931
void instance_violet_hold::instance_violet_hold_InstanceMapScript::ResetBossEncounter ( uint8  bossId)
inline
707  {
708  if (bossId < DATA_CYANIGOSA || bossId > DATA_ZURAMAT)
709  return;
710 
711  Creature* boss = GetCreature(bossId);
712  if (!boss)
713  return;
714 
715  switch (bossId)
716  {
717  case DATA_CYANIGOSA:
718  boss->DespawnOrUnsummon();
719  break;
720  case DATA_EREKEM:
721  for (uint32 i = DATA_EREKEM_GUARD_1; i <= DATA_EREKEM_GUARD_2; ++i)
722  {
723  if (Creature* guard = instance->GetCreature(GetGuidData(i)))
724  {
725  if (guard->isDead())
726  guard->Respawn();
727 
728  if (GetBossState(bossId) == DONE)
729  UpdateKilledBoss(guard);
730 
731  guard->GetMotionMaster()->MoveTargetedHome();
733  }
734  }
735  // no break
736  default:
737  if (boss->isDead())
738  {
739  // respawn and update to a placeholder npc to avoid be looted again
740  boss->Respawn();
741  UpdateKilledBoss(boss);
742  }
743 
746  break;
747  }
748  }
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
Definition: Creature.cpp:1774
ObjectGuid GetGuidData(uint32 type) const override
Definition: instance_violet_hold.cpp:473
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: inflate.h:49
void MoveTargetedHome()
Definition: MotionMaster.cpp:201
Definition: Creature.h:467
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
Definition: Unit.h:681
void UpdateKilledBoss(Creature *boss)
Definition: instance_violet_hold.cpp:819
Definition: violet_hold.h:66
Definition: violet_hold.h:55
uint32_t uint32
Definition: Define.h:150
Definition: violet_hold.h:67
Map * instance
Definition: InstanceScript.h:148
Definition: Unit.h:682
void Respawn(bool force=false)
Definition: Creature.cpp:1697
bool isDead() const
Definition: Unit.h:1694
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3535
Definition: UpdateFields.h:109
Definition: violet_hold.h:48
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227
Definition: violet_hold.h:51

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::ScheduleCyanigosaIntro ( )
inline
883  {
884  Scheduler.Schedule(Seconds(2), [this](TaskContext task)
885  {
886  if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA))
887  cyanigosa->AI()->Talk(SAY_CYANIGOSA_SPAWN);
888 
889  task.Schedule(Seconds(6), [this](TaskContext task)
890  {
891  if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA))
892  cyanigosa->GetMotionMaster()->MoveJump(CyanigosaJumpLocation, 10.0f, 27.44744f);
893 
894  task.Schedule(Seconds(7), [this](TaskContext /*task*/)
895  {
896  if (Creature* cyanigosa = GetCreature(DATA_CYANIGOSA))
897  {
898  cyanigosa->RemoveAurasDueToSpell(SPELL_CYANIGOSA_ARCANE_POWER_STATE);
899  cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_TRANSFORM, true);
901  }
902  });
903  });
904  });
905  }
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: Creature.h:467
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition: Duration.h:27
Definition: Unit.h:681
TaskScheduler Scheduler
Definition: instance_violet_hold.cpp:922
Definition: instance_violet_hold.cpp:147
Definition: instance_violet_hold.cpp:146
Definition: Unit.h:682
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition: TaskScheduler.h:232
Definition: UpdateFields.h:109
Definition: instance_violet_hold.cpp:135
Definition: violet_hold.h:48
Position const CyanigosaJumpLocation
Definition: instance_violet_hold.cpp:33
TaskContext & Schedule(std::chrono::duration< _Rep, _Period > const &time, TaskScheduler::task_handler_t const &task)
Definition: TaskScheduler.h:522
Definition: TaskScheduler.h:411

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool instance_violet_hold::instance_violet_hold_InstanceMapScript::SetBossState ( uint32  type,
EncounterState  state 
)
inlineoverridevirtual

Reimplemented from InstanceScript.

325  {
326  if (!InstanceScript::SetBossState(type, state))
327  return false;
328 
329  switch (type)
330  {
331  case DATA_1ST_BOSS:
332  if (state == DONE)
334  break;
335  case DATA_2ND_BOSS:
336  if (state == DONE)
338  break;
339  case DATA_CYANIGOSA:
340  if (state == DONE)
342  break;
343  case DATA_MORAGG:
344  case DATA_EREKEM:
345  case DATA_ICHORON:
346  case DATA_LAVANTHOR:
347  case DATA_XEVOZZ:
348  case DATA_ZURAMAT:
349  // this won't work correctly because bossstate was initializd with TO_BE_DECIDED
350  if (WaveCount == 6)
351  SetBossState(DATA_1ST_BOSS, state);
352  else if (WaveCount == 12)
353  SetBossState(DATA_2ND_BOSS, state);
354 
355  if (state == DONE)
357  break;
358  default:
359  break;
360  }
361 
362  return true;
363  }
void SetData(uint32 type, uint32 data) override
Definition: instance_violet_hold.cpp:365
void UpdateEncounterState(EncounterCreditType type, uint32 creditEntry, Unit *source)
Definition: InstanceScript.cpp:607
Definition: inflate.h:49
Definition: violet_hold.h:52
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: violet_hold.h:47
bool SetBossState(uint32 type, EncounterState state) override
Definition: instance_violet_hold.cpp:324
Definition: halls_of_reflection.h:42
Definition: violet_hold.h:55
Definition: ObjectMgr.h:672
Definition: violet_hold.h:50
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
Definition: violet_hold.h:54
Definition: violet_hold.h:46
Definition: violet_hold.h:101
Definition: violet_hold.h:53
Definition: violet_hold.h:48
Definition: violet_hold.h:58
Definition: violet_hold.h:51
Definition: violet_hold.h:103

+ Here is the call graph for this function:

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

Reimplemented from ZoneScript.

366  {
367  switch (type)
368  {
369  case DATA_WAVE_COUNT:
370  WaveCount = data;
371  if (WaveCount)
372  {
373  Scheduler.Schedule(Seconds(IsBossWave(WaveCount - 1) ? 45 : 5), [this](TaskContext /*task*/)
374  {
375  AddWave();
376  });
377  }
378  break;
379  case DATA_DOOR_INTEGRITY:
380  DoorIntegrity = data;
381  Defenseless = false;
383  break;
385  switch (WaveCount)
386  {
387  case 6:
389  break;
390  case 12:
392  break;
393  }
394  break;
396  EventState = data;
397  if (data == IN_PROGRESS) // Start event
398  {
402 
403  WaveCount = 1;
405 
406  for (uint8 i = 0; i < ActivationCrystalCount; ++i)
408  crystal->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
409  }
410  else if (data == NOT_STARTED)
411  {
412  if (GameObject* mainDoor = GetGameObject(DATA_MAIN_DOOR))
413  {
414  mainDoor->SetGoState(GO_STATE_ACTIVE);
415  mainDoor->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
416  }
417 
421 
422  for (uint8 i = 0; i < ActivationCrystalCount; ++i)
424  crystal->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
425  }
426  else if (data == DONE)
427  {
428  if (GameObject* mainDoor = GetGameObject(DATA_MAIN_DOOR))
429  {
430  mainDoor->SetGoState(GO_STATE_ACTIVE);
431  mainDoor->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_LOCKED);
432  }
433 
435 
436  for (uint8 i = 0; i < ActivationCrystalCount; ++i)
438  crystal->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
439 
440  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
441  sinclari->AI()->DoAction(ACTION_SINCLARI_OUTRO);
442  }
443  break;
444  case DATA_HANDLE_CELLS:
445  HandleCells(data, false);
446  break;
447  }
448  }
Definition: SharedDefines.h:2125
void AddWave()
Definition: instance_violet_hold.cpp:750
Definition: violet_hold.h:140
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: inflate.h:49
Definition: violet_hold.h:139
ObjectGuid ActivationCrystalGUIDs[ActivationCrystalCount]
Definition: instance_violet_hold.cpp:928
Definition: Creature.h:467
uint8 EventState
Definition: instance_violet_hold.cpp:935
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition: Duration.h:27
Definition: violet_hold.h:138
TaskScheduler Scheduler
Definition: instance_violet_hold.cpp:922
static bool IsBossWave(uint8 wave)
Definition: instance_violet_hold.cpp:916
Definition: halls_of_reflection.h:42
Definition: InstanceScript.h:59
void StartBossEncounter(uint8 bossId)
Definition: instance_violet_hold.cpp:534
Definition: InstanceScript.h:58
Definition: SharedDefines.h:2122
GameObject * GetGameObject(uint32 type)
Definition: InstanceScript.h:184
void HandleCells(uint8 bossId, bool open=true)
Definition: instance_violet_hold.cpp:505
Map * instance
Definition: InstanceScript.h:148
Definition: GameObject.h:880
Definition: violet_hold.h:80
uint8 DoorIntegrity
Definition: instance_violet_hold.cpp:933
Definition: UpdateFields.h:319
Definition: violet_hold.h:81
Definition: GameObject.h:822
Definition: violet_hold.h:150
static uint8 const ActivationCrystalCount
Definition: instance_violet_hold.cpp:927
void DoUpdateWorldState(uint32 worldstateId, uint32 worldstateValue)
Definition: InstanceScript.cpp:473
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition: TaskScheduler.h:232
bool Defenseless
Definition: instance_violet_hold.cpp:938
uint8_t uint8
Definition: Define.h:152
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
Definition: violet_hold.h:83
Definition: violet_hold.h:62
GameObject * GetGameObject(ObjectGuid const &guid)
Definition: Map.cpp:3545
TaskScheduler & Async(std::function< void()> const &callable)
Definition: TaskScheduler.cpp:38
Definition: violet_hold.h:60
Definition: TaskScheduler.h:411
Definition: violet_hold.h:58
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::SpawnPortal ( )
inline
488  {
490  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
491  {
493  {
495  portal->AI()->SetData(DATA_PORTAL_LOCATION, LastPortalLocation);
496  }
497  else
498  {
500  portal->AI()->SetData(DATA_PORTAL_LOCATION, LastPortalLocation);
501  }
502  }
503  }
uint8 LastPortalLocation
Definition: instance_violet_hold.cpp:936
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Position const PortalPositions[PortalPositionsSize]
Definition: instance_violet_hold.cpp:38
Definition: Object.h:58
Definition: Creature.h:467
Definition: violet_hold.h:61
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
uint32 const EncouterPortalsCount
Definition: instance_violet_hold.cpp:65
Definition: violet_hold.h:81
Position const PortalElitePositions[PortalElitePositionsSize]
Definition: instance_violet_hold.cpp:48
Definition: violet_hold.h:89
uint32 const PortalPositionsSize
Definition: instance_violet_hold.cpp:37
Definition: violet_hold.h:88
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::StartBossEncounter ( uint8  bossId)
inline
535  {
536  switch (bossId)
537  {
538  case DATA_MORAGG:
539  Scheduler.Schedule(Seconds(2), [this](TaskContext task)
540  {
541  if (Creature* moragg = GetCreature(DATA_MORAGG))
542  {
543  moragg->PlayDirectSound(SOUND_MORAGG_SPAWN);
544  moragg->CastSpell(moragg, SPELL_MORAGG_EMOTE_ROAR);
545  }
546 
547  task.Schedule(Seconds(3), [this](TaskContext task)
548  {
549  if (Creature* moragg = GetCreature(DATA_MORAGG))
550  moragg->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, MoraggPath, MoraggPathSize, true);
551 
552  task.Schedule(Seconds(8), [this](TaskContext /*task*/)
553  {
554  if (Creature* moragg = GetCreature(DATA_MORAGG))
555  {
557  moragg->AI()->DoZoneInCombat(moragg, 200.0f);
558  }
559  });
560  });
561  });
562  break;
563  case DATA_EREKEM:
564  Scheduler.Schedule(Seconds(3), [this](TaskContext task)
565  {
566  if (Creature* erekem = GetCreature(DATA_EREKEM))
567  erekem->AI()->Talk(SAY_EREKEM_SPAWN);
568 
569  task.Schedule(Seconds(5), [this](TaskContext task)
570  {
571  if (Creature* erekem = GetCreature(DATA_EREKEM))
572  erekem->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemPath, ErekemPathSize, true);
573 
575  guard->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemGuardLeftPath, ErekemGuardLeftPathSize, true);
577  guard->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ErekemGuardRightPath, ErekemGuardRightPathSize, true);
578 
579  task.Schedule(Seconds(6), [this](TaskContext task)
580  {
581  if (Creature* erekem = GetCreature(DATA_EREKEM))
582  erekem->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
583 
584  task.Schedule(Seconds(1), [this](TaskContext /*task*/)
585  {
586  for (uint32 i = DATA_EREKEM_GUARD_1; i <= DATA_EREKEM_GUARD_2; ++i)
587  {
588  if (Creature* guard = instance->GetCreature(GetGuidData(i)))
590  }
591 
592  if (Creature* erekem = GetCreature(DATA_EREKEM))
593  {
595  erekem->AI()->DoZoneInCombat(erekem, 200.0f);
596  }
597  });
598  });
599  });
600  });
601  break;
602  case DATA_ICHORON:
603  Scheduler.Schedule(Seconds(2), [this](TaskContext task)
604  {
605  if (Creature* ichoron = GetCreature(DATA_ICHORON))
606  ichoron->AI()->Talk(SAY_ICHORON_SPAWN);
607 
608  task.Schedule(Seconds(3), [this](TaskContext task)
609  {
610  if (Creature* ichoron = GetCreature(DATA_ICHORON))
611  ichoron->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, IchoronPath, IchoronPathSize, true);
612 
613  task.Schedule(Seconds(14), [this](TaskContext /*task*/)
614  {
615  if (Creature* ichoron = GetCreature(DATA_ICHORON))
616  {
618  ichoron->AI()->DoZoneInCombat(ichoron, 200.0f);
619  }
620  });
621  });
622  });
623  break;
624  case DATA_LAVANTHOR:
625  Scheduler.Schedule(Seconds(1), [this](TaskContext task)
626  {
627  if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR))
628  lavanthor->CastSpell(lavanthor, SPELL_LAVANTHOR_SPECIAL_UNARMED);
629 
630  task.Schedule(Seconds(3), [this](TaskContext task)
631  {
632  if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR))
633  lavanthor->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, LavanthorPath, LavanthorPathSize, true);
634 
635  task.Schedule(Seconds(8), [this](TaskContext /*task*/)
636  {
637  if (Creature* lavanthor = GetCreature(DATA_LAVANTHOR))
638  {
640  lavanthor->AI()->DoZoneInCombat(lavanthor, 200.0f);
641  }
642  });
643  });
644  });
645  break;
646  case DATA_XEVOZZ:
647  Scheduler.Schedule(Seconds(2), [this](TaskContext task)
648  {
649  if (Creature* xevozz = GetCreature(DATA_XEVOZZ))
650  xevozz->AI()->Talk(SAY_XEVOZZ_SPAWN);
651 
652  task.Schedule(Seconds(3), [this](TaskContext task)
653  {
654  if (Creature* xevozz = GetCreature(DATA_XEVOZZ))
655  xevozz->HandleEmoteCommand(EMOTE_ONESHOT_TALK_NO_SHEATHE);
656 
657  task.Schedule(Seconds(4), [this](TaskContext task)
658  {
659  if (Creature* xevozz = GetCreature(DATA_XEVOZZ))
660  xevozz->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, XevozzPath, XevozzPathSize, true);
661 
662  task.Schedule(Seconds(4), [this](TaskContext /*task*/)
663  {
664  if (Creature* xevozz = GetCreature(DATA_XEVOZZ))
665  {
667  xevozz->AI()->DoZoneInCombat(xevozz, 200.0f);
668  }
669  });
670  });
671  });
672  });
673  break;
674  case DATA_ZURAMAT:
675  Scheduler.Schedule(Seconds(2), [this](TaskContext task)
676  {
677  if (Creature* zuramat = GetCreature(DATA_ZURAMAT))
678  {
679  zuramat->CastSpell(zuramat, SPELL_ZURAMAT_COSMETIC_CHANNEL_OMNI);
680  zuramat->AI()->Talk(SAY_ZURAMAT_SPAWN);
681  }
682 
683  task.Schedule(Seconds(6), [this](TaskContext task)
684  {
685  if (Creature* zuramat = GetCreature(DATA_ZURAMAT))
686  zuramat->GetMotionMaster()->MoveSmoothPath(POINT_INTRO, ZuramatPath, ZuramatPathSize, true);
687 
688  task.Schedule(Seconds(4), [this](TaskContext /*task*/)
689  {
690  if (Creature* zuramat = GetCreature(DATA_ZURAMAT))
691  {
693  zuramat->AI()->DoZoneInCombat(zuramat, 200.0f);
694  }
695  });
696  });
697  });
698  break;
699  default:
700  return;
701  }
702 
703  HandleCells(bossId);
704  }
Definition: instance_violet_hold.cpp:137
G3D::Vector3 const IchoronPath[IchoronPathSize]
Definition: instance_violet_hold.cpp:100
ObjectGuid GetGuidData(uint32 type) const override
Definition: instance_violet_hold.cpp:473
Definition: instance_violet_hold.cpp:141
uint32 const MoraggPathSize
Definition: instance_violet_hold.cpp:67
uint32 const XevozzPathSize
Definition: instance_violet_hold.cpp:117
Definition: instance_violet_hold.cpp:150
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: violet_hold.h:52
Definition: Creature.h:467
uint32 const ErekemGuardRightPathSize
Definition: instance_violet_hold.cpp:91
std::chrono::seconds Seconds
Seconds shorthand typedef.
Definition: Duration.h:27
G3D::Vector3 const ErekemGuardLeftPath[ErekemGuardLeftPathSize]
Definition: instance_violet_hold.cpp:84
Definition: Unit.h:681
TaskScheduler Scheduler
Definition: instance_violet_hold.cpp:922
G3D::Vector3 const ErekemGuardRightPath[ErekemGuardRightPathSize]
Definition: instance_violet_hold.cpp:92
G3D::Vector3 const ZuramatPath[ZuramatPathSize]
Definition: instance_violet_hold.cpp:126
Definition: instance_violet_hold.cpp:139
Definition: violet_hold.h:66
uint32 const IchoronPathSize
Definition: instance_violet_hold.cpp:99
Definition: violet_hold.h:55
Definition: instance_violet_hold.cpp:138
uint32_t uint32
Definition: Define.h:150
void HandleCells(uint8 bossId, bool open=true)
Definition: instance_violet_hold.cpp:505
Definition: violet_hold.h:67
Definition: violet_hold.h:50
Map * instance
Definition: InstanceScript.h:148
uint32 const ZuramatPathSize
Definition: instance_violet_hold.cpp:125
G3D::Vector3 const LavanthorPath[LavanthorPathSize]
Definition: instance_violet_hold.cpp:110
uint32 const ErekemGuardLeftPathSize
Definition: instance_violet_hold.cpp:83
uint32 const ErekemPathSize
Definition: instance_violet_hold.cpp:75
Definition: violet_hold.h:54
G3D::Vector3 const MoraggPath[MoraggPathSize]
Definition: instance_violet_hold.cpp:68
Definition: instance_violet_hold.cpp:149
Definition: Unit.h:682
Definition: instance_violet_hold.cpp:136
Definition: SharedDefines.h:2425
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
Definition: TaskScheduler.h:232
Creature * GetCreature(ObjectGuid const &guid)
Definition: Map.cpp:3535
Definition: UpdateFields.h:109
G3D::Vector3 const XevozzPath[XevozzPathSize]
Definition: instance_violet_hold.cpp:118
G3D::Vector3 const ErekemPath[ErekemPathSize]
Definition: instance_violet_hold.cpp:76
Definition: violet_hold.h:53
uint32 const LavanthorPathSize
Definition: instance_violet_hold.cpp:109
Definition: SharedDefines.h:2509
TaskContext & Schedule(std::chrono::duration< _Rep, _Period > const &time, TaskScheduler::task_handler_t const &task)
Definition: TaskScheduler.h:522
Definition: instance_violet_hold.cpp:148
Definition: TaskScheduler.h:411
Definition: zulaman.cpp:62
Definition: violet_hold.h:51

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from InstanceScript.

850  {
851  if (!instance->HavePlayers())
852  return;
853 
854  // if main event is in progress and players have wiped then reset instance
855  if ((EventState == IN_PROGRESS && CheckWipe()) || EventState == FAIL)
856  {
860 
861  WaveCount = 0;
862  DoorIntegrity = 100;
863  Defenseless = true;
865 
867 
868  if (Creature* sinclari = GetCreature(DATA_SINCLARI))
869  sinclari->AI()->EnterEvadeMode();
870  }
871 
872  Scheduler.Update(diff);
873 
874  if (EventState == IN_PROGRESS)
875  {
876  // if door is destroyed, event is failed
878  EventState = FAIL;
879  }
880  }
void ResetBossEncounter(uint8 bossId)
Definition: instance_violet_hold.cpp:706
void SetData(uint32 type, uint32 data) override
Definition: instance_violet_hold.cpp:365
Creature * GetCreature(uint32 type)
Definition: InstanceScript.h:180
Definition: Creature.h:467
uint8 EventState
Definition: instance_violet_hold.cpp:935
uint8 WaveCount
Definition: instance_violet_hold.cpp:934
Definition: InstanceScript.h:60
TaskScheduler Scheduler
Definition: instance_violet_hold.cpp:922
Definition: InstanceScript.h:59
Definition: InstanceScript.h:58
TaskScheduler & Update(success_t const &callback=EmptyCallback)
Definition: TaskScheduler.cpp:26
Map * instance
Definition: InstanceScript.h:148
bool HavePlayers() const
Definition: Map.h:423
bool CheckWipe() const
Definition: instance_violet_hold.cpp:803
uint8 DoorIntegrity
Definition: instance_violet_hold.cpp:933
Definition: violet_hold.h:81
TaskScheduler & CancelAll()
Definition: TaskScheduler.cpp:44
bool Defenseless
Definition: instance_violet_hold.cpp:938
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
Definition: violet_hold.h:48
Definition: violet_hold.h:60
Definition: violet_hold.h:58
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931
uint32 GetData(uint32 type) const override
Definition: instance_violet_hold.cpp:450

+ Here is the call graph for this function:

void instance_violet_hold::instance_violet_hold_InstanceMapScript::UpdateKilledBoss ( Creature boss)
inline
820  {
821  switch (boss->GetEntry())
822  {
823  case NPC_XEVOZZ:
825  break;
826  case NPC_LAVANTHOR:
828  break;
829  case NPC_ICHORON:
831  break;
832  case NPC_ZURAMAT:
834  break;
835  case NPC_EREKEM:
837  break;
838  case NPC_MORAGG:
840  break;
841  case NPC_EREKEM_GUARD:
843  break;
844  default:
845  break;
846  }
847  }
Definition: violet_hold.h:95
Definition: violet_hold.h:106
Definition: violet_hold.h:93
Definition: violet_hold.h:107
Definition: violet_hold.h:105
Definition: violet_hold.h:109
Definition: violet_hold.h:108
Definition: violet_hold.h:111
Definition: violet_hold.h:94
Definition: violet_hold.h:101
uint32 GetEntry() const
Definition: Object.h:107
Definition: violet_hold.h:110
Definition: violet_hold.h:98
bool UpdateEntry(uint32 entry, CreatureData const *data=nullptr)
Definition: Creature.cpp:407
Definition: violet_hold.h:102
Definition: violet_hold.h:103

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Reimplemented from InstanceScript.

793  {
794  data << FirstBossId << ' ' << SecondBossId;
795  }
uint32 FirstBossId
Definition: instance_violet_hold.cpp:930
uint32 SecondBossId
Definition: instance_violet_hold.cpp:931

Member Data Documentation

uint8 const instance_violet_hold::instance_violet_hold_InstanceMapScript::ActivationCrystalCount = 5
staticprotected
ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::ActivationCrystalGUIDs[ActivationCrystalCount]
protected
bool instance_violet_hold::instance_violet_hold_InstanceMapScript::Defenseless
protected
uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::DoorIntegrity
protected
uint8 const instance_violet_hold::instance_violet_hold_InstanceMapScript::ErekemGuardCount = 2
staticprotected
ObjectGuid instance_violet_hold::instance_violet_hold_InstanceMapScript::ErekemGuardGUIDs[ErekemGuardCount]
protected
uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::EventState
protected
uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::FirstBossId
protected
uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::LastPortalLocation
protected
TaskScheduler instance_violet_hold::instance_violet_hold_InstanceMapScript::Scheduler
protected
uint32 instance_violet_hold::instance_violet_hold_InstanceMapScript::SecondBossId
protected
uint8 instance_violet_hold::instance_violet_hold_InstanceMapScript::WaveCount
protected

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