109 trapper->SetFacingToObject(
me);
116 trapper->GetMotionMaster()->MovePoint(0, trapper->GetFirstCollisionPosition(20.0f, 0));
123 if (trapper->IsAIEnabled())
144 player->KilledMonsterCredit(trapper->GetEntry(), trapper->GetGUID());
151 trapper->DespawnOrUnsummon();
241 mammoth->SetFacingToObject(player);
252 if (mammoth->IsAIEnabled())
258 mammoth->GetMotionMaster()->MovePoint(0, mammoth->GetFirstCollisionPosition(50.0f,
me->
GetOrientation()));
263 mammoth->DespawnOrUnsummon(0s, 120s);
461 arthas->SetWalk(
true);
466 talbot->SetWalk(
true);
474 arthas->GetMotionMaster()->MovePath(
PATH_ARTHAS,
false);
480 talbot->GetMotionMaster()->MovePath(
PATH_TALBOT,
false);
488 talbot->SetFullHealth();
499 if (talbot->IsAIEnabled())
508 arlos->SetWalk(
true);
511 arlos->GetMotionMaster()->MovePath(
PATH_ARLOS,
false);
516 leryssa->SetWalk(
true);
519 leryssa->GetMotionMaster()->MovePath(
PATH_LERYSSA,
false);
526 if (talbot->IsAIEnabled())
544 arthas->SetFacingToObject(
me);
552 if (arthas->IsAIEnabled())
564 if (talbot->IsAIEnabled())
573 arthas->SetFacingToObject(talbot);
574 if (arthas->IsAIEnabled())
583 arthas->SetFacingToObject(
me);
591 arthas->RemoveFromWorld();
599 if (talbot->IsAIEnabled())
604 talbot->Attack(
me,
false);
613 if (arlos->IsAIEnabled())
633 leryssa->SetFacingToObject(
me);
643 if (arlos->IsAIEnabled())
649 if (leryssa->IsAIEnabled())
664 leryssa->SetWalk(
false);
665 leryssa->MonsterMoveWithSpeed(3726.751f, 3568.1633f, 477.44086f, leryssa->GetSpeed(
MOVE_RUN),
true,
true);
673 if (leryssa->IsAIEnabled())
687 if (leryssa->IsAIEnabled())
699 if (leryssa->IsAIEnabled())
731 talbot->DespawnOrUnsummon();
734 leryssa->DespawnOrUnsummon();
737 arlos->DespawnOrUnsummon();
740 arthas->DespawnOrUnsummon();
745 if (gossipListId == 0)
783 if (
Unit* summoner = tempSummon->GetSummonerUnit())
802 if (
Unit* summoner = tempSummon->GetSummonerUnit())
869 if (
Unit* summoner = tempSummon->GetSummonerUnit())
894 laurith->AI()->SetGUID(caster->GetGUID());
1169 aura->ModStackAmount(-1);
1285 if (!caster || !target)
1292 switch (aura->GetStackAmount())
1339 if (!caster || !target)
1347 switch (aura->GetStackAmount())
1364 target->
AI()->
Talk(text, caster);
1557 switch (target->GetEntry())
1567 caster->
CastSpell(caster, spellId, castItem);
1569 target->DespawnOrUnsummon();
1795 creature->DespawnOrUnsummon();
1863 creature->DespawnOrUnsummon();
First const & RAND(First const &first, Second const &second, Rest const &... rest)
@ TEMPSUMMON_DEAD_DESPAWN
@ TEMPSUMMON_CORPSE_TIMED_DESPAWN
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 CloseGossipMenuFor(Player *player)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SEND_EVENT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_MECHANIC_IMMUNITY
#define SpellEffectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
@ UNIT_NPC_FLAG_QUESTGIVER
@ UNIT_FLAG_NON_ATTACKABLE
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
uint8 GetStackAmount() const
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void GetHomePosition(float &x, float &y, float &z, float &ori) const
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
Player * GetLootRecipient() const
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
void SetGoState(GOState state)
GOState GetGoState() const
void DespawnOrUnsummon(Milliseconds delay=0ms, Seconds forceRespawnTime=0s)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
void MovePath(uint32 pathId, bool repeatable)
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
void SetUInt32Value(uint16 index, uint32 value)
static Player * ToPlayer(Object *o)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
Creature * GetHitCreature() const
HookList< HitHandler > AfterHit
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
SpellInfo const * GetSpellInfo() const
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
MotionMaster * GetMotionMaster()
void RemoveNpcFlag(NPCFlags flags)
TempSummon * ToTempSummon()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void AddUnitState(uint32 f)
void SetFacingToObject(WorldObject const *object, bool force=true, uint32 movementId=EVENT_FACE)
void SetEmoteState(Emote emote)
void SetNpcFlag(NPCFlags flags)
bool SetWalk(bool enable)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void HandleEmoteCommand(Emote emoteId)
void SetFacingTo(float ori, bool force=true, uint32 movementId=EVENT_FACE)
void SetStandState(UnitStandStateType state)
void RemoveUnitFlag(UnitFlags flags)
GameObject * FindNearestGameObject(uint32 entry, float range, bool spawnedOnly=true) 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)
GameObject * SummonGameObject(uint32 entry, Position const &pos, QuaternionData const &rot, Seconds respawnTime, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Position GetFirstCollisionPosition(float dist, float angle)
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
PrepareSpellScript(spell_borean_tundra_abduction_quest_completion)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_arcane_chains_character_force_cast)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_borean_tundra_arcane_prisoner_rescue)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_deliver_kodo)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_borean_tundra_dispel_freed_soldier_debuff)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_borean_tundra_drake_harpoon)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_borean_tundra_drake_hatchling_subdued)
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_kodo_delivered)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_land_mine_barrier)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_magnataur_on_death_1)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_magnataur_on_death_2)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_nerubar_web_random_unit_not_on_quest_dummy)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_nerubar_web_random_unit_not_on_quest)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_nerubar_web_random_unit_on_quest_dummy)
PrepareSpellScript(spell_borean_tundra_neural_needle)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_prototype_neural_needle)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_re_cursive_transmatter_injection)
void HandleDummy(SpellEffIndex)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_borean_tundra_red_dragonblood)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_shortening_blaster)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_signal_alliance)
bool Validate(SpellInfo const *spellInfo) override
PrepareSpellScript(spell_borean_tundra_strip_auras)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_borean_tundra_taxi_coldarra_ledge_to_transitus_shield)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_borean_tundra_ultrasonic_screwdriver)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_weakness_to_lightning_cancel_aura)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_borean_tundra_weakness_to_lightning_cast_on_master)
PrepareSpellScript(spell_borean_tundra_weakness_to_lightning_on_quest_complete)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleEffect(SpellEffIndex)
PrepareSpellScript(spell_q11719_bloodspore_ruination_45997)
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, 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) -> typename std::add_const< decltype(*std::begin(container))>::type &
float GetOrientation() const
void GetPosition(float &x, float &y) const
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
go_caribou_trap(GameObject *go)
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *caster, SpellInfo const *spellInfo) override
go_mammoth_trap(GameObject *go)
void UpdateAI(uint32 diff) override
npc_bloodmage_laurith(Creature *creature)
void UpdateAI(uint32 diff) override
void SetGUID(ObjectGuid const &guid, int32) override
npc_counselor_talbot(Creature *creature)
void JustDied(Unit *) override
void UpdateAI(uint32 diff) override
void JustEngagedWith(Unit *) override
npc_general_arlos(Creature *creature)
void WaypointPathEnded(uint32, uint32 pathId) override
void WaypointPathEnded(uint32, uint32 pathId) override
npc_leryssa(Creature *creature)
bool OnGossipSelect(Player *player, uint32, uint32 gossipListId) override
npc_thassarian(Creature *creature)
void JustAppeared() override
void WaypointPathEnded(uint32, uint32 pathId) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
npc_valiance_keep_cannoneer(Creature *creature)
void UpdateAI(uint32 diff) override
@ GO_VALIANCE_KEEP_CANNON_2
@ GO_VALIANCE_KEEP_CANNON_1
@ EVENT_THASSARIAN_SCRIPT_29
@ EVENT_THASSARIAN_SCRIPT_5
@ EVENT_THASSARIAN_SCRIPT_22
@ EVENT_THASSARIAN_SCRIPT_7
@ EVENT_THASSARIAN_SCRIPT_11
@ EVENT_THASSARIAN_SCRIPT_2
@ EVENT_THASSARIAN_SCRIPT_18
@ EVENT_THASSARIAN_SCRIPT_16
@ EVENT_THASSARIAN_SCRIPT_17
@ EVENT_THASSARIAN_SCRIPT_20
@ EVENT_THASSARIAN_SCRIPT_12
@ EVENT_THASSARIAN_SCRIPT_8
@ EVENT_THASSARIAN_SCRIPT_27
@ EVENT_THASSARIAN_SCRIPT_1
@ EVENT_THASSARIAN_SCRIPT_26
@ EVENT_THASSARIAN_SCRIPT_4
@ SPELL_TRANSFORM_VALANAR
@ EVENT_THASSARIAN_SCRIPT_25
@ EVENT_THASSARIAN_SCRIPT_21
@ EVENT_THASSARIAN_SCRIPT_9
@ EVENT_THASSARIAN_SCRIPT_6
@ EVENT_THASSARIAN_SCRIPT_15
@ EVENT_THASSARIAN_SCRIPT_14
@ EVENT_THASSARIAN_SCRIPT_19
@ EVENT_THASSARIAN_SCRIPT_23
@ EVENT_THASSARIAN_SCRIPT_13
@ EVENT_THASSARIAN_SCRIPT_24
@ EVENT_THASSARIAN_SCRIPT_10
@ EVENT_THASSARIAN_SCRIPT_3
@ EVENT_THASSARIAN_SCRIPT_28
@ SPELL_DRAKE_HATCHLING_SUBDUED
@ SPELL_SUMMON_ARCANE_PRISONER_1
@ SPELL_SUMMON_ARCANE_PRISONER_2
@ SPELL_SUMMON_FIZZCRANK_SURVIVOR
@ SPELL_MAGNATAUR_KILL_CREDIT
@ SPELL_MAGNATAUR_ON_DEATH_2
static constexpr std::array< uint32, 5 > BlasterTargetSpells
std::array< uint32, 3 > const CocoonSummonSpells
@ SPELL_SUMMON_SENTRYBOT_57K
@ SPELL_SUMMON_SCAVENGEBOT_004A8
@ SPELL_SUMMON_55D_COLLECTATRON
@ SPELL_SUMMON_SCAVENGEBOT_005B6
@ SPELL_SUMMON_DEFENDOTANK_66D
@ SPELL_ROBOT_KILL_CREDIT
@ SPELL_COLDARRA_TO_TRANSITUS
@ EVENT_RESET_ORIENTATION
void AddSC_borean_tundra()
@ SPELL_POWER_OF_THE_STORM_ITEM
@ SPELL_POWER_OF_THE_STORM
@ SPELL_DROP_WARSONG_LAND_MINE_1
@ SPELL_DROP_WARSONG_LAND_MINE_4
@ SPELL_DROP_WARSONG_LAND_MINE_8
@ SPELL_DROP_WARSONG_LAND_MINE_3
@ SPELL_DROP_WARSONG_LAND_MINE_2
@ SPELL_DROP_WARSONG_LAND_MINE_7
@ SPELL_DROP_WARSONG_LAND_MINE_5
@ SPELL_DROP_WARSONG_LAND_MINE_6
@ SPELL_AMBER_LEDGE_TO_BERYL_POINT
static constexpr std::array< uint32, 8 > DropLandMineSpells
@ SPELL_FREED_WARSONG_MAGE
@ SPELL_FREED_SOLDIER_DEBUFF
@ SPELL_FREED_WARSONG_WARRIOR
@ SPELL_FREED_WARSONG_PEON
@ SPELL_FREED_WARSONG_SHAMAN
static constexpr std::array< uint32, 5 > BlasterCasterSpells
@ WHISPER_TORTURE_RANDOM_2
@ WHISPER_TORTURE_RANDOM_3
@ WHISPER_TORTURE_PROTO_10
@ WHISPER_TORTURE_PROTO_9
@ WHISPER_TORTURE_PROTO_4
@ WHISPER_TORTURE_PROTO_3
@ SPELL_PROTOTYPE_NEURAL_NEEDLE_IMPACT
@ WHISPER_TORTURE_PROTO_5
@ WHISPER_TORTURE_PROTO_1
@ WHISPER_TORTURE_PROTO_7
@ WHISPER_TORTURE_PROTO_2
@ WHISPER_TORTURE_PROTO_8
@ WHISPER_TORTURE_RANDOM_1
@ WHISPER_TORTURE_PROTO_6
@ SPELL_NEURAL_NEEDLE_IMPACT