62#define ORIENTATION 4.714f
164 for (GuidList::const_iterator itr = TempList.begin(); itr != TempList.end(); ++itr)
181 if (pGrandChampion1 && pGrandChampion2 && pGrandChampion3)
201 uint32 VEHICLE_TO_SUMMON1 = 0;
202 uint32 VEHICLE_TO_SUMMON2 = 0;
237 if (
Vehicle* pVehicle = pBoss->GetVehicleKit())
238 if (
Unit* unit = pVehicle->GetPassenger(0))
239 uiGrandChampionBoss1 = unit->GetGUID();
242 pBoss->AI()->SetData(1, 0);
249 if (
Vehicle* pVehicle = pBoss->GetVehicleKit())
250 if (
Unit* unit = pVehicle->GetPassenger(0))
251 uiGrandChampionBoss2 = unit->GetGUID();
254 pBoss->AI()->SetData(2, 0);
261 if (
Vehicle* pVehicle = pBoss->GetVehicleKit())
262 if (
Unit* unit = pVehicle->GetPassenger(0))
263 uiGrandChampionBoss3 = unit->GetGUID();
266 pBoss->AI()->SetData(3, 0);
273 for (
uint8 i = 0; i < 3; ++i)
293 pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f,
float(
M_PI));
296 pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f,
float(
M_PI) / 2);
299 pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f,
float(
M_PI) / 2 +
float(
M_PI));
314 for (
uint8 i = 0; i < 3; ++i)
317 pTrash->AI()->SetData(i, 0);
319 pTrash->AI()->SetData(i, 0);
321 pTrash->AI()->SetData(i, 0);
382 if (
Player* player = i->GetSource())
384 if (player->IsGameMaster())
387 if (player->IsAlive())
500 return GetTrialOfTheChampionAI<npc_announcer_toc5AI>(creature);
@ TEMPSUMMON_CORPSE_DESPAWN
std::list< ObjectGuid > GuidList
uint32 urand(uint32 min, uint32 max)
void AddGossipItemFor(Player *player, GossipOptionNpc optionNpc, std::string text, uint32 sender, uint32 action)
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const &guid)
void ClearGossipMenuFor(Player *player)
void InitGossipMenuFor(Player *player, uint32 menuId)
void CloseGossipMenuFor(Player *player)
@ UNIT_FLAG_NON_ATTACKABLE
void SetHomePosition(float x, float y, float z, float o)
void SetReactState(ReactStates st)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
PlayerList const & GetPlayers() const
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
static ObjectGuid GetGUID(Object const *o)
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
std::unique_ptr< PlayerMenu > PlayerTalkClass
MotionMaster * GetMotionMaster()
void RemoveNpcFlag(NPCFlags flags)
void SetNpcFlag(NPCFlags flags)
void SetFacingTo(float const ori, bool force=true)
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
virtual void SetGuidData(uint32, ObjectGuid)
CreatureAI * GetAI(Creature *creature) const override
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
virtual void UpdateAI(uint32 diff) override
InstanceScript * instance
void UpdateAI(uint32 uiDiff) override
void SummonedCreatureDespawn(Creature *summon) override
ObjectGuid uiVehicle1GUID
void SetGrandChampionsForEncounter()
ObjectGuid uiVehicle3GUID
void StartGrandChampionsAttack()
void JustSummoned(Creature *summon) override
npc_announcer_toc5AI(Creature *creature)
ObjectGuid uiVehicle2GUID
void DoSummonGrandChampion(uint32 uiBoss)
void DoStartArgentChampionEncounter()
bool OnGossipSelect(Player *player, uint32, uint32 gossipListId) override
void MovementInform(uint32 uiType, uint32 uiPointId) override
void AggroAllPlayers(Creature *temp)
void NextStep(uint32 uiTimerStep, bool bNextStep=true, uint8 uiPhaseStep=0)
bool OnGossipHello(Player *player) override
void SetData(uint32 uiType, uint32) override
const Position SpawnPosition
void AddSC_trial_of_the_champion()
@ GOSSIP_START_EVENT2_OID
@ GOSSIP_START_EVENT1_MID
@ GOSSIP_START_EVENT2_MID
@ GOSSIP_START_EVENT1_OID
@ VEHICLE_SILVERMOON_HAWKSTRIDER
@ VEHICLE_GNOMEREGAN_MECHANOSTRIDER
@ VEHICLE_FORSAKE_WARHORSE
@ VEHICLE_STORMWIND_STEED
@ VEHICLE_RUNOK_WILDMANE_MOUNT
@ VEHICLE_DEATHSTALKER_VESCERI_MOUNT
@ VEHICLE_DARNASSIA_NIGHTSABER
@ VEHICLE_MOKRA_SKILLCRUSHER_MOUNT
@ VEHICLE_DARKSPEAR_RAPTOR
@ VEHICLE_THUNDER_BLUFF_KODO
@ VEHICLE_ERESSEA_DAWNSINGER_MOUNT
@ DATA_GRAND_CHAMPION_VEHICLE_1
@ DATA_GRAND_CHAMPION_VEHICLE_2
@ DATA_GRAND_CHAMPION_VEHICLE_3
@ DATA_LESSER_CHAMPIONS_DEFEATED
@ BOSS_ARGENT_CHALLENGE_P
@ BOSS_ARGENT_CHALLENGE_E