43#define SPELL_SPARK_VISUAL_TRIGGER DUNGEON_MODE<uint32>(52667,59833)
155 if (pSpark->IsAlive())
158 pSpark->SetSpeedRate(
MOVE_RUN, 2.0f);
159 pSpark->GetMotionMaster()->Clear();
163 pSpark->DespawnOrUnsummon();
uint32 urand(uint32 min, uint32 max)
@ UNIT_FLAG_NON_ATTACKABLE
@ SPELL_RANDOM_LIGHTNING_VISUAL
#define SPELL_SPARK_VISUAL_TRIGGER
static constexpr float DATA_MAX_SPARK_DISTANCE
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustDied(Unit *) override
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void SetReactState(ReactStates st)
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
virtual bool SetBossState(uint32 id, EncounterState state)
Creature * GetCreature(uint32 type)
EncounterState GetBossState(uint32 id) const
void MoveChase(Unit *target, Optional< ChaseRange > dist={}, Optional< ChaseAngle > angle={})
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 Despawn(Creature const *summon)
void Summon(Creature const *summon)
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)
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
void SetControlled(bool apply, UnitState state)
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
MotionMaster * GetMotionMaster()
bool IsNonMeleeSpellCast(bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
void SetUninteractible(bool apply)
void SetSpeedRate(UnitMoveType mtype, float rate)
void SetUnitFlag(UnitFlags flags)
void RemoveUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
float GetDistance(WorldObject const *obj) const
#define RegisterHallsOfLightningCreatureAI(ai_name)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
constexpr void GetPosition(float &x, float &y) const
bool HealthBelowPct(uint32 pct) const
uint32 uiBallLightningTimer
boss_ionar(Creature *creature)
void JustSummoned(Creature *summoned) override
void JustDied(Unit *killer) override
void SpellHit(WorldObject *, SpellInfo const *spellInfo) override
void SummonedCreatureDespawn(Creature *summoned) override
void DamageTaken(Unit *, uint32 &uiDamage, DamageEffectType, SpellInfo const *) override
uint32 uiStaticOverloadTimer
void UpdateAI(uint32 uiDiff) override
void JustEngagedWith(Unit *who) override
void KilledUnit(Unit *who) override
void UpdateAI(uint32 uiDiff) override
npc_spark_of_ionar(Creature *creature)
InstanceScript * _instance
void MovementInform(uint32 uiType, uint32 uiPointId) override