248 switch (spellInfo->
Id)
263 switch (spellInfo->
Id)
679 target->
CastSpell(victim, triggerSpell,
true);
uint32 urand(uint32 min, uint32 max)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_SCRIPT_EFFECT
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define AuraEffectRemoveFn(F, I, N, M)
@ SPELL_SHAPE_OF_THE_EAGLE
@ SPELL_SHAPE_OF_THE_LYNX
@ SPELL_CREEPING_PARALYSIS
@ SPELL_SHAPE_OF_THE_BEAR
@ SPELL_SHAPE_OF_THE_DRAGONHAWK
@ SPELL_CLAW_RAGE_PERIODIC
@ EVENT_CREEPING_PARALYSIS
@ ACTION_CANCEL_SPIRIT_DRAINED
@ ACTION_INTERRUPT_SPIRIT_DRAIN
@ ACTION_CAST_SPIRIT_DRAIN
@ EMOTE_DRAGONHAWK_SPIRIT
@ SAY_TRANSFORM_TO_DRAGONHAWK
static Position const CenterPos
static constexpr uint32 SpiritData[]
@ EVENT_GROUP_TROLL_PHASE
@ EVENT_GROUP_EAGLE_PHASE
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void DoZoneInCombat(Creature *creature=nullptr)
void SetReactState(ReactStates st)
void Repeat(Milliseconds time)
void CancelEventGroup(GroupIndex group)
void ScheduleEvent(EventId eventId, Milliseconds time, GroupIndex group=0u, PhaseIndex phase=0u)
Creature * GetCreature(uint32 type)
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={})
static Unit * ToUnit(Object *o)
static ObjectGuid GetGUID(Object const *o)
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
HookList< CastHandler > AfterCast
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
void DespawnEntry(uint32 entry)
TaskScheduler & Schedule(std::chrono::duration< _Rep, _Period > const &time, task_handler_t const &task)
TaskScheduler & Update(success_t const &callback=EmptyCallback)
void AddThreat(Unit *target, float amount, SpellInfo const *spell=nullptr, bool ignoreModifiers=false, bool ignoreRedirects=false)
== AFFECT MY THREAT LIST ==
void DoMeleeAttackIfReady()
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCastVictim(uint32 spellId, CastSpellExtraArgs const &args={})
Unit * SelectTarget(SelectTargetMethod targetType, uint32 offset=0, float dist=0.0f, bool playerOnly=false, bool withTank=true, int32 aura=0)
SpellCastResult DoCast(uint32 spellId)
ThreatManager & GetThreatManager()
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
void SetFacingToObject(WorldObject const *object, bool force=true, uint32 movementId=EVENT_FACE)
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
bool HasUnitState(const uint32 f) const
bool HealthBelowPctDamaged(int32 pct, uint32 damage) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
void AfterRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *spellInfo) override
PrepareAuraScript(spell_zuljin_claw_rage_periodic)
void OnPeriodic(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_zuljin_claw_rage)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_zuljin_lynx_rush)
bool Validate(SpellInfo const *) override
PrepareSpellScript(spell_zuljin_zap)
void HandleScript(SpellEffIndex)
TC_GAME_API Unit * GetUnit(WorldObject const &, ObjectGuid const &guid)
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
void AttackStart(Unit *) override
void ResetThreatList(Unit *who=nullptr)
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
void JustEngagedWith(Unit *who) override
void DoAction(int32 action) override
void EnterEvadeMode(EvadeReason) override
void JustDied(Unit *) override
void DamageTaken(Unit *, uint32 &damage, DamageEffectType, SpellInfo const *) override
boss_zuljin(Creature *creature)
void UpdateAI(uint32 diff) override
ObjectGuid _clawRageVictimGUID
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void OnSpellCast(SpellInfo const *spell) override
void ScheduleEventsForPhase()
void MovementInform(uint32 type, uint32 pointId) override
void KilledUnit(Unit *) override
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void UpdateAI(uint32 diff) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
npc_zuljin_spirit(Creature *creature)
void DoAction(int32 action) override
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override
void FixateRandomTarget()
void UpdateAI(uint32 diff) override
npc_zuljin_vortex(Creature *creature)
void JustAppeared() override
#define RegisterZulAmanCreatureAI(ai_name)