125 static uint32 const MechanicImmunityList =
139 static std::list<AuraType>
const AuraImmunityList =
151 for (
AuraType type : AuraImmunityList)
163 if (guard->IsAlive())
178 if (guard->IsAlive() && !guard->HealthAbovePct(75))
@ SPELL_AURA_MOD_DECREASE_SPEED
@ ACTION_EREKEM_GUARD_DIED
InstanceScript *const instance
void JustEngagedWith(Unit *who) override
void JustReachedHome() override
void DoZoneInCombat(Creature *creature=nullptr)
void SetCanDualWield(bool value) override
virtual ObjectGuid GetGuidData(uint32 type) const override
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)
TaskScheduler & SetValidator(P &&predicate)
Sets a validator which is asked if tasks are allowed to be executed.
void DoMeleeAttackIfReady()
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)
bool DoSpellAttackIfReady(uint32 spell)
SpellCastResult DoCastAOE(uint32 spellId, CastSpellExtraArgs const &args={})
SpellCastResult DoCast(uint32 spellId)
bool HasAuraWithMechanic(uint32 mechanicMask) const
bool HasAuraType(AuraType auraType) const
bool HasUnitState(const uint32 f) const
void SetFacingTo(float ori, bool force=true, uint32 movementId=EVENT_FACE)
InstanceScript * GetInstanceScript() const
virtual void SetData(uint32, uint32)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Unit * DoSelectLowestHpFriendly(float range, uint32 minHPDiff=1)
bool HealthBelowPct(uint32 pct) const
bool CheckGuardAlive() const
void JustEngagedWith(Unit *who) override
boss_erekem(Creature *creature)
void JustReachedHome() override
Unit * GetChainHealTarget() const
void UpdateAI(uint32 diff) override
bool CheckGuardAuras(Creature *guard) const
void ScheduleTasks() override
void JustDied(Unit *) override
void KilledUnit(Unit *victim) override
void DoAction(int32 actionId) override
void MovementInform(uint32 type, uint32 pointId) override
npc_erekem_guard(Creature *creature)
void JustEngagedWith(Unit *) override
void UpdateAI(uint32 diff) override
void JustDied(Unit *) override
#define RegisterVioletHoldCreatureAI(ai_name)