6#ifndef SCRIPTEDCREATURE_H_
7#define SCRIPTEDCREATURE_H_
14#define CAST_AI(a, b) (dynamic_cast<a*>(b))
86 template <
class Predicate>
92 for (StorageType::iterator i = listCopy.begin(); i != listCopy.end();)
249 return me->HealthBelowPct(pct);
253 return me->HealthAbovePct(pct);
293 template<
class T>
inline
309 template<
class T>
inline
310 const T&
RAID_MODE(
const T& normal10,
const T& normal25)
const
325 template<
class T>
inline
326 const T&
RAID_MODE(
const T& normal10,
const T& normal25,
const T& flex,
const T& lfr)
const
345 template<
class T>
inline
346 const T&
RAID_MODE(
const T& normal10,
const T& normal25,
const T& heroic10,
const T& heroic25,
const T& flex,
const T& lfr)
const
423 me->setActive(
false);
@ DIFFICULTY_10MAN_HEROIC
@ DIFFICULTY_25MAN_NORMAL
@ DIFFICULTY_10MAN_NORMAL
@ DIFFICULTY_25MAN_HEROIC
std::map< BoundaryType, float > BossBoundaryMap
uint32 GUID_ENPART(uint64 x)
void GetPlayerListInGrid(std::list< Player * > &list, WorldObject *source, float maxSearchRange)
GameObject * GetClosestGameObjectWithEntry(WorldObject *source, uint32 entry, float maxSearchRange)
void GetPositionWithDistInOrientation(Unit *pUnit, float dist, float orientation, float &x, float &y)
Creature * GetClosestCreatureWithEntry(WorldObject *source, uint32 entry, float maxSearchRange, bool alive=true)
void GetCreatureListWithEntryInGrid(std::list< Creature * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
void GetRandPosFromCenterInDist(float centerX, float centerY, float dist, float &x, float &y)
void GetGameObjectListWithEntryInGrid(std::list< GameObject * > &list, WorldObject *source, uint32 entry, float maxSearchRange)
InstanceScript *const instance
BossBoundaryMap const * GetBoundary() const
void SummonedCreatureDespawn(Creature *summon) OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
BossBoundaryMap const *const _boundary
void JustReachedHome() OVERRIDE
void ExecuteEvent(uint32) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
BossAI(Creature *creature, uint32 bossId)
void EnterCombat(Unit *) OVERRIDE
void JustDied(Unit *) OVERRIDE
bool CheckBoundary(Unit *who)
CreatureAI(Creature *creature)
virtual void EnterEvadeMode()
bool operator()(uint64 guid)
EntryCheckPredicate(uint32 entry)
iterator erase(iterator i)
bool HasEntry(uint32 entry) const
void Despawn(Creature const *summon)
StorageType::const_iterator const_iterator
void DespawnEntry(uint32 entry)
void DespawnIf(T const &predicate)
void Summon(Creature const *summon)
StorageType::size_type size_type
SummonList(Creature *creature)
StorageType::value_type value_type
void DoZoneInCombat(uint32 entry=0)
const_iterator begin() const
std::list< uint64 > StorageType
const_iterator end() const
StorageType::iterator iterator
void DoAction(int32 info, Predicate &predicate, uint16 max=0)
virtual void DoAction(int32)
static Creature * GetCreature(WorldObject &object, uint64 guid)
void SummonedCreatureDespawn(Creature *summon) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
void EnterCombat(Unit *) OVERRIDE
WorldBossAI(Creature *creature)
void ExecuteEvent(uint32) OVERRIDE
void JustSummoned(Creature *summon) OVERRIDE
void JustDied(Unit *) OVERRIDE
void RandomResizeList(std::list< T > &list, uint32 size)
void DamageTaken(Unit *, uint32 &) OVERRIDE
void KilledUnit(Unit *) OVERRIDE
void SpellHit(Unit *, SpellInfo const *) OVERRIDE
void DoStartNoMovement(Unit *target)
void SummonedCreatureDespawn(Creature *) OVERRIDE
void JustSummoned(Creature *) OVERRIDE
const T & RAID_MODE(const T &normal10, const T &normal25, const T &flex, const T &lfr) const
void SetEquipmentSlots(bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
DifficultyID GetDifficulty() const
void SetCombatMovement(bool allowMovement)
uint32 _evadeCheckCooldown
bool IsCombatMovementAllowed() const
void SpellHitTarget(Unit *, SpellInfo const *) OVERRIDE
bool HealthAbovePct(uint32 pct) const
Unit * DoSelectLowestHpFriendly(float range, uint32 minHPDiff=1)
float DoGetThreat(Unit *unit)
void DoTeleportTo(float x, float y, float z, uint32 time=0)
void EnterCombat(Unit *) OVERRIDE
Player * GetPlayerAtMinimumRange(float minRange)
void MovementInform(uint32, uint32) OVERRIDE
void UpdateAI(uint32 diff) OVERRIDE
== Triggered Actions Requested ==================
bool _isCombatMovementAllowed
void DoTeleportPlayer(Unit *unit, float x, float y, float z, float o)
void DoTeleportAll(float x, float y, float z, float o)
void ExecuteEvent(uint32) OVERRIDE
const T & RAID_MODE(const T &normal10, const T &normal25, const T &heroic10, const T &heroic25, const T &flex, const T &lfr) const
bool HealthBelowPct(uint32 pct) const
SpellInfo const * SelectSpell(Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, uint32 powerCostMin, uint32 powerCostMax, float rangeMin, float rangeMax, SelectEffect effect)
bool EnterEvadeIfOutOfCombatArea(uint32 const diff)
void DoCastSpell(Unit *target, SpellInfo const *spellInfo, bool triggered=false)
const T & RAID_MODE(const T &normal10, const T &normal25) const
void JustDied(Unit *) OVERRIDE
void AttackStartNoMove(Unit *target)
std::list< Creature * > DoFindFriendlyMissingBuff(float range, uint32 spellId)
Creature * DoSpawnCreature(uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, TempSummonType type, uint32 despawntime)
std::list< Creature * > DoFindFriendlyCC(float range)
ScriptedAI(Creature *creature)
void DoModifyThreatPercent(Unit *unit, int32 pct)
void DoPlaySoundToSet(WorldObject *source, uint32 soundId)
const T & DUNGEON_MODE(const T &normal5, const T &heroic5) const
void AttackStart(Unit *) OVERRIDE
void DoStartMovement(Unit *target, float distance=0.0f, float angle=0.0f)