106 if (engineer->IsAIEnabled())
174 if (engineer->IsAIEnabled())
184 if (engineer->IsAIEnabled())
194 if (engineer->IsAIEnabled())
247 { 1358.62f, 1054.72f, 53.1200f, 0.0f },
248 { 1393.27f, 1021.20f, 53.2225f, 0.0f },
249 { 1404.71f, 1063.73f, 60.5617f, 0.0f }
254 { 1387.90f, 1029.71f, 53.21853f, 2.827433f },
255 { 1389.79f, 1024.51f, 53.20833f, 2.827433f },
256 { 1388.05f, 1026.91f, 53.20833f, 2.827433f },
257 { 1388.16f, 1020.88f, 53.25523f, 2.827433f },
258 { 1385.79f, 1025.99f, 53.22593f, 2.827433f },
259 { 1386.69f, 1023.26f, 53.24393f, 2.827433f },
260 { 1384.33f, 1022.04f, 53.28123f, 2.827433f },
261 { 1391.10f, 1027.73f, 53.20483f, 2.827433f },
263 { 1359.10f, 1046.55f, 52.97053f, 5.253441f },
264 { 1360.89f, 1051.81f, 53.19793f, 5.253441f },
265 { 1360.75f, 1048.84f, 53.12893f, 5.253441f },
266 { 1364.43f, 1053.62f, 53.29343f, 5.253441f },
267 { 1363.08f, 1048.15f, 53.22223f, 5.253441f },
268 { 1364.08f, 1050.84f, 53.29163f, 5.253441f },
269 { 1366.69f, 1050.31f, 53.34203f, 5.253441f },
270 { 1357.85f, 1050.12f, 52.99823f, 5.253441f }
457 if (sylvanas->IsAIEnabled())
469 sylvanas->SetFacingTo(0.808979f);
471 if (sylvanas->IsAIEnabled())
483 garrosh->GetMotionMaster()->MoveJump(
GarroshJumpPos, 15.595897f, 15.595897f);
494 sylvanas->SetFacingTo(3.924652f);
506 garrosh->SetFacingToObject(sylvanas);
510 if (garrosh->IsAIEnabled())
522 garrosh->SetFacingTo(3.9444442f);
524 if (garrosh->IsAIEnabled())
536 sylvanas->SetFacingTo(2.4260077f);
538 if (sylvanas->IsAIEnabled())
550 sylvanas->SetFacingTo(3.7350047f);
553 if (sylvanas->IsAIEnabled())
565 if (sylvanas->IsAIEnabled())
577 if (garrosh->IsAIEnabled())
589 if (sylvanas->IsAIEnabled())
601 if (sylvanas->IsAIEnabled())
615 if (sylvanas->IsAIEnabled())
627 if (sylvanas->IsAIEnabled())
650 agatha->SetWalk(
true);
684 if (cromush->IsAIEnabled())
698 if (garrosh->IsAIEnabled())
702 agatha->SetWalk(
false);
726 if (sylvanas->IsAIEnabled())
738 if (garrosh->IsAIEnabled())
750 if (garrosh->IsAIEnabled())
762 if (sylvanas->IsAIEnabled())
774 garrosh->SetFacingTo(5.51524f);
776 if (garrosh->IsAIEnabled())
790 garrosh->SetFacingToObject(cromush);
804 if (garrosh->IsAIEnabled())
816 if (cromush->IsAIEnabled())
821 cromush->SetFacingToObject(garrosh);
833 garrosh->SetFacingTo(5.6199603f);
836 if (garrosh->IsAIEnabled())
850 garrosh->GetMotionMaster()->MovePath(
PATH_GARROSH,
false);
881 std::list<Creature*> orgrimmarPortals;
884 for (
Creature* portal : orgrimmarPortals)
900 cromush->GetMotionMaster()->MovePath(
PATH_CROMUSH,
false);
943 if (fallenHuman->IsAIEnabled())
954 if (fallenHuman->IsAIEnabled())
1103 switch (caster->GetDisplayId())
1133 caster->CastSpell(caster, spellId,
true);
1476 player->VehicleSpellInitialize();
1531 player->VehicleSpellInitialize();
1799 if (bloodfang->GetOwnerGUID() == summoner->GetGUID())
1808 if (armoire->GetOwnerGUID() == summoner->GetGUID())
1812 if (armoire->IsAIEnabled())
1924 crowley->DespawnOrUnsummon();
1927 bloodfang->DespawnOrUnsummon();
2002 crowley->SetFacingToObject(bloodfang);
2004 bloodfang->SetFacingToObject(crowley);
2018 if (crowley->IsAIEnabled())
2044 if (bloodfang->IsAIEnabled())
2081 if (crowley->IsAIEnabled())
2107 if (crowley->IsAIEnabled())
2144 if (bloodfang->IsAIEnabled())
2159 if (bloodfang->IsAIEnabled())
2174 if (bloodfang->IsAIEnabled())
2211 if (crowley->IsAIEnabled())
2237 if (bloodfang->IsAIEnabled())
2250 bloodfang->SetFacingTo(0.6457718f);
2263 if (bloodfang->IsAIEnabled())
2278 if (bloodfang->IsAIEnabled())
2326 if (bloodfang->IsAIEnabled())
2343 yorick->SetUninteractible(
false);
2370 bloodfang->SetFacingTo(3.054326f);
2372 if (bloodfang->IsAIEnabled())
2387 if (yorick->IsAIEnabled())
2406 if (yorick->IsAIEnabled())
2409 if (bloodfang->IsAIEnabled())
2423 bloodfang->SetFacingTo(0.0f);
2436 if (bloodfang->IsAIEnabled())
2464 bloodfang->SetWalk(
false);
2494 summoner->GetMotionMaster()->Clear();
2498 summoner->ExitVehicle();
2535 if (armoire->IsAIEnabled())
2566 if (armoire->IsAIEnabled())
2656 if (gorgar->IsAIEnabled())
2676 if (gorgar->IsAIEnabled())
2696 if (gorgar->IsAIEnabled())
2716 if (gorgar->IsAIEnabled())
2736 if (gorgar->IsAIEnabled())
2800 if (hatchet->IsAIEnabled())
2808 if (wormcrud->IsAIEnabled())
2876 if (orcsea1->IsAIEnabled())
2887 if (orcsea2->IsAIEnabled())
2898 if (orcsea3->IsAIEnabled())
2921 std::vector<Creature*> orcSeaDogList;
2924 if (orcSeaDogList.size() < 3)
2927 for (
uint32 i = 0; i < orcSeaDogList.size(); i++)
3030 if (torok->IsAIEnabled())
3048 if (torok->IsAIEnabled())
3248 for (
int i = 0; i < c; i++)
3261 if (!passengerCreature)
3273 Talk(seatId + 1, summoner);
3285 switch (spellInfo->
Id)
3329 if (vehicle->IsVehicleInUse())
3653 if (forestEttin->IsAIEnabled())
3668 if (!summoner->IsInWorld())
3711 std::vector<Creature*> chickens;
3713 for (
Creature* mutantBushChicken : chickens)
3715 if (mutantBushChicken->GetOwner() != caster)
3722 mutantBushChickenAI->CheckForForestEttin(target);
3778 uint32 randomCreature = 0;
3807 if (randomCreature != 0)
3810 randomAggresiveCreature->Attack(caster,
true);
3882 if (!summoner->IsAlive() || !summoner->IsInWorld())
3972 summon->
Attack(victim,
true);
4146 switch (spellInfo->
Id)
4291 summoner->ExitVehicle();
4368 if (agatha->GetOwner() == target)
4376 if (agatha->IsAIEnabled())
4438 switch (hillsbradRefugee->GetDisplayId())
4468 hillsbradRefugee->CastSpell(hillsbradRefugee, spellId,
true);
4501 switch (spellInfo->
Id)
4724 switch (spellInfo->
Id)
4771 if (agatha->GetOwner() == player)
4776 fenrisKeepStalkerAI->OnTriggerNoEscape(player->
GetGUID());
4873 switch (spellInfo->
Id)
5000 switch (spellInfo->
Id)
5136 switch (spellInfo->
Id)
@ TEMPSUMMON_TIMED_DESPAWN
@ QUEST_STATUS_INCOMPLETE
float frand(float min, float max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterCreatureAI(ai_name)
#define RegisterGameObjectAI(ai_name)
#define RegisterSpellScript(spell_script)
void GetCreatureListWithEntryInGrid(Container &container, WorldObject *source, uint32 entry, float maxSearchRange)
void AddGossipItemFor(Player *player, GossipOptionNpc optionNpc, std::string text, uint32 sender, uint32 action)
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const &guid)
void CloseGossipMenuFor(Player *player)
@ EMOTE_ONESHOT_EXCLAMATION
@ EMOTE_STATE_READY_UNARMED
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_DUMMY
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_NPC_FLAG_SPELLCLICK
@ UNIT_FLAG3_UNTARGETABLE_FROM_UI
@ UNIT_FLAG_IMMUNE_TO_NPC
HookList< EffectPeriodicHandler > OnEffectPeriodic
SpellInfo const * GetSpellInfo() const
AuraEffect * GetEffect(uint8 effIndex) const
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectApplyHandler > OnEffectApply
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetHomePosition(float x, float y, float z, float o)
uint32 m_spells[MAX_CREATURE_SPELLS]
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void SetDisplayId(uint32 displayId, bool setNative=false) override
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void CancelEvent(uint32 eventId)
void MoveJump(Position const &pos, float speedXY, float speedZ, uint32 id=EVENT_JUMP, bool hasOrientation=false, JumpArrivalCastArgs const *arrivalCast=nullptr, Movement::SpellEffectExtraData const *spellEffectExtraData=nullptr)
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={}, bool generatePath=true)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void MoveFollow(Unit *target, float dist, ChaseAngle angle, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_ACTIVE)
void MoveFall(uint32 id=0)
void MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount, Optional< Milliseconds > duration={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default)
static Creature * ToCreature(Object *o)
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
WorldSession * GetSession() const
QuestStatus GetQuestStatus(uint32 quest_id) const
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
std::unique_ptr< PlayerMenu > PlayerTalkClass
uint32 GetQuestId() const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Creature * GetHitCreature() const
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
Unit * GetExplTargetUnit() const
void Summon(Creature const *summon)
Unit * GetSummonerUnit() const
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
virtual ObjectGuid GetGUID(int32=0) const
virtual void SetGUID(ObjectGuid const &, int32=0)
void EnterVehicle(Unit *base, int8 seatId=-1)
void CastStop(uint32 except_spellid=0)
void SetUnitFlag3(UnitFlags3 flags)
void RemoveAura(AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
void PlayOneShotAnimKitId(uint16 animKitId)
void SetSpeed(UnitMoveType mtype, float newValue)
void SetPower(Powers power, int32 val, bool withPowerUpdate=true)
MotionMaster * GetMotionMaster()
bool SetHover(bool enable, bool updateAnimTier=true)
void SetFacingToObject(WorldObject const *object, bool force=true)
void ResumeMovement(uint32 timer=0, uint8 slot=0)
void PauseMovement(uint32 timer=0, uint8 slot=0, bool forced=true)
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
bool SetDisableGravity(bool disable, bool updateAnimTier=true)
void SetUninteractible(bool apply)
uint32 GetDisplayId() const
bool Attack(Unit *victim, bool meleeAttack)
bool SetCanFly(bool enable)
bool SetWalk(bool enable)
void NearTeleportTo(Position const &pos, bool casting=false)
void SetPowerType(Powers power, bool sendUpdate=true)
void SetFacingTo(float const ori, bool force=true)
bool HasUnitState(const uint32 f) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
void SetMaxPower(Powers power, int32 val)
void SetUnitFlag(UnitFlags flags)
Vehicle * GetVehicleKit() const
void RemoveUnitFlag(UnitFlags flags)
void SetAIAnimKitId(uint16 animKitId)
void RemoveAllPassengers()
Removes all current and pending passengers from the vehicle.
void PlayDirectSound(uint32 soundId, Player const *target=nullptr, uint32 broadcastTextId=0) const
void GetCreatureListWithEntryInGrid(Container &creatureContainer, uint32 entry, float maxSearchRange=250.0f) 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)
float GetDistance2d(WorldObject const *obj) const
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
void SendTaxiMenu(Creature *unit)
at_silverpine_forsaken_rear_guard()
bool OnTrigger(Player *player, AreaTriggerEntry const *) override
bool OnTrigger(Player *player, AreaTriggerEntry const *) override
at_silverpine_no_escape()
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void HandlePeriodic(AuraEffect const *)
bool Validate(SpellInfo const *spellInfo) override
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void HandleHit(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandlePeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
void OnApply(AuraEffect const *, AuraEffectHandleModes)
void HandleHit(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(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)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr void GetPosition(float &x, float &y) const
constexpr float GetPositionZ() const
void AttackStart(Unit *) override
== Triggered Actions Requested ==================
void OnQuestAccept(Player *player, Quest const *quest) override
go_silverpine_abandoned_outhouse(GameObject *go)
bool OnGossipSelect(Player *player, uint32, uint32) override
bool OnGossipSelect(Player *player, uint32, uint32) override
npc_silverpine_admiral_hatchet(Creature *creature)
void JustAppeared() override
void UpdateAI(uint32 diff) override
bool _isConversationOnCooldown
void OnQuestAccept(Player *player, Quest const *quest) override
void OnQuestReward(Player *player, Quest const *quest, LootItemType, uint32) override
void DoAction(int32 param) override
void JustAppeared() override
void JustEngagedWith(Unit *) override
void WaypointReached(uint32 waypointId, uint32 pathId) override
void UpdateAI(uint32 diff) override
npc_silverpine_agatha_fenris_isle(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_silverpine_apothecary_wormcrud(Creature *creature)
void DoAction(int32 param) override
bool _isConversationOnCooldown
void UpdateAI(uint32 diff) override
std::array< ObjectGuid, 3 > _drunkenOrcSeaDog
void JustAppeared() override
void UpdateAI(uint32 diff) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
void SetGUID(ObjectGuid const &guid, int32 id) override
ObjectGuid _bloodfangGUID
npc_silverpine_armoire(Creature *creature)
bool OnGossipHello(Player *player) override
npc_silverpine_bat_handler_maggotbreath(Creature *creature)
bool OnGossipSelect(Player *player, uint32, uint32 gossipListId) override
npc_silverpine_crowley_bloodfang_fenris_keep(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void DoAction(int32 param) override
void WaypointReached(uint32 waypointId, uint32 pathId) override
void IsSummonedBy(WorldObject *summoner) override
npc_silverpine_deathstalker_rane_yorick(Creature *creature)
ObjectGuid _bloodfangGUID
void UpdateAI(uint32 diff) override
npc_silverpine_deathstalker(Creature *creature)
void JustAppeared() override
npc_silverpine_fallen_human(Creature *creature)
void UpdateAI(uint32 diff) override
void DoAction(int32 action) override
void MovementInform(uint32 type, uint32 id) override
void IsSummonedBy(WorldObject *summoner) override
void PassengerBoarded(Unit *passenger, int8 seatId, bool apply) override
== Fields =======================================
npc_silverpine_fenris_keep_camera(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void OnTriggerNoEscape(ObjectGuid playerGuid)
npc_silverpine_fenris_keep_stalker(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_silverpine_forest_ettin(Creature *creature)
void SetGUID(ObjectGuid const &guid, int32 id) override
bool _isGrabbingBushChicken
void JustAppeared() override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *spellInfo) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
void JustEngagedWith(Unit *) override
void DoAction(int32 param) override
void PassengerBoarded(Unit *, int8 seatId, bool apply) override
== Fields =======================================
void UpdateAI(uint32 diff) override
void SetFinishActionBar()
npc_silverpine_forsaken_bat(Creature *creature)
void SetInitialActionBar()
void DoAction(int32 param) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void IsSummonedBy(WorldObject *summoner) override
void PassengerBoarded(Unit *passenger, int8, bool apply) override
== Fields =======================================
void SetCircularActionBar()
void UpdateAI(uint32 diff) override
void WaypointReached(uint32 waypointId, uint32 pathId) override
npc_silverpine_forsaken_trooper_fenris_isle(Creature *creature)
void UpdateAI(uint32 diff) override
void IsSummonedBy(WorldObject *summoner) override
npc_silverpine_forsaken_trooper(Creature *creature)
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
npc_silverpine_generic_actor_fenris_keep(Creature *creature)
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
void SummonPortalsFromOrgrimmar()
void OnQuestAccept(Player *, Quest const *quest) override
void DoAction(int32 param) override
npc_silverpine_grand_executor_mortuus(Creature *creature)
void DespawnGarroshAndHisEliteGuards()
void JustSummoned(Creature *summon) override
void SummonGarroshAndHisEliteGuards()
void UpdateAI(uint32 diff) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_silverpine_hillsbrad_refugee(Creature *creature)
void JustDied(Unit *killer) override
void JustEngagedWith(Unit *) override
void JustAppeared() override
void UpdateAI(uint32 diff) override
npc_silverpine_horde_hauler(Creature *creature)
void WaypointReached(uint32 waypointId, uint32 pathId) override
void PassengerBoarded(Unit *passenger, int8 seatId, bool apply) override
== Fields =======================================
void WaypointReached(uint32 waypointId, uint32 pathId) override
npc_silverpine_lord_darius_crowley_exsanguinate(Creature *creature)
void JustAppeared() override
void IsSummonedBy(WorldObject *) override
void IsSummonedBy(WorldObject *summoner) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
void MovementInform(uint32 type, uint32 id) override
npc_silverpine_mutant_bush_chicken(Creature *creature)
ObjectGuid _forestEttinGUID
void CheckForForestEttin(Unit *forestEttin)
void IsSummonedBy(WorldObject *summoner) override
npc_silverpine_orc_crate(Creature *creature)
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_silverpine_orc_sea_dog_not_sick(Creature *creature)
npc_silverpine_orc_sea_dog_sick(Creature *creature)
void JustAppeared() override
void UpdateAI(uint32 diff) override
npc_silverpine_orc_sea_dog(Creature *creature)
void IsSummonedBy(WorldObject *summoner) override
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void JustAppeared() override
npc_silverpine_orc_sea_pup(Creature *creature)
void PassengerBoarded(Unit *passenger, int8 seatId, bool apply) override
== Fields =======================================
void JustAppeared() override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void IsSummonedBy(WorldObject *summoner) override
void WaypointReached(uint32 waypointId, uint32 pathId) override
void IsSummonedBy(WorldObject *) override
npc_silverpine_packleader_ivar_bloodfang_exsanguinate(Creature *creature)
void JustAppeared() override
void JustAppeared() override
bool _isConversationOnCooldown
npc_silverpine_salty_rocka(Creature *creature)
void UpdateAI(uint32 diff) override
void MoveInLineOfSight(Unit *who) override
void UpdateAI(uint32 diff) override
void JustSummoned(Creature *summon) override
npc_silverpine_skitterweb_matriarch(Creature *creature)
void ScheduleCombatEvents(Unit *who)
void JustReachedHome() override
Position _lurkingOnCeilingPos
void JustEngagedWith(Unit *who) override
void JustAppeared() override
void JustAppeared() override
npc_silverpine_sylvanas_windrunner_high_command(Creature *creature)
void JustSummoned(Creature *summon) override
void OnQuestReward(Player *player, Quest const *quest, LootItemType, uint32) override
npc_silverpine_webbed_victim(Creature *creature)
void JustAppeared() override
void JustDied(Unit *killer) override
npc_silverpine_worgen_renegade(Creature *creature)
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
npc_silverpine_worgen_sentry(Creature *creature)
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
Position const YorickReadyPosition
@ EVENT_MOVE_TO_FOREST_ETTIN
@ POINT_NEAR_FOREST_ETTIN
Position const AgathaPreRisePos
Position const GarroshJumpPos
ForsakenTrooperFenrisIsle
@ TALK_REFUGEE_JUST_RISEN
@ EVENT_REFUGEE_JUST_RISEN
@ WAYPOINT_CLOSE_TO_ARMOIRE
@ TALK_YORICK_EXSANGUINATE_HIDE
@ EVENT_SET_GUID_FOR_ARMOIRE
@ SPELL_CANCEL_SUMMON_YORICK
@ PHASE_WAITING_TO_EXSANGUINATE
@ TALK_YORICK_EXSANGUINATE_SUMMON
@ WAYPOINT_HIDDEN_NEXT_TO_ARMOIRE
@ NPC_PACKLEADER_IVAR_BLOODFANG
@ SPELL_HIDDEN_IN_ARMOIRE
@ EVENT_RANE_TALK_TO_PLAYER
@ EVENT_START_QUEST_EXSANGUINATE
@ EVENT_WAIT_FOR_PLAYER_EXSANGUINATE
@ SPELL_PERMANENT_FEIGN_DEATH
@ SPELL_COSMETIC_NOT_FEELING_SICK
@ COSMETIC_SIT_ON_THE_FLOOR
@ SPELL_COSMETIC_FEELING_SICK
@ COSMETIC_SIT_ON_THE_FLOOR_TWICE
@ COSMETIC_START_TO_FEEL_UNEASY
void AddSC_silverpine_forest()
Position const NoEscapeStartPos
SpellForsakenTrooperMasterScriptCometh
@ SPELL_FORSAKEN_TROOPER_MALE_02_HC
@ SPELL_FORSAKEN_TROOPER_MALE_03_HC
@ SPELL_FORSAKEN_TROOPER_FEMALE_03_HC
@ SPELL_FORSAKEN_TROOPER_MALE_01_HC
@ SPELL_FORSAKEN_TROOPER_FEMALE_02_HC
@ SPELL_FORSAKEN_TROOPER_FEMALE_04_HC
@ SPELL_FORSAKEN_TROOPER_MALE_04_HC
@ SPELL_FORSAKEN_TROOPER_FEMALE_01_HC
@ WAYPOINT_ON_TROOPER_DESPAWN
@ WAYPOINT_ON_FORSAKEN_FRONT
@ NPC_HORDE_ENGINEER_HAULER
@ WAYPOINT_ON_DESPAWN_POINT_SOUTH
@ SPELL_EJECT_PASSENGERS_3_8
@ EVENT_YELL_ON_FORSAKEN_HIGH
@ EVENT_YELL_ON_FORSAKEN_FRONT
@ PATH_FROM_NORTH_TO_SOUTH
@ EVENT_YELL_ON_SEPULCHER
@ NPC_SUBDUED_FOREST_ETTIN_HAULER
@ WAYPOINT_ON_FORSAKEN_HIGH
@ SPELL_SUMMON_CROWLEY_FENRIS
@ SPELL_SUMMON_LOREMASTER_DIBBS
@ SPELL_SUMMON_BLOODFANG_FENRIS
@ SPELL_SUMMON_PHIN_ODELIC
@ SPELL_SUMMON_CARETAKER_SMITHERS
@ SPELL_SUMMON_MAGISTRATE_HENRY
@ SPELL_SUMMON_BARTOLO_GINSETTI
@ EVENT_AGATHA_CHECK_PLAYER_HEALTH
@ WAYPOINT_ARRIVED_TO_FORSAKEN
@ TALK_AGATHA_POST_EVENT2
@ TALK_AGATHA_RISE_FORSAKEN
@ PATH_AGATHA_TO_FORSAKEN
@ SPELL_RIDE_REVERSE_CAST_NO_ESCAPE
@ POINT_AGATHA_BACK_FRONTYARD
@ SPELL_GENERAL_TRIGGER_84079
@ SPELL_GENERAL_TRIGGER_84107
@ SPELL_GENERAL_TRIGGER_84114
@ SPELL_BOND_OF_THE_VALKYR
@ TALK_AGATHA_POST_EVENT1
@ SPELL_MARK_MASTER_AS_DESUMMONED
@ EVENT_ACTOR_FENRIS_MORPH
@ SPELL_CONVERSATION_TRIGGER_84077
@ EVENT_MAGISTRATE_ANIMATION
@ EVENT_ACTOR_FENRIS_DRINK
@ EVENT_ROCKA_CHOOSE_CONVERSATION
@ EVENT_ROCKA_CONVERSATION_COOLDOWN
@ EVENT_ROCKA_CHECK_CONVERSATION
@ SPELL_RISE_FORSAKEN_FENRIS
@ NPC_MUTANT_BUSH_CHICKEN
@ EVENT_GRAB_BUSH_CHICKEN
@ EVENT_BUSH_CHICKEN_CHANGE_SITS
@ SOUND_CHICKEN_MOUNT_WOUND
@ SPELL_RELEASE_BUSH_CHICKEN
@ EVENT_BUSH_CHICKEN_BLASTS
@ SPELL_RIDE_REVERSE_CAST_ITS_POISONOUS
@ EVENT_AFTER_GRABBING_BUSH_CHICKEN
@ ACTION_DESCEND_AFTER_RAISE
@ ACTION_RISE_DURING_RAISE
DariusCrowleyExsanguinate
@ WAYPOINT_ON_CROWLEY_DESPAWN
@ SPELL_DESPAWN_ALL_SUMMONS_STEEL_THUNDER
@ EVENT_ORC_PUP_DELIVER_CRATES
@ EVENT_ORC_PUP_JUST_SUMMONED
@ EVENT_ORC_PUP_REMOVE_PROTECTION
@ TALK_ORC_PUP_DELIVER_CRATES
@ SPELL_EJECT_ALL_PASSENGERS
@ NPC_BLOODFANG_SCAVENGER
@ NPC_MAGISTRATE_HENRY_MALEB
@ TALK_CROWLEY_NO_ESCAPE_2
@ TALK_CROWLEY_NO_ESCAPE_0
@ TALK_CROWLEY_NO_ESCAPE_6
@ TALK_CROWLEY_NO_ESCAPE_5
@ EVENT_CROWLEY_ANIMATION_FENRIS
@ SPELL_ARMORE_CAMERA_FENRIS
@ TALK_CROWLEY_NO_ESCAPE_4
@ SPELL_CONVERSATION_TRIGGER_84076
@ TALK_CROWLEY_NO_ESCAPE_1
@ TALK_CROWLEY_NO_ESCAPE_3
@ SPELL_KILL_CREDIT_YORICK
@ SPELL_EJECT_PASSENGER_01
@ PATH_BLOODFANG_WITH_YORICK
@ TALK_CROWLEY_EXSANGUINATE_3
@ TALK_CROWLEY_EXSANGUINATE_0
@ SPELL_SUMMON_CROWLEY_BLOODFANG_MASTER
@ TALK_BLOODFANG_EXSANGUINATE_7
@ TALK_CROWLEY_EXSANGUINATE_6
@ TALK_BLOODFANG_EXSANGUINATE_2
@ TALK_CROWLEY_EXSANGUINATE_2
@ NPC_DEATHSTALKER_RANE_YORICK
@ TALK_BLOODFANG_EXSANGUINATE_1
@ TALK_BLOODFANG_EXSANGUINATE_6
@ TALK_BLOODFANG_EXSANGUINATE_0
@ TALK_CROWLEY_EXSANGUINATE_4
@ SPELL_ARMOIRE_CAMERA_ON_BLOODFANG
@ EVENT_ACTION_SCENE_EXSANGUINATE
@ TALK_CROWLEY_EXSANGUINATE_5
@ NPC_LORD_DARIUS_CROWLEY
@ TALK_BLOODFANG_EXSANGUINATE_5
@ TALK_CROWLEY_EXSANGUINATE_1
@ EVENT_FINISH_SCENE_EXSANGUINATE
@ TALK_YORICK_EXSANGUINATE_DEATH
@ TALK_BLOODFANG_EXSANGUINATE_10
@ TALK_BLOODFANG_EXSANGUINATE_9
@ PATH_BLOODFANG_NEAR_YORICK
@ EVENT_SWITCH_SCENE_CAMERA
@ EVENT_START_SCENE_EXSANGUINATE
@ EVENT_TALK_SCENE_EXSANGUINATE
@ SPELL_ARMOIRE_CAMERA_ON_CROWLEY
@ TALK_BLOODFANG_EXSANGUINATE_4
@ SPELL_RIDE_REVERSE_CAST_EXSANGUINATE
@ TALK_BLOODFANG_EXSANGUINATE_8
@ TALK_BLOODFANG_EXSANGUINATE_3
SylvanasForsakenHighCommand
@ SPELL_DESPAWN_ALL_SUMMONS_AGATHA
@ NPC_FORSAKEN_WARHORSE_SERVERSIDE
@ SPELL_SUMMON_FORSAKEN_WARHORSE_SERVERSIDE
@ SPELL_APPLY_INVIS_ZONE_1
@ SPELL_APPLY_INVIS_ZONE_4
@ SPELL_NOTIFY_AGATHA_FENRIS
@ SPELL_TROOPER_MASTERSCRIPT_FENRIS
@ SPELL_SUMMON_AGATHA_FENRIS
@ SPELL_FORCE_CAST_FENRIS_CAMERA
@ NPC_FENRIS_KEEP_STALKER
Position const AgathaPreResetPos
@ QUEST_THE_WARCHIEF_COMETH
@ SPELL_RAISE_FORSAKEN_COMETH
@ EVENT_SUMMON_PORTAL_COMETH
@ ACTION_START_SCENE_COMETH
@ TALK_SYLVANAS_COMETH_10
@ SPELL_WELCOME_TO_SILVERPINE_CREDIT
@ NPC_GRAND_EXECUTOR_MORTUUS
@ EVENT_SUMMON_GARROSH_COMETH
@ SPELL_AIR_REVENANT_ENTRANCE
@ EVENT_START_SCENE_COMETH
@ EVENT_SCENE_TALK_COMETH
@ NPC_HIGH_WARLORD_CROMUSH_COMETH
@ NPC_PORTAL_FROM_ORGRIMMAR
@ NPC_FORSAKEN_WARHORSE_UNPHASED
@ NPC_QUEST_MONSTER_CREDIT
@ NPC_FEMALE_FALLEN_HUMAN
@ NPC_LADY_SYLVANAS_WINDRUNNER_COMETH
@ NPC_HELLSCREAM_ELITE_COMETH
@ EVENT_AGATHA_RAISE_FORSAKEN
@ SPELL_KILL_CREDIT_SEA_DOG_CRATE
Position const CameraFrontyardPos
Position const HellscreamElitePos[16]
@ EVENT_WEBBEB_ORC_CHECK_PLAYER
@ ANIMKIT_MATRIARCH_INTERACT
@ EVENT_SUMMON_SPIDERLINGS
@ ANIMKIT_MATRIARCH_HANGING_BY_WEB
@ ANIMKIT_MATRIARCH_LURKING_ON_CEILING
@ SPELL_SUMMNON_SPIDERLINGS
@ QUEST_LOST_IN_THE_DARKNESS
@ ACTION_WORMCRUD_START_CONVERSATION
@ QUEST_DEEPER_INTO_DARKNESS
@ ACTION_HATCHET_START_CONVERSATION
@ QUEST_ITS_ONLY_POISONOUS_IF_YOU_INGEST_IT
@ NPC_APOTHECARY_WORMCRUD
@ WAYPOINT_LAST_POINT_AROUND_LAKE
@ WAYPOINT_LAST_POINT_TO_HOME
@ SPELL_BLIGHT_CONCOCTION
@ EVENT_CHECK_FINISH_ITERATING
@ DATA_ITERATING_UPON_SUCCESS_QUEST_REQ
@ WAYPOINT_LAST_POINT_TO_LAKE
@ TALK_BAT_ARRIVED_TO_ISLE
@ NPC_BAT_HANDLER_MAGGOTBREATH
@ EVENT_START_MOVEMENT_ITERATING
@ EVENT_GO_HOME_ITERATING
@ SPELL_SUMMON_FORSAKEN_BAT
@ QUEST_ITERATING_UPON_SUCCESS
@ TALK_MAGGOTHBREATH_ITERATING_UPON_SUCCESS
@ DATA_GOSSIP_MENU_MAGGOT
@ SPELL_CHAIN_LEFT_HAULER
@ SPELL_CHAIN_RIGHT_HAULER
@ SPELL_SUMMON_FENRIS_ACTORS
@ SPELL_GENERAL_TRIGGER_84102
@ EVENT_MOVE_TO_START_POINT
@ SPELL_DESPAWN_ALL_SUMMONS_FENRIS
@ SEAT_FENRIS_CAMERA_FORCE
@ EVENT_SCENE_FINISH_FENRIS
Position const AgathaResetPos
SpellForsakenTrooperMasterScriptFenrisIsle
@ SPELL_FORSAKEN_TROOPER_MALE_04_F
@ SPELL_FORSAKEN_TROOPER_MALE_03_F
@ SPELL_FORSAKEN_TROOPER_MALE_01_F
@ SPELL_FORSAKEN_TROOPER_FEMALE_03_F
@ SPELL_FORSAKEN_TROOPER_MALE_02_F
@ SPELL_FORSAKEN_TROOPER_FEMALE_01_F
@ SPELL_FORSAKEN_TROOPER_FEMALE_02_F
@ SPELL_FORSAKEN_TROOPER_FEMALE_04_F
@ EVENT_FACE_TOWARDS_SYLVANAS
@ EVENT_EMOTE_TO_SYLVANAS
@ EVENT_TRANSFORM_INTO_FORSAKEN
@ SPELL_FORSAKEN_TROOPER_MS_COMETH
@ EVENT_HATCHET_CONVERSATION_COOLDOWN
@ SPELL_DESPAWN_ALL_SUMMONS_LOST_IN_DARKNESS
@ SPELL_SUMMON_ORC_SEA_PUP
@ EVENT_HATCHET_CHECK_CONVERSATION
@ SPELL_SUMMON_DEATHSTALKER_YORICK
@ QUEST_WAITING_TO_EXSANGUINATE
IvarBloodfangExsanguinate
@ WAYPOINT_ON_BLOODFANG_DESPAWN
@ SPELL_FREE_WEBBED_VICTIM_RANDOM
@ SPELL_FREE_WEBBED_VICTIM
@ NPC_DRUNKEN_ORC_SEA_DOG
@ EVENT_WORMCRUD_CHOOSE_CONVERSATION
@ EVENT_WORMCRUD_CHECK_CONVERSATION
@ EVENT_WORMCRUD_CONVERSATION_COOLDOWN
Position const GarroshPos
Position const CromushPos
Position const YorickDeathPosition
Position const AgathaBackFrontyardPos
Position const AgathaRisePos
Position const OrgrimmarPortalPos[3]