42template<
class privateAI,
class publicAI>
46 return new privateAI(creature);
47 return new publicAI(creature);
50#define RegisterPrivatePublicCreatureAIPair(scriptName, privateAI, publicAI) new FactoryCreatureScript<CreatureAI, &GetPrivatePublicPairAISelector<privateAI, publicAI>>(scriptName);
121 if (!garrickLowerDeck || !garrickUpperDeck)
143 if (!grimaxeLowerDeck || !grimaxeUpperDeck)
432 conversation->
Start();
438 std::list<Creature*> sparPoints;
442 if (sparPoints.empty())
445 return sparPoints.front();
530 {
"q58208_garrick", { 35.5643f, -1.19837f, 12.1479f, 3.3272014f } },
531 {
"q58208_richter", { -1.84858f, -8.38776f, 5.10018f, 1.5184366f } },
532 {
"q58208_keela", { -15.3642f, 6.5793f, 5.5026f, 3.1415925f } },
533 {
"q58208_bjorn", { 12.8406f, -8.49553f, 4.98031f, 4.8520155f } },
534 {
"q58208_austin", { -4.48607f, 9.89729f, 5.07851f, 1.5184366f } },
535 {
"q58208_cole", { -13.3396f, 0.702157f, 5.57996f, 0.087266445f } },
539 {
"q59928_grimaxe", { 25.5237f, 0.283005f, 26.5455f, 3.3526998f } },
540 {
"q59928_throg", { -10.8399f, 11.9039f, 8.88028f, 6.2308254f } },
541 {
"q59928_mithdran", { -24.4763f, -4.48273f, 9.13471f, 0.62831855f } },
542 {
"q59928_lana", { -5.1971f, -15.0268f, 8.992f, 4.712389f } },
543 {
"q59928_bo", { -22.1559f, 5.58041f, 9.09176f, 6.143559f } },
544 {
"q59928_jinhake", { -31.9464f, 7.5772f, 10.6408f, 6.0737457f } },
590 petSpawnPos = { -1.4492f, 8.06887f, 5.10348f, 2.6005409f };
595 petSpawnPos = { -22.8374f, -3.08287f, 9.12613f, 3.857178f };
632 if (!transport || !creature)
1009 if (triggerName ==
"Begin Knockdown Aura")
1043template<u
int32 StaticCaptainNPCId>
1206 if (!cole || !richter)
1212 if (!colePersonal || !richterPersonal || !mePersonal)
1217 personalAI->SetFirstMateGUID(colePersonal->
GetGUID());
1218 personalAI->SetQuartermasterGUID(richterPersonal->
GetGUID());
1244 if (!throg || !jinhake)
1250 if (!throgPersonal || !jinhakePersonal || !mePersonal)
1255 personalAI->SetFirstMateGUID(throgPersonal->
GetGUID());
1256 personalAI->SetQuartermasterGUID(jinhakePersonal->
GetGUID());
1315template<u
int32 PathId, u
int32 WaitTime>
1400template<u
int32 ConversationId>
1414 player->UpdateVisibilityForPlayer();
1458 static const Position BoCloneSpawnPosition = { -448.731f, -2606.03f, 0.602435f, 6.17441f };
1480 static constexpr Position MithranCloneSpawnPosition = { -428.576f, -2593.93f, 0.152832f, 4.849576f };
1502 static constexpr Position LanaCloneSpawnPosition = { -420.656f, -2600.28f, 0.556646f, 4.046853f };
1529template<u
int32 PathId>
1580template<u
int32 PathId, u
int32 WaitTime>
1733 conversation->
Start();
1779 conversation->
Start();
1825 conversation->Start();
1872 conversation->Start();
1905 player->
CastSpell(player, summonSpellId);
1939 "bjorn_stouthands_beach",
1940 "austin_huxworth_beach");
1956 "lana_jordan_beach");
2052 "alaria_standing_abandoned_camp");
2066 "wonza_standing_abandoned_camp");
2404 std::list<Creature*> sparpoints;
2408 for (
Creature* creature : sparpoints)
2455 conversation->
Start();
3413 conversation->
Start();
3493 conversation->
Start();
3525 player->UpdateVisibilityForPlayer();
3570 player->
CastSpell(player, summonSpellId);
3697 conversation->
Start();
3910 conversation->
Start();
3919 garrick->DespawnOrUnsummon(3s);
3974 conversation->
Start();
4058 conversation->
Start();
4067 grimaxe->DespawnOrUnsummon(2s);
4189 player->
CastSpell(player, spellValidated);
4236 if (!huxsworth || !garrick)
4241 if (!huxsworthPersonal || !garrickPersonal)
4245 huxworthAI->SetGarrickGUID(garrickPersonal->
GetGUID());
4264 if (!dawntracker || !grimaxe)
4269 if (!dawntrackerPersonal || !grimaxePersonal)
4273 dawntrackerAI->SetGrimaxeGUID(grimaxePersonal->
GetGUID());
4625 std::vector<WorldObject*> objs;
4758 conversation->
Start();
4818 copter->DespawnOrUnsummon(2s);
4910 if (apply && passenger->
IsPlayer())
4985 { 50.920593f, -2477.466f, 79.444374f, 0.8753076f },
4986 { 60.51328f, -2476.4822f, 81.034775f, 0.9128374f },
4987 { 53.08128f, -2476.5154f, 79.822624f, 0.9394135f },
4988 { 53.281864f, -2480.052f, 79.18003f, 0.78539818f },
4989 { 53.936935f, -2475.588f, 80.24179f, 0.91009599f }
5005 if (apply && passenger->
IsPlayer())
5154 if (!goblin || !copter)
5159 if (!goblinPersonal || !copterPersonal)
5166 personalAI->SetCopterGUID(copterPersonal->
GetGUID());
5247 conversation->
Start();
5319 conversation->
Start();
5355 conversation->
Start();
5543 if (!player || !creature)
5600 conversation->
Start();
5637 conversation->
Start();
5679 if (!player || !creature)
5721 if (!player || !creature)
5898 if (triggerName ==
"Trampling Time")
5904 else if (triggerName ==
"Big Kill Credit")
5911 else if (triggerName ==
"Conversation")
5915 else if (triggerName ==
"Knockback")
5919 else if (triggerName ==
"Hint")
6014 conversation->
Start();
6070 conversation->
Start();
6084 switch (spellInfo->
Id)
6161 conversation->
Start();
6172 henry->DespawnOrUnsummon();
6192 conversation->
Start();
6237 if (apply && passenger->
IsPlayer())
6476 if (triggerName ==
"Big Kill Credit")
6487 else if (triggerName ==
"Conversation")
6491 else if (triggerName ==
"Teleport")
6537 conversation->
Start();
6550 switch (spellInfo->
Id)
6579 shuja->DespawnOrUnsummon();
6602 conversation->
Start();
6613 shuja->DespawnOrUnsummon();
6668 if (!questEnderCompanion)
6682 questGiver->DespawnOrUnsummon();
6685 companion->DespawnOrUnsummon();
6853template<u
int32 PitPathId>
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
std::chrono::seconds Seconds
Seconds shorthand typedef.
@ TEMPSUMMON_MANUAL_DESPAWN
@ TEMPSUMMON_TIMED_DESPAWN
@ QUEST_OBJECTIVE_CRITERIA_TREE
@ QUEST_STATUS_INCOMPLETE
bool roll_chance(T chance)
#define RegisterCreatureAI(ai_name)
#define RegisterSpellAndAuraScriptPair(script_1, script_2)
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
#define RegisterSpellScriptWithArgs(spell_script, script_name,...)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
@ TARGET_DEST_NEARBY_ENTRY_OR_DB
@ EMOTE_ONESHOT_CUSTOM_SPELL_01
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_CREATE_PRIVATE_CONVERSATION
@ SPELL_EFFECT_SEND_EVENT
@ SPELL_FAILED_BAD_TARGETS
@ WS_TEAM_IN_INSTANCE_HORDE
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_CONTROL_VEHICLE
@ SPELL_AURA_PERIODIC_DUMMY
@ TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE
Will ignore mounted/on vehicle restrictions.
#define SpellObjectTargetSelectFn(F, I, N)
#define SpellCheckCastFn(F)
#define SpellEffectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraCheckProcFn(F)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_NPC_FLAG_SPELLCLICK
@ UNIT_FLAG_PLAYER_CONTROLLED
T CalculatePct(T base, U pct)
void RemoveFromWorld() override
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
HookList< CheckProcHandler > DoCheckProc
HookList< EffectApplyHandler > OnEffectRemove
int32 GetMaxDuration() const
int32 GetDuration() const
ObjectGuid const & GetGUID() const
BaseQuestWarmingUp(const char *name)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus)
void AddActor(int32 actorId, uint32 actorIdx, ObjectGuid const &actorGuid)
static Conversation * CreateConversation(uint32 conversationEntry, Unit *creator, Position const &pos, ObjectGuid privateObjectOwner, SpellInfo const *spellInfo=nullptr, bool autoStart=true)
void SetImmuneToPC(bool apply) override
void SetObjectScale(float scale) override
void SetReactState(ReactStates st)
void ResetPlayerDamageReq()
void SetScriptStringId(std::string id)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
Milliseconds GetTimeUntilEvent(uint32 eventId) const
void RescheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void MoveFollow(Unit *target, float dist, Optional< ChaseAngle > angle={}, Optional< Milliseconds > duration={}, bool ignoreTargetWalk=false, MovementSlot slot=MOTION_SLOT_ACTIVE, Scripting::v2::ActionResultSetter< MovementStopReason > &&scriptResult={})
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 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={})
void Remove(MovementGenerator *movement, MovementSlot slot=MOTION_SLOT_ACTIVE)
static ObjectGuid const Empty
static void AddPhase(WorldObject *object, uint32 phaseId, bool updateVisibility)
static void InheritPhaseShift(WorldObject *target, WorldObject const *source)
static PhaseShift const & GetAlwaysVisiblePhaseShift()
static void ResetPhaseShift(WorldObject *object)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
void UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int32 objectId, int64 addCount, ObjectGuid victimGuid=ObjectGuid::Empty, std::vector< QuestObjective const * > *updatedObjectives=nullptr, std::function< bool(QuestObjective const *)> const *objectiveFilter=nullptr)
int32 GetQuestObjectiveData(uint32 questId, uint32 objectiveId) const
void UpdateVisibilityForPlayer()
QuestStatus GetQuestStatus(uint32 quest_id) const
bool HasSpell(uint32 spell) const override
void UpdateObjectVisibility(bool forced=true) override
SpellInfo const * GetSpellInfo() const
uint32 GetQuestId() const
void ResetCharges(uint32 chargeCategoryId)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
HookList< CheckCastHandler > OnCheckCast
HookList< EffectHandler > OnEffectHit
void PreventHitDefaultEffect(SpellEffIndex effIndex)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< ObjectTargetSelectHandler > OnObjectTargetSelect
HookList< EffectHandler > OnEffectLaunchTarget
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
TaskScheduler & Schedule(duration_t time, task_handler_t task)
TaskScheduler & Update()
Update the scheduler to the current time.
Unit * GetSummonerUnit() const
virtual Position GetPositionWithOffset(Position const &offset) const =0
This method transforms supplied transport offsets into global coordinates.
virtual int32 GetMapIdForSpawning() const =0
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
void CastStop(uint32 except_spellid=0)
float GetHealthPct() const
void CombatStop(bool includingCast=false, bool mutualPvP=true, bool(*unitFilter)(Unit const *otherUnit)=nullptr)
void SetHealth(uint64 val)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
void SetControlled(bool apply, UnitState state)
Player * GetDemonCreatorPlayer() const
ObjectGuid GetOwnerGUID() const override
void SetSpeed(UnitMoveType mtype, float newValue)
Unit * GetVehicleBase() const
MotionMaster * GetMotionMaster()
void SetMovedUnit(Unit *target)
void SetFacingToObject(WorldObject const *object, bool force=true)
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
void SetSheath(SheathState sheathed)
void SetEmoteState(Emote emote)
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
TransportBase * GetDirectTransport() const
Returns the transport this unit is on directly (if on vehicle and transport, return vehicle)
bool SetWalk(bool enable)
bool HealthBelowPctDamaged(float pct, uint32 damage) const
void SetFacingTo(float const ori, bool force=true)
void NearTeleportTo(TeleportLocation const &target, bool casting=false)
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
SpellHistory * GetSpellHistory()
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
void SetUnitFlag(UnitFlags flags)
void ChangeSeat(int8 seatId, bool next=true)
void SetAIAnimKitId(uint16 animKitId)
Unit * GetDemonCreator() const
TempSummon * SummonPersonalClone(Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, Player *privateObjectOwner=nullptr)
void PlayDirectSound(uint32 soundId, Player const *target=nullptr, uint32 broadcastTextId=0) const
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)
TransportBase * GetTransport() const
bool IsPrivateObject() const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Position GetFirstCollisionPosition(float dist, float angle)
bool IsWithinDist(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
Player * GetAffectingPlayer() const
player_exiles_reach_ship_crash()
void OnMovieComplete(Player *player, uint32 movieId) override
static constexpr float CLONE_Z_OFFSET
static constexpr float CLONE_ORIENTATION
void OnQuestStatusChange(Player *player, Quest const *quest, QuestStatus oldStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *quest, QuestStatus oldStatus, QuestStatus newStatus) override
void SpawnActors(Player *player, TeamId team, Position petSpawnPos)
void OnQuestStatusChange(Player *player, Quest const *quest, QuestStatus, QuestStatus newStatus) override
void SpawnPet(Player *player, Position const &position)
void SpawnActor(Player *player, Creature *creature, Position const &position)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_briarpatch_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, uint32 questDown, uint32 questForbidden, uint32 spellValidated)
quest_briarpatch(char const *script)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_choppy_booster_mk5()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_cooking_meat_alliance()
quest_cooking_meat_horde()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, uint32 completeConversationId, std::string_view injuredStringId)
quest_cooking_meat(char const *script)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_enhanced_combat_tactics()
quest_finding_the_lost_expedition_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_finding_the_lost_expedition_horde()
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, uint32 summonSpellId, std::string_view survivor1StringId, std::string_view survivor2StringId, std::string_view survivor3StringId)
quest_finding_the_lost_expedition(char const *script)
quest_northbound_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, uint32 summonSpellId)
quest_northbound(char const *script)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_resizing_the_situation_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_resizing_the_situation_horde()
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, uint32 SummonSpell)
quest_resizing_the_situation(char const *script)
quest_ride_of_the_scientifically_enhanced_boar()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_scout_chopper(char const *script)
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, std::string_view goblinString, std::string_view copterString)
quest_scout_o_matic_5000()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_stand_your_ground()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_taming_the_wilds_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_taming_the_wilds_horde()
quest_taming_the_wilds(char const *script)
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, std::string_view creatureString, uint32 questObjective1, uint32 questObjective2)
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_westward_bound_alliance()
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
void OnQuestStatusChange(Player *player, Quest const *, QuestStatus, QuestStatus newStatus) override
quest_westward_bound_horde()
quest_westward_bound(char const *script)
void HandleQuestStatusChange(Player *player, QuestStatus newStatus, std::string_view creatureStringOne, std::string_view creatureStringTwo, uint32 questEnderEntry, uint32 questEnderCompanionEntry, Position questGiverPos, Position companionPos)
scene_alliance_and_horde_crash()
void OnSceneComplete(Player *player, uint32, SceneTemplate const *) override
void OnSceneTriggerEvent(Player *player, uint32, SceneTemplate const *, std::string const &triggerName) override
void StartConvo(Player *player)
void OnSceneCancel(Player *player, uint32, SceneTemplate const *) override
void OnSceneComplete(Player *player, uint32, SceneTemplate const *) override
scene_alliance_and_horde_ship()
scene_darkmaul_plains_skeleton_army_alliance()
void OnSceneTriggerEvent(Player *player, uint32, SceneTemplate const *, std::string const &triggerName) override
void OnSceneComplete(Player *player, uint32, SceneTemplate const *) override
void OnSceneTriggerEvent(Player *player, uint32, SceneTemplate const *, std::string const &triggerName) override
scene_darkmaul_plains_skeleton_army_horde()
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleEffect(SpellEffIndex)
void HandleLaunch(SpellEffIndex effIndex)
void HandleEffect(SpellEffIndex effIndex)
void HandleLaunch(SpellEffIndex effIndex)
void HandleEffect(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void RemoveEffect(AuraEffect const *, AuraEffectHandleModes)
void ApplyEffect(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
SpellCastResult CheckCast()
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
SpellCastResult CheckCast()
void HandleLaunch(SpellEffIndex effIndex)
void HandleEffect(SpellEffIndex effIndex)
void HandleLaunch(SpellEffIndex effIndex)
void HandleEffect(SpellEffIndex effIndex)
bool Validate(SpellInfo const *) override
void OnAuraRemoveHandler(AuraEffect const *, AuraEffectHandleModes)
void HandleLaunch(SpellEffIndex effIndex)
void HandleEffect(SpellEffIndex effIndex)
void SelectTarget(WorldObject *&target)
void SelectTarget(WorldObject *&target)
void SelectTarget(WorldObject *&target)
void SelectTarget(WorldObject *&target)
void SelectTarget(WorldObject *&target)
void SelectTarget(WorldObject *&target)
bool CheckProc(ProcEventInfo &eventInfo)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto MapGetValuePtr(M &map, typename M::key_type const &key)
void RandomResize(C &container, std::size_t requestedSize)
TC_GAME_API int32 GetValue(int32 worldStateId, Map const *map)
std::string_view StringId
static void VisitGridObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
constexpr void SetOrientation(float orientation)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetPositionZ() const
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
ScriptedAI(Creature *creature, uint32 scriptId=0) noexcept
areatrigger_find_the_lost_expedition_follower(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
void OnUnitEnter(Unit *unit) override
areatrigger_find_the_lost_expedition(AreaTrigger *areatrigger)
at_aggro_radius_check_enhanced_combat_tactics(AreaTrigger *areatrigger)
void OnUnitEnter(Unit *unit) override
void OnUnitEnter(Unit *unit) override
at_briarpatch_to_plains(AreaTrigger *areatrigger)
void StartConversation(Player *player, uint32 conversationId)
void OnUnitEnter(Unit *unit) override
at_northbound_linger(AreaTrigger *areatrigger)
npc_alliance_survivors_beach_laying(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void JustAppeared() override
npc_bjorn_stouthands_q55965_private(Creature *creature)
void InitializeAI() override
void UpdateAI(uint32 diff) override
void WaypointPathEnded(uint32, uint32) override
npc_bo_beach_laying(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_briarpatch_prisoner(Creature *creature)
void UpdateAI(uint32 diff) override
void DoAction(int32 param) override
void JustAppeared() override
npc_captain_garrick_beach(Creature *creature)
void OnQuestAccept(Player *player, Quest const *quest) override
npc_captain_garrick_q55879(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void IsSummonedBy(WorldObject *summonerWO) override
npc_captain_warlord_beach_arrive_private(Creature *creature)
void SetFirstMateGUID(ObjectGuid coleGUID)
void SetQuartermasterGUID(ObjectGuid richterGUID)
ObjectGuid _firstMateGUID
void InitializeAI() override
ObjectGuid _quartermasterGUID
void UpdateAI(uint32 diff) override
void MovementInform(uint32 uiType, uint32 uiId) override
void IsSummonedBy(WorldObject *summonerWO) override
npc_captain_warlord_first_aid_private(Creature *creature)
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_choppy_booster_scout(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void IsSummonedBy(WorldObject *summoner) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
npc_companion_q55965_q59948_private(Creature *creature)
void UpdateAI(uint32 diff) override
void WaypointPathEnded(uint32, uint32) override
void JustAppeared() override
npc_cork_fizzlepop_q59941(Creature *creature)
void JustAppeared() override
void UpdateAI(uint32 diff) override
void MovementInform(uint32 uiType, uint32 uiId) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void WaypointPathEnded(uint32, uint32 pathId) override
void JustAppeared() override
npc_crew_ship_private(Creature *creature)
void JustAppeared() override
void SetGrimaxeGUID(ObjectGuid grimaxeGUID)
void InitializeAI() override
void UpdateAI(uint32 diff) override
npc_dawntracker_briarpatch_quest_private(Creature *creature)
npc_dawntracker_hunter_quest_private(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
void InitializeAI() override
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_first_mate_brace_for_impact_private(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void OnQuestAccept(Player *player, Quest const *quest) override
npc_first_mate_stand_your_ground(Creature *creature)
npc_garrick_summoned_beach(Creature *creature)
void MovementInform(uint32 uiType, uint32 uiId) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void IsSummonedBy(WorldObject *) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
void JustAppeared() override
npc_geolord_grekog(Creature *creature)
void JustEngagedWith(Unit *who) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
void UpdateAI(uint32 diff) override
void JustAppeared() override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_giant_boar_vehicle_q55879(Creature *creature)
void JustAppeared() override
uint32 _conversationActorId
void SetCopterGUID(ObjectGuid copterGUID)
void UpdateAI(uint32 diff) override
npc_gnome_goblin_plains_make_copter_private(Creature *creature)
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_grimaxe_summoned_beach(Creature *creature)
void MovementInform(uint32 uiType, uint32 uiId) override
void IsSummonedBy(WorldObject *) override
npc_horde_crew_plains_private(Creature *creature)
void WaypointPathEnded(uint32, uint32) override
void WaypointPathEnded(uint32, uint32) override
npc_horde_survivors_beach_q59930_private(Creature *creature)
void InitializeAI() override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void JustAppeared() override
void InitializeAI() override
void SetGarrickGUID(ObjectGuid garrickGUID)
void UpdateAI(uint32 diff) override
npc_huxsworth_briarpatch_quest_private(Creature *creature)
npc_huxsworth_hunter_quest_private(Creature *creature)
void JustAppeared() override
void InitializeAI() override
void UpdateAI(uint32 diff) override
npc_lana_jordan_beach_laying(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void InitializeAI() override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void WaypointPathEnded(uint32, uint32) override
npc_lana_jordan_q59948_private(Creature *creature)
void IsSummonedBy(WorldObject *) override
npc_leader_northbound(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void MovementInform(uint32 uiType, uint32 uiId) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void MovementInform(uint32 uiType, uint32 uiId) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
npc_lindie_springstock_q56034(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_mithran_dawntracker_beach_laying(Creature *creature)
void JustEngagedWith(Unit *who) override
void JustEngagedWith(Unit *who) override
void JustDied(Unit *killer) override
npc_ogre_overseer(Creature *creature)
void UpdateAI(uint32 diff) override
npc_pet_ship_private(Creature *creature)
void WaypointPathEnded(uint32, uint32) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void JustAppeared() override
void InitializeAI() override
npc_prisoner_q55879_private(Creature *creature)
void JustDied(Unit *killer) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *who) override
npc_quilboar_geomancer(Creature *creature)
void UpdateAI(uint32 diff) override
npc_quilboar_warrior(Creature *creature)
void JustEngagedWith(Unit *who) override
void JustDied(Unit *killer) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_re_sized_boar_q56034(Creature *creature)
void MovementInform(uint32 uiType, uint32 uiId) override
void WaypointPathEnded(uint32, uint32 pathId) override
void IsSummonedBy(WorldObject *summoner) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
npc_scoutomatic_5000(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_ship_captain_brace_for_impact_private(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void UpdateAI(uint32 diff) override
npc_ship_captain_warming_up_private(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void JustAppeared() override
uint32 _pathToSparringPartner
void InitializeAI() override
void MovementInform(uint32 uiType, uint32 uiId) override
void DamageDealt(Unit *target, uint32 &damage, DamageEffectType) override
void StartConversationWithPlayer(uint32 conversationId)
void JustAppeared() override
void UpdateAI(uint32 diff) override
virtual void OnReadyPointReached()
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void EnterEvadeMode(EvadeReason) override
void IsSummonedBy(WorldObject *summonerWO) override
virtual void HandleClassEvent(uint32)
uint32 _summonSpellAuraID
npc_sparring_partner_combat_training(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
npc_sparring_partner_enhanced_combat_training_druid(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void OnReadyPointReached() override
void HandleClassEvent(uint32 eventId) override
bool _moonfireInPandemicWindow
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void OnReadyPointReached() override
void HandleClassEvent(uint32 eventId) override
npc_sparring_partner_enhanced_combat_training_mage(Creature *creature)
npc_sparring_partner_enhanced_combat_training_monk(Creature *creature)
void OnReadyPointReached() override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_sparring_partner_enhanced_combat_training_paladin(Creature *creature)
void OnReadyPointReached() override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void HandleClassEvent(uint32 eventId) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
bool _shadowWordPainInPandemicWindow
void OnReadyPointReached() override
void HandleClassEvent(uint32 eventId) override
npc_sparring_partner_enhanced_combat_training_priest(Creature *creature)
void JustEngagedWith(Unit *) override
void OnReadyPointReached() override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_sparring_partner_enhanced_combat_training_rogue(Creature *creature)
void HandleClassEvent(uint32 eventId) override
uint8 _comboPointsCounter
uint8 _primalStrikeCounter
npc_sparring_partner_enhanced_combat_training_shaman(Creature *creature)
void HandleClassEvent(uint32 eventId) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void OnReadyPointReached() override
npc_sparring_partner_enhanced_combat_training_warlock(Creature *creature)
void HandleClassEvent(uint32 eventId) override
bool _corruptionInPandemicWindow
void OnReadyPointReached() override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void OnReadyPointReached() override
void ResetWarrior(Player *player)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
npc_sparring_partner_enhanced_combat_training_warrior(Creature *creature)
Creature * GetRandomSparPoint()
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
npc_sparring_partner_exiles_reach(Creature *creature)
void JustAppeared() override
void EnterEvadeMode(EvadeReason) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void MovementInform(uint32 uiType, uint32 uiId) override
void WaypointPathEnded(uint32, uint32 pathId) override
void DamageDealt(Unit *target, uint32 &damage, DamageEffectType) override
void StartPrivateConversation(uint32 conversationId)
void JustAppeared() override
void UpdateAI(uint32 diff) override
npc_survivors_beach_leave_private(Creature *creature)
npc_survivors_healed_by_leader_beach_private(Creature *creature)
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void InitializeAI() override
void UpdateAI(uint32 diff) override
npc_torgok_q55879(Creature *creature)
void JustDied(Unit *killer) override
void JustEngagedWith(Unit *who) override
void OnQuestAccept(Player *player, Quest const *quest) override
npc_warlord_grimaxe_beach(Creature *creature)
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
void OnDespawn() override
void JustAppeared() override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
npc_warlord_grimaxe_q59942(Creature *creature)
static std::vector< ActorData > const ActorDataMap[2]
WarlordGrimaxeAbandonedCampData
@ QUEST_COOKING_MEAT_HORDE
@ CONVERSATION_QUEST_COOKING_MEAT_COMPLETE_HORDE
static constexpr Position DawntrackerBriarpatchDespawnPosition
EnhancedCombatTacticsData
@ SPELL_SUMMON_CAPTAIN_GARRICK_COMBAT
@ SPELL_SUMMON_WARLORD_GRIMAXE_COMBAT
CreatureAI * BjornRuinsSelector(Creature *creature)
CreatureAI * AustinBeachStandingAISelector(Creature *creature)
CreatureAI * BjornBeachStandingAISelector(Creature *creature)
CreatureAI * BoBeachStandingAISelector(Creature *creature)
static constexpr Position CopterCloneSpawnPosition
ExilesReachAllianceSurvivorsBeachData
@ NPC_BJORN_STOUTHANDS_LAYING
@ PATH_AUSTIN_HUXWORTH_STANDING
@ CONVERSATION_KEE_LA_BEACH
@ NPC_AUSTIN_HUXWORTH_STANDING
@ CONVERSATION_STOUTHANDS_BEACH
@ NPC_AUSTIN_HUXWORTH_LAYING
@ NPC_BJORN_STOUTHANDS_STANDING
@ PATH_BJORN_STOUTHANDS_STANDING
@ CONVERSATION_HUXWORTH_BEACH
@ SPELL_RE_DEATHER_SUMMON_GRIMAXE
@ OBJECTIVE_RE_DEATHER_CADAVERS_KILLED
@ CONVERSATION_ACCEPT_RE_DEATHER_QUEST
@ NPC_SHUJA_GRIMAXE_PRISONER
@ RE_DEATHER_CADAVERS_KILLED_MAX
@ SPELL_RE_DEATHER_TEMP_OBJECTIVE_CHECK
@ SPELL_REUNION_DNT_HORDE
@ CONVERSATION_RE_DEATHER_EXPLODE
@ SPELL_RE_DEATHER_ROUGH_LANDING_DNT
static constexpr Position GarrickQuillboarBriarpatchPosition
@ QUEST_NORTHBOND_ALLIANCE
@ ACTOR_ID_1_NORTHBOUND_ACCEPT_HORDE
@ ACTOR_ID_0_NORTHBOUND_ACCEPT_HORDE
@ SPELL_SUMMON_ADMIRAL_GARRICK_GUARDIAN_NORTHBOUND
@ ACTOR_ID_0_NORTHBOUND_AREATRIGGER_ALLIANCE
@ CONVERSATION_QUEST_NORTHBOUND_ACCEPT_HORDE
@ ACTOR_ID_0_NORTHBOUND_ACCEPT_ALLIANCE
@ ACTOR_ID_1_NORTHBOUND_AREATRIGGER_HORDE
@ SPELL_LINGER_NORTHBOUND_HORDE
@ ACTOR_ID_1_NORTHBOUND_ACCEPT_ALLIANCE
@ CONVERSATION_QUEST_NORTHBOUND_ACCEPT_ALLIANCE
@ SPELL_LINGER_NORTHBOUND_ALLIANCE
@ SPELL_SUMMON_WARLORD_GRIMAXE_GUARDIAN_NORTHBOUND
KnockedDownExilesReachData
@ SPELL_KNOCKED_DOWN_STUN2
@ CONVERSATION_ACTOR_HUXSWORTH_BRIARPATCH
@ CONVERSATION_BRIARPATCH_ALLIANCE
@ EVENT_HUXSWORTH_GARRICK_CONVERSATION
@ EVENT_HUXSWORTH_GARRICK_RUN_BRIARPATCH
@ CONVERSATION_ACTOR_GARRICK_BRIARPATCH
BraceForImpactFirstMateData
@ PATH_THROG_BRACE_FOR_IMPACT
@ PATH_COLE_BRACE_FOR_IMPACT
@ CONVERSATION_BRIARPATCH_HORDE
@ CONVERSATION_ACTOR_GRIMAXE_BRIARPATCH
@ EVENT_DAWNTRACKER_GRIMAXE_RUN_BRIARPATCH
@ CONVERSATION_ACTOR_DAWNTRACKER_BRIARPATCH
@ EVENT_DAWNTRACKER_GRIMAXE_CONVERSATION
@ EVENT_RESIZING_FOLLOW_PLAYER
@ EVENT_RESIZING_RUN_HOME
@ CONVERSATION_RESIZING_REPORT_BACK
@ ACTOR_CORK_RESIZING_QUEST
@ SPELL_PING_LINDIE_Q56034_Q59941
@ SPELL_SUMMON_CORK_FIZZLEPOP_GUARDIAN_Q59941
@ CONVERSATION_RESIZING_QUEST_ACCEPT
@ SPELL_SUMMON_LINDIE_SPRINGSTOCK_GUARDIAN_Q56034
@ SPELL_LINDIE_DESUMMON_Q56034
@ ACTOR_LINDIE_RESIZING_QUEST
static constexpr Position GarrickAbandonedCampPosition
@ NPC_WARLORD_BREKA_GRIMAXE_BEACH
@ NPC_CAPTAIN_GARRICK_BEACH
@ CONVERSATION_WARLORD_GRIMAXE_SPAWN_Q59942
@ CONVERSATION_WARLORD_GRIMAXE_QUEST_COMPLETE_Q59942
@ ACTOR_SHUJA_GRIMAXE_PRISONER
@ ACTOR_SHUJA_GRIMAXE_FREED
@ ACTOR_WARLORD_GRIMAXE_Q59942
@ QUEST_OBJECTIVE_BEAST_TAMED_ALLIANCE
@ QUEST_OBJECTIVE_TRAINED_HORDE
@ QUEST_OBJECTIVE_BEAST_TAMED_HORDE
@ QUEST_TAMING_THE_WILDS_HORDE
@ QUEST_TAMING_THE_WILDS_ALLIANCE
@ QUEST_OBJECTIVE_TRAINED_ALLIANCE
@ QUEST_TRACKER_TAMING_THE_WILDS_COMPLETE
CreatureAI * HealedByLeaderAllianceAISelector(Creature *creature)
static constexpr Position PrisonerBriarpatchDespawnPosition
static constexpr Position GrimaxeQuillboarBriarpatchPosition
CaptainGarrickAbandonedCampData
@ QUEST_COOKING_MEAT_ALLIANCE
@ CONVERSATION_QUEST_COOKING_MEAT_COMPLETE_ALLIANCE
static constexpr Position BjornWestwardBoundRuinsPos
Position MoveToPrisonerPosition
CreatureAI * SparringPartnerEnhancedCombatTrainingSelector(Creature *creature)
@ EVENT_LANA_SAY_AT_RUINS
CreatureAI * CorkFizzlepopSelector(Creature *creature)
ExilesReachOgreOverseerData
@ EVENT_OVERSEER_BACKHAND
@ EVENT_OVERSEER_EARTHSHATTER
static constexpr Position EnhancedTrainingWalkPosition
CreatureAI * LanaRuinsSelector(Creature *creature)
ExilesReachShipCrashBeachData
@ SPELL_CRASHED_LANDED_ALLIANCE
@ SPELL_CRASHED_LANDED_HORDE
@ EVENT_PET_SHIP_RUN_TO_POSITION
CreatureAI * WarlordGrimaxeBeachAISelector(Creature *creature)
void AddSC_zone_exiles_reach()
LostExpeditionFollowerData
@ ACTOR_ID_HORDE_SURVIVOR
@ SPELL_SUMMON_ADMIRAL_GARRICK_GUARDIAN
@ CONVERSATION_LINE_ESCORT_SURVIVOR_CAMP
@ CONVERSATION_LINE_ESCORT_ALLIANCE_SURVIVOR
@ ACTOR_ID_ALLIANCE_SURVIVOR
@ CONVERSATION_LINE_ESCORT_HORDE_SURVIVOR
@ EVENT_INITIAL_SPAWN_CHECK
@ SPELL_SUMMON_WARLORD_GRIMAXE_GUARDIAN
@ SPELL_VALIDATED_QUEST_ACCEPT_BRIARPATCH_HORDE
@ QUEST_FORBIDDEN_QUILBOAR_NECROMANY_ALLIANCE
@ QUEST_DOWN_WITH_THE_QUILBOAR_ALLIANCE
@ QUEST_DOWN_WITH_THE_QUILBOAR_HORDE
@ SPELL_VALIDATED_QUEST_ACCEPT_BRIARPATCH_ALLIANCE
@ QUEST_FORBIDDEN_QUILBOAR_NECROMANY_HORDE
@ NPC_ALLIANCE_SPARING_PARTNER
@ PATH_ALLIANCE_SPARING_PARTNER
@ NPC_SPAR_POINT_ADVERTISMENT
@ EVENT_MOVE_TO_A_POSITION
@ SPELL_COMBAT_TRAINING_COMPLETE
@ POSITION_SPARPOINT_ADVERTISMENT
@ NPC_HORDE_SPARING_PARTNER
@ EVENT_PREFIGHT_CONVERSATION
@ PATH_HORDE_SPARING_PARTNER
@ SPELL_UPDATE_PHASE_SHIFT
@ POSITION_SPARPOINT_READY
static constexpr Position PrisonerPosition
CreatureAI * DawntrackerBriarpatchSelector(Creature *creature)
static constexpr Position HordeCrewPersonalSpawnLocation[]
static constexpr Position MiniChopperJumpPosition
@ CONVERSATION_ACTOR_GEOLORD
@ CONVERSATION_GEOLORD_AGGRO
@ NPC_INVIS_BUNNY_GEOLORD
@ CONVERSATION_ACTOR_CORK
@ CONVERSATION_ACTOR_LINDIE
@ SPELL_NECROTIC_RITUAL_DNT
Position GiantBoarPosition
@ SPELL_LEARNING_TAME_BEAST
@ CONVERSATION_HORDE_ACTOR
@ CONVERSATION_HORDE_TRAINER
@ SAY_PET_TRAINING_ALLIANCE
@ SAY_FIND_A_BEAST_ALLIANCE
@ SPELL_TUTORIAL_HEALTH_DNT
@ SPELL_TAME_BEAST_EFFECT
@ EVENT_ME_TURN_TO_PLAYER
static std::unordered_map< Races, std::string_view > const ActorPetData
CreatureAI * CaptainGarrickBeachAISelector(Creature *creature)
@ CONVERSATION_ACTOR_COPTER
@ NPC_LINDIE_SPRINGSTOCK_PLAINS
@ CONVERSATION_ACTOR_GOBLIN_HORDE
@ CONVERSATION_ACTOR_GOBLIN_ALLIANCE
@ QUEST_THE_CHOPPY_BOOSTER_MK5
@ CONVERSATION_RESIZE_COPTER_HORDE
@ CONVERSATION_RESIZE_COPTER_ALLIANCE
@ QUEST_THE_SCOUT_O_MATIC_5000
@ PATH_JIN_HAKE_BRACE_FOR_IMPACT
@ PATH_BO_BRACE_FOR_IMPACT
@ PATH_RICHTER_BRACE_FOR_IMPACT
@ PATH_KEE_LA_BRACE_FOR_IMPACT
@ NPC_MITHDRAN_DAWNTRACKER
@ PATH_LANA_BRACE_FOR_IMPACT
@ NPC_QUARTERMASTER_RICHTER
@ PATH_AUSTIN_BRACE_FOR_IMPACT
@ NPC_PROVISONER_JIN_HAKE
@ PATH_MITHDRAN_BRACE_FOR_IMPACT
@ PATH_BJORN_BRACE_FOR_IMPACT
@ SPELL_RIDING_GIANT_BOAR_321670
@ SPELL_RIDING_GIANT_BOAR_305068
static constexpr Position GrimaxeBriarpatchDespawnPosition
FirstMateStandYourGroundData
@ QUEST_STAND_YOUR_GROUND_ALLIANCE
@ QUEST_STAND_YOUR_GROUND_HORDE
static constexpr Position WonsaWestwardBoundRuinsPos
CreatureAI * PrisonerQ55879Selector(Creature *creature)
CreatureAI * ChoppyBoosterSelector(Creature *creature)
static constexpr Position GarrickBriarpatchDespawnPosition
CreatureAI * AlariaRuinsSelector(Creature *creature)
@ QUEST_OBJECTIVE_RE_SIZING_THE_SITUATION_HORDE
@ NPC_LINDIE_SPRINGSTOCK_GUARDIAN
@ QUEST_RE_SIZING_THE_SITUATION_HORDE
@ NPC_CORK_FIZZLEPOP_GUARDIAN
@ SPELL_RESIZER_HIT_TWO_Q56034_Q59941
@ SPELL_RESIZER_HIT_ONE_Q56034_Q59941
@ QUEST_RE_SIZING_THE_SITUATION_ALLIANCE
@ SPELL_RESIZER_HIT_THREE_Q56034
@ QUEST_OBJECTIVE_RE_SIZING_THE_SITUATION_ALLIANCE
@ SPELL_RE_SIZER_OVERCHARGED_Q56034
CreatureAI * CaptainGarrickAISelector(Creature *creature)
ExilesReachHordeSurvivorsBeachData
@ EVENT_SURVIVORS_HORDE_STAND_AND_TALK
@ NPC_LANA_JORDAN_STANDING
@ PATH_LANA_JORDAN_LEAVE_BEACH
@ QUEST_FINDING_THE_LOST_EXPEDITION_HORDE
@ TALK_HORDE_BEACH_THANK_PLAYER
@ PATH_MITHDRAN_LEAVE_BEACH
@ PATH_LANA_JORDAN_TO_GRIMAXE
@ QUEST_FINDING_THE_LOST_EXPEDITION_ALLIANCE
@ EVENT_SURVIVORS_LEAVE_BEACH
@ PATH_MITHDRAN_TO_GRIMAXE
@ EVENT_SURVIVORS_HORDE_MOVE_TO_GRIMAXE
@ PATH_PRISONER_TO_GROUND
static constexpr Position GrimaxeAbandonedCampPosition
@ SPELL_RITUAL_SCENE_HRUN_BEAM_DNT
@ SPELL_SUMMON_DARKMAUL_PLAINS_QUESTGIVERS_SUMMON
@ SPELL_RITUAL_SCENE_HARPY_BEAM_DNT
@ SPELL_RITUAL_SCENE_OGRE_CITADEL_DNT
@ SPELL_SUMMON_DARKMAUL_PLAINS_QUESTGIVERS_AURA
@ SPELL_RITUAL_SCENE_MAIN_BEAM_DNT
@ SPELL_PING_GARRICK_TORGOK
@ NPC_HENRY_GARRICK_PRISONER
@ SPELL_REUNION_DNT_ALLIANCE
CreatureAI * HuxsworthBriarpatchSelector(Creature *creature)
static constexpr Position ReDeatherAbandonTeleportPos
#define RegisterPrivatePublicCreatureAIPair(scriptName, privateAI, publicAI)
CreatureAI * LindieSpringstockSelector(Creature *creature)
ExilesReachCaptainsBeachData
@ EVENT_EMERGENCY_FIRST_AID_SCRIPT_MOVE_SECOND_SURVIVOR
@ QUEST_EMERGENCY_FIRST_AID_ALLIANCE
@ CONVERSATION_QUEST_MURLOC_MANIA_ALLIANCE
@ EVENT_EMERGENCY_FIRST_AID_SCRIPT_SHEATH
@ QUEST_EMERGENCY_FIRST_AID_HORDE
@ EVENT_EMERGENCY_FIRST_AID_SCRIPT_BANDAGE
@ QUEST_MURLOC_MANIA_HORDE
@ CONVERSATION_QUEST_MURLOC_MANIA_HORDE
@ EVENT_EMERGENCY_FIRST_AID_SCRIPT_MOVE_HOME_BEACH
@ QUEST_MURLOC_MANIA_ALLIANCE
static constexpr Position BriarpatchPrisonerJumpToPosition
static constexpr Position EnhancedTrainingRunPosition
Position ResizingGuardianPosition
@ SPELL_ALLIANCE_SHIP_CRASH
@ MOVIE_ALLIANCE_SHIP_CRASH
CreatureAI * HealedByLeaderHordeAISelector(Creature *creature)
@ NPC_BJORN_STOUTHANDS_PIT_ONE
EnhancedCombatTrainerData
@ SPELL_AGGRO_RADIUS_CHECK_DNT_SHAMAN
@ QUEST_OBJECTIVE_HORDE_BLACKOUT_KICK
@ SPELL_CHARGE_KNOCKBACK_WARRIOR
@ CONVERSATION_LIGHTNINGBOLT_RANGE_SHAMAN
@ CONVERSATION_THREE_COMBO_EVISCERATE_ROGUE
@ SPELL_AGGRO_RADIUS_CHECK_DNT_DRUID
@ CONVERSATION_PREFIGHT_WALK_ENHANCED
@ CONVERSATION_SHADOW_WORD_PAIN_TOO_SOON_PRIEST
@ CONVERSATION_HOLY_POWER_THREE_PALADIN
@ CONVERSATION_CHARGE_KICKBACK
@ CONVERSATION_CRUSADER_STRIKE_ONE_PALADIN
@ EVENT_COMBAT_TRAINING_RESET_MAGE
@ CONVERSATION_MOONFIRE_CAST_PRE_COMBAT_DRUID
@ CONVERSATION_CRUSADER_STRIKE_THREE_PALADIN
@ NPC_ALLIANCE_SPARRING_PARTNER_ENHANCED
@ EVENT_COMBAT_TRAINING_END
@ CONVERSATION_CORRUPTION_CAST_PRE_COMBAT_WARLOCK
@ SPELL_CHARGE_KNOCKBACK_DRUID
@ CONVERSATION_CORRUPTION_CAST_TOO_SOON_WARLOCK
@ SPELL_AGGRO_RADIUS_CHECK_DNT_WARRIOR_MAGE
@ EVENT_COMBAT_CHECK_PLAYER
@ CONVERSATION_MOONFIRE_CAST_TOO_SOON_DRUID
@ CONVERSATION_SMITE_PRE_COMBAT_PRIEST
@ CONVERSATION_HOLY_POWER_TWO_PALADIN
@ CONVERSATION_HOLY_POWER_ONE_PALADIN
@ EVENT_COMBAT_TRAINING_AGGRO_CHECK_MAGE
@ CONVERSATION_USE_SPELLS_AT_RANGE
@ QUEST_ENHANCED_COMBAT_TACTICS_ALLIANCE_MONK
@ NPC_ALLIANCE_SPARRING_PARTNER_ENHANCED2
@ CONVERSATION_FROSTBOLT_CLOSE_MAGE
@ CONVERSATION_READY_COMBAT
@ QUEST_ENHANCED_COMBAT_TACTICS_HORDE_MONK
@ CONVERSATION_PRIMAL_STRIKE_QUEST_CREDIT_SHAMAN
@ CONVERSATION_CHARGE_ONE_RES_ENHANCED
@ SPELL_DRINK_HEALING_POTION
@ EVENT_COMBAT_TRAINING_SINISTER_CHECK_ROGUE
@ CONVERSATION_MOONFIRE_QUEST_CREDIT_DRUID
@ CONVERSATION_CORRUPTION_QUEST_CREDIT_WARLOCK
@ CONVERSATION_READY_COMBAT_WARRIOR
@ CONVERSATION_SINISTER_STRIKE_THREE_ROGUE
@ EVENT_COMBAT_TRAINING_WALK_AND_TALK
@ CONVERSATION_FAILED_EVISCERATE_ROGUE
@ ACTOR_ID_ALLIANCE_ENHANCED_TRAINING
@ EVENT_COMBAT_TRAINING_RESET_SHAMAN
@ SPELL_SHIELD_OF_THE_RIGHTEOUS
@ CONVERSATION_SHIELD_SLAM_TWO_PALADIN
@ ACTOR_ID_HORDE_ENHANCED_TRAINING
@ CONVERSATION_SHADOW_WORD_PAIN_PRE_COMBAT_PRIEST
@ CONVERSATION_MOONFIRE_WEARING_OFF_DRUID
@ QUEST_OBJECTIVE_HORDE_TIGER_PALM
@ QUEST_ENHANCED_COMBAT_TACTICS_ALLIANCE
@ CONVERSATION_CRUSADER_STRIKE_TWO_PALADIN
@ SPELL_AGGRO_RADIUS_CHECK_DNT_WARLOCK
@ CONVERSATION_FIRE_BLAST_QUEST_CREDIT_MAGE
@ QUEST_OBJECTIVE_ALLIANCE_ABILITIES_PROVEN
@ CONVERSATION_FIRE_BLAST_MAGE_NO_CREDIT
@ POINT_TRAINING_POINT_ENHANCED_TRAINING
@ QUEST_ENHANCED_COMBAT_TACTICS_HORDE
@ CONVERSATION_FOUR_COMBO_EVISCERATE_ROGUE
@ CONVERSATION_SHADOW_BOLT_PRE_COMBAT_WARLOCK
@ CONVERSATION_CHARGE_FINAL_ENHANCED
@ CONVERSATION_FOUR_COMBO_POINTS_ROGUE
@ CONVERSATION_SHADOW_WORD_PAIN_FADING_PRIEST
@ CONVERSATION_SHIELD_SLAM_ONE_PALADIN
@ CONVERSATION_SINISTER_STRIKE_TWO_ROGUE
@ PATH_COMBAT_TRAINER_HOME
@ CONVERSATION_SLAM_ENHANCED
@ CONVERSATION_CORRUPTION_IS_FADING_WARLOCK
@ CONVERSATION_PRIMAL_STRIKE_FIRST_SHAMAN
@ EVENT_COMBAT_TRAINING_FACE_PLAYER
@ QUEST_OBJECTIVE_HORDE_ABILITIES_PROVEN
@ CONVERSATION_CHARGE_ZERO_RES_ENHANCED
@ CONVERSATION_LIGHTNINGBOLT_FIRST_SHAMAN
@ CHARGE_CATEGORY_CHARGE_SPELL
@ CONVERSATION_FROSTBOLT_MAGE
@ CONVERSATION_THREE_COMBO_POINTS_ROGUE
@ CONVERSATION_SHADOW_WORD_PAIN_QUEST_CREDIT_PRIEST
@ EVENT_COMBAT_TRAINING_AGGRO_CHECK_SHAMAN
@ QUEST_OBJECTIVE_ALLIANCE_BLACKOUT_KICK
@ SPELL_AGGRO_RADIUS_CHECK_DNT_PRIEST
@ CONVERSATION_FIVE_COMBO_POINTS_ROGUE
@ EVENT_COMBAT_TRAINING_SPELL_FADING
@ CONVERSATION_SINISTER_STRIKE_ONE_ROGUE
@ QUEST_OBJECTIVE_ALLIANCE_TIGER_PALM
@ POINT_WALK_POINT_ENHANCED_TRAINING
@ POINT_RUN_POINT_ENHANCED_TRAINING
@ CONVERSATION_WRATH_PRE_COMBAT_DRUID
@ SPELL_AGGRO_RADIUS_CHECK_DNT_WARRIOR
@ CONVERSATION_REGULAR_ATTACKS_ROGUE
@ PATH_GARRICK_TO_UPPER_DECK
@ NPC_WARLORD_BREKA_GRIMAXE3
@ NPC_WARLORD_BREKA_GRIMAXE2
@ EVENT_SHIP_CAPTAIN1_SCRIPT1
@ EVENT_SHIP_CAPTAIN1_SCRIPT2
@ EVENT_SHIP_CAPTAIN1_SCRIPT3
@ PATH_GRIMAXE_TO_UPPER_DECK
CreatureAI * MithdranBeachStandingAISelector(Creature *creature)
@ EVENT_RETURN_FROM_OGRE_RUINS
@ CONVERSATION_RIDE_FROM_OGRE_RUINS_HORDE
@ SPELL_SCENE_OGRE_RUINS_HORDE
@ EVENT_TRIGGER_CREW_MOVE
@ CONVERSATION_RIDE_TO_OGRE_RUINS_HORDE
@ SPELL_SCOUT_O_MATIC_PING_DNT
@ SPELL_SCENE_OGRE_RUINS_ALLIANCE
@ CONVERSATION_RIDE_FROM_OGRE_RUINS_ALLIANCE
@ EVENT_START_SCOUT_OGRE_RUINS
@ CONVERSATION_RIDE_TO_OGRE_RUINS_ALLIANCE
CreatureAI * GetPrivatePublicPairAISelector(Creature *creature)
static constexpr Position LanaWestwardBoundRuinsPos
@ QUEST_BRACE_FOR_IMPACT_ALLIANCE
@ QUEST_BRACE_FOR_IMPACT_HORDE
static Creature * FindCreatureIgnorePhase(WorldObject const *obj, std::string_view stringId, float range=100.0f)
BraceForImpactCaptainData
@ PATH_GRIMAXE_FROM_UPPER_DECK
@ PATH_GARRICK_TO_LOWER_DECK
@ EVENT_SHIP_CAPTAIN2_SCRIPT1
@ PATH_GARRICK_FROM_UPPER_DECK
@ EVENT_SHIP_CAPTAIN2_SCRIPT2
@ PATH_GRIMAXE_TO_LOWER_DECK
static constexpr Position InjuredNpcPositionAbandonedCamp
@ CONVERSATION_WARMING_UP_COMPLETE
@ CONVERSATION_WARMING_UP_ACCEPT
@ SPELL_ENHANCED_BOAR_KILL_CREDIT
@ QUEST_RIDE_ENHANCED_BOAR
@ SPELL_ENHANCED_BOAR_PING_VEHICLE
@ QUEST_RIDE_BOAR_OBJECTIVE_TWO_MAX
@ QUEST_RIDE_BOAR_OBJECTIVE_TWO
@ SPELL_ENHANCED_BOAR_TRAMPLE
@ SPELL_ENHANCED_BOAR_CHARGE
@ SPELL_ENHANCED_BOAR_KNOCKBACK
@ SPELL_ENHANCED_BOAR_KNOCKBACK_HINT
@ SPELL_ENHANCED_BOAR_CHARGE_CONVO
@ EVENT_COMPANION_RUN_TO_PIT
CreatureAI * KeeLaBeachStandingAISelector(Creature *creature)
QuilboarWarriorGeomancerData
@ SPELL_GEOMANCER_EARTH_BOLT
@ SPELL_QUILBOAR_SLEEP_DNT
@ EVENT_GEOMANCER_EARTH_BOLT
CreatureAI * LanaJordanBeachStandingAISelector(Creature *creature)
@ EVENT_CAPTAIN_GARRICK_RIDE_BOAR
@ CONVERSATION_CAPTAIN_GARRICK_RIDE_BOAR_QUEST_EXIT
@ CONVERSATION_CAPTAIN_GARRICK_RIDE_BOAR_QUEST_ACCEPT
@ EVENT_CAPTAIN_GARRICK_RIDE_BOAR_CHECK_OWNER
@ SPELL_PING_GARRICK_TO_RIDE_BOAR
@ EVENT_CAPTAIN_GARRICK_RIDE_BOAR_EXIT_BOAR_CONVERSATION
@ ACTOR_HENRY_GARRICK_PRISONER
@ EVENT_CAPTAIN_GARRICK_RIDE_BOAR_TALK_TO_HENRY
@ SPELL_RIDE_VEHICLE_CAPTIAN_BOAR
@ EVENT_CAPTAIN_GARRICK_RIDE_BOAR_HENRY_DESPAWN
@ CONVERSATION_CAPTAIN_GARRICK_RIDE_BOAR_QUEST_HENRY
CreatureAI * HordeCrewPlainsSelector(Creature *creature)
@ EVENT_GIANT_BOAR_SIZE_ONE
@ EVENT_GIANT_BOAR_EJECT_PASSENGERS
@ EVENT_GIANT_BOAR_SIZE_TWO
@ EVENT_GIANT_BOAR_SIZE_THREE
@ EVENT_GIANT_BOAR_UNROOT
@ EVENT_GIANT_BOAR_SIZE_FOUR
static constexpr Position AlariaWestwardBoundRuinsPos
static constexpr Position HuxworthBriarpatchDespawnPosition
BriarpathPlainsConversations
@ CONVERSATION_DOWN_WITH_THE_QUILLBOAR_COMPLETE_HORDE
@ CONVERSATION_DOWN_WITH_THE_QUILLBOAR_COMPLETE_ALLIANCE
CreatureAI * WansaRuinsSelector(Creature *creature)