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

Public Member Functions

 instance_trial_of_the_champion_InstanceMapScript (Map *pMap)
 
void Initialize () override
 
bool IsEncounterInProgress () const override
 
void OnCreatureCreate (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
std::string GetSaveData () override
 
void Load (const char *in) override
 
void OnPlayerEnter (Player *plr) override
 
bool DoNeedCleanup (Player *ignoredPlayer=nullptr)
 
void InstanceCleanup ()
 
uint32 GetData (uint32 uiData) const override
 
ObjectGuid GetGuidData (uint32 uiData) const override
 
void SetData (uint32 uiType, uint32 uiData) override
 
void DoSummonGrandChampion (uint32 BossNumber, uint8 BossOrder)
 
void Update (uint32 diff) override
 
bool CheckAchievementCriteriaMeet (uint32 criteria_id, Player const *, Unit const *, uint32) override
 
- Public Member Functions inherited from InstanceScript
 InstanceScript (Map *map)
 
 ~InstanceScript () override
 
virtual void Initialize ()
 
virtual void Load (char const *data)
 
virtual void CreatureLooted (Creature *, LootType)
 
virtual std::string GetSaveData ()
 
void SaveToDB ()
 
virtual void Update (uint32)
 
virtual bool IsEncounterInProgress () const
 
void OnCreatureCreate (Creature *creature) override
 
void OnCreatureRemove (Creature *creature) override
 
void OnGameObjectCreate (GameObject *go) override
 
void OnGameObjectRemove (GameObject *go) override
 
ObjectGuid GetObjectGuid (uint32 type) const
 
ObjectGuid GetGuidData (uint32 type) const override
 
CreatureGetCreature (uint32 type)
 
GameObjectGetGameObject (uint32 type)
 
virtual void OnPlayerEnter (Player *)
 
virtual void OnPlayerAreaUpdate (Player *, uint32, uint32)
 
void HandleGameObject (ObjectGuid guid, bool open, GameObject *go=nullptr)
 
void DoUseDoorOrButton (ObjectGuid guid, uint32 withRestoreTime=0, bool useAlternativeState=false)
 
void DoRespawnGameObject (ObjectGuid guid, uint32 timeToDespawn=MINUTE)
 
void DoRespawnCreature (ObjectGuid guid, bool force=false)
 
void DoRespawnCreature (uint32 type, bool force=false)
 
void DoUpdateWorldState (uint32 worldstateId, uint32 worldstateValue)
 
void DoSendNotifyToInstance (char const *format,...)
 
void DoUpdateAchievementCriteria (AchievementCriteriaTypes type, uint32 miscValue1=0, uint32 miscValue2=0, Unit *unit=nullptr)
 
void DoStartTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoStopTimedAchievement (AchievementCriteriaTimedTypes type, uint32 entry)
 
void DoRemoveAurasDueToSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayers (uint32 spell)
 
void DoCastSpellOnPlayer (Player *player, uint32 spell, bool includePets, bool includeControlled)
 
bool ServerAllowsTwoSideGroups ()
 
virtual bool SetBossState (uint32 id, EncounterState state)
 
EncounterState GetBossState (uint32 id) const
 
CreatureBoundary const * GetBossBoundary (uint32 id) const
 
BossInfo const * GetBossInfo (uint32 id) const
 
uint32 GetPersistentData (uint32 index) const
 
void StorePersistentData (uint32 index, uint32 data)
 
virtual bool CheckAchievementCriteriaMeet (uint32, Player const *, Unit const *=nullptr, uint32=0)
 
virtual bool CheckRequiredBosses (uint32, Player const *=nullptr) const
 
void SetCompletedEncountersMask (uint32 newMask, bool save)
 
uint32 GetCompletedEncounterMask () const
 
void SendEncounterUnit (uint32 type, Unit *unit=nullptr, uint8 param1=0, uint8 param2=0)
 
virtual void FillInitialWorldStates (WorldPacket &)
 
uint32 GetEncounterCount () const
 
void MarkAreaTriggerDone (uint32 id)
 
void ResetAreaTriggerDone (uint32 id)
 
bool IsAreaTriggerDone (uint32 id) const
 
virtual void DoAction (int32)
 
- Public Member Functions inherited from ZoneScript
 ZoneScript ()
 
virtual ~ZoneScript ()
 
virtual uint32 GetCreatureEntry (ObjectGuid::LowType, CreatureData const *data)
 
virtual uint32 GetGameObjectEntry (ObjectGuid::LowType, uint32 entry)
 
virtual void OnCreatureCreate (Creature *)
 
virtual void OnCreatureRemove (Creature *)
 
virtual void OnGameObjectCreate (GameObject *)
 
virtual void OnGameObjectRemove (GameObject *)
 
virtual void OnUnitDeath (Unit *)
 
virtual void OnCreatureEvade (Creature *)
 
virtual ObjectGuid GetGuidData (uint32) const
 
virtual void SetGuidData (uint32, ObjectGuid)
 
virtual uint64 GetData64 (uint32) const
 
virtual void SetData64 (uint32, uint64)
 
virtual uint32 GetData (uint32) const
 
virtual void SetData (uint32, uint32)
 
virtual void ProcessEvent (WorldObject *, uint32)
 

Public Attributes

bool CLEANED
 
TeamId TeamIdInInstance
 
uint32 InstanceProgress
 
uint32 m_auiEncounter [MAX_ENCOUNTER]
 
std::string str_data
 
GuidList VehicleList
 
EventMap events
 
uint8 Counter
 
uint8 temp1
 
uint8 temp2
 
bool shortver
 
bool bAchievIveHadWorse
 
ObjectGuid NPC_AnnouncerGUID
 
ObjectGuid NPC_TirionGUID
 
ObjectGuid NPC_GrandChampionGUID [3]
 
ObjectGuid NPC_GrandChampionMinionsGUID [3][3]
 
ObjectGuid NPC_ArgentChampionGUID
 
ObjectGuid NPC_ArgentSoldierGUID [3][3]
 
uint32 NPC_MemoryEntry
 
ObjectGuid NPC_BlackKnightVehicleGUID
 
ObjectGuid NPC_BlackKnightGUID
 
ObjectGuid GO_MainGateGUID
 
ObjectGuid GO_EnterGateGUID
 
- Public Attributes inherited from InstanceScript
Mapinstance
 

Additional Inherited Members

- Static Public Member Functions inherited from InstanceScript
static std::string GetBossStateName (uint8 state)
 
- Protected Member Functions inherited from InstanceScript
void SetHeaders (std::string const &dataHeaders)
 
void SetBossNumber (uint32 number)
 
void SetPersistentDataCount (uint32 number)
 
void LoadBossBoundaries (BossBoundaryData const &data)
 
void LoadDoorData (DoorData const *data)
 
void LoadMinionData (MinionData const *data)
 
void LoadObjectData (ObjectData const *creatureData, ObjectData const *gameObjectData)
 
void AddObject (Creature *obj, bool add)
 
void AddObject (GameObject *obj, bool add)
 
void AddObject (WorldObject *obj, uint32 type, bool add)
 
void AddDoor (GameObject *door, bool add)
 
void AddMinion (Creature *minion, bool add)
 
void UpdateDoorState (GameObject *door)
 
void UpdateMinionState (Creature *minion, EncounterState state)
 
bool ReadSaveDataHeaders (std::istringstream &data)
 
void ReadSaveDataBossStates (std::istringstream &data)
 
void ReadSavePersistentData (std::istringstream &data)
 
virtual void ReadSaveDataMore (std::istringstream &)
 
void WriteSaveDataHeaders (std::ostringstream &data)
 
void WriteSaveDataBossStates (std::ostringstream &data)
 
void WritePersistentData (std::ostringstream &data)
 
virtual void WriteSaveDataMore (std::ostringstream &)
 

Detailed Description

Constructor & Destructor Documentation

◆ instance_trial_of_the_champion_InstanceMapScript()

instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::instance_trial_of_the_champion_InstanceMapScript ( Map pMap)
inline
42 : InstanceScript(pMap)
43 {
45 Initialize();
46 }
#define DataHeader
Definition: blackrock_depths.h:23
Definition: InstanceScript.h:140
void SetHeaders(std::string const &dataHeaders)
Definition: InstanceScript.cpp:137
void Initialize() override
Definition: instance_trial_of_the_champion.cpp:73

References DataHeader, Initialize(), and InstanceScript::SetHeaders().

Member Function Documentation

◆ CheckAchievementCriteriaMeet()

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::CheckAchievementCriteriaMeet ( uint32  criteria_id,
Player const *  ,
Unit const *  ,
uint32   
)
inlineoverridevirtual

Reimplemented from InstanceScript.

1250 {
1251 switch(criteria_id)
1252 {
1253 case 11789: // I've Had Worse criteria id
1254 return bAchievIveHadWorse;
1255 case 11863:
1256 return NPC_MemoryEntry == 34942;
1257 case 11904:
1258 return NPC_MemoryEntry == 35028;
1259 case 11905:
1260 return NPC_MemoryEntry == 35029;
1261 case 11906:
1262 return NPC_MemoryEntry == 35030;
1263 case 11907:
1264 return NPC_MemoryEntry == 35031;
1265 case 11908:
1266 return NPC_MemoryEntry == 35032;
1267 case 11909:
1268 return NPC_MemoryEntry == 35033;
1269 case 11910:
1270 return NPC_MemoryEntry == 35034;
1271 case 11911:
1272 return NPC_MemoryEntry == 35036;
1273 case 11912:
1274 return NPC_MemoryEntry == 35037;
1275 case 11913:
1276 return NPC_MemoryEntry == 35038;
1277 case 11914:
1278 return NPC_MemoryEntry == 35039;
1279 case 11915:
1280 return NPC_MemoryEntry == 35040;
1281 case 11916:
1282 return NPC_MemoryEntry == 35041;
1283 case 11917:
1284 return NPC_MemoryEntry == 35042;
1285 case 11918:
1286 return NPC_MemoryEntry == 35043;
1287 case 11919:
1288 return NPC_MemoryEntry == 35044;
1289 case 11920:
1290 return NPC_MemoryEntry == 35045;
1291 case 11921:
1292 return NPC_MemoryEntry == 35046;
1293 case 11922:
1294 return NPC_MemoryEntry == 35047;
1295 case 11923:
1296 return NPC_MemoryEntry == 35048;
1297 case 11924:
1298 return NPC_MemoryEntry == 35049;
1299 case 11925:
1300 return NPC_MemoryEntry == 35050;
1301 case 11926:
1302 return NPC_MemoryEntry == 35051;
1303 case 11927:
1304 return NPC_MemoryEntry == 35052;
1305 }
1306 return false;
1307 }
uint32 NPC_MemoryEntry
Definition: instance_trial_of_the_champion.cpp:67
bool bAchievIveHadWorse
Definition: instance_trial_of_the_champion.cpp:59

References bAchievIveHadWorse, and NPC_MemoryEntry.

◆ DoNeedCleanup()

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::DoNeedCleanup ( Player ignoredPlayer = nullptr)
inline
274 {
275 uint8 aliveCount = 0;
276 for (const auto &itr: instance->GetPlayers())
277 {
278 if (Player* plr = itr.GetSource())
279 {
280 if (plr != ignoredPlayer && plr->IsAlive() && !plr->IsGameMaster())
281 {
282 ++aliveCount;
283 }
284 }
285 }
286
287 bool need = aliveCount == 0;
288 if (!need && CLEANED)
289 {
290 CLEANED = false;
291 }
292
293 return need;
294 }
std::uint8_t uint8
Definition: Define.h:110
Definition: Player.h:1046
Map * instance
Definition: InstanceScript.h:146
PlayerList const & GetPlayers() const
Definition: Map.h:484
bool CLEANED
Definition: instance_trial_of_the_champion.cpp:48

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

Referenced by OnPlayerEnter(), and Update().

◆ DoSummonGrandChampion()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::DoSummonGrandChampion ( uint32  BossNumber,
uint8  BossOrder 
)
inline
695 {
696 uint32 CHAMPION_TO_SUMMON = 0;
697 uint32 MINION_TO_SUMMON = 0;
698 int32 TEXT_ID = 0;
699
700 switch( BossNumber )
701 {
702 case 0:
703 CHAMPION_TO_SUMMON = NPC_MOKRA;
704 MINION_TO_SUMMON = NPC_ORGRIMMAR_MINION;
705 TEXT_ID = TEXT_MOKRA_SKILLCRUSHER;
706 break;
707 case 1:
708 CHAMPION_TO_SUMMON = NPC_ERESSEA;
709 MINION_TO_SUMMON = NPC_SILVERMOON_MINION;
710 TEXT_ID = TEXT_ERESSEA_DAWNSINGER;
711 break;
712 case 2:
713 CHAMPION_TO_SUMMON = NPC_RUNOK;
714 MINION_TO_SUMMON = NPC_THUNDER_BLUFF_MINION;
715 TEXT_ID = TEXT_RUNOK_WILDMANE;
716 break;
717 case 3:
718 CHAMPION_TO_SUMMON = NPC_ZULTORE;
719 MINION_TO_SUMMON = NPC_SENJIN_MINION;
720 TEXT_ID = TEXT_ZUL_TORE;
721 break;
722 case 4:
723 CHAMPION_TO_SUMMON = NPC_VISCERI;
724 MINION_TO_SUMMON = NPC_UNDERCITY_MINION;
726 break;
727 default:
728 return;
729 }
730
732 if (shortver)
733 switch (BossOrder)
734 {
735 case 0:
736 SpawnPos.Relocate(780.43f, 607.15f, 411.82f);
737 break;
738 case 1:
739 SpawnPos.Relocate(768.72f, 581.01f, 411.92f);
740 break;
741 case 2:
742 SpawnPos.Relocate(784.02f, 645.33f, 412.39f);
743 break;
744 }
745
746 if( Creature* pBoss = instance->SummonCreature(CHAMPION_TO_SUMMON, SpawnPos) )
747 {
748 NPC_GrandChampionGUID[BossOrder] = pBoss->GetGUID();
749 pBoss->ToCreature()->SetReactState(REACT_PASSIVE);
750 pBoss->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
751 pBoss->SetImmuneToAll(true);
752 pBoss->ToCreature()->SetHomePosition(748.309f, 619.448f, 411.3f, M_PI / 2);
753 pBoss->AI()->SetData(BossOrder, (shortver ? 1 : 0));
754
755 for( uint8 i = 0; i < 3; ++i )
756 if( Creature* pAdd = instance->SummonCreature(MINION_TO_SUMMON, SpawnPos) )
757 {
758 NPC_GrandChampionMinionsGUID[BossOrder][i] = pAdd->GetGUID();
759 pAdd->SetReactState(REACT_PASSIVE);
760 pAdd->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
761 pAdd->SetImmuneToAll(true);
762 pAdd->SetHomePosition(748.309f, 619.448f, 411.3f, M_PI / 2);
763 pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f, (i + 1)*M_PI / 2);
764 }
765 }
766
767 if (!shortver)
769 {
771 TEXT_ID -= 10;
772 announcer->AI()->Talk(TEXT_ID);
773 announcer->AI()->Talk(TEXT_ID + 1);
774 }
775 }
std::int32_t int32
Definition: Define.h:104
std::uint32_t uint32
Definition: Define.h:108
@ REACT_PASSIVE
Definition: Unit.h:1023
@ UNIT_FLAG_NON_ATTACKABLE
Definition: Unit.h:449
@ UNIT_FLAG_PACIFIED
Definition: Unit.h:465
const Position SpawnPosition
Definition: instance_trial_of_the_champion.cpp:25
@ TEXT_ZUL_TORE
Definition: trial_of_the_champion.h:193
@ TEXT_DEATHSTALKER_VESCERI
Definition: trial_of_the_champion.h:189
@ TEXT_ERESSEA_DAWNSINGER
Definition: trial_of_the_champion.h:197
@ TEXT_MOKRA_SKILLCRUSHER
Definition: trial_of_the_champion.h:195
@ TEXT_RUNOK_WILDMANE
Definition: trial_of_the_champion.h:191
@ NPC_ERESSEA
Definition: trial_of_the_champion.h:109
@ NPC_SILVERMOON_MINION
Definition: trial_of_the_champion.h:128
@ NPC_SENJIN_MINION
Definition: trial_of_the_champion.h:130
@ NPC_RUNOK
Definition: trial_of_the_champion.h:110
@ NPC_ZULTORE
Definition: trial_of_the_champion.h:111
@ NPC_THUNDER_BLUFF_MINION
Definition: trial_of_the_champion.h:129
@ NPC_MOKRA
Definition: trial_of_the_champion.h:108
@ NPC_UNDERCITY_MINION
Definition: trial_of_the_champion.h:131
@ NPC_VISCERI
Definition: trial_of_the_champion.h:112
@ NPC_ORGRIMMAR_MINION
Definition: trial_of_the_champion.h:127
const Position SpawnPos
Definition: halls_of_reflection.h:314
@ TEAM_HORDE
Definition: SharedDefines.h:733
Definition: Creature.h:46
Definition: Position.h:28
void Relocate(float x, float y)
Definition: Position.h:73
Creature * GetCreature(ObjectGuid const guid)
Definition: Map.cpp:3293
TempSummon * SummonCreature(uint32 entry, Position const &pos, SummonPropertiesEntry const *properties=nullptr, uint32 duration=0, WorldObject *summoner=nullptr, uint32 spellId=0, uint32 vehId=0, bool visibleBySummonerOnly=false)
Definition: Object.cpp:2129
ObjectGuid NPC_AnnouncerGUID
Definition: instance_trial_of_the_champion.cpp:61
ObjectGuid NPC_GrandChampionGUID[3]
Definition: instance_trial_of_the_champion.cpp:63
TeamId TeamIdInInstance
Definition: instance_trial_of_the_champion.cpp:49
ObjectGuid NPC_GrandChampionMinionsGUID[3][3]
Definition: instance_trial_of_the_champion.cpp:64
bool shortver
Definition: instance_trial_of_the_champion.cpp:58

References Map::GetCreature(), InstanceScript::instance, NPC_AnnouncerGUID, NPC_ERESSEA, NPC_GrandChampionGUID, NPC_GrandChampionMinionsGUID, NPC_MOKRA, NPC_ORGRIMMAR_MINION, NPC_RUNOK, NPC_SENJIN_MINION, NPC_SILVERMOON_MINION, NPC_THUNDER_BLUFF_MINION, NPC_UNDERCITY_MINION, NPC_VISCERI, NPC_ZULTORE, REACT_PASSIVE, Position::Relocate(), shortver, SpawnPos, SpawnPosition, Map::SummonCreature(), TEAM_HORDE, TeamIdInInstance, TEXT_DEATHSTALKER_VESCERI, TEXT_ERESSEA_DAWNSINGER, TEXT_MOKRA_SKILLCRUSHER, TEXT_RUNOK_WILDMANE, TEXT_ZUL_TORE, UNIT_FLAG_NON_ATTACKABLE, and UNIT_FLAG_PACIFIED.

Referenced by SetData(), and Update().

◆ GetData()

uint32 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GetData ( uint32  uiData) const
inlineoverridevirtual

Reimplemented from ZoneScript.

451 {
452 switch( uiData )
453 {
455 return InstanceProgress;
457 return TeamIdInInstance;
458 }
459
460 return 0;
461 }
@ DATA_INSTANCE_PROGRESS
Definition: trial_of_the_champion.h:34
@ DATA_TEAMID_IN_INSTANCE
Definition: trial_of_the_champion.h:45
uint32 InstanceProgress
Definition: instance_trial_of_the_champion.cpp:50

References DATA_INSTANCE_PROGRESS, DATA_TEAMID_IN_INSTANCE, InstanceProgress, and TeamIdInInstance.

◆ GetGuidData()

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GetGuidData ( uint32  uiData) const
inlineoverridevirtual

Reimplemented from InstanceScript.

464 {
465 switch( uiData )
466 {
467 case DATA_ANNOUNCER:
468 return NPC_AnnouncerGUID;
469 case DATA_PALETRESS:
471 }
472
473 return ObjectGuid::Empty;
474 }
@ DATA_PALETRESS
Definition: trial_of_the_champion.h:46
@ DATA_ANNOUNCER
Definition: trial_of_the_champion.h:36
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
ObjectGuid NPC_ArgentChampionGUID
Definition: instance_trial_of_the_champion.cpp:65

References DATA_ANNOUNCER, DATA_PALETRESS, ObjectGuid::Empty, NPC_AnnouncerGUID, and NPC_ArgentChampionGUID.

◆ GetSaveData()

std::string instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GetSaveData ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

214 {
216 std::ostringstream saveStream;
217 saveStream << "T C " << m_auiEncounter[0] << ' ' << m_auiEncounter[1] << ' ' << m_auiEncounter[2] << ' ' << InstanceProgress;
218 str_data = saveStream.str();
220 return str_data;
221 }
#define OUT_SAVE_INST_DATA_COMPLETE
Definition: InstanceScript.h:28
#define OUT_SAVE_INST_DATA
Definition: InstanceScript.h:27
uint32 m_auiEncounter[MAX_ENCOUNTER]
Definition: instance_trial_of_the_champion.cpp:51
std::string str_data
Definition: instance_trial_of_the_champion.cpp:52

References InstanceProgress, m_auiEncounter, OUT_SAVE_INST_DATA, OUT_SAVE_INST_DATA_COMPLETE, and str_data.

◆ Initialize()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Initialize ( )
inlineoverridevirtual

Reimplemented from InstanceScript.

74 {
77 memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
78
79 VehicleList.clear();
80 CLEANED = false;
81 events.Reset();
82 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0);
83 Counter = 0;
84 temp1 = 0;
85 temp2 = 0;
86 shortver = false;
87 bAchievIveHadWorse = true;
88 }
@ EVENT_CHECK_PLAYERS
Definition: boss_kiljaeden.cpp:117
events
Definition: boss_sartura.cpp:43
@ TEAM_NEUTRAL
Definition: SharedDefines.h:734
GuidList VehicleList
Definition: instance_trial_of_the_champion.cpp:54
uint8 temp2
Definition: instance_trial_of_the_champion.cpp:57
uint8 Counter
Definition: instance_trial_of_the_champion.cpp:56
uint8 temp1
Definition: instance_trial_of_the_champion.cpp:57

References bAchievIveHadWorse, CLEANED, Counter, EVENT_CHECK_PLAYERS, InstanceProgress, m_auiEncounter, shortver, TEAM_NEUTRAL, TeamIdInInstance, temp1, temp2, and VehicleList.

Referenced by instance_trial_of_the_champion_InstanceMapScript().

◆ InstanceCleanup()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::InstanceCleanup ( )
inline
297 {
298 if( CLEANED )
299 return;
300
301 switch( InstanceProgress )
302 {
308 // revert to INSTANCE_PROGRESS_INITIAL
309 {
310 for (ObjectGuid const& guid : VehicleList)
311 if (Creature* veh = instance->GetCreature(guid))
312 {
313 veh->DespawnOrUnsummon();
314 veh->SetRespawnTime(3);
315 }
316 for( uint8 i = 0; i < 3; ++i )
317 {
318 for( uint8 j = 0; j < 3; ++j )
319 {
321 c->DespawnOrUnsummon();
323 }
325 c->DespawnOrUnsummon();
327 }
329 {
330 c->DespawnOrUnsummon();
331 c->SetHomePosition(748.309f, 619.488f, 411.172f, 4.71239f);
332 c->SetPosition(748.309f, 619.488f, 411.172f, 4.71239f);
333 c->SetRespawnTime(3);
334 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
335 }
337 }
338 break;
340 {
342 {
343 announcer->DespawnOrUnsummon();
344 announcer->SetHomePosition(735.81f, 661.92f, 412.39f, 4.714f);
345 announcer->SetPosition(735.81f, 661.92f, 412.39f, 4.714f);
346 announcer->SetRespawnTime(3);
347 announcer->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP);
348
349 for( uint8 i = 0; i < 3; ++i )
351 {
352 uint32 entry = c->GetEntry();
353 c->DespawnOrUnsummon();
354 switch( i )
355 {
356 case 0:
357 if( Creature* pBoss = announcer->SummonCreature(entry, 736.695f, 650.02f, 412.4f, 3 * M_PI / 2) )
358 {
359 NPC_GrandChampionGUID[0] = pBoss->GetGUID();
360 pBoss->AI()->SetData(0, 2);
361 }
362 break;
363 case 1:
364 if( Creature* pBoss = announcer->SummonCreature(entry, 756.32f, 650.05f, 412.4f, 3 * M_PI / 2) )
365 {
366 NPC_GrandChampionGUID[1] = pBoss->GetGUID();
367 pBoss->AI()->SetData(1, 2);
368 }
369 break;
370 case 2:
371 if( Creature* pBoss = announcer->SummonCreature(entry, 746.5f, 650.65f, 411.7f, 3 * M_PI / 2) )
372 {
373 NPC_GrandChampionGUID[2] = pBoss->GetGUID();
374 pBoss->AI()->SetData(2, 2);
375 }
376 break;
377 }
378 }
379 }
380 }
381 break;
384 // revert to INSTANCE_PROGRESS_CHAMPIONS_DEAD
385 {
386 for( uint8 i = 0; i < 3; ++i )
387 for( uint8 j = 0; j < 3; ++j )
388 {
390 c->DespawnOrUnsummon();
392 }
394 {
395 c->AI()->DoAction(-1); // paletress despawn memory
396 c->DespawnOrUnsummon();
397 }
400 {
401 c->DespawnOrUnsummon();
402 c->SetHomePosition(743.14f, 628.77f, 411.2f, 4.71239f);
403 c->SetPosition(743.14f, 628.77f, 411.2f, 4.71239f);
404 c->SetRespawnTime(3);
405 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
406 }
407 NPC_MemoryEntry = 0;
409 }
410 break;
412 // revert to INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED
413 {
415 c->DespawnOrUnsummon();
418 {
419 c->AI()->DoAction(-1);
420 c->DespawnOrUnsummon();
421 }
424 {
425 c->DespawnOrUnsummon();
426 c->SetHomePosition(743.14f, 628.77f, 411.2f, 4.71239f);
427 c->SetPosition(743.14f, 628.77f, 411.2f, 4.71239f);
428 c->SetRespawnTime(3);
429 c->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
430 }
432 }
433 break;
436 c->DespawnOrUnsummon();
437 break;
438 }
439
442 Counter = 0;
443 SaveToDB();
444 events.Reset();
446
447 CLEANED = true;
448 }
@ UNIT_NPC_FLAG_GOSSIP
Definition: Unit.h:516
#define CLEANUP_CHECK_INTERVAL
Definition: instance_trial_of_the_champion.cpp:26
@ INSTANCE_PROGRESS_ARGENT_SOLDIERS_DIED
Definition: trial_of_the_champion.h:60
@ INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED
Definition: trial_of_the_champion.h:58
@ INSTANCE_PROGRESS_INITIAL
Definition: trial_of_the_champion.h:53
@ INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_3
Definition: trial_of_the_champion.h:57
@ INSTANCE_PROGRESS_GRAND_CHAMPIONS_REACHED_DEST
Definition: trial_of_the_champion.h:54
@ INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED
Definition: trial_of_the_champion.h:61
@ INSTANCE_PROGRESS_FINISHED
Definition: trial_of_the_champion.h:62
@ INSTANCE_PROGRESS_CHAMPIONS_DEAD
Definition: trial_of_the_champion.h:59
@ INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_1
Definition: trial_of_the_champion.h:55
@ INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_2
Definition: trial_of_the_champion.h:56
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition: Object.cpp:2318
Definition: ObjectGuid.h:120
void Clear()
Definition: ObjectGuid.h:140
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
Definition: InstanceScript.cpp:109
void SaveToDB()
Definition: InstanceScript.cpp:41
ObjectGuid NPC_BlackKnightGUID
Definition: instance_trial_of_the_champion.cpp:69
ObjectGuid GO_EnterGateGUID
Definition: instance_trial_of_the_champion.cpp:71
ObjectGuid NPC_ArgentSoldierGUID[3][3]
Definition: instance_trial_of_the_champion.cpp:66
ObjectGuid GO_MainGateGUID
Definition: instance_trial_of_the_champion.cpp:70
ObjectGuid NPC_BlackKnightVehicleGUID
Definition: instance_trial_of_the_champion.cpp:68

References CLEANED, CLEANUP_CHECK_INTERVAL, ObjectGuid::Clear(), Counter, EVENT_CHECK_PLAYERS, Map::GetCreature(), GO_EnterGateGUID, GO_MainGateGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED, INSTANCE_PROGRESS_ARGENT_SOLDIERS_DIED, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_1, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_2, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_3, INSTANCE_PROGRESS_CHAMPIONS_DEAD, INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED, INSTANCE_PROGRESS_FINISHED, INSTANCE_PROGRESS_GRAND_CHAMPIONS_REACHED_DEST, INSTANCE_PROGRESS_INITIAL, InstanceProgress, NPC_AnnouncerGUID, NPC_ArgentChampionGUID, NPC_ArgentSoldierGUID, NPC_BlackKnightGUID, NPC_BlackKnightVehicleGUID, NPC_GrandChampionGUID, NPC_GrandChampionMinionsGUID, NPC_MemoryEntry, InstanceScript::SaveToDB(), WorldObject::SummonCreature(), UNIT_NPC_FLAG_GOSSIP, and VehicleList.

Referenced by OnPlayerEnter(), and Update().

◆ IsEncounterInProgress()

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::IsEncounterInProgress ( ) const
inlineoverridevirtual

Reimplemented from InstanceScript.

91 {
92 for( uint8 i = 0; i < MAX_ENCOUNTER; ++i )
93 if( m_auiEncounter[i] == IN_PROGRESS )
94 return true;
95
96 return false;
97 }
@ IN_PROGRESS
Definition: InstanceScript.h:57
#define MAX_ENCOUNTER
Definition: violet_hold.h:21

References IN_PROGRESS, m_auiEncounter, and MAX_ENCOUNTER.

◆ Load()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Load ( const char *  in)
inlineoverridevirtual

Reimplemented from InstanceScript.

224 {
225 CLEANED = false;
226 events.Reset();
227 events.RescheduleEvent(EVENT_CHECK_PLAYERS, 0ms);
228
229 if( !in )
230 {
232 return;
233 }
234
236
237 char dataHead1, dataHead2;
238 uint16 data0, data1, data2, data3;
239 std::istringstream loadStream(in);
240 loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3;
241
242 if( dataHead1 == 'T' && dataHead2 == 'C' )
243 {
244 m_auiEncounter[0] = data0;
245 m_auiEncounter[1] = data1;
246 m_auiEncounter[2] = data2;
247 InstanceProgress = data3;
250
251 for( uint8 i = 0; i < MAX_ENCOUNTER; ++i )
252 if( m_auiEncounter[i] == IN_PROGRESS )
254 }
255 else
257
259 }
std::uint16_t uint16
Definition: Define.h:109
#define OUT_LOAD_INST_DATA_FAIL
Definition: InstanceScript.h:31
@ NOT_STARTED
Definition: InstanceScript.h:56
#define OUT_LOAD_INST_DATA_COMPLETE
Definition: InstanceScript.h:30
#define OUT_LOAD_INST_DATA(a)
Definition: InstanceScript.h:29

References CLEANED, EVENT_CHECK_PLAYERS, IN_PROGRESS, INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED, INSTANCE_PROGRESS_INITIAL, InstanceProgress, m_auiEncounter, MAX_ENCOUNTER, NOT_STARTED, OUT_LOAD_INST_DATA, OUT_LOAD_INST_DATA_COMPLETE, and OUT_LOAD_INST_DATA_FAIL.

◆ OnCreatureCreate()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnCreatureCreate ( Creature creature)
inlineoverridevirtual

Reimplemented from InstanceScript.

100 {
102 {
103 Map::PlayerList const& players = instance->GetPlayers();
104 if( !players.IsEmpty() )
105 if( Player* pPlayer = players.begin()->GetSource() )
106 TeamIdInInstance = pPlayer->GetTeamId();
107 }
108
109 switch( creature->GetEntry() )
110 {
111 // Grand Champions:
112 case NPC_MOKRA:
114 creature->UpdateEntry(NPC_JACOB);
115 break;
116 case NPC_ERESSEA:
118 creature->UpdateEntry(NPC_AMBROSE);
119 break;
120 case NPC_RUNOK:
122 creature->UpdateEntry(NPC_COLOSOS);
123 break;
124 case NPC_ZULTORE:
126 creature->UpdateEntry(NPC_JAELYNE);
127 break;
128 case NPC_VISCERI:
130 creature->UpdateEntry(NPC_LANA);
131 break;
132
133 // Grand Champion Minions:
137 break;
141 break;
145 break;
149 break;
153 break;
154
155 // Argent Champion:
156 case NPC_EADRIC:
157 case NPC_PALETRESS:
158 NPC_ArgentChampionGUID = creature->GetGUID();
159 break;
160
161 // Coliseum Announcer:
162 case NPC_JAEREN:
163 case NPC_ARELAS:
164 NPC_AnnouncerGUID = creature->GetGUID();
165 //if( TeamIdInInstance == TEAM_ALLIANCE )
166 // creature->UpdateEntry(NPC_ARELAS);
167 creature->SetReactState(REACT_PASSIVE);
168 break;
169
170 // Highlord Tirion Fordring
171 case NPC_TIRION:
172 NPC_TirionGUID = creature->GetGUID();
173 break;
174
175 // Beginning vehicles:
179 {
180 creature->DespawnOrUnsummon();
181 creature->SetRespawnTime(3);
182 VehicleList.push_back(creature->GetGUID());
183 }
184 else
185 creature->DespawnOrUnsummon();
186 break;
187 }
189 if (const CreatureAddon* ca = creature->GetCreatureAddon())
190 if (ca->mount != creature->GetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID))
191 creature->SetUInt32Value(UNIT_FIELD_MOUNTDISPLAYID, ca->mount);
192 }
@ UNIT_FIELD_MOUNTDISPLAYID
Definition: UpdateFields.h:126
@ VEHICLE_ARGENT_BATTLEWORG
Definition: trial_of_the_champion.h:171
@ VEHICLE_ARGENT_WARHORSE
Definition: trial_of_the_champion.h:170
@ NPC_JAELYNE
Definition: trial_of_the_champion.h:118
@ NPC_LANA
Definition: trial_of_the_champion.h:119
@ NPC_EXODAR_MINION
Definition: trial_of_the_champion.h:125
@ NPC_GNOMEREGAN_MINION
Definition: trial_of_the_champion.h:124
@ NPC_PALETRESS
Definition: trial_of_the_champion.h:135
@ NPC_COLOSOS
Definition: trial_of_the_champion.h:117
@ NPC_IRONFORGE_MINION
Definition: trial_of_the_champion.h:122
@ NPC_TIRION
Definition: trial_of_the_champion.h:148
@ NPC_ARELAS
Definition: trial_of_the_champion.h:145
@ NPC_AMBROSE
Definition: trial_of_the_champion.h:116
@ NPC_DARNASSUS_MINION
Definition: trial_of_the_champion.h:126
@ NPC_JAEREN
Definition: trial_of_the_champion.h:144
@ NPC_STORMWIND_MINION
Definition: trial_of_the_champion.h:123
@ NPC_EADRIC
Definition: trial_of_the_champion.h:133
@ NPC_JACOB
Definition: trial_of_the_champion.h:115
bool IsEmpty() const
Definition: LinkedList.h:97
FROM * GetSource() const
Definition: Reference.h:97
void SetRespawnTime(uint32 respawn)
Definition: Creature.cpp:3658
void SetReactState(ReactStates st)
Definition: Creature.h:89
bool UpdateEntry(uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
Definition: Creature.cpp:483
void DespawnOrUnsummon(Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
Definition: Creature.cpp:2108
CreatureAddon const * GetCreatureAddon() const
Definition: Creature.cpp:2612
Definition: CreatureData.h:429
uint32 GetUInt32Value(uint16 index) const
Definition: Object.cpp:305
uint32 GetEntry() const
Definition: Object.h:109
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:650
Definition: MapRefMgr.h:26
iterator begin()
Definition: MapRefMgr.h:36
ObjectGuid NPC_TirionGUID
Definition: instance_trial_of_the_champion.cpp:62

References MapRefMgr::begin(), Creature::DespawnOrUnsummon(), Creature::GetCreatureAddon(), Object::GetEntry(), Object::GetGUID(), Map::GetPlayers(), Reference< TO, FROM >::GetSource(), Object::GetUInt32Value(), InstanceScript::instance, INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED, InstanceProgress, LinkedListHead::IsEmpty(), m_auiEncounter, NOT_STARTED, NPC_AMBROSE, NPC_AnnouncerGUID, NPC_ARELAS, NPC_ArgentChampionGUID, NPC_COLOSOS, NPC_DARNASSUS_MINION, NPC_EADRIC, NPC_ERESSEA, NPC_EXODAR_MINION, NPC_GNOMEREGAN_MINION, NPC_IRONFORGE_MINION, NPC_JACOB, NPC_JAELYNE, NPC_JAEREN, NPC_LANA, NPC_MOKRA, NPC_ORGRIMMAR_MINION, NPC_PALETRESS, NPC_RUNOK, NPC_SENJIN_MINION, NPC_SILVERMOON_MINION, NPC_STORMWIND_MINION, NPC_THUNDER_BLUFF_MINION, NPC_TIRION, NPC_TirionGUID, NPC_UNDERCITY_MINION, NPC_VISCERI, NPC_ZULTORE, REACT_PASSIVE, Creature::SetReactState(), Creature::SetRespawnTime(), Object::SetUInt32Value(), TEAM_HORDE, TEAM_NEUTRAL, TeamIdInInstance, UNIT_FIELD_MOUNTDISPLAYID, Creature::UpdateEntry(), VEHICLE_ARGENT_BATTLEWORG, VEHICLE_ARGENT_WARHORSE, and VehicleList.

◆ OnGameObjectCreate()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnGameObjectCreate ( GameObject go)
inlineoverridevirtual

Reimplemented from InstanceScript.

195 {
196 switch( go->GetEntry() )
197 {
198 case GO_MAIN_GATE:
199 GO_MainGateGUID = go->GetGUID();
201 break;
204 HandleGameObject(go->GetGUID(), false, go);
205 break;
207 HandleGameObject(go->GetGUID(), true, go);
209 break;
210 }
211 }
@ GO_SOUTH_PORTCULLIS
Definition: trial_of_the_champion.h:154
@ GO_EAST_PORTCULLIS
Definition: trial_of_the_champion.h:155
@ GO_MAIN_GATE
Definition: trial_of_the_champion.h:153
@ GO_NORTH_PORTCULLIS
Definition: trial_of_the_champion.h:156

References Object::GetEntry(), Object::GetGUID(), GO_EAST_PORTCULLIS, GO_EnterGateGUID, GO_MAIN_GATE, GO_MainGateGUID, GO_NORTH_PORTCULLIS, GO_SOUTH_PORTCULLIS, and InstanceScript::HandleGameObject().

◆ OnPlayerEnter()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::OnPlayerEnter ( Player plr)
inlineoverridevirtual

Reimplemented from InstanceScript.

264 {
265 if (DoNeedCleanup(plr))
266 {
268 }
269
271 }
bool DoNeedCleanup(Player *ignoredPlayer=nullptr)
Definition: instance_trial_of_the_champion.cpp:273
void InstanceCleanup()
Definition: instance_trial_of_the_champion.cpp:296

References CLEANUP_CHECK_INTERVAL, DoNeedCleanup(), EVENT_CHECK_PLAYERS, and InstanceCleanup().

◆ SetData()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::SetData ( uint32  uiType,
uint32  uiData 
)
inlineoverridevirtual

Reimplemented from ZoneScript.

477 {
478 switch( uiType )
479 {
481 switch( InstanceProgress )
482 {
484 if (uiData == 0) // normal intro
485 {
486 shortver = false;
487
489 {
491 announcer->SetFacingToObject(gate);
493 tirion->AI()->Talk(TEXT_WELCOME);
494 }
495 events.RescheduleEvent(EVENT_YELL_WELCOME_2, 8s);
496 }
497 else // short version
498 {
499 shortver = true;
500
501 temp1 = urand(0, 4);
503 do { temp2 = urand(0, 4); }
504 while( temp1 == temp2 );
506 uint8 number = 0;
507 do { number = urand(0, 4); }
508 while( number == temp1 || number == temp2 );
509 DoSummonGrandChampion(number, 2);
510
512 uiData = DONE; // save to db
514 {
515 announcer->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
516 announcer->GetMotionMaster()->MovePoint(1, 735.81f, 661.92f, 412.39f);
517 }
518 events.ScheduleEvent(EVENT_GRAND_GROUP_1_MOVE_MIDDLE, 10s);
519 }
520 break;
523 {
524 Counter = urand(0, 1);
525 if( Counter )
526 announcer->AI()->Talk(TEXT_INTRODUCE_EADRIC);
527 else
528 announcer->AI()->Talk(TEXT_INTRODUCE_PALETRESS);
529 }
531 events.RescheduleEvent(EVENT_START_ARGENT_CHALLENGE_INTRO, 0ms);
532 break;
535 tirion->AI()->Talk(TEXT_BK_INTRO);
536 events.RescheduleEvent(EVENT_SUMMON_BLACK_KNIGHT, 3s);
537 break;
538 }
539 break;
541 if (shortver)
542 break;
543 switch( uiData )
544 {
545 case 0:
546 events.ScheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_2, 0ms);
547 break;
548 case 1:
549 events.ScheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_3, 0ms);
550 break;
551 case 2:
553 {
555 uiData = DONE; // save to db
556 announcer->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
557 announcer->GetMotionMaster()->MovePoint(1, 735.81f, 661.92f, 412.39f);
558 events.ScheduleEvent(EVENT_GRAND_GROUP_1_MOVE_MIDDLE, 8500ms);
559 }
560 break;
561 }
562 break;
563 case DATA_MOUNT_DIED:
564 switch( InstanceProgress )
565 {
566 case INSTANCE_PROGRESS_GRAND_CHAMPIONS_REACHED_DEST: // fighting group 1/3
567 if( ++Counter >= 3 )
568 {
569 Counter = 0;
571 uiData = DONE; // save to db
572 events.ScheduleEvent(EVENT_GRAND_GROUP_2_MOVE_MIDDLE, 0ms);
573 }
574 break;
575 case INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_1: // fighting group 2/3
576 if( ++Counter >= 3 )
577 {
578 Counter = 0;
580 uiData = DONE; // save to db
581 events.ScheduleEvent(EVENT_GRAND_GROUP_3_MOVE_MIDDLE, 0ms);
582 }
583 break;
584 case INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_2: // fighting group 3/3
585 if( ++Counter >= 3 )
586 {
587 Counter = 0;
589 uiData = DONE; // save to db
590 events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE, 0ms);
591 }
592 break;
593 case INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_3: // fighting grand champions (on vehicles)
594 if( ++Counter >= 3 )
595 {
596 Counter = 0;
598 for (ObjectGuid const& guid : VehicleList)
599 if (Creature* veh = instance->GetCreature(guid))
600 veh->DespawnOrUnsummon();
601 events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_MOVE_SIDE, 0ms);
602 }
603 break;
604 }
605 break;
607 --Counter;
608 break;
610 if( ++Counter >= 3 )
611 {
612 Counter = 0;
613 VehicleList.clear();
614 uiData = DONE;
616 m_auiEncounter[0] = DONE;
617 bool creditCasted = false;
618 for( uint8 i = 0; i < 3; ++i )
620 {
621 c->GetMotionMaster()->MovePoint(9, 747.36f, 670.07f, 411.9f);
622 if (!creditCasted)
623 {
624 c->CastSpell((Unit*)nullptr, 68572, true);
625 creditCasted = true;
626 }
627 }
629 {
630 announcer->GetMotionMaster()->MovePoint(0, 743.14f, 628.77f, 411.2f);
631 announcer->SummonGameObject(instance->IsHeroic() ? GO_CHAMPIONS_LOOT_H : GO_CHAMPIONS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000); // [LOOT]
632 events.ScheduleEvent(EVENT_RESTORE_ANNOUNCER_GOSSIP, 15s);
633 events.ScheduleEvent(EVENT_GRATZ_SLAIN_CHAMPIONS, 6s);
634 }
635
636 // bind players to instance
637 if( instance->IsHeroic() )
639 }
640 break;
642 if( ++Counter >= 9 )
643 {
644 Counter = 0;
646 uiData = DONE; // save to db
648 }
649 break;
651 {
652 m_auiEncounter[1] = uiData;
653 if( uiData == DONE )
654 {
657 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, 0ms);
658 }
659 }
660 break;
662 NPC_MemoryEntry = uiData;
663 break;
665 {
666 events.ScheduleEvent(EVENT_START_BLACK_KNIGHT_SCENE, 3s);
667 }
668 break;
670 {
671 m_auiEncounter[2] = uiData;
672 if (uiData == NOT_STARTED)
673 {
675 bAchievIveHadWorse = true;
676 }
677 else if( uiData == DONE )
678 {
681 }
682 }
683 break;
686 bAchievIveHadWorse = false;
687 break;
688 }
689
690 if( uiData == DONE )
691 SaveToDB();
692 }
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:44
@ MOVEMENTFLAG_WALKING
Definition: Unit.h:560
@ DONE
Definition: InstanceScript.h:59
@ GO_CHAMPIONS_LOOT_H
Definition: trial_of_the_champion.h:159
@ GO_CHAMPIONS_LOOT
Definition: trial_of_the_champion.h:158
@ EVENT_RESTORE_ANNOUNCER_GOSSIP
Definition: trial_of_the_champion.h:85
@ EVENT_SUMMON_BLACK_KNIGHT
Definition: trial_of_the_champion.h:96
@ EVENT_SUMMON_GRAND_CHAMPION_3
Definition: trial_of_the_champion.h:72
@ EVENT_YELL_WELCOME_2
Definition: trial_of_the_champion.h:73
@ EVENT_GRAND_GROUP_2_MOVE_MIDDLE
Definition: trial_of_the_champion.h:76
@ EVENT_GRAND_CHAMPIONS_MOVE_SIDE
Definition: trial_of_the_champion.h:82
@ EVENT_START_BLACK_KNIGHT_SCENE
Definition: trial_of_the_champion.h:97
@ EVENT_START_ARGENT_CHALLENGE_INTRO
Definition: trial_of_the_champion.h:86
@ EVENT_SUMMON_GRAND_CHAMPION_2
Definition: trial_of_the_champion.h:71
@ EVENT_GRAND_GROUP_1_MOVE_MIDDLE
Definition: trial_of_the_champion.h:74
@ EVENT_ARGENT_CHALLENGE_RUN_MIDDLE
Definition: trial_of_the_champion.h:93
@ EVENT_GRATZ_SLAIN_CHAMPIONS
Definition: trial_of_the_champion.h:84
@ EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE
Definition: trial_of_the_champion.h:80
@ EVENT_ARGENT_CHALLENGE_MOVE_FORWARD
Definition: trial_of_the_champion.h:91
@ EVENT_GRAND_GROUP_3_MOVE_MIDDLE
Definition: trial_of_the_champion.h:78
@ DATA_SKELETAL_GRYPHON_LANDED
Definition: trial_of_the_champion.h:44
@ DATA_GRAND_CHAMPION_DIED
Definition: trial_of_the_champion.h:42
@ DATA_ACHIEV_IVE_HAD_WORSE
Definition: trial_of_the_champion.h:48
@ DATA_REACHED_NEW_MOUNT
Definition: trial_of_the_champion.h:40
@ BOSS_BLACK_KNIGHT
Definition: trial_of_the_champion.h:32
@ DATA_GRAND_CHAMPION_REACHED_DEST
Definition: trial_of_the_champion.h:38
@ DATA_ARGENT_SOLDIER_DEFEATED
Definition: trial_of_the_champion.h:43
@ DATA_MOUNT_DIED
Definition: trial_of_the_champion.h:39
@ DATA_ANNOUNCER_GOSSIP_SELECT
Definition: trial_of_the_champion.h:37
@ DATA_MEMORY_ENTRY
Definition: trial_of_the_champion.h:47
@ BOSS_ARGENT_CHALLENGE
Definition: trial_of_the_champion.h:31
@ TEXT_INTRODUCE_EADRIC
Definition: trial_of_the_champion.h:204
@ TEXT_WELCOME
Definition: trial_of_the_champion.h:200
@ TEXT_INTRODUCE_PALETRESS
Definition: trial_of_the_champion.h:205
@ TEXT_BK_INTRO
Definition: trial_of_the_champion.h:215
Definition: GameObject.h:122
Definition: Unit.h:1290
GameObject * GetGameObject(ObjectGuid const guid)
Definition: Map.cpp:3298
InstanceMap * ToInstanceMap()
Definition: Map.h:544
bool IsHeroic() const
Definition: Map.h:451
void PermBindAllPlayers()
Definition: Map.cpp:3131
void DoSummonGrandChampion(uint32 BossNumber, uint8 BossOrder)
Definition: instance_trial_of_the_champion.cpp:694

References bAchievIveHadWorse, BOSS_ARGENT_CHALLENGE, BOSS_BLACK_KNIGHT, Counter, DATA_ACHIEV_IVE_HAD_WORSE, DATA_ANNOUNCER_GOSSIP_SELECT, DATA_ARGENT_SOLDIER_DEFEATED, DATA_GRAND_CHAMPION_DIED, DATA_GRAND_CHAMPION_REACHED_DEST, DATA_MEMORY_ENTRY, DATA_MOUNT_DIED, DATA_REACHED_NEW_MOUNT, DATA_SKELETAL_GRYPHON_LANDED, DONE, DoSummonGrandChampion(), EVENT_ARGENT_CHALLENGE_MOVE_FORWARD, EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE, EVENT_GRAND_CHAMPIONS_MOVE_SIDE, EVENT_GRAND_GROUP_1_MOVE_MIDDLE, EVENT_GRAND_GROUP_2_MOVE_MIDDLE, EVENT_GRAND_GROUP_3_MOVE_MIDDLE, EVENT_GRATZ_SLAIN_CHAMPIONS, EVENT_RESTORE_ANNOUNCER_GOSSIP, EVENT_START_ARGENT_CHALLENGE_INTRO, EVENT_START_BLACK_KNIGHT_SCENE, EVENT_SUMMON_BLACK_KNIGHT, EVENT_SUMMON_GRAND_CHAMPION_2, EVENT_SUMMON_GRAND_CHAMPION_3, EVENT_YELL_WELCOME_2, Map::GetCreature(), Map::GetGameObject(), GO_CHAMPIONS_LOOT, GO_CHAMPIONS_LOOT_H, GO_EnterGateGUID, GO_MainGateGUID, InstanceScript::HandleGameObject(), InstanceScript::instance, INSTANCE_PROGRESS_ARGENT_CHALLENGE_DIED, INSTANCE_PROGRESS_ARGENT_SOLDIERS_DIED, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_1, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_2, INSTANCE_PROGRESS_CHAMPION_GROUP_DIED_3, INSTANCE_PROGRESS_CHAMPIONS_DEAD, INSTANCE_PROGRESS_CHAMPIONS_UNMOUNTED, INSTANCE_PROGRESS_FINISHED, INSTANCE_PROGRESS_GRAND_CHAMPIONS_REACHED_DEST, INSTANCE_PROGRESS_INITIAL, InstanceProgress, Map::IsHeroic(), m_auiEncounter, MOVEMENTFLAG_WALKING, NOT_STARTED, NPC_AnnouncerGUID, NPC_GrandChampionGUID, NPC_MemoryEntry, NPC_TirionGUID, InstanceMap::PermBindAllPlayers(), InstanceScript::SaveToDB(), shortver, temp1, temp2, TEXT_BK_INTRO, TEXT_INTRODUCE_EADRIC, TEXT_INTRODUCE_PALETRESS, TEXT_WELCOME, Map::ToInstanceMap(), urand(), and VehicleList.

◆ Update()

void instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Update ( uint32  diff)
inlineoverridevirtual

Reimplemented from InstanceScript.

778 {
779 events.Update(diff);
780 switch( events.ExecuteEvent() )
781 {
782 case EVENT_NULL:
783 break;
785 {
786 if (DoNeedCleanup())
787 {
789 }
790 events.RepeatEvent(CLEANUP_CHECK_INTERVAL);
791 }
792 break;
794 {
795 temp1 = urand(0, 4);
798 events.ScheduleEvent(EVENT_CLOSE_GATE, 6s);
799 }
800 break;
802 {
803 do { temp2 = urand(0, 4); }
804 while( temp1 == temp2 );
807 events.ScheduleEvent(EVENT_CLOSE_GATE, 6s);
808 }
809 break;
811 {
812 uint8 number = 0;
813 do { number = urand(0, 4); }
814 while( number == temp1 || number == temp2 );
815 DoSummonGrandChampion(number, 2);
817 events.ScheduleEvent(EVENT_CLOSE_GATE, 6000);
818 }
819 break;
820 case EVENT_CLOSE_GATE:
821 {
823 }
824 break;
826 {
828 {
829 tirion->AI()->Talk(TEXT_WELCOME_2);
830 }
831
832 events.RescheduleEvent(EVENT_SUMMON_GRAND_CHAMPION_1, 8s);
833 break;
834 }
836 {
838 {
839 announcer->SetFacingTo(4.714f);
841 tirion->AI()->Talk(TEXT_BEGIN);
843 }
844 for( uint8 i = 0; i < 3; ++i )
846 {
847 float angle = rand_norm() * 2 * M_PI;
848 c->GetMotionMaster()->MovePoint(0, 748.309f + 3.0f * cos(angle), 619.448f + 3.0f * std::sin(angle), 411.3f);
849 }
850
851 events.ScheduleEvent(EVENT_GRAND_GROUP_1_ATTACK, 3s);
852 }
853 break;
855 {
856 for( uint8 i = 0; i < 3; ++i )
858 {
859 c->SetReactState(REACT_AGGRESSIVE);
860 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
861 c->SetImmuneToAll(false);
862 if( Unit* target = c->SelectNearestTarget(200.0f) )
863 c->AI()->AttackStart(target);
864 c->AI()->DoZoneInCombat();
865 }
866 Counter = 0;
867 }
868 break;
870 {
871 for( uint8 i = 0; i < 3; ++i )
873 {
874 float angle = rand_norm() * 2 * M_PI;
875 c->GetMotionMaster()->MovePoint(0, 748.309f + 3.0f * cos(angle), 619.448f + 3.0f * std::sin(angle), 411.3f);
876 }
877
878 events.ScheduleEvent(EVENT_GRAND_GROUP_2_ATTACK, 3s);
879 }
880 break;
882 {
883 for( uint8 i = 0; i < 3; ++i )
885 {
886 c->SetReactState(REACT_AGGRESSIVE);
887 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
888 c->SetImmuneToAll(false);
889 if( Unit* target = c->SelectNearestTarget(200.0f) )
890 c->AI()->AttackStart(target);
891 c->AI()->DoZoneInCombat();
892 }
893 }
894 break;
896 {
897 for( uint8 i = 0; i < 3; ++i )
899 {
900 float angle = rand_norm() * 2 * M_PI;
901 c->GetMotionMaster()->MovePoint(0, 748.309f + 3.0f * cos(angle), 619.448f + 3.0f * std::sin(angle), 411.3f);
902 }
903
904 events.ScheduleEvent(EVENT_GRAND_GROUP_3_ATTACK, 3s);
905 }
906 break;
908 {
909 for( uint8 i = 0; i < 3; ++i )
911 {
912 c->SetReactState(REACT_AGGRESSIVE);
913 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
914 c->SetImmuneToAll(false);
915 if( Unit* target = c->SelectNearestTarget(200.0f) )
916 c->AI()->AttackStart(target);
917 c->AI()->DoZoneInCombat();
918 }
919 }
920 break;
922 {
923 for( uint8 i = 0; i < 3; ++i )
925 {
926 float angle = rand_norm() * 2 * M_PI;
927 c->GetMotionMaster()->MovePoint(4, 748.309f + 3.0f * cos(angle), 619.448f + 3.0f * std::sin(angle), 411.3f);
928 }
929
931 }
932 break;
934 {
935 for( uint8 i = 0; i < 3; ++i )
937 {
938 c->SetReactState(REACT_AGGRESSIVE);
939 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
940 c->SetImmuneToAll(false);
941 if( Unit* target = c->SelectNearestTarget(200.0f) )
942 c->AI()->AttackStart(target);
943 c->AI()->DoZoneInCombat();
944 c->CastSpell(c, 67865, true); // SPELL_TRAMPLE_AURA
945 }
946 }
947 break;
949 {
950 for( uint8 i = 0; i < 3; ++i )
952 {
953 c->AI()->DoAction(1);
954 switch( i )
955 {
956 case 0:
957 c->GetMotionMaster()->MovePoint(5, 736.695f, 650.02f, 412.4f);
958 break;
959 case 1:
960 c->GetMotionMaster()->MovePoint(5, 756.32f, 650.05f, 412.4f);
961 break;
962 case 2:
963 c->GetMotionMaster()->MovePoint(5, 746.5f, 650.65f, 411.7f);
964 break;
965 }
966 }
967
968 events.ScheduleEvent(EVENT_GRAND_CHAMPIONS_ATTACK, 15s);
969 }
970 break;
972 {
973 for( uint8 i = 0; i < 3; ++i )
975 {
976 c->SetReactState(REACT_AGGRESSIVE);
977 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
978 c->SetImmuneToAll(false);
979 if( Unit* target = c->SelectNearestTarget(200.0f) )
980 c->AI()->AttackStart(target);
981 c->AI()->DoZoneInCombat();
982 c->AI()->DoAction(2);
983 }
984 }
985 break;
987 {
989 tirion->AI()->Talk(TEXT_GRATZ_SLAIN_CHAMPIONS);
990
992 }
993 break;
995 {
997 announcer->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP);
998 }
999 break;
1001 {
1002 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1003 {
1005 {
1006 announcer->SetFacingToObject(gate);
1007 HandleGameObject(GO_MainGateGUID, true, gate);
1008 HandleGameObject(GO_EnterGateGUID, false, gate);
1009 }
1010 if( Counter )
1011 {
1012 announcer->AI()->Talk(TEXT_CHEER_EADRIC_1);
1013 announcer->AI()->Talk(TEXT_CHEER_EADRIC_2);
1014 }
1015 else
1016 {
1017 announcer->AI()->Talk(TEXT_CHEER_PALETRESS_1);
1018 announcer->AI()->Talk(TEXT_CHEER_PALETRESS_2);
1019 }
1020 }
1021
1022 for( int8 i = 0; i < 3; ++i )
1023 {
1025 float x = pos.GetPositionX();
1026
1027 pos.m_positionX = x - 2.0f + (i - 1) * 10.0f;
1029 {
1030 pTrash->AI()->SetData(i, 0);
1031 NPC_ArgentSoldierGUID[i][0] = pTrash->GetGUID();
1032 }
1033 pos.m_positionX = x + (i - 1) * 10.0f;
1034 if( Creature* pTrash = instance->SummonCreature(NPC_ARGENT_MONK, pos) )
1035 {
1036 pTrash->AI()->SetData(i, 0);
1037 NPC_ArgentSoldierGUID[i][1] = pTrash->GetGUID();
1038 }
1039 pos.m_positionX = x + 2.0f + (i - 1) * 10.0f;
1040 if( Creature* pTrash = instance->SummonCreature(NPC_PRIESTESS, pos) )
1041 {
1042 pTrash->AI()->SetData(i, 0);
1043 NPC_ArgentSoldierGUID[i][2] = pTrash->GetGUID();
1044 }
1045 }
1046 events.ScheduleEvent(EVENT_SUMMON_ARGENT_CHALLENGE, 4s);
1047 }
1048 break;
1050 {
1051 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1052 announcer->GetMotionMaster()->MovePoint(0, 735.81f, 661.92f, 412.39f);
1054 boss->GetMotionMaster()->MovePoint(0, 746.881f, 660.263f, 411.7f);
1055 events.ScheduleEvent(EVENT_CLOSE_GATE, 5s);
1056 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_1, 4s);
1057 events.ScheduleEvent(EVENT_ARGENT_SOLDIER_GROUP_ATTACK, 12s + 500ms);
1058 }
1059 break;
1061 {
1064 if( !Counter )
1065 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_SAY_2, 6s);
1066 }
1067 break;
1069 {
1071 ac->AI()->Talk(TEXT_PALETRESS_SAY_2);
1072 }
1073 break;
1075 {
1076 Counter = 0;
1077 for( uint8 i = 0; i < 3; ++i )
1078 for( uint8 j = 0; j < 3; ++j )
1080 {
1081 c->SetReactState(REACT_AGGRESSIVE);
1082 c->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
1083 c->SetImmuneToAll(false);
1084 //c->AI()->DoZoneInCombat();
1085 }
1087 tirion->AI()->Talk(TEXT_YOU_MAY_BEGIN);
1088 }
1089 break;
1091 {
1093 {
1094 boss->GetMotionMaster()->MovePoint(0, 746.881f, 635.263f, 411.7f);
1095 }
1096 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_ATTACK, 3s);
1097 }
1098 break;
1100 {
1102 {
1103 boss->SetReactState(REACT_AGGRESSIVE);
1104 boss->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
1105 boss->SetImmuneToAll(false);
1106 if( Unit* target = boss->SelectNearestTarget(200.0f) )
1107 boss->AI()->AttackStart(target);
1108 boss->AI()->DoZoneInCombat();
1109 }
1110 }
1111 break;
1113 {
1115 {
1116 boss->GetMotionMaster()->MovePoint(1, 747.13f, 628.037f, 411.2f);
1117 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_LEAVE_CHEST, 6s);
1118 }
1119 }
1120 break;
1122 {
1123 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1125 {
1126 announcer->GetMotionMaster()->MovePoint(0, 743.14f, 628.77f, 411.2f);
1127 uint32 chest = 0;
1128 if( instance->IsHeroic() )
1129 chest = (boss->GetEntry() == NPC_EADRIC || boss->GetEntry() == NPC_EADRIC_H) ? GO_EADRIC_LOOT_H : GO_PALETRESS_LOOT_H;
1130 else
1131 chest = (boss->GetEntry() == NPC_EADRIC || boss->GetEntry() == NPC_EADRIC_H) ? GO_EADRIC_LOOT : GO_PALETRESS_LOOT;
1132 announcer->SummonGameObject(chest, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000); // [LOOT]
1133 }
1134
1135 events.ScheduleEvent(EVENT_ARGENT_CHALLENGE_DISAPPEAR, 4s);
1136 events.ScheduleEvent(EVENT_RESTORE_ANNOUNCER_GOSSIP, 15s);
1137 }
1138 break;
1140 {
1142 {
1143 boss->GetMotionMaster()->MovePoint(0, SpawnPosition);
1144 boss->DespawnOrUnsummon(3000);
1145 }
1146 }
1147 break;
1149 {
1150 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1151 if( Creature* bk_vehicle = announcer->SummonCreature(VEHICLE_BLACK_KNIGHT, 769.834f, 651.915f, 447.035f, 0.0f) )
1152 {
1153 NPC_BlackKnightVehicleGUID = bk_vehicle->GetGUID();
1154 bk_vehicle->SetReactState(REACT_PASSIVE);
1155 bk_vehicle->SetFacingTo(M_PI);
1156 if( Vehicle* v = bk_vehicle->GetVehicleKit() )
1157 if( Unit* bk = v->GetPassenger(0) )
1158 {
1159 NPC_BlackKnightGUID = bk->GetGUID();
1160 bk->SendMovementFlagUpdate(); // put him on vehicle visually
1161 if( bk->GetTypeId() == TYPEID_UNIT )
1162 bk->ToCreature()->SetReactState(REACT_PASSIVE);
1163 }
1164
1165 announcer->SetFacingToObject(bk_vehicle);
1166 announcer->AI()->Talk(TEXT_BK_RAFTERS);
1167 }
1168 }
1169 break;
1171 {
1173 {
1174 Position exitPos = { 751.003357f, 638.145508f, 411.570129f, M_PI };
1175 bk->ExitVehicle(/*&exitPos*/);
1176 bk->GetMotionMaster()->MoveJump(exitPos, 2.0f, 2.0f);
1177 bk->AI()->Talk(TEXT_BK_SPOILED);
1178 }
1179 events.ScheduleEvent(EVENT_BLACK_KNIGHT_CAST_ANNOUNCER, 2s);
1180 }
1181 break;
1183 {
1184 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1185 {
1187 {
1188 bk->SetPosition(745.016f, 631.506f, 411.575f, bk->GetAngle(announcer));
1189 bk->SetHomePosition(*bk);
1190 bk->SetFacingToObject(announcer);
1191 announcer->SetFacingToObject(bk);
1192 announcer->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
1193 bk->AddAura(68306, announcer); // spell has attribute player only
1195 tirion->AI()->Talk(TEXT_BK_MEANING);
1196 }
1197 }
1198 events.ScheduleEvent(EVENT_BLACK_KNIGHT_KILL_ANNOUNCER, 1s);
1199 }
1200 break;
1202 {
1204 bk_vehicle->AI()->DoAction(1);
1205
1206 events.ScheduleEvent(EVENT_BLACK_KNIGHT_MOVE_FORWARD, 4s);
1207 }
1208 break;
1210 {
1212 {
1213 bk->SetUnitMovementFlags(MOVEMENTFLAG_WALKING);
1214 bk->GetMotionMaster()->MovePoint(0, 746.81f, 623.15f, 411.42f);
1215 bk->AI()->Talk(TEXT_BK_LICH);
1216 }
1217 if( Creature* announcer = instance->GetCreature(NPC_AnnouncerGUID) )
1218 if (announcer->IsAlive())
1219 Unit::Kill(announcer, announcer);
1220 events.ScheduleEvent(EVENT_BLACK_KNIGHT_SAY_TASK, 14s);
1221 }
1222 break;
1224 {
1226 {
1227 bk->RemoveUnitMovementFlag(MOVEMENTFLAG_WALKING);
1228 bk->AI()->Talk(TEXT_BK_TASK);
1229 }
1230 events.ScheduleEvent(EVENT_BLACK_KNIGHT_ATTACK, 5s);
1231 }
1232 break;
1234 {
1236 {
1237 bk->SetReactState(REACT_AGGRESSIVE);
1238 bk->ReplaceAllUnitFlags(UNIT_FLAG_NONE);
1239 if( Unit* target = bk->SelectNearestTarget(200.0f) )
1240 bk->AI()->AttackStart(target);
1241 bk->AI()->DoZoneInCombat();
1242 bk->AI()->DoAction(1);
1243 }
1244 }
1245 break;
1246 }
1247 }
std::int8_t int8
Definition: Define.h:106
double rand_norm()
Definition: Random.cpp:77
@ TYPEID_UNIT
Definition: ObjectGuid.h:37
@ REACT_AGGRESSIVE
Definition: Unit.h:1025
@ UNIT_FLAG_NONE
Definition: Unit.h:447
@ NPC_PRIESTESS
Definition: blackrock_depths.h:100
@ GO_PALETRESS_LOOT
Definition: trial_of_the_champion.h:164
@ GO_PALETRESS_LOOT_H
Definition: trial_of_the_champion.h:165
@ GO_EADRIC_LOOT
Definition: trial_of_the_champion.h:161
@ GO_EADRIC_LOOT_H
Definition: trial_of_the_champion.h:162
@ EVENT_BLACK_KNIGHT_SAY_TASK
Definition: trial_of_the_champion.h:101
@ EVENT_BLACK_KNIGHT_CAST_ANNOUNCER
Definition: trial_of_the_champion.h:98
@ EVENT_BLACK_KNIGHT_ATTACK
Definition: trial_of_the_champion.h:102
@ EVENT_GRAND_GROUP_2_ATTACK
Definition: trial_of_the_champion.h:77
@ EVENT_BLACK_KNIGHT_MOVE_FORWARD
Definition: trial_of_the_champion.h:100
@ EVENT_SUMMON_ARGENT_CHALLENGE
Definition: trial_of_the_champion.h:87
@ EVENT_SUMMON_GRAND_CHAMPION_1
Definition: trial_of_the_champion.h:70
@ EVENT_ARGENT_CHALLENGE_SAY_1
Definition: trial_of_the_champion.h:88
@ EVENT_GRAND_CHAMPIONS_ATTACK
Definition: trial_of_the_champion.h:83
@ EVENT_CLOSE_GATE
Definition: trial_of_the_champion.h:69
@ EVENT_ARGENT_CHALLENGE_ATTACK
Definition: trial_of_the_champion.h:92
@ EVENT_BLACK_KNIGHT_KILL_ANNOUNCER
Definition: trial_of_the_champion.h:99
@ EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK
Definition: trial_of_the_champion.h:81
@ EVENT_GRAND_GROUP_3_ATTACK
Definition: trial_of_the_champion.h:79
@ EVENT_ARGENT_CHALLENGE_SAY_2
Definition: trial_of_the_champion.h:89
@ EVENT_ARGENT_SOLDIER_GROUP_ATTACK
Definition: trial_of_the_champion.h:90
@ EVENT_GRAND_GROUP_1_ATTACK
Definition: trial_of_the_champion.h:75
@ EVENT_ARGENT_CHALLENGE_DISAPPEAR
Definition: trial_of_the_champion.h:95
@ EVENT_ARGENT_CHALLENGE_LEAVE_CHEST
Definition: trial_of_the_champion.h:94
@ EVENT_NULL
Definition: trial_of_the_champion.h:67
@ TEXT_BK_RAFTERS
Definition: trial_of_the_champion.h:216
@ TEXT_BK_TASK
Definition: trial_of_the_champion.h:220
@ TEXT_GRATZ_SLAIN_CHAMPIONS
Definition: trial_of_the_champion.h:203
@ TEXT_CHEER_PALETRESS_1
Definition: trial_of_the_champion.h:209
@ TEXT_BK_MEANING
Definition: trial_of_the_champion.h:218
@ TEXT_BEGIN
Definition: trial_of_the_champion.h:202
@ TEXT_CHEER_EADRIC_2
Definition: trial_of_the_champion.h:207
@ TEXT_PALETRESS_SAY_2
Definition: trial_of_the_champion.h:212
@ TEXT_WELCOME_2
Definition: trial_of_the_champion.h:201
@ TEXT_EADRIC_SAY_1
Definition: trial_of_the_champion.h:208
@ TEXT_PALETRESS_SAY_1
Definition: trial_of_the_champion.h:211
@ TEXT_CHEER_EADRIC_1
Definition: trial_of_the_champion.h:206
@ TEXT_YOU_MAY_BEGIN
Definition: trial_of_the_champion.h:213
@ TEXT_BK_LICH
Definition: trial_of_the_champion.h:219
@ TEXT_BK_SPOILED
Definition: trial_of_the_champion.h:217
@ TEXT_CHEER_PALETRESS_2
Definition: trial_of_the_champion.h:210
@ VEHICLE_BLACK_KNIGHT
Definition: trial_of_the_champion.h:173
@ NPC_ARGENT_LIGHTWIELDER
Definition: trial_of_the_champion.h:138
@ NPC_EADRIC_H
Definition: trial_of_the_champion.h:134
@ NPC_ARGENT_MONK
Definition: trial_of_the_champion.h:139
static void Kill(Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
Definition: Unit.cpp:17862
Definition: Vehicle.h:30

References CLEANUP_CHECK_INTERVAL, Counter, DoNeedCleanup(), DoSummonGrandChampion(), EVENT_ARGENT_CHALLENGE_ATTACK, EVENT_ARGENT_CHALLENGE_DISAPPEAR, EVENT_ARGENT_CHALLENGE_LEAVE_CHEST, EVENT_ARGENT_CHALLENGE_MOVE_FORWARD, EVENT_ARGENT_CHALLENGE_RUN_MIDDLE, EVENT_ARGENT_CHALLENGE_SAY_1, EVENT_ARGENT_CHALLENGE_SAY_2, EVENT_ARGENT_SOLDIER_GROUP_ATTACK, EVENT_BLACK_KNIGHT_ATTACK, EVENT_BLACK_KNIGHT_CAST_ANNOUNCER, EVENT_BLACK_KNIGHT_KILL_ANNOUNCER, EVENT_BLACK_KNIGHT_MOVE_FORWARD, EVENT_BLACK_KNIGHT_SAY_TASK, EVENT_CHECK_PLAYERS, EVENT_CLOSE_GATE, EVENT_GRAND_CHAMPIONS_ATTACK, EVENT_GRAND_CHAMPIONS_MOUNTS_ATTACK, EVENT_GRAND_CHAMPIONS_MOVE_MIDDLE, EVENT_GRAND_CHAMPIONS_MOVE_SIDE, EVENT_GRAND_GROUP_1_ATTACK, EVENT_GRAND_GROUP_1_MOVE_MIDDLE, EVENT_GRAND_GROUP_2_ATTACK, EVENT_GRAND_GROUP_2_MOVE_MIDDLE, EVENT_GRAND_GROUP_3_ATTACK, EVENT_GRAND_GROUP_3_MOVE_MIDDLE, EVENT_GRATZ_SLAIN_CHAMPIONS, EVENT_NULL, EVENT_RESTORE_ANNOUNCER_GOSSIP, EVENT_START_ARGENT_CHALLENGE_INTRO, EVENT_START_BLACK_KNIGHT_SCENE, EVENT_SUMMON_ARGENT_CHALLENGE, EVENT_SUMMON_BLACK_KNIGHT, EVENT_SUMMON_GRAND_CHAMPION_1, EVENT_SUMMON_GRAND_CHAMPION_2, EVENT_SUMMON_GRAND_CHAMPION_3, EVENT_YELL_WELCOME_2, Map::GetCreature(), Map::GetGameObject(), Position::GetPositionX(), GO_EADRIC_LOOT, GO_EADRIC_LOOT_H, GO_EnterGateGUID, GO_MainGateGUID, GO_PALETRESS_LOOT, GO_PALETRESS_LOOT_H, InstanceScript::HandleGameObject(), InstanceScript::instance, InstanceCleanup(), Map::IsHeroic(), Unit::Kill(), Position::m_positionX, MOVEMENTFLAG_WALKING, NPC_AnnouncerGUID, NPC_ARGENT_LIGHTWIELDER, NPC_ARGENT_MONK, NPC_ArgentChampionGUID, NPC_ArgentSoldierGUID, NPC_BlackKnightGUID, NPC_BlackKnightVehicleGUID, NPC_EADRIC, NPC_EADRIC_H, NPC_GrandChampionGUID, NPC_GrandChampionMinionsGUID, NPC_PALETRESS, NPC_PRIESTESS, NPC_TirionGUID, rand_norm(), REACT_AGGRESSIVE, REACT_PASSIVE, SpawnPosition, Map::SummonCreature(), WorldObject::SummonCreature(), temp1, temp2, TEXT_BEGIN, TEXT_BK_LICH, TEXT_BK_MEANING, TEXT_BK_RAFTERS, TEXT_BK_SPOILED, TEXT_BK_TASK, TEXT_CHEER_EADRIC_1, TEXT_CHEER_EADRIC_2, TEXT_CHEER_PALETRESS_1, TEXT_CHEER_PALETRESS_2, TEXT_EADRIC_SAY_1, TEXT_GRATZ_SLAIN_CHAMPIONS, TEXT_PALETRESS_SAY_1, TEXT_PALETRESS_SAY_2, TEXT_WELCOME_2, TEXT_YOU_MAY_BEGIN, TYPEID_UNIT, UNIT_FLAG_NON_ATTACKABLE, UNIT_FLAG_NONE, UNIT_NPC_FLAG_GOSSIP, urand(), and VEHICLE_BLACK_KNIGHT.

Member Data Documentation

◆ bAchievIveHadWorse

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::bAchievIveHadWorse

◆ CLEANED

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::CLEANED

◆ Counter

uint8 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::Counter

◆ events

EventMap instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::events

◆ GO_EnterGateGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GO_EnterGateGUID

◆ GO_MainGateGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::GO_MainGateGUID

◆ InstanceProgress

uint32 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::InstanceProgress

◆ m_auiEncounter

uint32 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::m_auiEncounter[MAX_ENCOUNTER]

◆ NPC_AnnouncerGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_AnnouncerGUID

◆ NPC_ArgentChampionGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_ArgentChampionGUID

◆ NPC_ArgentSoldierGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_ArgentSoldierGUID[3][3]

Referenced by InstanceCleanup(), and Update().

◆ NPC_BlackKnightGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_BlackKnightGUID

Referenced by InstanceCleanup(), and Update().

◆ NPC_BlackKnightVehicleGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_BlackKnightVehicleGUID

Referenced by InstanceCleanup(), and Update().

◆ NPC_GrandChampionGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_GrandChampionGUID[3]

◆ NPC_GrandChampionMinionsGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_GrandChampionMinionsGUID[3][3]

◆ NPC_MemoryEntry

uint32 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_MemoryEntry

◆ NPC_TirionGUID

ObjectGuid instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::NPC_TirionGUID

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

◆ shortver

bool instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::shortver

◆ str_data

std::string instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::str_data

Referenced by GetSaveData().

◆ TeamIdInInstance

TeamId instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::TeamIdInInstance

◆ temp1

uint8 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::temp1

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

◆ temp2

uint8 instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::temp2

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

◆ VehicleList

GuidList instance_trial_of_the_champion::instance_trial_of_the_champion_InstanceMapScript::VehicleList