411 if (!kaynObject || !jayceObject || !allariaObject || !cyanaObject || !korvasObject || !sevisObject)
420 if (!kaynClone || !jayceClone || !allariaClone || !cyanaClone || !korvasClone || !sevisClone)
449 if (!privateObjectOwner)
494 if (!privateObjectOwner)
552 std::list<Unit*> targetList;
556 targetList.remove_if([](
Unit* possibleTarget)
672 if (!kaynObject || !korvasObject)
677 if (!kaynClone || !korvasClone)
702 if (!privateObjectOwner)
786 if (triggerName ==
"SEEFELSABERCREDIT")
788 else if (triggerName ==
"UPDATEPHASE")
1073 balefulColoss->KillSelf();
1373template<u
int32 CreatureId>
1781 if (!shivarraObject)
1790 Creature* shivarraClone = ObjectAccessor::GetCreature(*me, shivarraGuid);
1794 shivarraClone->SendPlaySpellVisualKit(SPELL_VISUAL_KIT_SHIVARRA_TELEPORT, 4, 2000);
1795 shivarraClone->SetEmoteState(EMOTE_STATE_READY_SPELL_OMNI);
1796 task.Schedule(3s, [this, shivarraGuid](TaskContext const& )
1798 Creature* shivarraClone = ObjectAccessor::GetCreature(*me, shivarraGuid);
1802 shivarraClone->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI);
1803 shivarraClone->SendPlaySpellVisualKit(SPELL_VISUAL_KIT_SHIVARRA_TELEPORT2, 4, 1000);
1804 shivarraClone->SendPlaySpellVisualKit(SPELL_VISUAL_KIT_SHIVARRA_TELEPORT3, 4, 2000);
1805 shivarraClone->DespawnOrUnsummon(1s);
1809 for (std::pair<std::string_view const, HiddenNoMorePathDelay>& npcPair :
HiddenNoMorePathMap)
1812 if (!originalObject)
1833 _scheduler.Schedule(1s, [
this](
TaskContext const& )
1857 me->DespawnOrUnsummon(5s);
1863 _scheduler.Update(diff);
1901 me->GetMotionMaster()->MovePath(pathDelay->PathId, false);
1902 me->DespawnOrUnsummon(6s);
1947 me->CastSpell(me, (me->GetGender() == GENDER_FEMALE ? SPELL_COSMETIC_EYE_BEAM_01_FEMALE : SPELL_COSMETIC_EYE_BEAM_01_MALE), false);
1956 me->GetMotionMaster()->MovePath(pathDelay->PathId, false);
1957 me->DespawnOrUnsummon(6s);
2125 if (!caza || caza->
isDead())
2183 if (caster->IsValidAttackTarget(unit))
2193 targets.remove_if([
this](
WorldObject* target) ->
bool
First const & RAND(First const &first, Second const &second, Rest const &... rest)
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
@ QUEST_STATUS_INCOMPLETE
#define RegisterCreatureAI(ai_name)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
#define RegisterConversationAI(ai_name)
Creature * GetClosestCreatureWithOptions(WorldObject *source, float maxSearchRange, FindCreatureOptions const &options)
void CloseGossipMenuFor(Player *player)
@ TARGET_UNIT_SRC_AREA_ENTRY
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_SCHOOL_IMMUNITY
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_MOD_MELEE_HASTE_3
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellEffectFn(F, I, N)
#define SpellObjectAreaTargetSelectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
NPCFlags
Non Player Character flags.
@ UNIT_NPC_FLAG_QUESTGIVER
AreaTriggerAI(AreaTrigger *a, uint32 scriptId={}) noexcept
void InitSplines(std::vector< G3D::Vector3 > const &splinePoints, Optional< float > overrideSpeed={}, Optional< bool > speedIsTimeInSeconds={})
uint32 GetSpellId() const
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
BalefulColossSmashEvent(Creature *owner)
bool Execute(uint64, uint32) override
ObjectGuid const & GetGUID() const
Conversation *const conversation
void AddActor(int32 actorId, uint32 actorIdx, ObjectGuid const &actorGuid)
LocaleConstant GetPrivateObjectOwnerLocale() const
static Conversation * CreateConversation(uint32 conversationEntry, Unit *creator, Position const &pos, ObjectGuid privateObjectOwner, SpellInfo const *spellInfo=nullptr, bool autoStart=true)
Milliseconds const * GetLineStartTime(LocaleConstant locale, int32 lineId) const
Unit * GetActorUnit(uint32 actorIdx) const
Creature * GetActorCreature(uint32 actorIdx) const
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void SetReactState(ReactStates st)
GuidUnorderedSet const & GetTapList() const
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
std::string_view GetStringId(StringIdType type) const
void SetDisplayId(uint32 displayId, bool setNative=false) override
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void MoveJump(uint32 id, Position const &pos, std::variant< std::monostate, float, Milliseconds > speedOrTime={}, Optional< float > minHeight={}, Optional< float > maxHeight={}, MovementFacingTarget const &facing={}, bool orientationFixed=false, bool unlimitedSpeed=false, Optional< float > speedMultiplier={}, JumpArrivalCastArgs const *arrivalCast=nullptr, Movement::SpellEffectExtraData const *spellEffectExtraData=nullptr, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
void MoveRotate(uint32 id, RotateDirection direction, Optional< Milliseconds > time={}, Optional< float > turnSpeed={}, Optional< float > totalTurnAngle={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
Makes the Unit turn in place.
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={}, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
void MovePath(uint32 pathId, bool repeatable, Optional< Milliseconds > duration={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< std::pair< Milliseconds, Milliseconds > > waitTimeRangeAtPathEnd={}, Optional< float > wanderDistanceAtPathEnds={}, Optional< bool > followPathBackwardsFromEndToStart={}, Optional< bool > exactSplinePath={}, bool generatePath=true, Optional< MovementFadeObject > fadeObject={}, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
static ObjectGuid const Empty
Movement::PointsArray const & GetPath() const
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
static bool OnConditionChange(WorldObject *object, bool updateVisibility=true)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
bool IsGameMaster() const
void RemoveActiveQuest(uint32 questId, bool update=true)
QuestStatus GetQuestStatus(uint32 quest_id) const
void RemoveRewardedQuest(uint32 questId, bool update=true)
uint32 GetQuestId() const
float GetMaxRange(bool positive=false, WorldObject const *caster=nullptr, Spell *spell=nullptr) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectAreaTargetSelectHandler > OnObjectAreaTargetSelect
TaskContext & Schedule(TaskScheduler::duration_t time, TaskScheduler::task_handler_t task)
TaskContext & Repeat(TaskScheduler::duration_t duration)
TaskScheduler & Schedule(duration_t time, task_handler_t task)
TaskScheduler & Update()
Update the scheduler to the current time.
WorldObject * GetSummoner() const
Unit * GetSummonerUnit() const
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
virtual void SetGUID(ObjectGuid const &guid, int32 id)
virtual void DoAction(int32 param)
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
virtual ObjectGuid GetGUID(int32 id) const
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
Player * GetDemonCreatorPlayer() const
void PlayOneShotAnimKitId(uint16 animKitId)
ObjectGuid GetOwnerGUID() const override
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
void SetFacingToObject(WorldObject const *object, bool force=true)
bool isAttackingPlayer() const
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
void SetSheath(SheathState sheathed)
void SetEmoteState(Emote emote)
void SetNpcFlag(NPCFlags flags)
bool HealthBelowPctDamaged(float pct, uint32 damage) const
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
void SendPlaySpellVisualKit(uint32 id, uint32 type, uint32 duration) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void KillSelf(bool durabilityLoss=true, bool skipSettingDeathState=false)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetMountDisplayId(uint32 mountDisplayId)
void SetAIAnimKitId(uint16 animKitId)
TempSummon * SummonPersonalClone(Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, Player *privateObjectOwner=nullptr)
Creature * FindNearestCreatureWithOptions(float range, FindCreatureOptions const &options) const
ObjectGuid GetPrivateObjectOwner() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
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)
bool IsPrivateObject() const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void MovePositionToFirstCollision(Position &pos, float dist, float angle) const
float GetDistance(WorldObject const *obj) const
Position GetFirstCollisionPosition(float dist, float angle)
void PlayObjectSound(int32 soundKitId, ObjectGuid targetObject, Player const *target=nullptr, int32 broadcastTextId=0) const
conversation_the_invasion_begins(Conversation *conversation)
TheInvasionBeginsEventData
@ EVENT_ILLIDARI_FACE_PLAYERS
@ EVENT_ILLIDARI_START_PATH
void StartCloneMovement(ObjectGuid cloneGUID, uint32 pathId, uint32 animKit)
void OnCreate(Unit *creator) override
void OnUpdate(uint32 diff) override
void StartCloneChannel(ObjectGuid guid)
TheInvasionBeginsConversationData
@ CONVO_LINE_TRIGGER_FACING
event_sevis_sacrifice_player()
void OnTrigger(WorldObject *, WorldObject *invoker, uint32) override
void OnTrigger(WorldObject *, WorldObject *invoker, uint32) override
event_sevis_sacrifice_self()
quest_enter_the_illidari_shivarra()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnSceneComplete(Player *player, uint32, SceneTemplate const *) override
scene_demonhunter_intro()
void OnSceneStart(Player *player, uint32, SceneTemplate const *) override
scene_enter_the_illidari_ashtongue()
void OnSceneTriggerEvent(Player *player, uint32, SceneTemplate const *, std::string const &triggerName) override
void OnSceneStart(Player *player, uint32, SceneTemplate const *) override
scene_enter_the_illidari_coilskar()
void OnSceneStart(Player *player, uint32, SceneTemplate const *) override
void HandleHitTarget(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex) const
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleHit(SpellEffIndex)
void FilterTargets(std::list< WorldObject * > &targets)
void HandleHitTarget(SpellEffIndex)
void HandlePeriodic(AuraEffect const *)
void HandleHitTarget(SpellEffIndex)
void SummonBeamingEye(Unit *origin, float angle)
bool Validate(SpellInfo const *) override
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> std::add_const_t< decltype(*std::ranges::begin(container))> &
auto MapGetValuePtr(M &map, typename M::key_type const &key)
static void VisitAllObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
float GetRelativeAngle(float x, float y) const
static float NormalizeOrientation(float o)
float GetAbsoluteAngle(float x, float y) const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void OnUnitEnter(Unit *unit) override
at_enter_the_illidari_ashtongue_allari_killcredit(AreaTrigger *areatrigger)
at_enter_the_illidari_shivarra_conversation(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
void OnUnitEnter(Unit *unit) override
void OnUnitEnter(Unit *unit) override
void OnInitialize() override
void OnUnitEnter(Unit *unit) override
npc_allari_the_souleater_invasion_begins(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) override
void WaypointPathEnded(uint32, uint32 pathId) override
npc_baleful_beaming_eye(Creature *creature)
void JustAppeared() override
HiddenNoMorePathDelay const * GetPathDelay()
void UpdateAI(uint32 diff) override
npc_basic_hidden_no_more_private(Creature *creature)
void DoAction(int32 param) override
void UpdateAI(uint32 diff) override
npc_belath_dawnblade_freed_private(Creature *creature)
void JustAppeared() override
npc_cyana_nightglaive_freed_private(Creature *creature)
void JustAppeared() override
void UpdateAI(uint32 diff) override
void WaypointPathEnded(uint32, uint32 pathId) override
void MovementInform(uint32 type, uint32 pointId) override
npc_cyana_nightglaive_invasion_begins(Creature *creature)
void DoAction(int32 param) override
npc_demon_hunter_hidden_no_more_private(Creature *creature)
void JustEngagedWith(Unit *) override
ObjectGuid GetGUID(int32 id) const override
void JustDied(Unit *) override
npc_fel_lord_caza_cryptic_hollow(Creature *creature)
void DoAction(int32 param) override
void OnSpellCast(SpellInfo const *spell) override
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void SetGUID(ObjectGuid const &guid, int32 id) override
@ SPELL_ILLIDARI_FEL_RUSH
@ SPELL_ILLIDARI_CHAOS_STRIKE
void EnterEvadeMode(EvadeReason why) override
TaskScheduler _oocScheduler
npc_illidari_fighting_invasion_begins(Creature *creature)
void ScheduleTargetSelection()
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
ObjectGuid _balefulColossGUID
void JustEngagedWith(Unit *) override
void JustAppeared() override
void MovementInform(uint32 type, uint32 pointId) override
void DoAction(int32 action) override
npc_inquisitor_baleful_molten_shore(Creature *creature)
void UpdateAI(uint32 diff) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustDied(Unit *) override
npc_izal_whitemoon_freed_private(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
std::vector< ObjectGuid > _cloneGuids
npc_jayce_darkweaver_cryptic_hollow_private(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void OnChannelFinished(SpellInfo const *spell) override
npc_jayce_darkweaver_cryptic_hollow(Creature *creature)
void OnQuestAccept(Player *player, Quest const *quest) override
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
void MovementInform(uint32 type, uint32 pointId) override
npc_jayce_darkweaver_invasion_begins(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
npc_kayn_sunfury_ashtongue_intro_private(Creature *creature)
void OnQuestAccept(Player *player, Quest const *quest) override
npc_kayn_sunfury_ashtongue_intro(Creature *creature)
void UpdateAI(uint32 diff) override
void OnQuestAccept(Player *player, Quest const *quest) override
void MovementInform(uint32 type, uint32 pointId) override
void WaypointPathEnded(uint32, uint32 pathId) override
npc_kayn_sunfury_invasion_begins(Creature *creature)
npc_korvas_bloodthorn_invasion_begins(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) override
void WaypointPathEnded(uint32, uint32 pathId) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_mannethrel_darkstar_freed_private(Creature *creature)
void JustAppeared() override
void UpdateAI(uint32 diff) override
npc_sevis_brightflame_ashtongue_gateway_private(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_sevis_brightflame_coilskar_gateway_private(Creature *creature)
void MovementInform(uint32 type, uint32 pointId) override
void WaypointPathEnded(uint32, uint32 pathId) override
npc_sevis_brightflame_invasion_begins(Creature *creature)
bool OnGossipSelect(Player *player, uint32 menuId, uint32 gossipListId) override
uint8 _soulMissileCounter
void DoAction(int32 param) override
npc_sevis_brightflame_shivarra_gateway(Creature *creature)
void UpdateAI(uint32 diff) override
Position const RockslideCavePosition
@ SPELL_START_DEMON_HUNTER_PLAY_SCENE
CreatureAI * BasicHiddenNoMoreAISelector(Creature *creature)
@ PATH_CRYPTIC_HOLLOW_ASHTONGUE_01
@ PATH_CRYPTIC_HOLLOW_DEMON_HUNTER_04
@ PATH_CRYPTIC_HOLLOW_DEMON_HUNTER_02
@ PATH_CRYPTIC_HOLLOW_COILSKAR_03
@ PATH_CRYPTIC_HOLLOW_ASHTONGUE_02
@ PATH_CRYPTIC_HOLLOW_ASHTONGUE_03
@ PATH_CRYPTIC_HOLLOW_DEMON_HUNTER_03
@ POINT_JAYCE_DARKWEAVER_JUMP_TO_CAVE
@ POINT_JAYCE_DARKWEAVER_PREPARE_JUMP
@ PATH_JAYCE_DARKWEAVER_RUN_INTO_CAVE
@ PATH_CRYPTIC_HOLLOW_COILSKAR_01
@ PATH_CRYPTIC_HOLLOW_DEMON_HUNTER_05
@ PATH_CRYPTIC_HOLLOW_COILSKAR_02
@ PATH_CRYPTIC_HOLLOW_DEMON_HUNTER_01
@ ACTION_HIDDEN_NO_MORE_EYEBEAM
@ ACTION_HIDDEN_NO_MORE_MOVE
@ SAY_JAYCE_ATTACK_ILLIDARI
@ SPELL_VISUAL_KIT_SHIVARRA_TELEPORT2
@ SPELL_COSMETIC_EYE_BEAM_01_FEMALE
@ SPELL_VISUAL_KIT_SHIVARRA_TELEPORT
@ NPC_ROCKSLIDE_KILLCREDIT
@ NPC_JAYCE_CRYPTIC_HOLLOW
@ SPELL_VISUAL_KIT_SHIVARRA_TELEPORT3
@ NPC_SHIVARRA_CRYPTIC_HOLLOW
@ SPELL_COSMETIC_EYE_BEAM_01_MALE
@ SPELL_ABANDON_HIDDEN_NO_MORE
Position const SevisBrightflameShivarraGatewayPosition
Position const WrathWarriorSpawnPosition
CreatureAI * DemonHunterHiddenNoMoreAISelector(Creature *creature)
Position const AllariJumpPos
Position const KaynJumpPos
@ PATH_SEVIS_BRIGHTFLAME_GATEWAY
@ SAY_SEVIS_SAY_FIND_ALLARI
@ NPC_ALLARI_SOULEATER_ASHTONGUE
@ SAY_KAYN_ACTIVATE_GATEWAY
@ NPC_KAYN_SUNFURY_ASHTONGUE
@ SAY_KORVAS_SLAY_MORE_DEMONS
@ SPELL_VISUAL_KIT_SEVIS_MOUNT
@ SPELL_ASHTONGUE_FELLSABER_KILL_CREDIT
@ QUEST_ENTER_THE_ILLIDARI_ASHTONGUE
@ SPELL_CAST_MOUNT_DH_FELSABER
@ NPC_SEVIS_BRIGHTFLAME_ASHTONGUE
@ NPC_KORVAS_BLOODTHORN_ASHTONGUE
@ PATH_KAYN_SUNFURY_NEAR_TELEPORT
@ PATH_KORVAS_BLOODTHORN_NEAR_TELEPORT
@ PATH_SEVIS_BRIGHTFLAME_COILSKAR
@ SAY_SEVIS_SAY_MEET_AT_LAST_GATEWAY
@ NPC_SEVIS_BRIGHTFLAME_COILSKAR
std::unordered_map< std::string_view, HiddenNoMorePathDelay > HiddenNoMorePathMap
@ QUEST_DEMON_HUNTER_INTRO_TRACKER
Position const KaynDoubleJumpPosition
Position const JayceJumpPos
CreatureAI * BelathDawnbladeFreedAISelector(Creature *creature)
TheInvasionBeginsAnimKitsData
CreatureAI * JayceDarkweaverCrypticHollowAISelector(Creature *creature)
CreatureAI * SevisBrightflameAshtongueGatewayAISelector(Creature *creature)
@ SOUND_SPELL_DOUBLE_JUMP
@ SOUND_METAL_WEAPON_UNSHEATH
TheInvasionBeginsVisualData
@ SPELL_VISUAL_KIT_WRATH_WARRIOR_DIE
@ SPELL_VISUAL_KIT_KAYN_WINGS
@ SPELL_VISUAL_KIT_KAYN_DOUBLE_JUMP
@ SPELL_VISUAL_KIT_KORVAS_JUMP
@ SPELL_VISUAL_KIT_KAYN_GLIDE
@ SAY_FEL_LORD_CAZA_THROW_AXE
@ EVENT_CAZA_SWEEPING_SLASH
@ SPELL_FEL_LORD_CAZA_DIES
@ DATA_CAZA_AXE_TARGET_GUID
@ EVENT_CAZA_THROW_AXE_JUMP
@ SPELL_FEL_LORD_CAZA_FEL_INFUSION
@ SPELL_FEL_LORD_CAZA_VIOLENT_FEL_ENERGY
@ SPELL_FEL_LORD_CAZA_THROW_AXE_KNOCKBACK
@ SPELL_FEL_LORD_CAZA_TAKING_POWER
@ ACTION_CAZA_AXE_RETRIEVED
@ SAY_FEL_LORD_CAZA_AGGRO
@ SPELL_FEL_LORD_CAZA_KILL_CREDIT
@ SAY_FEL_LORD_CAZA_DEATH
@ SPELL_FEL_LORD_CAZA_SWEEPING_SLASH
@ SPELL_AREATRIGGER_DUMMY_FEL_LORD_CAZA
@ SPELL_FEL_LORD_CAZA_THROW_AXE_MISSILE
@ EVENT_CAZA_FEL_INFUSION
@ SPELL_FEL_LORD_CAZA_THROW_AXE_JUMP
CreatureAI * SevisBrightflameCoilskarGatewayAISelector(Creature *creature)
GiveMeSightBeyondSightData
@ QUEST_GIVE_ME_SIGHT_BEYOND_SIGHT
@ GOSSIP_MENU_USE_SPECTRAL_SIGHT
@ KILLCREDIT_FACE_THE_CAVE
@ GOSSIP_OPTION_USE_SPECTRAL_SIGHT
@ SAY_JAYCE_USE_SPECTRAL_SIGHT
@ SPELL_GIVE_ME_SIGHT_PERIODIC_DUMMY
@ KILLCREDIT_SPEAK_WITH_JAYCE
@ SPELL_DH_SPECTRAL_SIGHT
@ SPELL_GIVE_ME_SIGHT_PERIODIC_AURA
TheInvasionBeginsQuestData
@ SPELL_DEMON_HUNTER_GLIDE_STATE
@ NPC_KAYN_SUNFURY_INVASION_BEGINS
@ NPC_JAYCE_DARKWEAVER_INVASION_BEGINS
@ NPC_SEVIS_BRIGHTFLAME_INVASION_BEGINS
@ NPC_ALLARI_THE_SOULEATER_INVASION_BEGINS
@ NPC_CYANA_NIGHTGLAIVE_INVASION_BEGINS
@ QUEST_THE_INVASION_BEGINS
@ CONVO_THE_INVASION_BEGINS
@ NPC_KORVAS_BLOODTHORN_INVASION_BEGINS
@ NPC_WRATH_WARRIOR_INVASION_BEGINS
@ SPELL_THE_INVASION_BEGINS
@ SPELL_TRACK_TARGET_IN_CHANNEL
@ SPELL_BALEFUL_COLOSS_INFERNAL_SMASH
@ SPELL_BALEFUL_COLOSS_INFERNAL_SMASH_CAST
@ SPELL_BALEFUL_BEAMING_GAZE
@ ACTION_BALEFUL_AEGIS_DOWN
@ EVENT_BALEFUL_INCITE_MADNESS
@ SPELL_BALEFUL_TAKING_POWER
@ SPELL_BALEFUL_BEAMING_EYE_CREATE_AT
@ NPC_COLOSSAL_INFERNAL_BALEFUL
@ SPELL_BALEFUL_MIND_SPIKE
@ SPELL_BALEFUL_INCITE_MADNESS
@ SPELL_BALEFUL_LEGION_AEGIS
@ SPELL_BALEFUL_BEAMING_EYE_SUMMON
@ EVENT_BALEFUL_MIND_SPIKE
@ EVENT_BALEFUL_COLOSS_INFERNAL_SMASH
@ SPELL_BALEFUL_KILL_CREDIT
@ POINT_BALEFUL_AEGIS_DOWN
@ EVENT_BALEFUL_BEAMING_GAZE
@ SPELL_BALEFUL_DIE_KNOCKBACK
Position const SevisJumpPos
TheInvasionsBeginsWaypointData
@ POINT_KAYN_TRIGGER_DOUBLE_JUMP
@ POINT_KAYN_MOVE_TO_DEMON
@ PATH_KORVAS_INVASION_BEGINS
@ PATH_JAYCE_INVASION_BEGINS
@ PATH_CYANA_INVASION_BEGINS
@ POINT_ILLIDARI_LAND_POS
@ PATH_SEVIS_JUMP_INVASION_BEGINS
@ PATH_CYANA_JUMP_INVASION_BEGINS
@ PATH_JAYCE_JUMP_INVASION_BEGINS
@ PATH_ALLARI_JUMP_INVASION_BEGINS
@ PATH_ALLARI_INVASION_BEGINS
@ PATH_SEVIS_INVASION_BEGINS
@ PATH_KORVAS_JUMP_INVASION_BEGINS
CreatureAI * CyanaNightglaiveFreedAISelector(Creature *creature)
CreatureAI * KaynSunfuryNearLegionBannerAISelector(Creature *creature)
Position const KorvasJumpPos
CreatureAI * IzalWhitemoonFreedAISelector(Creature *creature)
@ CONVO_DEMONHUNTER_INTRO_START
constexpr Position JaycePrepareJump
Position const BalefulAegisPos
CreatureAI * MannethrelDarkstarFreedAISelector(Creature *creature)
Position const CyanaJumpPos
@ PATH_BELATH_DAWNBLADE_FREED
@ NPC_BELATH_DAWNBLADE_FREED
@ SAY_BELATH_DAWNBLADE_FREED
@ SAY_MANNETHRE_DARKSTAR_FREED
@ PATH_MANNETHREL_DARKSTAR_FREED
@ PATH_CYANA_NIGHTGLAIVE_FREED
@ SAY_IZAL_WHITEMOON_FREED
@ SAY_CYANA_NIGHTGLAIVE_FREED
@ PATH_IZAL_WHITEMOON_FREED
@ NPC_CYANA_NIGHTGLAIVE_FREED
@ NPC_MANNETHREL_DARKSTAR_FREED
@ NPC_IZAL_WHITEMOON_FREED
constexpr Position JayceJumpPosition
@ SPELL_SEVIS_CHAOS_STRIKE
@ SPELL_TRIGGER_SHIVARRA_CONV_WHEN_DEAD
@ GOSSIP_OPTION_SACRIFICE_SEVIS
@ NPC_SEVIS_BRIGHTFLAME_SHIVARRA
@ GOSSIP_OPTION_SACRIFICE_PLAYER
@ SPELL_SEVIS_SOUL_MISSILE_02
@ SAY_SEVIS_GET_SACRIFICED
@ ANIM_KIT_ONESHOT_GET_HIT
@ PATH_SEVIS_GATEWAY_SHIVARRA
@ SPELL_VISUAL_SACRIFICE_PLAYER
@ QUEST_SEVIS_SACRIFICE_TRACKER
@ SPELL_SEVIS_KILLED_ME_AURA
@ POINT_SEVIS_GATEWAY_SHIVARRA
@ GOSSIP_MENU_SACRIFICE_PLAYER
@ GOSSIP_MENU_SACRIFICE_SEVIS
@ ACTION_SACRIFICE_PLAYER
@ SPELL_SEVIS_SACRIFICE_ME
@ SAY_SEVIS_PLAYER_SACRIFICE