170 if (caster->IsValidAttackTarget(unit))
@ ENCOUNTER_FRAME_DISENGAGE
#define RegisterAreaTriggerAI(ai_name)
#define RegisterSpellScript(spell_script)
@ SPELL_EFFECT_INTERRUPT_CAST
@ TRIGGERED_IGNORE_CAST_IN_PROGRESS
Will not check if a current cast is in progress.
@ TRIGGERED_DONT_REPORT_CAST_ERROR
Will return SPELL_FAILED_DONT_REPORT in CheckCast functions.
#define SpellEffectFn(F, I, N)
@ EVENT_INTERRUPTING_SHOUT
@ SPELL_SEISMIC_SLAM_DAMAGE
@ SPELL_SEISMIC_SLAM_SELECTOR
@ SPELL_INTERRUPTING_SHOUT
@ SAY_WARNING_SEISMIC_SLAM
AreaTriggerAI(AreaTrigger *a, uint32 scriptId={}) noexcept
void InitSplines(std::vector< G3D::Vector3 > const &splinePoints, Optional< float > overrideSpeed={}, Optional< bool > speedIsTimeInSeconds={})
uint32 GetSpellId() const
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void _DespawnAtEvade(Seconds delayToRespawn=30s, Creature *who=nullptr)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
bool _EnterEvadeMode(EvadeReason why=EvadeReason::Other)
void Repeat(Milliseconds time)
void ScheduleEvent(uint32 eventId, Milliseconds time, uint32 group=0, uint8 phase=0)
void SendEncounterUnit(EncounterFrameType type, Unit const *unit, Optional< int32 > param1={}, Optional< int32 > param2={})
Movement::PointsArray const & GetPath() const
bool CalculatePath(float srcX, float srcY, float srcZ, float destX, float destY, float destZ, bool forceDest=false)
float GetMaxRange(bool positive=false, WorldObject const *caster=nullptr, Spell *spell=nullptr) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
Unit * GetHitUnit() const
HookList< EffectHandler > OnEffectHitTarget
HookList< EffectHandler > OnEffectLaunchTarget
SpellCastResult DoCastSelf(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
bool HasUnitState(const uint32 f) const
Spell * GetCurrentSpell(CurrentSpellTypes spellType) const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Position GetFirstCollisionPosition(float dist, float angle)
void HandleLaunchTarget(SpellEffIndex) const
bool Validate(SpellInfo const *) override
void HandleHitTarget(SpellEffIndex) const
#define RegisterDarkmaulCitadelCreatureAI(ai_name)
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetPositionZ() const
void OnUnitEnter(Unit *unit) override
void OnInitialize() override
void UpdateAI(uint32 diff) override
boss_tunk(Creature *creature)
void EnterEvadeMode(EvadeReason) override
void JustDied(Unit *) override
void JustEngagedWith(Unit *who) override
void SpellHitTarget(WorldObject *target, SpellInfo const *spellInfo) override