#define CREATURE_Z_ATTACK_RANGE
@ TEMPSUMMON_TIMED_OR_DEAD_DESPAWN
uint32 urand(uint32 min, uint32 max)
@ UNIT_FLAG_NON_ATTACKABLE
#define RegisterArcatrazCreatureAI(ai_name)
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
void AttackStart(Unit *victim) override
== Triggered Actions Requested ==================
float GetAttackDistance(Unit const *player) const
bool CanFly() const override
bool CanCreatureAttack(Unit const *victim, bool force=true) const
void SetImmuneToNPC(bool apply) override
virtual bool SetBossState(uint32 id, EncounterState state)
void HandleGameObject(ObjectGuid guid, bool open, GameObject *go=nullptr)
virtual ObjectGuid GetGuidData(uint32 type) const override
EncounterState GetBossState(uint32 id) const
void MoveChase(Unit *target, Optional< ChaseRange > dist={}, Optional< ChaseAngle > angle={})
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 RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void SetInCombatWith(Unit *enemy, bool addSecondUnitSuppressed=false)
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
bool Attack(Unit *victim, bool meleeAttack)
void SetUnitFlag(UnitFlags flags)
InstanceScript * GetInstanceScript() const
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
bool IsWithinLOSInMap(WorldObject const *obj, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing) const
bool IsWithinDistInMap(WorldObject const *obj, float dist2compare, bool is3D=true, bool incOwnRadius=true, bool incTargetRadius=true) const
float GetDistanceZ(WorldObject const *obj) const
virtual uint32 GetData(uint32) const
virtual void SetData(uint32, uint32)
bool HealthBelowPct(uint32 pct) const
void AddThreat(Unit *victim, float amount, Unit *who=nullptr)
npc_millhouse_manastorm(Creature *creature)
void KilledUnit(Unit *who) override
void UpdateAI(uint32 diff) override
void AttackStart(Unit *who) override
== Triggered Actions Requested ==================
InstanceScript * instance
uint32 EventProgress_Timer
void JustDied(Unit *) override
void MoveInLineOfSight(Unit *who) override
void JustSummoned(Creature *summon) override
npc_warden_mellichar(Creature *creature)
uint32 EventProgress_Timer
void UpdateAI(uint32 diff) override
InstanceScript * instance
void JustEngagedWith(Unit *) override
void AttackStart(Unit *) override
== Triggered Actions Requested ==================