114 if (player->IsAlive())
176 for (auto itr = _summons.begin(); reset && itr != _summons.end(); ++itr)
178 Creature* summon = ObjectAccessor::GetCreature(*me, *_summons.begin());
179 if (summon && player->IsEngagedBy(summon))
527 if (
Unit* summoner = casterSummon->GetSummonerUnit())
603 if (
Unit* summoner = casterSummon->GetSummonerUnit())
699 else if (chance < 60)
701 else if (chance < 90)
706 caster->CastSpell(caster, spellId,
true);
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ QUEST_STATUS_INCOMPLETE
uint32 urand(uint32 min, uint32 max)
bool roll_chance_i(int chance)
#define RegisterCreatureAI(ai_name)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SEND_EVENT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_FORCE_REACTION
#define SpellCheckCastFn(F)
#define SpellEffectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectApplyHandler > AfterEffectApply
bool _EnterEvadeMode(EvadeReason why=EVADE_REASON_OTHER)
void SetHomePosition(float x, float y, float z, float o)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
void MoveFollow(Unit *target, float dist, ChaseAngle angle, MovementSlot slot=MOTION_SLOT_ACTIVE)
static ObjectGuid GetGUID(Object const *o)
uint32 GetQuestId() const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
HookList< CastHandler > AfterCast
HookList< CheckCastHandler > OnCheckCast
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
Unit * GetExplTargetUnit() const
SpellInfo const * GetSpellInfo() const
static void SendCastResult(Player *caster, SpellInfo const *spellInfo, uint8 castCount, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE, uint32 *param1=nullptr, uint32 *param2=nullptr)
void Despawn(Creature const *summon)
void Summon(Creature const *summon)
TaskContext & Repeat(std::chrono::duration< _Rep, _Period > const &duration)
TaskScheduler & CancelAll()
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
void DoMeleeAttackIfReady()
Vehicle * GetVehicle() const
MotionMaster * GetMotionMaster()
void AddUnitState(uint32 f)
Unit * GetCharmerOrOwner() const
bool SetWalk(bool enable)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
virtual float GetFollowAngle() const
void SetStandState(UnitStandStateType state)
Vehicle * GetVehicleKit() const
virtual bool IsEngaged() const
void Reset(bool evading=false)
Reapplies immunities and reinstalls accessories. Only has effect for creatures.
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_braves_flare)
PrepareSpellScript(spell_fjord_failed_mix_concoction_1)
void HandleEffect(SpellEffIndex)
PrepareSpellScript(spell_fjord_failed_mix_concoction_2)
void HandleEffect(SpellEffIndex)
PrepareSpellScript(spell_fjord_guide_our_sights_fx_master)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_fjord_mindless_abomination_explosion_fx_master)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_mindless_abomination_ping_master)
PrepareSpellScript(spell_fjord_mixing_blood)
void HandleEffect(SpellEffIndex)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_fjord_mixing_vrykul_blood)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_fjord_rivenwood_captives_not_on_quest)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_rivenwood_captives_on_quest)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_scourging_crystal_controller)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_sergeants_flare)
PrepareAuraScript(spell_fjord_taxi_to_explorers_league_outpost)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
PrepareAuraScript(spell_fjord_the_cleansing_cleansing_soul)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareSpellScript(spell_fjord_the_cleansing_mirror_image_script_effect)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_the_cleansing_on_death_cast_on_master)
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
SpellCastResult CheckCast()
PrepareSpellScript(spell_fjord_the_cleansing_shrine_cast)
void HandleDummy(SpellEffIndex)
PrepareSpellScript(spell_fjord_the_way_to_his_heart_anuniaq_net)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_fjord_the_way_to_his_heart_quest_complete)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
bool Validate(SpellInfo const *spellInfo) override
void HandleScript(SpellEffIndex)
PrepareSpellScript(spell_fjord_the_way_to_his_heart_reverse_cast)
PrepareAuraScript(spell_fjord_worg_disguise_dummy)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
PrepareAuraScript(spell_fjord_worg_disguise)
void AfterApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
void UpdateAI(uint32 diff) override
void OnQuestAccept(Player *player, Quest const *quest) override
void SummonGladiator(uint32 entry)
void EnterEvadeMode(EvadeReason why) override
void JustSummoned(Creature *summon) override
void SummonedCreatureDies(Creature *summon, Unit *) override
void SummonedCreatureDespawn(Creature *summon) override
npc_daegarn(Creature *creature)
@ SPELL_SUMMON_WINTERSKORN_BERSERKER
@ SPELL_SUMMON_PUTRID_HORROR
@ SPELL_SUMMON_WINTERSKORN_TRIBESMAN
@ SPELL_SUMMON_BABY_RIVEN_WIDOWS
@ SPELL_SUMMON_FANGGORE_WORG
@ SPELL_SUMMON_WINTERSKORN_WOODSMAN
@ SPELL_SUMMON_GJALERBRON_WARRIOR
@ SPELL_SUMMON_GJALERBRON_SLEEPWATCHER
@ SPELL_SUMMON_WINTERSKORN_ORACLE
@ SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT
@ SPELL_SUMMON_GJALERBRON_RUNECASTER
@ SPELL_SUMMON_DARKCLAW_BAT
@ SPELL_RANDOM_CIRCUMFERENCE_POINT_POISON
@ SPELL_RANDOM_CIRCUMFERENCE_POINT_BONE
@ SPELL_RANDOM_CIRCUMFERENCE_POINT_BONE_2
@ SPELL_MINDLESS_ABOMINATION_CONTROL
TowersOfCertainDoomAlliance
@ SPELL_SERGEANTS_FLARE_EFFECT
@ NPC_GENERIC_TRIGGER_LAB
void AddSC_howling_fjord()
@ SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3
@ SPELL_SCOURGING_CRYSTAL_CONTROLLER
TheExplorersLeagueOutpost
@ SPELL_TAXI_TO_EXPLORERS_LEAGUE
@ SPELL_BRAVES_FLARE_EFFECT
@ SPELL_WORG_DISGUISE_DUMMY
@ SPELL_MIRROR_IMAGE_AURA
@ SPELL_SUMMON_INNER_TURMOIL
@ SPELL_RECENT_MEDITATION
@ SPELL_FISHED_UP_REEF_SHARK
@ SPELL_CREATE_TASTY_REEF_FISH
static Position const daegarnSummonPosition
std::array< uint32, 11 > const CocoonSummonSpells
static Position const daegarnCenterPosition
@ SPELL_RANDOM_CIRCUMFERENCE_POINT_CANNON_PART_01
@ SPELL_RANDOM_CIRCUMFERENCE_POINT_CANNON_PART_02