All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Creature Class Reference

#include <Creature.h>

Public Member Functions

 Creature (bool isWorldObject=false)
virtual ~Creature ()
void AddToWorld () override
void RemoveFromWorld () override
void SetObjectScale (float scale) override
void SetDisplayId (uint32 modelId) override
void DisappearAndDie ()
bool Create (ObjectGuid::LowType guidlow, Map *map, uint32 phaseMask, uint32 entry, float x, float y, float z, float ang, CreatureData const *data=nullptr, uint32 vehId=0)
bool LoadCreaturesAddon ()
void SelectLevel ()
void LoadEquipment (int8 id=1, bool force=false)
ObjectGuid::LowType GetSpawnId () const
void Update (uint32 time) override
void GetRespawnPosition (float &x, float &y, float &z, float *ori=nullptr, float *dist=nullptr) const
void SetCorpseDelay (uint32 delay)
uint32 GetCorpseDelay () const
bool IsRacialLeader () const
bool IsCivilian () const
bool IsTrigger () const
bool IsGuard () const
bool CanWalk () const
bool CanSwim () const
bool CanFly () const override
void SetReactState (ReactStates st)
ReactStates GetReactState () const
bool HasReactState (ReactStates state) const
void InitializeReactState ()
bool isCanInteractWithBattleMaster (Player *player, bool msg) const
bool isCanTrainingAndResetTalentsOf (Player *player) const
bool CanCreatureAttack (Unit const *victim, bool force=true) const
bool IsImmunedToSpell (SpellInfo const *spellInfo) const override
bool IsImmunedToSpellEffect (SpellInfo const *spellInfo, uint32 index) const override
bool isElite () const
bool isWorldBoss () const
bool IsDungeonBoss () const
uint8 getLevelForTarget (WorldObject const *target) const override
bool IsInEvadeMode () const
bool AIM_Initialize (CreatureAI *ai=NULL)
void Motion_Initialize ()
CreatureAIAI () const
SpellSchoolMask GetMeleeDamageSchoolMask () const override
void SetMeleeDamageSchool (SpellSchools school)
bool HasSpell (uint32 spellID) const override
bool UpdateEntry (uint32 entry, CreatureData const *data=nullptr)
void UpdateMovementFlags ()
bool UpdateStats (Stats stat) override
bool UpdateAllStats () override
void UpdateResistances (uint32 school) override
void UpdateArmor () override
void UpdateMaxHealth () override
void UpdateMaxPower (Powers power) override
void UpdateAttackPowerAndDamage (bool ranged=false) override
void CalculateMinMaxDamage (WeaponAttackType attType, bool normalized, bool addTotalPct, float &minDamage, float &maxDamage) override
void SetCanDualWield (bool value) override
int8 GetOriginalEquipmentId () const
uint8 GetCurrentEquipmentId () const
void SetCurrentEquipmentId (uint8 id)
float GetSpellDamageMod (int32 Rank) const
VendorItemData constGetVendorItems () const
uint32 GetVendorItemCurrentCount (VendorItem const *vItem)
uint32 UpdateVendorItemCurrentCount (VendorItem const *vItem, uint32 used_count)
TrainerSpellData constGetTrainerSpells () const
CreatureTemplate constGetCreatureTemplate () const
CreatureData constGetCreatureData () const
CreatureAddon constGetCreatureAddon () const
std::string GetAIName () const
std::string GetScriptName () const
uint32 GetScriptId () const
std::string constGetNameForLocaleIdx (LocaleConstant locale_idx) const override
void setDeathState (DeathState s) override
bool LoadFromDB (ObjectGuid::LowType spawnId, Map *map)
bool LoadCreatureFromDB (ObjectGuid::LowType spawnId, Map *map, bool addToMap=true, bool allowDuplicate=false)
void SaveToDB ()
virtual void SaveToDB (uint32 mapid, uint32 spawnMask, uint32 phaseMask)
virtual void DeleteFromDB ()
void StartPickPocketRefillTimer ()
void ResetPickPocketRefillTimer ()
bool CanGeneratePickPocketLoot () const
void SetSkinner (ObjectGuid guid)
ObjectGuid GetSkinner () const
PlayerGetLootRecipient () const
GroupGetLootRecipientGroup () const
bool hasLootRecipient () const
bool isTappedBy (Player const *player) const
void SetLootRecipient (Unit *unit)
void AllLootRemovedFromCorpse ()
uint16 GetLootMode () const
bool HasLootMode (uint16 lootMode)
void SetLootMode (uint16 lootMode)
void AddLootMode (uint16 lootMode)
void RemoveLootMode (uint16 lootMode)
void ResetLootMode ()
SpellInfo constreachWithSpellAttack (Unit *victim)
SpellInfo constreachWithSpellCure (Unit *victim)
bool CanStartAttack (Unit const *u, bool force) const
float GetAttackDistance (Unit const *player) const
float GetAggroRange (Unit const *target) const
void SendAIReaction (AiReaction reactionType)
UnitSelectNearestTarget (float dist=0, bool playerOnly=false) const
UnitSelectNearestTargetInAttackDistance (float dist=0) const
PlayerSelectNearestPlayer (float distance=0) const
UnitSelectNearestHostileUnitInAggroRange (bool useLOS=false) const
void DoFleeToGetAssistance ()
void CallForHelp (float fRadius)
void CallAssistance ()
void SetNoCallAssistance (bool val)
void SetNoSearchAssistance (bool val)
bool HasSearchedAssistance () const
bool CanAssistTo (const Unit *u, const Unit *enemy, bool checkfaction=true) const
bool _IsTargetAcceptable (const Unit *target) const
MovementGeneratorType GetDefaultMovementType () const
void SetDefaultMovementType (MovementGeneratorType mgt)
void RemoveCorpse (bool setSpawnTime=true)
void DespawnOrUnsummon (uint32 msTimeToDespawn=0)
time_t constGetRespawnTime () const
time_t GetRespawnTimeEx () const
void SetRespawnTime (uint32 respawn)
void Respawn (bool force=false)
void SaveRespawnTime () override
uint32 GetRespawnDelay () const
void SetRespawnDelay (uint32 delay)
float GetRespawnRadius () const
void SetRespawnRadius (float dist)
void DoImmediateBoundaryCheck ()
uint32 GetCombatPulseDelay () const
void SetCombatPulseDelay (uint32 delay)
void SendZoneUnderAttackMessage (Player *attacker)
 Send a message to LocalDefense channel for players opposition team in the zone. More...
void SetInCombatWithZone ()
bool hasQuest (uint32 quest_id) const override
bool hasInvolvedQuest (uint32 quest_id) const override
bool isRegeneratingHealth ()
void setRegeneratingHealth (bool regenHealth)
virtual uint8 GetPetAutoSpellSize () const
virtual uint32 GetPetAutoSpellOnPos (uint8 pos) const
void SetPosition (float x, float y, float z, float o)
void SetPosition (const Position &pos)
void SetHomePosition (float x, float y, float z, float o)
void SetHomePosition (const Position &pos)
void GetHomePosition (float &x, float &y, float &z, float &ori) const
Position constGetHomePosition () const
void SetTransportHomePosition (float x, float y, float z, float o)
void SetTransportHomePosition (const Position &pos)
void GetTransportHomePosition (float &x, float &y, float &z, float &ori) const
Position constGetTransportHomePosition () const
uint32 GetWaypointPath () const
void LoadPath (uint32 pathid)
uint32 GetCurrentWaypointID () const
void UpdateWaypointID (uint32 wpID)
void SearchFormation ()
CreatureGroupGetFormation ()
void SetFormation (CreatureGroup *formation)
UnitSelectVictim ()
void SetDisableReputationGain (bool disable)
bool IsReputationGainDisabled () const
bool IsDamageEnoughForLootingAndReward () const
void LowerPlayerDamageReq (uint32 unDamage)
void ResetPlayerDamageReq ()
uint32 GetOriginalEntry () const
void SetOriginalEntry (uint32 entry)
void SetTarget (ObjectGuid const &guid) override
bool FocusTarget (Spell const *focusSpell, WorldObject const *target)
bool IsFocusing (Spell const *focusSpell=nullptr, bool withDelay=false)
void ReleaseFocus (Spell const *focusSpell=nullptr, bool withDelay=true)
CreatureTextRepeatIds GetTextRepeatGroup (uint8 textGroup)
void SetTextRepeatId (uint8 textGroup, uint8 id)
void ClearTextRepeatGroup (uint8 textGroup)
- Public Member Functions inherited from Unit
virtual ~Unit ()
UnitAIGetAI ()
void SetAI (UnitAI *newAI)
void AddToWorld () override
void RemoveFromWorld () override
void CleanupBeforeRemoveFromMap (bool finalCleanup)
void CleanupsBeforeDelete (bool finalCleanup=true) override
void SendCombatLogMessage (WorldPackets::CombatLog::CombatLogServerPacket *combatLog) const
DiminishingLevels GetDiminishing (DiminishingGroup group)
void IncrDiminishing (DiminishingGroup group)
float ApplyDiminishingToDuration (DiminishingGroup group, int32 &duration, Unit *caster, DiminishingLevels Level, int32 limitduration)
void ApplyDiminishingAura (DiminishingGroup group, bool apply)
void ClearDiminishings ()
float GetSpellMaxRangeForTarget (Unit const *target, SpellInfo const *spellInfo) const
float GetSpellMinRangeForTarget (Unit const *target, SpellInfo const *spellInfo) const
void setAttackTimer (WeaponAttackType type, uint32 time)
void resetAttackTimer (WeaponAttackType type=BASE_ATTACK)
uint32 getAttackTimer (WeaponAttackType type) const
bool isAttackReady (WeaponAttackType type=BASE_ATTACK) const
bool haveOffhandWeapon () const
bool CanDualWield () const
float GetCombatReach () const
float GetMeleeReach () const
bool IsWithinCombatRange (const Unit *obj, float dist2compare) const
bool IsWithinMeleeRange (const Unit *obj, float dist=MELEE_RANGE) const
void GetRandomContactPoint (const Unit *target, float &x, float &y, float &z, float distance2dMin, float distance2dMax) const
void _addAttacker (Unit *pAttacker)
void _removeAttacker (Unit *pAttacker)
UnitgetAttackerForHelper () const
bool Attack (Unit *victim, bool meleeAttack)
void MustReacquireTarget ()
void CastStop (uint32 except_spellid=0)
bool AttackStop ()
void RemoveAllAttackers ()
AttackerSet constgetAttackers () const
bool isAttackingPlayer () const
UnitGetVictim () const
UnitEnsureVictim () const
void CombatStop (bool includingCast=false)
void CombatStopWithPets (bool includingCast=false)
void StopAttackFaction (uint32 faction_id)
UnitSelectNearbyTarget (Unit *exclude=NULL, float dist=NOMINAL_MELEE_RANGE) const
void SendMeleeAttackStop (Unit *victim=NULL)
void SendMeleeAttackStart (Unit *victim)
void AddUnitState (uint32 f)
bool HasUnitState (const uint32 f) const
void ClearUnitState (uint32 f)
bool CanFreeMove () const
uint32 HasUnitTypeMask (uint32 mask) const
void AddUnitTypeMask (uint32 mask)
bool IsSummon () const
bool IsGuardian () const
bool IsPet () const
bool IsHunterPet () const
bool IsTotem () const
bool IsVehicle () const
uint8 getLevel () const
uint8 getLevelForTarget (WorldObject const *) const override
void SetLevel (uint8 lvl)
uint8 getRace () const
uint32 getRaceMask () const
uint8 getClass () const
uint32 getClassMask () const
uint8 getGender () const
float GetStat (Stats stat) const
void SetStat (Stats stat, int32 val)
uint32 GetArmor () const
void SetArmor (int32 val)
uint32 GetResistance (SpellSchools school) const
uint32 GetResistance (SpellSchoolMask mask) const
void SetResistance (SpellSchools school, int32 val)
uint32 GetHealth () const
uint32 GetMaxHealth () const
bool IsFullHealth () const
bool HealthBelowPct (int32 pct) const
bool HealthBelowPctDamaged (int32 pct, uint32 damage) const
bool HealthAbovePct (int32 pct) const
bool HealthAbovePctHealed (int32 pct, uint32 heal) const
float GetHealthPct () const
uint32 CountPctFromMaxHealth (int32 pct) const
uint32 CountPctFromCurHealth (int32 pct) const
void SetHealth (uint32 val)
void SetMaxHealth (uint32 val)
void SetFullHealth ()
int32 ModifyHealth (int32 val)
int32 GetHealthGain (int32 dVal)
Powers getPowerType () const
void setPowerType (Powers power)
int32 GetPower (Powers power) const
int32 GetMinPower (Powers power) const
int32 GetMaxPower (Powers power) const
float GetPowerPct (Powers power) const
int32 CountPctFromMaxPower (Powers power, int32 pct) const
void SetPower (Powers power, int32 val)
void SetMaxPower (Powers power, int32 val)
int32 ModifyPower (Powers power, int32 val)
int32 ModifyPowerPct (Powers power, float pct, bool apply=true)
uint32 GetAttackTime (WeaponAttackType att) const
void SetAttackTime (WeaponAttackType att, uint32 val)
void ApplyAttackTimePercentMod (WeaponAttackType att, float val, bool apply)
void ApplyCastTimePercentMod (float val, bool apply)
SheathState GetSheath () const
virtual void SetSheath (SheathState sheathed)
uint32 getFaction () const
void setFaction (uint32 faction)
FactionTemplateEntry constGetFactionTemplateEntry () const
ReputationRank GetReactionTo (Unit const *target) const
bool IsHostileTo (Unit const *unit) const
bool IsHostileToPlayers () const
bool IsFriendlyTo (Unit const *unit) const
bool IsNeutralToAll () const
bool IsInPartyWith (Unit const *unit) const
bool IsInRaidWith (Unit const *unit) const
void GetPartyMembers (std::list< Unit * > &units)
bool IsContestedGuard () const
bool IsPvP () const
bool IsFFAPvP () const
virtual void SetPvP (bool state)
uint32 GetCreatureType () const
uint32 GetCreatureTypeMask () const
UnitStandStateType GetStandState () const
bool IsSitState () const
bool IsStandState () const
void SetStandState (UnitStandStateType state, uint32 animKitID=0)
void SetStandFlags (uint8 flags)
void RemoveStandFlags (uint8 flags)
bool IsMounted () const
uint32 GetMountID () const
void Mount (uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
void Dismount ()
MountCapabilityEntry constGetMountCapability (uint32 mountType) const
void SendDurabilityLoss (Player *receiver, uint32 percent)
void PlayOneShotAnimKitId (uint16 animKitId)
void SetAIAnimKitId (uint16 animKitId)
uint16 GetAIAnimKitId () const override
void SetMovementAnimKitId (uint16 animKitId)
uint16 GetMovementAnimKitId () const override
void SetMeleeAnimKitId (uint16 animKitId)
uint16 GetMeleeAnimKitId () const override
uint16 GetMaxSkillValueForLevel (Unit const *target=NULL) const
void DealDamageMods (Unit *victim, uint32 &damage, uint32 *absorb)
uint32 DealDamage (Unit *victim, uint32 damage, CleanDamage const *cleanDamage=NULL, DamageEffectType damagetype=DIRECT_DAMAGE, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *spellProto=NULL, bool durabilityLoss=true)
void Kill (Unit *victim, bool durabilityLoss=true)
void KillSelf (bool durabilityLoss=true)
int32 DealHeal (Unit *victim, uint32 addhealth)
void ProcDamageAndSpell (Unit *victim, uint32 procAttacker, uint32 procVictim, uint32 procEx, uint32 amount, WeaponAttackType attType=BASE_ATTACK, SpellInfo const *procSpell=NULL, SpellInfo const *procAura=NULL)
void ProcDamageAndSpellFor (bool isVictim, Unit *target, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellInfo const *procSpell, uint32 damage, SpellInfo const *procAura=NULL)
void GetProcAurasTriggeredOnEvent (AuraApplicationList &aurasTriggeringProc, AuraApplicationList *procAuras, ProcEventInfo eventInfo)
void TriggerAurasProcOnEvent (CalcDamageInfo &damageInfo)
void TriggerAurasProcOnEvent (AuraApplicationList *myProcAuras, AuraApplicationList *targetProcAuras, Unit *actionTarget, uint32 typeMaskActor, uint32 typeMaskActionTarget, uint32 spellTypeMask, uint32 spellPhaseMask, uint32 hitMask, Spell *spell, DamageInfo *damageInfo, HealInfo *healInfo)
void TriggerAurasProcOnEvent (ProcEventInfo &eventInfo, AuraApplicationList &procAuras)
void HandleEmoteCommand (uint32 anim_id)
void AttackerStateUpdate (Unit *victim, WeaponAttackType attType=BASE_ATTACK, bool extra=false)
void CalculateMeleeDamage (Unit *victim, uint32 damage, CalcDamageInfo *damageInfo, WeaponAttackType attackType=BASE_ATTACK)
void DealMeleeDamage (CalcDamageInfo *damageInfo, bool durabilityLoss)
void HandleProcExtraAttackFor (Unit *victim)
void CalculateSpellDamageTaken (SpellNonMeleeDamage *damageInfo, int32 damage, SpellInfo const *spellInfo, WeaponAttackType attackType=BASE_ATTACK, bool crit=false)
void DealSpellDamage (SpellNonMeleeDamage const *damageInfo, bool durabilityLoss)
uint32 GetDamageReduction (uint32 damage) const
void ApplyResilience (Unit const *victim, int32 *damage) const
float MeleeSpellMissChance (Unit const *victim, WeaponAttackType attType, uint32 spellId) const
SpellMissInfo MeleeSpellHitResult (Unit *victim, SpellInfo const *spellInfo)
SpellMissInfo MagicSpellHitResult (Unit *victim, SpellInfo const *spellInfo)
SpellMissInfo SpellHitResult (Unit *victim, SpellInfo const *spellInfo, bool canReflect=false)
float GetUnitDodgeChanceAgainst (Unit const *attacker) const
float GetUnitParryChanceAgainst (Unit const *attacker) const
float GetUnitBlockChanceAgainst (Unit const *attacker) const
float GetUnitMissChance (WeaponAttackType attType) const
float GetUnitCriticalChance (WeaponAttackType attackType, const Unit *victim) const
int32 GetMechanicResistChance (SpellInfo const *spellInfo) const
bool CanUseAttackType (uint8 attacktype) const
virtual uint32 GetBlockPercent () const
float GetWeaponProcChance () const
float GetPPMProcChance (uint32 WeaponSpeed, float PPM, const SpellInfo *spellProto) const
MeleeHitOutcome RollMeleeOutcomeAgainst (Unit const *victim, WeaponAttackType attType) const
bool IsVendor () const
bool IsTrainer () const
bool IsQuestGiver () const
bool IsGossip () const
bool IsTaxi () const
bool IsGuildMaster () const
bool IsBattleMaster () const
bool IsBanker () const
bool IsInnkeeper () const
bool IsSpiritHealer () const
bool IsSpiritGuide () const
bool IsTabardDesigner () const
bool IsAuctioner () const
bool IsArmorer () const
bool IsServiceProvider () const
bool IsSpiritService () const
bool IsCritter () const
bool IsInFlight () const
bool IsInCombat () const
bool IsInCombatWith (Unit const *who) const
void CombatStart (Unit *target, bool initialAggro=true)
void SetInCombatState (bool PvP, Unit *enemy=NULL)
void SetInCombatWith (Unit *enemy)
void ClearInCombat ()
uint32 GetCombatTimer () const
bool HasAuraTypeWithFamilyFlags (AuraType auraType, uint32 familyName, uint32 familyFlags) const
bool HasBreakableByDamageAuraType (AuraType type, uint32 excludeAura=0) const
bool HasBreakableByDamageCrowdControlAura (Unit *excludeCasterChannel=NULL) const
bool HasStealthAura () const
bool HasInvisibilityAura () const
bool isFeared () const
bool isInRoots () const
bool IsPolymorphed () const
bool isFrozen () const
bool isTargetableForAttack (bool checkFakeDeath=true) const
bool IsValidAttackTarget (Unit const *target) const
bool _IsValidAttackTarget (Unit const *target, SpellInfo const *bySpell, WorldObject const *obj=NULL) const
bool IsValidAssistTarget (Unit const *target) const
bool _IsValidAssistTarget (Unit const *target, SpellInfo const *bySpell) const
virtual bool IsInWater () const
virtual bool IsUnderWater () const
virtual void UpdateUnderwaterState (Map *m, float x, float y, float z)
bool isInAccessiblePlaceFor (Creature const *c) const
void SendHealSpellLog (Unit *victim, uint32 spellID, uint32 health, uint32 overHeal, uint32 absorbed, bool crit=false)
int32 HealBySpell (Unit *victim, SpellInfo const *spellInfo, uint32 addHealth, bool critical=false)
void SendEnergizeSpellLog (Unit *victim, uint32 spellID, int32 damage, Powers powertype)
void EnergizeBySpell (Unit *victim, uint32 SpellID, int32 Damage, Powers powertype)
void CastSpell (SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (Unit *victim, uint32 spellId, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (Unit *victim, uint32 spellId, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (Unit *victim, SpellInfo const *spellInfo, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (Unit *victim, SpellInfo const *spellInfo, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (float x, float y, float z, uint32 spellId, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastSpell (GameObject *go, uint32 spellId, bool triggered, Item *castItem=NULL, AuraEffect *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastCustomSpell (Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastCustomSpell (uint32 spellId, SpellValueMod mod, int32 value, Unit *victim, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastCustomSpell (uint32 spellId, SpellValueMod mod, int32 value, Unit *victim=NULL, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
void CastCustomSpell (uint32 spellId, CustomSpellValues const &value, Unit *victim=NULL, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
AuraAddAura (uint32 spellId, Unit *target)
AuraAddAura (SpellInfo const *spellInfo, uint32 effMask, Unit *target)
void SetAuraStack (uint32 spellId, Unit *target, uint32 stack)
void SendPlaySpellVisualKit (uint32 id, uint32 type)
void DeMorph ()
void SendAttackStateUpdate (CalcDamageInfo *damageInfo)
void SendAttackStateUpdate (uint32 HitInfo, Unit *target, uint8 SwingType, SpellSchoolMask damageSchoolMask, uint32 Damage, uint32 AbsorbDamage, uint32 Resist, VictimState TargetState, uint32 BlockedAmount)
void SendSpellNonMeleeDamageLog (SpellNonMeleeDamage const *log)
void SendPeriodicAuraLog (SpellPeriodicAuraLogInfo *pInfo)
void SendSpellMiss (Unit *target, uint32 spellID, SpellMissInfo missInfo)
void SendSpellDamageResist (Unit *target, uint32 spellId)
void SendSpellDamageImmune (Unit *target, uint32 spellId, bool isPeriodic)
void NearTeleportTo (float x, float y, float z, float orientation, bool casting=false)
void SendTeleportPacket (Position &pos)
virtual bool UpdatePosition (float x, float y, float z, float ang, bool teleport=false)
virtual bool UpdatePosition (const Position &pos, bool teleport=false)
void UpdateOrientation (float orientation)
 Only server-side orientation update, does not broadcast to client. More...
void UpdateHeight (float newZ)
 Only server-side height update, does not broadcast to client. More...
void SendMoveKnockBack (Player *player, float speedXY, float speedZ, float vcos, float vsin)
void KnockbackFrom (float x, float y, float speedXY, float speedZ)
void JumpTo (float speedXY, float speedZ, bool forward=true)
void JumpTo (WorldObject *obj, float speedZ, bool withOrientation=false)
void MonsterMoveWithSpeed (float x, float y, float z, float speed, bool generatePath=false, bool forceDestination=false)
void SendSetPlayHoverAnim (bool enable)
bool IsLevitating () const
bool IsWalking () const
bool IsHovering () const
bool SetWalk (bool enable)
bool SetDisableGravity (bool disable, bool packetOnly=false)
bool SetFall (bool enable)
bool SetSwim (bool enable)
bool SetCanFly (bool enable)
bool SetWaterWalking (bool enable, bool packetOnly=false)
bool SetFeatherFall (bool enable, bool packetOnly=false)
bool SetHover (bool enable, bool packetOnly=false)
bool SetCollision (bool disable)
void SendSetVehicleRecId (uint32 vehicleId)
void SetInFront (WorldObject const *target)
void SetFacingTo (float ori)
void SetFacingToObject (WorldObject const *object)
void SendChangeCurrentVictimOpcode (HostileReference *pHostileReference)
void SendClearThreatListOpcode ()
void SendRemoveFromThreatListOpcode (HostileReference *pHostileReference)
void SendThreatListUpdate ()
void SendClearTarget ()
bool IsAlive () const
bool isDying () const
bool isDead () const
DeathState getDeathState () const
ObjectGuid GetOwnerGUID () const
void SetOwnerGUID (ObjectGuid owner)
ObjectGuid GetCreatorGUID () const
void SetCreatorGUID (ObjectGuid creator)
ObjectGuid GetMinionGUID () const
void SetMinionGUID (ObjectGuid guid)
ObjectGuid GetCharmerGUID () const
void SetCharmerGUID (ObjectGuid owner)
ObjectGuid GetCharmGUID () const
void SetPetGUID (ObjectGuid guid)
ObjectGuid GetPetGUID () const
void SetCritterGUID (ObjectGuid guid)
ObjectGuid GetCritterGUID () const
bool IsControlledByPlayer () const
ObjectGuid GetCharmerOrOwnerGUID () const
ObjectGuid GetCharmerOrOwnerOrOwnGUID () const
bool IsCharmedOwnedByPlayerOrPlayer () const
PlayerGetSpellModOwner () const
UnitGetOwner () const
GuardianGetGuardianPet () const
MinionGetFirstMinion () const
UnitGetCharmer () const
UnitGetCharm () const
UnitGetCharmerOrOwner () const
UnitGetCharmerOrOwnerOrSelf () const
PlayerGetCharmerOrOwnerPlayerOrPlayerItself () const
PlayerGetAffectingPlayer () const
void SetMinion (Minion *minion, bool apply)
void GetAllMinionsByEntry (std::list< TempSummon * > &Minions, uint32 entry)
void RemoveAllMinionsByEntry (uint32 entry)
void SetCharm (Unit *target, bool apply)
UnitGetNextRandomRaidMemberOrPet (float radius)
bool SetCharmedBy (Unit *charmer, CharmType type, AuraApplication const *aurApp=NULL)
void RemoveCharmedBy (Unit *charmer)
void RestoreFaction ()
UnitGetFirstControlled () const
void RemoveAllControlled ()
bool IsCharmed () const
bool isPossessed () const
bool isPossessedByPlayer () const
bool isPossessing () const
bool isPossessing (Unit *u) const
CharmInfoGetCharmInfo ()
CharmInfoInitCharmInfo ()
void DeleteCharmInfo ()
void UpdateCharmAI ()
SharedVisionList constGetSharedVisionList ()
void AddPlayerToVision (Player *player)
void RemovePlayerFromVision (Player *player)
bool HasSharedVision () const
void RemoveBindSightAuras ()
void RemoveCharmAuras ()
PetCreateTamedPetFrom (Creature *creatureTarget, uint32 spell_id=0)
PetCreateTamedPetFrom (uint32 creatureEntry, uint32 spell_id=0)
bool InitTamedPet (Pet *pet, uint8 level, uint32 spell_id)
Aura_TryStackingOrRefreshingExistingAura (SpellInfo const *newAura, uint32 effMask, Unit *caster, int32 *baseAmount=NULL, Item *castItem=NULL, ObjectGuid casterGUID=ObjectGuid::Empty, int32 castItemLevel=-1)
void _AddAura (UnitAura *aura, Unit *caster)
AuraApplication_CreateAuraApplication (Aura *aura, uint32 effMask)
void _ApplyAuraEffect (Aura *aura, uint8 effIndex)
void _ApplyAura (AuraApplication *aurApp, uint32 effMask)
void _UnapplyAura (AuraApplicationMap::iterator &i, AuraRemoveMode removeMode)
void _UnapplyAura (AuraApplication *aurApp, AuraRemoveMode removeMode)
void _RemoveNoStackAuraApplicationsDueToAura (Aura *aura)
void _RemoveNoStackAurasDueToAura (Aura *aura)
bool _IsNoStackAuraDueToAura (Aura *appliedAura, Aura *existingAura) const
void _RegisterAuraEffect (AuraEffect *aurEff, bool apply)
AuraMapGetOwnedAuras ()
AuraMap constGetOwnedAuras () const
void RemoveOwnedAura (AuraMap::iterator &i, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveOwnedAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveOwnedAura (Aura *aura, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
AuraGetOwnedAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, Aura *except=NULL) const
AuraApplicationMapGetAppliedAuras ()
AuraApplicationMap constGetAppliedAuras () const
void RemoveAura (AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void RemoveAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveAura (AuraApplication *aurApp, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void RemoveAura (Aura *aur, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void RemoveAppliedAuras (std::function< bool(AuraApplication const *)> const &check)
void RemoveOwnedAuras (std::function< bool(Aura const *)> const &check)
void RemoveAppliedAuras (uint32 spellId, std::function< bool(AuraApplication const *)> const &check)
void RemoveOwnedAuras (uint32 spellId, std::function< bool(Aura const *)> const &check)
void RemoveAurasByType (AuraType auraType, std::function< bool(AuraApplication const *)> const &check)
void RemoveAurasDueToSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveAuraFromStack (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveAurasDueToSpellByDispel (uint32 spellId, uint32 dispellerSpellId, ObjectGuid casterGUID, Unit *dispeller, uint8 chargesRemoved=1)
void RemoveAurasDueToSpellBySteal (uint32 spellId, ObjectGuid casterGUID, Unit *stealer)
void RemoveAurasDueToItemSpell (uint32 spellId, ObjectGuid castItemGuid)
void RemoveAurasByType (AuraType auraType, ObjectGuid casterGUID=ObjectGuid::Empty, Aura *except=NULL, bool negative=true, bool positive=true)
void RemoveNotOwnSingleTargetAuras (uint32 newPhase=0x0, bool phaseid=false)
void RemoveAurasWithInterruptFlags (uint32 flag, uint32 except=0)
void RemoveAurasWithAttribute (uint32 flags)
void RemoveAurasWithFamily (SpellFamilyNames family, flag128 const &familyFlag, ObjectGuid casterGUID)
void RemoveAurasWithMechanic (uint32 mechanic_mask, AuraRemoveMode removemode=AURA_REMOVE_BY_DEFAULT, uint32 except=0)
void RemoveMovementImpairingAuras ()
void RemoveAreaAurasDueToLeaveWorld ()
void RemoveAllAuras ()
void RemoveArenaAuras ()
void RemoveAllAurasOnDeath ()
void RemoveAllAurasRequiringDeadTarget ()
void RemoveAllAurasExceptType (AuraType type)
void RemoveAllAurasExceptType (AuraType type1, AuraType type2)
void DelayOwnedAuras (uint32 spellId, ObjectGuid caster, int32 delaytime)
void _RemoveAllAuraStatMods ()
void _ApplyAllAuraStatMods ()
AuraEffectList constGetAuraEffectsByType (AuraType type) const
AuraListGetSingleCastAuras ()
AuraList constGetSingleCastAuras () const
AuraEffectGetAuraEffect (uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
AuraEffectGetAuraEffectOfRankedSpell (uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
AuraEffectGetAuraEffect (AuraType type, SpellFamilyNames name, uint32 iconId, uint8 effIndex) const
AuraEffectGetAuraEffect (AuraType type, SpellFamilyNames family, flag128 const &familyFlag, ObjectGuid casterGUID=ObjectGuid::Empty) const
AuraEffectGetDummyAuraEffect (SpellFamilyNames name, uint32 iconId, uint8 effIndex) const
AuraApplicationGetAuraApplication (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraApplication *except=NULL) const
AuraGetAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
AuraApplicationGetAuraApplicationOfRankedSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraApplication *except=NULL) const
AuraGetAuraOfRankedSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void GetDispellableAuraList (Unit *caster, uint32 dispelMask, DispelChargesList &dispelList)
bool HasAuraEffect (uint32 spellId, uint8 effIndex, ObjectGuid caster=ObjectGuid::Empty) const
uint32 GetAuraCount (uint32 spellId) const
bool HasAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
bool HasAuraType (AuraType auraType) const
bool HasAuraTypeWithCaster (AuraType auratype, ObjectGuid caster) const
bool HasAuraTypeWithMiscvalue (AuraType auratype, int32 miscvalue) const
bool HasAuraTypeWithAffectMask (AuraType auratype, SpellInfo const *affectedSpell) const
bool HasAuraTypeWithValue (AuraType auratype, int32 value) const
bool HasNegativeAuraWithInterruptFlag (uint32 flag, ObjectGuid guid=ObjectGuid::Empty) const
bool HasNegativeAuraWithAttribute (uint32 flag, ObjectGuid guid=ObjectGuid::Empty) const
bool HasAuraWithMechanic (uint32 mechanicMask) const
AuraEffectIsScriptOverriden (SpellInfo const *spell, int32 script) const
uint32 GetDiseasesByCaster (ObjectGuid casterGUID, bool remove=false)
uint32 GetDoTsByCaster (ObjectGuid casterGUID) const
int32 GetTotalAuraModifier (AuraType auratype) const
float GetTotalAuraMultiplier (AuraType auratype) const
int32 GetMaxPositiveAuraModifier (AuraType auratype) const
int32 GetMaxNegativeAuraModifier (AuraType auratype) const
int32 GetTotalAuraModifierByMiscMask (AuraType auratype, uint32 misc_mask) const
float GetTotalAuraMultiplierByMiscMask (AuraType auratype, uint32 misc_mask) const
int32 GetMaxPositiveAuraModifierByMiscMask (AuraType auratype, uint32 misc_mask, const AuraEffect *except=NULL) const
int32 GetMaxNegativeAuraModifierByMiscMask (AuraType auratype, uint32 misc_mask) const
int32 GetTotalAuraModifierByMiscValue (AuraType auratype, int32 misc_value) const
float GetTotalAuraMultiplierByMiscValue (AuraType auratype, int32 misc_value) const
int32 GetMaxPositiveAuraModifierByMiscValue (AuraType auratype, int32 misc_value) const
int32 GetMaxNegativeAuraModifierByMiscValue (AuraType auratype, int32 misc_value) const
int32 GetTotalAuraModifierByAffectMask (AuraType auratype, SpellInfo const *affectedSpell) const
float GetTotalAuraMultiplierByAffectMask (AuraType auratype, SpellInfo const *affectedSpell) const
int32 GetMaxPositiveAuraModifierByAffectMask (AuraType auratype, SpellInfo const *affectedSpell) const
int32 GetMaxNegativeAuraModifierByAffectMask (AuraType auratype, SpellInfo const *affectedSpell) const
float GetResistanceBuffMods (SpellSchools school, bool positive) const
void SetResistanceBuffMods (SpellSchools school, bool positive, float val)
void ApplyResistanceBuffModsMod (SpellSchools school, bool positive, float val, bool apply)
void ApplyResistanceBuffModsPercentMod (SpellSchools school, bool positive, float val, bool apply)
void InitStatBuffMods ()
void ApplyStatBuffMod (Stats stat, float val, bool apply)
void ApplyStatPercentBuffMod (Stats stat, float val, bool apply)
void SetCreateStat (Stats stat, float val)
void SetCreateHealth (uint32 val)
uint32 GetCreateHealth () const
void SetCreateMana (uint32 val)
uint32 GetCreateMana () const
uint32 GetPowerIndex (uint32 powerType) const
int32 GetCreatePowers (Powers power) const
float GetPosStat (Stats stat) const
float GetNegStat (Stats stat) const
float GetCreateStat (Stats stat) const
ObjectGuid GetChannelObjectGuid () const
void SetChannelObjectGuid (ObjectGuid guid)
void SetCurrentCastSpell (Spell *pSpell)
void InterruptSpell (CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true)
void FinishSpell (CurrentSpellTypes spellType, bool ok=true)
bool IsNonMeleeSpellCast (bool withDelayed, bool skipChanneled=false, bool skipAutorepeat=false, bool isAutoshoot=false, bool skipInstant=true) const
void InterruptNonMeleeSpells (bool withDelayed, uint32 spellid=0, bool withInstant=true)
SpellGetCurrentSpell (CurrentSpellTypes spellType) const
SpellGetCurrentSpell (uint32 spellType) const
SpellFindCurrentSpellBySpellId (uint32 spell_id) const
int32 GetCurrentSpellCastTime (uint32 spell_id) const
virtual SpellInfo constGetCastSpellInfo (SpellInfo const *spellInfo) const
SpellHistoryGetSpellHistory ()
SpellHistory constGetSpellHistory () const
ShapeshiftForm GetShapeshiftForm () const
void SetShapeshiftForm (ShapeshiftForm form)
bool IsInFeralForm () const
bool IsInDisallowedMountForm () const
bool HandleStatModifier (UnitMods unitMod, UnitModifierType modifierType, float amount, bool apply)
void SetModifierValue (UnitMods unitMod, UnitModifierType modifierType, float value)
float GetModifierValue (UnitMods unitMod, UnitModifierType modifierType) const
float GetTotalStatValue (Stats stat) const
float GetTotalAuraModValue (UnitMods unitMod) const
SpellSchools GetSpellSchoolByAuraGroup (UnitMods unitMod) const
Stats GetStatByAuraGroup (UnitMods unitMod) const
Powers GetPowerTypeByAuraGroup (UnitMods unitMod) const
bool CanModifyStats () const
void SetCanModifyStats (bool modifyStats)
virtual void UpdateAllResistances ()
virtual void UpdateDamagePhysical (WeaponAttackType attType)
float GetTotalAttackPowerValue (WeaponAttackType attType) const
float GetWeaponDamageRange (WeaponAttackType attType, WeaponDamageRange type) const
void SetBaseWeaponDamage (WeaponAttackType attType, WeaponDamageRange damageRange, float value)
uint32 CalculateDamage (WeaponAttackType attType, bool normalized, bool addTotalPct)
float GetAPMultiplier (WeaponAttackType attType, bool normalized)
bool isInFrontInMap (Unit const *target, float distance, float arc=float(M_PI)) const
bool isInBackInMap (Unit const *target, float distance, float arc=float(M_PI)) const
bool IsVisible () const
void SetVisible (bool x)
bool SetInPhase (uint32 id, bool update, bool apply) override
void UpdateObjectVisibility (bool forced=true) override
bool CanHaveThreatList (bool skipAliveCheck=false) const
void AddThreat (Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=NULL)
float ApplyTotalThreatModifier (float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL)
void DeleteThreatList ()
void TauntApply (Unit *victim)
void TauntFadeOut (Unit *taunter)
ThreatManagergetThreatManager ()
void addHatedBy (HostileReference *pHostileReference)
void removeHatedBy (HostileReference *)
HostileRefManagergetHostileRefManager ()
VisibleAuraMap constGetVisibleAuras ()
AuraApplicationGetVisibleAura (uint8 slot) const
void SetVisibleAura (uint8 slot, AuraApplication *aur)
void RemoveVisibleAura (uint8 slot)
uint32 GetInterruptMask () const
void AddInterruptMask (uint32 mask)
void UpdateInterruptMask ()
uint32 GetDisplayId () const
uint32 GetNativeDisplayId () const
void RestoreDisplayId ()
void SetNativeDisplayId (uint32 modelId)
void setTransForm (uint32 spellid)
uint32 getTransForm () const
void _RegisterDynObject (DynamicObject *dynObj)
void _UnregisterDynObject (DynamicObject *dynObj)
DynamicObjectGetDynObject (uint32 spellId)
void RemoveDynObject (uint32 spellId)
void RemoveAllDynObjects ()
GameObjectGetGameObject (uint32 spellId) const
void AddGameObject (GameObject *gameObj)
void RemoveGameObject (GameObject *gameObj, bool del)
void RemoveGameObject (uint32 spellid, bool del)
void RemoveAllGameObjects ()
void ModifyAuraState (AuraStateType flag, bool apply)
uint32 BuildAuraStateUpdateForTarget (Unit *target) const
bool HasAuraState (AuraStateType flag, SpellInfo const *spellProto=NULL, Unit const *Caster=NULL) const
void UnsummonAllTotems ()
bool IsMagnet () const
UnitGetMagicHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo)
UnitGetMeleeHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo=NULL)
int32 SpellBaseDamageBonusDone (SpellSchoolMask schoolMask) const
int32 SpellBaseDamageBonusTaken (SpellSchoolMask schoolMask) const
uint32 SpellDamageBonusDone (Unit *victim, SpellInfo const *spellProto, uint32 pdamage, DamageEffectType damagetype, SpellEffectInfo const *effect, uint32 stack=1) const
float SpellDamagePctDone (Unit *victim, SpellInfo const *spellProto, DamageEffectType damagetype) const
uint32 SpellDamageBonusTaken (Unit *caster, SpellInfo const *spellProto, uint32 pdamage, DamageEffectType damagetype, SpellEffectInfo const *effect, uint32 stack=1) const
int32 SpellBaseHealingBonusDone (SpellSchoolMask schoolMask) const
int32 SpellBaseHealingBonusTaken (SpellSchoolMask schoolMask) const
uint32 SpellHealingBonusDone (Unit *victim, SpellInfo const *spellProto, uint32 healamount, DamageEffectType damagetype, SpellEffectInfo const *effect, uint32 stack=1) const
float SpellHealingPctDone (Unit *victim, SpellInfo const *spellProto) const
uint32 SpellHealingBonusTaken (Unit *caster, SpellInfo const *spellProto, uint32 healamount, DamageEffectType damagetype, SpellEffectInfo const *effect, uint32 stack=1) const
uint32 MeleeDamageBonusDone (Unit *pVictim, uint32 damage, WeaponAttackType attType, SpellInfo const *spellProto=NULL)
uint32 MeleeDamageBonusTaken (Unit *attacker, uint32 pdamage, WeaponAttackType attType, SpellInfo const *spellProto=NULL)
bool isSpellBlocked (Unit *victim, SpellInfo const *spellProto, WeaponAttackType attackType=BASE_ATTACK)
bool isBlockCritical ()
bool IsSpellCrit (Unit *victim, SpellInfo const *spellProto, SpellSchoolMask schoolMask, WeaponAttackType attackType=BASE_ATTACK) const
float GetUnitSpellCriticalChance (Unit *victim, SpellInfo const *spellProto, SpellSchoolMask schoolMask, WeaponAttackType attackType=BASE_ATTACK) const
uint32 SpellCriticalDamageBonus (SpellInfo const *spellProto, uint32 damage, Unit *victim)
uint32 SpellCriticalHealingBonus (SpellInfo const *spellProto, uint32 damage, Unit *victim)
void SetContestedPvP (Player *attackedPlayer=NULL)
uint32 GetCastingTimeForBonus (SpellInfo const *spellProto, DamageEffectType damagetype, uint32 CastingTime) const
float CalculateDefaultCoefficient (SpellInfo const *spellInfo, DamageEffectType damagetype) const
uint32 GetRemainingPeriodicAmount (ObjectGuid caster, uint32 spellId, AuraType auraType, uint8 effectIndex=0) const
void ApplySpellImmune (uint32 spellId, uint32 op, uint32 type, bool apply)
void ApplySpellDispelImmunity (const SpellInfo *spellProto, DispelType type, bool apply)
uint32 GetSchoolImmunityMask () const
uint32 GetMechanicImmunityMask () const
bool IsImmunedToDamage (SpellSchoolMask meleeSchoolMask) const
bool IsImmunedToDamage (SpellInfo const *spellInfo) const
bool IsDamageReducedByArmor (SpellSchoolMask damageSchoolMask, SpellInfo const *spellInfo=NULL, uint8 effIndex=MAX_SPELL_EFFECTS)
uint32 CalcArmorReducedDamage (Unit *victim, const uint32 damage, SpellInfo const *spellInfo, WeaponAttackType attackType=MAX_ATTACK)
uint32 CalcSpellResistance (Unit *victim, SpellSchoolMask schoolMask, SpellInfo const *spellInfo) const
void CalcAbsorbResist (Unit *victim, SpellSchoolMask schoolMask, DamageEffectType damagetype, uint32 const damage, uint32 *absorb, uint32 *resist, SpellInfo const *spellInfo=NULL)
void CalcHealAbsorb (Unit *victim, SpellInfo const *spellInfo, uint32 &healAmount, uint32 &absorb)
void UpdateSpeed (UnitMoveType mtype, bool forced)
float GetSpeed (UnitMoveType mtype) const
float GetSpeedRate (UnitMoveType mtype) const
void SetSpeed (UnitMoveType mtype, float rate, bool forced=false)
float ApplyEffectModifiers (SpellInfo const *spellProto, uint8 effect_index, float value) const
int32 CalculateSpellDamage (Unit const *target, SpellInfo const *spellProto, uint8 effect_index, int32 const *basePoints=nullptr, float *variance=nullptr, int32 itemLevel=-1) const
int32 CalcSpellDuration (SpellInfo const *spellProto)
int32 ModSpellDuration (SpellInfo const *spellProto, Unit const *target, int32 duration, bool positive, uint32 effectMask)
void ModSpellCastTime (SpellInfo const *spellProto, int32 &castTime, Spell *spell=NULL)
void ModSpellDurationTime (SpellInfo const *spellProto, int32 &castTime, Spell *spell=NULL)
float CalculateLevelPenalty (SpellInfo const *spellProto) const
void addFollower (FollowerReference *pRef)
void removeFollower (FollowerReference *)
MotionMasterGetMotionMaster ()
const MotionMasterGetMotionMaster () const
bool IsStopped () const
void StopMoving ()
 -------—End of Pet responses methods-------— More...
void AddUnitMovementFlag (uint32 f)
void RemoveUnitMovementFlag (uint32 f)
bool HasUnitMovementFlag (uint32 f) const
uint32 GetUnitMovementFlags () const
void SetUnitMovementFlags (uint32 f)
void AddExtraUnitMovementFlag (uint16 f)
void RemoveExtraUnitMovementFlag (uint16 f)
uint16 HasExtraUnitMovementFlag (uint16 f) const
uint16 GetExtraUnitMovementFlags () const
void SetExtraUnitMovementFlags (uint16 f)
bool IsSplineEnabled () const
float GetPositionZMinusOffset () const
void SetControlled (bool apply, UnitState state)
void SendPetActionFeedback (uint8 msg)
 -------—Pet responses methods--------------— More...
void SendPetTalk (uint32 pettalk)
void SendPetAIReaction (ObjectGuid guid)
void propagateSpeedChange ()
 -------—End of Pet responses methods-------— More...
void ClearAllReactives ()
void StartReactiveTimer (ReactiveType reactive)
void UpdateReactives (uint32 p_time)
void UpdateAuraForGroup (uint8 slot)
bool CanProc () const
void SetCantProc (bool apply)
void AddPetAura (PetAura const *petSpell)
void RemovePetAura (PetAura const *petSpell)
uint32 GetModelForForm (ShapeshiftForm form) const
uint32 GetModelForTotem (PlayerTotemType totemType)
void SetRedirectThreat (ObjectGuid guid, uint32 pct)
void ResetRedirectThreat ()
void ModifyRedirectThreat (int32 amount)
uint32 GetRedirectThreatPercent () const
UnitGetRedirectThreatTarget ()
bool CreateVehicleKit (uint32 id, uint32 creatureEntry, bool loading=false)
void RemoveVehicleKit (bool onRemoveFromWorld=false)
VehicleGetVehicleKit () const
VehicleGetVehicle () const
void SetVehicle (Vehicle *vehicle)
bool IsOnVehicle (const Unit *vehicle) const
UnitGetVehicleBase () const
CreatureGetVehicleCreatureBase () const
ObjectGuid GetTransGUID () const override
TransportBaseGetDirectTransport () const
 Returns the transport this unit is on directly (if on vehicle and transport, return vehicle) More...
bool HandleSpellClick (Unit *clicker, int8 seatId=-1)
void EnterVehicle (Unit *base, int8 seatId=-1)
void ExitVehicle (Position const *exitPosition=NULL)
void ChangeSeat (int8 seatId, bool next=true)
void _ExitVehicle (Position const *exitPosition=NULL)
void _EnterVehicle (Vehicle *vehicle, int8 seatId, AuraApplication const *aurApp=NULL)
bool isMoving () const
bool isTurning () const
bool IsFlying () const
bool IsFalling () const
void RewardRage (uint32 baseRage, bool attacker)
virtual float GetFollowAngle () const
void OutDebugInfo () const
virtual bool IsLoading () const
bool IsDuringRemoveFromWorld () const
PetToPet ()
Pet constToPet () const
TotemToTotem ()
Totem constToTotem () const
TempSummonToTempSummon ()
TempSummon constToTempSummon () const
ObjectGuid GetTarget () const
time_t GetLastDamagedTime () const
void SetLastDamagedTime (time_t val)
int32 GetHighestExclusiveSameEffectSpellGroupValue (AuraEffect const *aurEff, AuraType auraType, bool checkMiscValue=false, int32 miscValue=0) const
bool IsHighestExclusiveAura (Aura const *aura, bool removeOtherAuraApplications=false)
virtual void Talk (std::string const &text, ChatMsg msgType, Language language, float textRange, WorldObject const *target)
virtual void Say (std::string const &text, Language language, WorldObject const *target=nullptr)
virtual void Yell (std::string const &text, Language language, WorldObject const *target=nullptr)
virtual void TextEmote (std::string const &text, WorldObject const *target=nullptr, bool isBossEmote=false)
virtual void Whisper (std::string const &text, Language language, Player *target, bool isBossWhisper=false)
void Talk (uint32 textId, ChatMsg msgType, float textRange, WorldObject const *target)
void Say (uint32 textId, WorldObject const *target=nullptr)
void Yell (uint32 textId, WorldObject const *target=nullptr)
void TextEmote (uint32 textId, WorldObject const *target=nullptr, bool isBossEmote=false)
void Whisper (uint32 textId, Player *target, bool isBossWhisper=false)
uint32 GetVirtualItemId (uint32 slot) const
void SetVirtualItem (uint32 slot, uint32 itemId, uint16 appearanceModId=0)
- Public Member Functions inherited from WorldObject
virtual ~WorldObject ()
void GetNearPoint2D (float &x, float &y, float distance, float absAngle) const
void GetNearPoint (WorldObject const *searcher, float &x, float &y, float &z, float searcher_size, float distance2d, float absAngle) const
void GetClosePoint (float &x, float &y, float &z, float size, float distance2d=0, float angle=0) const
void MovePosition (Position &pos, float dist, float angle)
Position GetNearPosition (float dist, float angle)
void MovePositionToFirstCollision (Position &pos, float dist, float angle)
Position GetFirstCollisionPosition (float dist, float angle)
Position GetRandomNearPosition (float radius)
void GetContactPoint (WorldObject const *obj, float &x, float &y, float &z, float distance2d=CONTACT_DISTANCE) const
float GetObjectSize () const
void UpdateGroundPositionZ (float x, float y, float &z) const
void UpdateAllowedPositionZ (float x, float y, float &z) const
void GetRandomPoint (Position const &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
Position GetRandomPoint (Position const &srcPos, float distance) const
uint32 GetInstanceId () const
virtual void SetPhaseMask (uint32 newPhaseMask, bool update)
void CopyPhaseFrom (WorldObject *obj, bool update=false)
void UpdateAreaPhase ()
void ClearPhases (bool update=false)
void RebuildTerrainSwaps ()
void RebuildWorldMapAreaSwaps ()
bool HasInPhaseList (uint32 phase)
uint32 GetPhaseMask () const
bool IsInPhase (uint32 phase) const
bool IsInPhase (WorldObject const *obj) const
bool IsInTerrainSwap (uint32 terrainSwap) const
std::set< uint32 > constGetPhases () const
std::set< uint32 > constGetTerrainSwaps () const
std::set< uint32 > constGetWorldMapAreaSwaps () const
int32 GetDBPhase () const
void SetDBPhase (int32 p)
uint32 GetZoneId () const
uint32 GetAreaId () const
void GetZoneAndAreaId (uint32 &zoneid, uint32 &areaid) const
InstanceScriptGetInstanceScript ()
std::string constGetName () const
void SetName (std::string const &newname)
float GetDistance (WorldObject const *obj) const
float GetDistance (Position const &pos) const
float GetDistance (float x, float y, float z) const
float GetDistance2d (WorldObject const *obj) const
float GetDistance2d (float x, float y) const
float GetDistanceZ (WorldObject const *obj) const
bool IsSelfOrInSameMap (WorldObject const *obj) const
bool IsInMap (WorldObject const *obj) const
bool IsWithinDist3d (float x, float y, float z, float dist) const
bool IsWithinDist3d (Position const *pos, float dist) const
bool IsWithinDist2d (float x, float y, float dist) const
bool IsWithinDist2d (Position const *pos, float dist) const
bool IsWithinDist (WorldObject const *obj, float dist2compare, bool is3D=true) const
bool IsWithinDistInMap (WorldObject const *obj, float dist2compare, bool is3D=true) const
bool IsWithinLOS (float x, float y, float z) const
bool IsWithinLOSInMap (WorldObject const *obj) const
bool GetDistanceOrder (WorldObject const *obj1, WorldObject const *obj2, bool is3D=true) const
bool IsInRange (WorldObject const *obj, float minRange, float maxRange, bool is3D=true) const
bool IsInRange2d (float x, float y, float minRange, float maxRange) const
bool IsInRange3d (float x, float y, float z, float minRange, float maxRange) const
bool isInFront (WorldObject const *target, float arc=float(M_PI)) const
bool isInBack (WorldObject const *target, float arc=float(M_PI)) const
bool IsInBetween (WorldObject const *obj1, WorldObject const *obj2, float size=0) const
virtual void SendMessageToSet (WorldPacket const *data, bool self)
virtual void SendMessageToSetInRange (WorldPacket const *data, float dist, bool self)
virtual void SendMessageToSet (WorldPacket const *data, Player const *skipped_rcvr)
void PlayDistanceSound (uint32 sound_id, Player *target=NULL)
void PlayDirectSound (uint32 sound_id, Player *target=NULL)
void SendObjectDeSpawnAnim (ObjectGuid guid)
void AddObjectToRemoveList ()
float GetGridActivationRange () const
float GetVisibilityRange () const
float GetSightRange (WorldObject const *target=NULL) const
bool CanSeeOrDetect (WorldObject const *obj, bool ignoreStealth=false, bool distanceCheck=false, bool checkAlert=false) const
virtual void SetMap (Map *map)
virtual void ResetMap ()
MapGetMap () const
MapFindMap () const
Map constGetBaseMap () const
void SetZoneScript ()
ZoneScriptGetZoneScript () const
TempSummonSummonCreature (uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
TempSummonSummonCreature (uint32 id, float x, float y, float z, float ang=0, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0) const
GameObjectSummonGameObject (uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime)
CreatureSummonTrigger (float x, float y, float z, float ang, uint32 dur, CreatureAI *(*GetAI)(Creature *)=NULL)
void SummonCreatureGroup (uint8 group, std::list< TempSummon * > *list=NULL)
CreatureFindNearestCreature (uint32 entry, float range, bool alive=true) const
GameObjectFindNearestGameObject (uint32 entry, float range) const
GameObjectFindNearestGameObjectOfType (GameobjectTypes type, float range) const
void GetGameObjectListWithEntryInGrid (std::list< GameObject * > &lList, uint32 uiEntry, float fMaxSearchRange) const
void GetCreatureListWithEntryInGrid (std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
void GetPlayerListInGrid (std::list< Player * > &lList, float fMaxSearchRange) const
void DestroyForNearbyPlayers ()
void BuildUpdate (UpdateDataMapType &) override
void AddToObjectUpdate () override
void RemoveFromObjectUpdate () override
void AddToNotify (uint16 f)
bool isNeedNotify (uint16 f) const
uint16 GetNotifyFlags () const
bool NotifyExecuted (uint16 f) const
void SetNotified (uint16 f)
void ResetAllNotifies ()
bool isActiveObject () const
void setActive (bool isActiveObject)
void SetWorldObject (bool apply)
bool IsPermanentWorldObject () const
bool IsWorldObject () const
template<class NOTIFIER >
void VisitNearbyObject (float const &radius, NOTIFIER &notifier) const
template<class NOTIFIER >
void VisitNearbyGridObject (float const &radius, NOTIFIER &notifier) const
template<class NOTIFIER >
void VisitNearbyWorldObject (float const &radius, NOTIFIER &notifier) const
TransportGetTransport () const
float GetTransOffsetX () const
float GetTransOffsetY () const
float GetTransOffsetZ () const
float GetTransOffsetO () const
uint32 GetTransTime () const
int8 GetTransSeat () const
void SetTransport (Transport *t)
virtual float GetStationaryX () const
virtual float GetStationaryY () const
virtual float GetStationaryZ () const
virtual float GetStationaryO () const
- Public Member Functions inherited from Object
virtual ~Object ()
bool IsInWorld () const
ObjectGuid constGetGUID () const
PackedGuid constGetPackGUID () const
uint32 GetEntry () const
void SetEntry (uint32 entry)
float GetObjectScale () const
TypeID GetTypeId () const
bool isType (uint16 mask) const
virtual void BuildCreateUpdateBlockForPlayer (UpdateData *data, Player *target) const
void SendUpdateToPlayer (Player *player)
void BuildValuesUpdateBlockForPlayer (UpdateData *data, Player *target) const
void BuildOutOfRangeUpdateBlock (UpdateData *data) const
int32 GetInt32Value (uint16 index) const
uint32 GetUInt32Value (uint16 index) const
uint64 GetUInt64Value (uint16 index) const
float GetFloatValue (uint16 index) const
uint8 GetByteValue (uint16 index, uint8 offset) const
uint16 GetUInt16Value (uint16 index, uint8 offset) const
ObjectGuid constGetGuidValue (uint16 index) const
void SetInt32Value (uint16 index, int32 value)
void SetUInt32Value (uint16 index, uint32 value)
void UpdateUInt32Value (uint16 index, uint32 value)
void SetUInt64Value (uint16 index, uint64 value)
void SetFloatValue (uint16 index, float value)
void SetByteValue (uint16 index, uint8 offset, uint8 value)
void SetUInt16Value (uint16 index, uint8 offset, uint16 value)
void SetGuidValue (uint16 index, ObjectGuid const &value)
void SetStatFloatValue (uint16 index, float value)
void SetStatInt32Value (uint16 index, int32 value)
bool AddGuidValue (uint16 index, ObjectGuid const &value)
bool RemoveGuidValue (uint16 index, ObjectGuid const &value)
void ApplyModUInt32Value (uint16 index, int32 val, bool apply)
void ApplyModInt32Value (uint16 index, int32 val, bool apply)
void ApplyModUInt16Value (uint16 index, uint8 offset, int16 val, bool apply)
void ApplyModPositiveFloatValue (uint16 index, float val, bool apply)
void ApplyModSignedFloatValue (uint16 index, float val, bool apply)
void ApplyPercentModFloatValue (uint16 index, float val, bool apply)
void SetFlag (uint16 index, uint32 newFlag)
void RemoveFlag (uint16 index, uint32 oldFlag)
void ToggleFlag (uint16 index, uint32 flag)
bool HasFlag (uint16 index, uint32 flag) const
void ApplyModFlag (uint16 index, uint32 flag, bool apply)
void SetByteFlag (uint16 index, uint8 offset, uint8 newFlag)
void RemoveByteFlag (uint16 index, uint8 offset, uint8 newFlag)
void ToggleByteFlag (uint16 index, uint8 offset, uint8 flag)
bool HasByteFlag (uint16 index, uint8 offset, uint8 flag) const
void SetFlag64 (uint16 index, uint64 newFlag)
void RemoveFlag64 (uint16 index, uint64 oldFlag)
void ToggleFlag64 (uint16 index, uint64 flag)
bool HasFlag64 (uint16 index, uint64 flag) const
void ApplyModFlag64 (uint16 index, uint64 flag, bool apply)
std::vector< uint32 > constGetDynamicValues (uint16 index) const
void AddDynamicValue (uint16 index, uint32 value)
void RemoveDynamicValue (uint16 index, uint32 value)
void ClearDynamicValue (uint16 index)
void SetDynamicValue (uint16 index, uint8 offset, uint32 value)
void ClearUpdateMask (bool remove)
uint16 GetValuesCount () const
void BuildFieldsUpdate (Player *, UpdateDataMapType &) const
void SetFieldNotifyFlag (uint16 flag)
void RemoveFieldNotifyFlag (uint16 flag)
void ForceValuesUpdateAtIndex (uint32)
PlayerToPlayer ()
Player constToPlayer () const
CreatureToCreature ()
Creature constToCreature () const
UnitToUnit ()
Unit constToUnit () const
GameObjectToGameObject ()
GameObject constToGameObject () const
CorpseToCorpse ()
Corpse constToCorpse () const
DynamicObjectToDynObject ()
DynamicObject constToDynObject () const
AreaTriggerToAreaTrigger ()
AreaTrigger constToAreaTrigger () const
- Public Member Functions inherited from WorldLocation
 WorldLocation (uint32 mapId=MAPID_INVALID, float x=0.f, float y=0.f, float z=0.f, float o=0.f)
 WorldLocation (WorldLocation const &loc)
void WorldRelocate (WorldLocation const &loc)
void WorldRelocate (uint32 mapId=MAPID_INVALID, float x=0.f, float y=0.f, float z=0.f, float o=0.f)
WorldLocation GetWorldLocation () const
uint32 GetMapId () const
- Public Member Functions inherited from Position
 Position (float x=0, float y=0, float z=0, float o=0)
 Position (Position const &loc)
bool operator== (Position const &a)
bool operator!= (Position const &a)
void Relocate (float x, float y)
void Relocate (float x, float y, float z)
void Relocate (float x, float y, float z, float orientation)
void Relocate (Position const &pos)
void Relocate (Position const *pos)
void Relocate (G3D::Vector3 const &pos)
void RelocateOffset (Position const &offset)
void SetOrientation (float orientation)
float GetPositionX () const
float GetPositionY () const
float GetPositionZ () const
float GetOrientation () const
void GetPosition (float &x, float &y) const
void GetPosition (float &x, float &y, float &z) const
void GetPosition (float &x, float &y, float &z, float &o) const
Position GetPosition () const
Position::PositionXYStreamer PositionXYStream ()
Position::PositionXYZStreamer PositionXYZStream ()
Position::PositionXYZOStreamer PositionXYZOStream ()
bool IsPositionValid () const
float GetExactDist2dSq (float x, float y) const
float GetExactDist2d (const float x, const float y) const
float GetExactDist2dSq (Position const *pos) const
float GetExactDist2d (Position const *pos) const
float GetExactDistSq (float x, float y, float z) const
float GetExactDist (float x, float y, float z) const
float GetExactDistSq (Position const *pos) const
float GetExactDist (Position const *pos) const
void GetPositionOffsetTo (Position const &endPos, Position &retOffset) const
Position GetPositionWithOffset (Position const &offset) const
float GetAngle (Position const *pos) const
float GetAngle (float x, float y) const
float GetRelativeAngle (Position const *pos) const
float GetRelativeAngle (float x, float y) const
void GetSinCos (float x, float y, float &vsin, float &vcos) const
bool IsInDist2d (float x, float y, float dist) const
bool IsInDist2d (Position const *pos, float dist) const
bool IsInDist (float x, float y, float z, float dist) const
bool IsInDist (Position const *pos, float dist) const
bool IsWithinBox (const Position &center, float xradius, float yradius, float zradius) const
bool HasInArc (float arcangle, Position const *pos, float border=2.0f) const
bool HasInLine (Position const *pos, float width) const
std::string ToString () const
- Public Member Functions inherited from GridObject< Creature >
virtual ~GridObject ()
bool IsInGrid () const
void AddToGrid (GridRefManager< Creature > &m)
void RemoveFromGrid ()

Static Public Member Functions

static float _GetDamageMod (int32 Rank)
- Static Public Member Functions inherited from Unit
static ReputationRank GetFactionReactionTo (FactionTemplateEntry const *factionTemplateEntry, Unit const *target)
- Static Public Member Functions inherited from Position
static float NormalizeOrientation (float o)

Public Attributes

Loot loot
uint32 m_spells [CREATURE_MAX_SPELLS]
uint32 m_groupLootTimer
ObjectGuid lootingGroupLowGUID
uint32 m_PlayerDamageReq
float m_SightDistance
float m_CombatDistance
bool m_isTempWorldObject
- Public Attributes inherited from Unit
uint32 m_extraAttacks
bool m_canDualWield
ControlList m_Controlled
ObjectGuid m_SummonSlot [MAX_SUMMON_SLOT]
ObjectGuid m_ObjectSlot [MAX_GAMEOBJECT_SLOT]
float m_modMeleeHitChance
float m_modRangedHitChance
float m_modSpellHitChance
int32 m_baseSpellCritChance
float m_threatModifier [MAX_SPELL_SCHOOL]
float m_modAttackSpeedPct [3]
EventProcessor m_Events
SpellImmuneList m_spellImmune [MAX_SPELL_IMMUNITY]
uint32 m_lastSanctuaryTime
PetAuraSet m_petAuras
bool IsAIEnabled
bool NeedChangeAI
ObjectGuid LastCharmerGUID
bool m_ControlledByPlayer
- Public Attributes inherited from WorldObject
FlaggedValuesArray32< int32,
uint32, StealthType,
FlaggedValuesArray32< int32,
uint32, StealthType,
FlaggedValuesArray32< int32,
uint32, InvisibilityType,
FlaggedValuesArray32< int32,
uint32, InvisibilityType,
FlaggedValuesArray32< int32,
FlaggedValuesArray32< int32,
uint32 LastUsedScriptID
MovementInfo m_movementInfo
- Public Attributes inherited from WorldLocation
uint32 m_mapId
- Public Attributes inherited from Position
float m_positionX
float m_positionY
float m_positionZ

Protected Member Functions

bool CreateFromProto (ObjectGuid::LowType guidlow, uint32 entry, CreatureData const *data=nullptr, uint32 vehId=0)
bool InitEntry (uint32 entry, CreatureData const *data=nullptr)
void RegenerateMana ()
void RegenerateHealth ()
void Regenerate (Powers power)
bool IsInvisibleDueToDespawn () const override
bool CanAlwaysSee (WorldObject const *obj) const override
- Protected Member Functions inherited from Unit
 Unit (bool isWorldObject)
void BuildValuesUpdate (uint8 updatetype, ByteBuffer *data, Player *target) const override
void DestroyForPlayer (Player *target) const override
void _UpdateSpells (uint32 time)
void _DeleteRemovedAuras ()
void _UpdateAutoRepeatSpell ()
bool IsAlwaysVisibleFor (WorldObject const *seer) const override
bool IsAlwaysDetectableFor (WorldObject const *seer) const override
void DisableSpline ()
void SetFeared (bool apply)
void SetConfused (bool apply)
void SetStunned (bool apply)
void SetRooted (bool apply, bool packetOnly=false)
- Protected Member Functions inherited from WorldObject
 WorldObject (bool isWorldObject)
void SetLocationMapId (uint32 _mapId)
void SetLocationInstanceId (uint32 _instanceId)
virtual bool IsNeverVisible () const
- Protected Member Functions inherited from Object
 Object ()
void _InitValues ()
void _Create (ObjectGuid const &guid)
std::string _ConcatFields (uint16 startIndex, uint16 size) const
void _LoadIntoDataField (std::string const &data, uint32 startOffset, uint32 count)
uint32 GetUpdateFieldData (Player const *target, uint32 *&flags) const
uint32 GetDynamicUpdateFieldData (Player const *target, uint32 *&flags) const
void BuildMovementUpdate (ByteBuffer *data, uint32 flags) const
virtual void BuildDynamicValuesUpdate (uint8 updatetype, ByteBuffer *data, Player *target) const
void AddToObjectUpdateIfNeeded ()
- Protected Member Functions inherited from MapObject
 MapObject ()

Static Protected Member Functions

static float _GetHealthMod (int32 Rank)

Protected Attributes

VendorItemCounts m_vendorItemCounts
ObjectGuid m_lootRecipient
ObjectGuid m_lootRecipientGroup
ObjectGuid _skinner
time_t _pickpocketLootRestore
 Timers. More...
time_t m_corpseRemoveTime
time_t m_respawnTime
uint32 m_respawnDelay
uint32 m_corpseDelay
float m_respawnradius
uint32 m_boundaryCheckTime
uint32 m_combatPulseTime
uint32 m_combatPulseDelay
ReactStates m_reactState
MovementGeneratorType m_defaultMovementType
ObjectGuid::LowType m_spawnId
 For new or temporary creatures is 0 for saved it is lowguid. More...
uint8 m_equipmentId
int8 m_originalEquipmentId
bool m_AlreadyCallAssistance
bool m_AlreadySearchedAssistance
bool m_regenHealth
bool m_AI_locked
SpellSchoolMask m_meleeDamageSchoolMask
uint32 m_originalEntry
Position m_homePosition
Position m_transportHomePosition
bool DisableReputationGain
CreatureTemplate constm_creatureInfo
CreatureData constm_creatureData
uint16 m_LootMode
- Protected Attributes inherited from Unit
bool m_AutoRepeatFirstCast
uint32 m_attackTimer [MAX_ATTACK]
float m_createStats [MAX_STATS]
AttackerSet m_attackers
bool m_shouldReacquireTarget
DeathState m_deathState
int32 m_procDeep
DynObjectList m_dynObj
GameObjectList m_gameObj
uint32 m_transform
Spellm_currentSpells [CURRENT_MAX_SPELL]
AuraMap m_ownedAuras
AuraApplicationMap m_appliedAuras
AuraList m_removedAuras
AuraMap::iterator m_auraUpdateIterator
uint32 m_removedAurasCount
AuraEffectList m_modAuras [TOTAL_AURAS]
AuraList m_scAuras
AuraApplicationList m_interruptableAuras
AuraStateAurasMap m_auraStateAuras
uint32 m_interruptMask
float m_auraModifiersGroup [UNIT_MOD_END][MODIFIER_TYPE_END]
float m_weaponDamage [MAX_ATTACK][2]
bool m_canModifyStats
VisibleAuraMap m_visibleAuras
float m_speed_rate [MAX_MOVE_TYPE]
SharedVisionList m_sharedVision
uint32 m_reactiveTimer [MAX_REACTIVE]
uint32 m_regenTimer
ThreatManager m_ThreatManager
uint32 m_unitTypeMask
LiquidTypeEntry const_lastLiquid
uint32 m_movementCounter
 Incrementing counter used in movement packets. More...
- Protected Attributes inherited from WorldObject
std::string m_name
bool m_isActive
const bool m_isWorldObject
- Protected Attributes inherited from Object
uint16 m_objectType
TypeID m_objectTypeId
uint32 m_updateFlag
union {
   int32 *   m_int32Values
   uint32 *   m_uint32Values
   float *   m_floatValues
std::vector< uint32 > * _dynamicValues
UpdateMask _changesMask
UpdateMask _dynamicChangesMask
uint16 m_valuesCount
uint16 _dynamicValuesCount
uint16 _fieldNotifyFlags
bool m_objectUpdated

Private Member Functions

void ForcedDespawn (uint32 timeMSToDespawn=0)
bool CheckNoGrayAggroConfig (uint32 playerLevel, uint32 creatureLevel) const

Private Attributes

uint32 m_waypointID
uint32 m_path_id
bool TriggerJustRespawned
Spell const_focusSpell
uint32 _focusDelay

Locks the target during spell cast for proper facing

CreatureTextRepeatGroup m_textRepeat

Additional Inherited Members

- Public Types inherited from Unit
typedef std::set< Unit * > AttackerSet
typedef std::set< Unit * > ControlList
typedef std::multimap< uint32,
Aura * > 
typedef std::pair
< AuraMap::const_iterator,
AuraMap::const_iterator > 
typedef std::pair
< AuraMap::iterator,
AuraMap::iterator > 
typedef std::multimap< uint32,
AuraApplication * > 
typedef std::pair
< AuraApplicationMap::const_iterator,
AuraApplicationMap::const_iterator > 
typedef std::pair
< AuraApplicationMap::iterator,
AuraApplicationMap::iterator > 
typedef std::multimap
< AuraStateType,
AuraApplication * > 
typedef std::pair
< AuraStateAurasMap::const_iterator,
AuraStateAurasMap::const_iterator > 
typedef std::list< AuraEffect * > AuraEffectList
typedef std::list< Aura * > AuraList
typedef std::list
< AuraApplication * > 
typedef std::list
< DiminishingReturn
typedef std::map< uint8,
AuraApplication * > 
typedef std::set< PetAura const * > PetAuraSet
- Protected Types inherited from Unit
typedef std::list
< DynamicObject * > 
typedef std::list< GameObject * > GameObjectList

Constructor & Destructor Documentation

Creature::Creature ( bool  isWorldObject = false)
182  : Unit(isWorldObject), MapObject(),
189 {
194  for (uint8 i = 0; i < CREATURE_MAX_SPELLS; ++i)
195  m_spells[i] = 0;
197  DisableReputationGain = false;
199  m_SightDistance = sWorld->getFloatConfig(CONFIG_SIGHT_MONSTER);
200  m_CombatDistance = 0;//MELEE_RANGE;
202  ResetLootMode(); // restore default loot mode
203  TriggerJustRespawned = false;
204  m_isTempWorldObject = false;
205  _focusSpell = NULL;
206  _focusDelay = 0;
207 }
Position m_transportHomePosition
Definition: Creature.h:760
uint32 m_corpseDelay
Definition: Creature.h:736
CreatureTemplate const * m_creatureInfo
Definition: Creature.h:764
Definition: MotionMaster.h:37
CreatureData const * m_creatureData
Definition: Creature.h:765
Position m_homePosition
Definition: Creature.h:759
Definition: Unit.h:1131
Definition: Creature.h:75
uint32 m_boundaryCheckTime
Definition: Creature.h:738
bool m_isTempWorldObject
Definition: Creature.h:706
time_t m_respawnTime
Definition: Creature.h:734
uint16 _dynamicValuesCount
Definition: Object.h:246
bool m_AlreadyCallAssistance
Definition: Creature.h:751
bool m_AlreadySearchedAssistance
Definition: Creature.h:752
#define UI64LIT(N)
Definition: Define.h:138
arena_t NULL
Definition: jemalloc_internal.h:624
Definition: World.h:188
MovementGeneratorType m_defaultMovementType
Definition: Creature.h:746
#define sWorld
Definition: World.h:887
Definition: UpdateFields.h:183
time_t _pickpocketLootRestore
Definition: Creature.h:732
uint32 m_combatPulseDelay
Definition: Creature.h:740
ReactStates m_reactState
Definition: Creature.h:742
uint32 m_PlayerDamageReq
Definition: Creature.h:697
float m_respawnradius
Definition: Creature.h:737
uint32 m_spells[CREATURE_MAX_SPELLS]
Definition: Creature.h:602
CreatureGroup * m_formation
Definition: Creature.h:781
time_t m_corpseRemoveTime
Definition: Creature.h:733
Definition: Creature.h:70
Definition: SharedDefines.h:288
Definition: UpdateFields.h:176
Definition: Object.h:404
bool m_regenHealth
Definition: Creature.h:753
bool m_AI_locked
Definition: Creature.h:754
uint32 m_combatPulseTime
Definition: Creature.h:739
uint32 m_originalEntry
Definition: Creature.h:757
Spell const * _focusSpell
Definition: Creature.h:784
uint32 m_path_id
Definition: Creature.h:778
uint8 m_equipmentId
Definition: Creature.h:748
bool DisableReputationGain
Definition: Creature.h:762
bool TriggerJustRespawned
Definition: Creature.h:782
SpellSchoolMask m_meleeDamageSchoolMask
Definition: Creature.h:756
void ResetLootMode()
Definition: Creature.h:597
uint32 m_respawnDelay
Definition: Creature.h:735
uint32 m_groupLootTimer
Definition: Creature.h:652
uint32 _focusDelay
Locks the target during spell cast for proper facing
Definition: Creature.h:785
float m_SightDistance
Definition: Creature.h:704
uint16 m_valuesCount
Definition: Object.h:245
uint8_t uint8
Definition: Define.h:152
ObjectGuid::LowType m_spawnId
For new or temporary creatures is 0 for saved it is lowguid.
Definition: Creature.h:747
float m_CombatDistance
Definition: Creature.h:704
uint32 m_waypointID
Definition: Creature.h:777
Unit(bool isWorldObject)
Definition: Unit.cpp:197
int8 m_originalEquipmentId
Definition: Creature.h:749
uint32 m_regenTimer
Definition: Unit.h:2300

+ Here is the call graph for this function:

Creature::~Creature ( )
210 {
211  delete i_AI;
212  i_AI = NULL;
214  //if (m_uint32Values)
215  // TC_LOG_ERROR("entities.unit", "Deconstruct Creature Entry = %u", GetEntry());
216 }
arena_t NULL
Definition: jemalloc_internal.h:624
UnitAI * i_AI
Definition: Unit.h:2242

Member Function Documentation

float Creature::_GetDamageMod ( int32  Rank)
1246 {
1247  switch (Rank) // define rates for each elite rank
1248  {
1250  return sWorld->getRate(RATE_CREATURE_NORMAL_DAMAGE);
1252  return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE);
1258  return sWorld->getRate(RATE_CREATURE_ELITE_RARE_DAMAGE);
1259  default:
1260  return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_DAMAGE);
1261  }
1262 }
Definition: World.h:421
#define sWorld
Definition: World.h:887
Definition: SharedDefines.h:3707
Definition: SharedDefines.h:3704
Definition: SharedDefines.h:3706
Definition: World.h:417
Definition: SharedDefines.h:3708
Definition: World.h:418
Definition: SharedDefines.h:3705

+ Here is the caller graph for this function:

float Creature::_GetHealthMod ( int32  Rank)
1221 {
1222  switch (Rank) // define rates for each elite rank
1223  {
1225  return sWorld->getRate(RATE_CREATURE_NORMAL_HP);
1227  return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_HP);
1229  return sWorld->getRate(RATE_CREATURE_ELITE_RAREELITE_HP);
1231  return sWorld->getRate(RATE_CREATURE_ELITE_WORLDBOSS_HP);
1233  return sWorld->getRate(RATE_CREATURE_ELITE_RARE_HP);
1234  default:
1235  return sWorld->getRate(RATE_CREATURE_ELITE_ELITE_HP);
1236  }
1237 }
Definition: World.h:416
Definition: World.h:412
Definition: World.h:415
#define sWorld
Definition: World.h:887
Definition: World.h:413
Definition: SharedDefines.h:3707
Definition: SharedDefines.h:3704
Definition: SharedDefines.h:3706
Definition: World.h:414
Definition: SharedDefines.h:3708
Definition: SharedDefines.h:3705

+ Here is the caller graph for this function:

bool Creature::_IsTargetAcceptable ( const Unit target) const
2128 {
2129  ASSERT(target);
2131  // if the target cannot be attacked, the target is not acceptable
2132  if (IsFriendlyTo(target)
2133  || !target->isTargetableForAttack(false)
2134  || (m_vehicle && (IsOnVehicle(target) || m_vehicle->GetBase()->IsOnVehicle(target))))
2135  return false;
2137  if (target->HasUnitState(UNIT_STATE_DIED))
2138  {
2139  // guards can detect fake death
2141  return true;
2142  else
2143  return false;
2144  }
2146  const Unit* myVictim = getAttackerForHelper();
2147  const Unit* targetVictim = target->getAttackerForHelper();
2149  // if I'm already fighting target, or I'm hostile towards the target, the target is acceptable
2150  if (myVictim == target || targetVictim == this || IsHostileTo(target))
2151  return true;
2153  // if the target's victim is friendly, and the target is neutral, the target is acceptable
2154  if (targetVictim && IsFriendlyTo(targetVictim))
2155  return true;
2157  // if the target's victim is not friendly, or the target is friendly, the target is not acceptable
2158  return false;
2159 }
bool IsOnVehicle(const Unit *vehicle) const
Definition: Unit.cpp:14336
Definition: UpdateFields.h:110
Vehicle * m_vehicle
Definition: Unit.h:2304
bool IsFriendlyTo(Unit const *unit) const
Definition: Unit.cpp:7170
Definition: Unit.h:711
bool IsGuard() const
Definition: Creature.h:497
Definition: Unit.h:550
bool IsHostileTo(Unit const *unit) const
Definition: Unit.cpp:7165
Unit * getAttackerForHelper() const
Definition: Unit.cpp:7211
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1395
#define ASSERT
Definition: Errors.h:55
bool HasFlag(uint16 index, uint32 flag) const
Definition: Object.cpp:1239
Definition: Unit.h:1305
bool isTargetableForAttack(bool checkFakeDeath=true) const
Definition: Unit.cpp:9987
Unit * GetBase() const
May be called from scripts.
Definition: Vehicle.h:49

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Creature::AddLootMode ( uint16  lootMode)
595 { m_LootMode |= lootMode; }
uint16 m_LootMode
Definition: Creature.h:767

+ Here is the caller graph for this function:

void Creature::AddToWorld ( )
  • Register the creature for guid lookup

Reimplemented from Object.

Reimplemented in Pet.

219 {
221  if (!IsInWorld())
222  {
223  if (GetZoneScript())
227  if (m_spawnId)
228  GetMap()->GetCreatureBySpawnIdStore().insert(std::make_pair(m_spawnId, this));
231  SearchFormation();
232  AIM_Initialize();
233  if (IsVehicle())
234  GetVehicleKit()->Install();
235  }
236 }
bool Insert(KEY_TYPE const &handle, SPECIFIC_TYPE *obj)
Definition: TypeContainer.h:119
Map * GetMap() const
Definition: Object.h:543
bool IsVehicle() const
Definition: Unit.h:1406
void Install()
Initializes power type for vehicle. Nothing more.
Definition: Vehicle.cpp:73
void AddToWorld() override
Definition: Unit.cpp:11724
Definition: Creature.h:467
bool AIM_Initialize(CreatureAI *ai=NULL)
Definition: Creature.cpp:796
MapStoredObjectTypesContainer & GetObjectsStore()
Definition: Map.h:466
ObjectGuid const & GetGUID() const
Definition: Object.h:105
ZoneScript * GetZoneScript() const
Definition: Object.h:551
CreatureBySpawnIdContainer & GetCreatureBySpawnIdStore()
Definition: Map.h:469
void SearchFormation()
Definition: Creature.cpp:266
ObjectGuid::LowType m_spawnId
For new or temporary creatures is 0 for saved it is lowguid.
Definition: Creature.h:747
bool IsInWorld() const
Definition: Object.h:100
virtual void OnCreatureCreate(Creature *)
Definition: ZoneScript.h:35
Vehicle * GetVehicleKit() const
Definition: Unit.h:2165

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

CreatureAI* Creature::AI ( ) const
525 { return (CreatureAI*)i_AI; }
UnitAI * i_AI
Definition: Unit.h:2242
Definition: CreatureAI.h:68
bool Creature::AIM_Initialize ( CreatureAI ai = NULL)
797 {
798  // make sure nothing can change the AI during AI update
799  if (m_AI_locked)
800  {
801  TC_LOG_DEBUG("scripts", "AIM_Initialize: failed to init, locked.");
802  return false;
803  }
805  UnitAI* oldAI = i_AI;
809  i_AI = ai ? ai : FactorySelector::selectAI(this);
810  delete oldAI;
811  IsAIEnabled = true;
812  i_AI->InitializeAI();
813  // Initialize vehicle
814  if (GetVehicleKit())
815  GetVehicleKit()->Reset();
816  return true;
817 }
void Motion_Initialize()
Definition: Creature.cpp:819
#define TC_LOG_DEBUG(filterType__,...)
Definition: Log.h:198
bool IsAIEnabled
Definition: Unit.h:2161
UnitAI * i_AI
Definition: Unit.h:2242
virtual void InitializeAI()
Definition: UnitAI.h:130
bool m_AI_locked
Definition: Creature.h:754
void Reset(bool evading=false)
Reapplies immunities and reinstalls accessories. Only has effect for creatures.
Definition: Vehicle.cpp:141
CreatureAI * selectAI(Creature *creature)
Definition: CreatureAISelector.cpp:30
Vehicle * GetVehicleKit() const
Definition: Unit.h:2165
Definition: UnitAI.h:118

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Creature::AllLootRemovedFromCorpse ( )
2383 {
2384  if (loot.loot_type != LOOT_SKINNING && !IsPet() && GetCreatureTemplate()->SkinLootId && hasLootRecipient())
2388  time_t now = time(NULL);
2389  // Do not reset corpse remove time if corpse is already removed
2390  if (m_corpseRemoveTime <= now)
2391  return;
2393  float decayRate = sWorld->getRate(RATE_CORPSE_DECAY_LOOTED);
2395  // corpse skinnable, but without skinning flag, and then skinned, corpse will despawn next update
2396  if (loot.loot_type == LOOT_SKINNING)
2397  m_corpseRemoveTime = now;
2398  else
2399  m_corpseRemoveTime = now + uint32(m_corpseDelay * decayRate);
2402 }
Definition: LootMgr.h:95
uint32 m_corpseDelay
Definition: Creature.h:736
Definition: Unit.h:699
LootStore LootTemplates_Skinning("skinning_loot_template","creature skinning id", true)
time_t m_respawnTime
Definition: Creature.h:734
Definition: World.h:437
Loot loot
Definition: Creature.h:578
arena_t NULL
Definition: jemalloc_internal.h:624
#define sWorld
Definition: World.h:887
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
CreatureTemplate const * GetCreatureTemplate() const
Definition: Creature.h:558
time_t m_corpseRemoveTime
Definition: Creature.h:733
bool HaveLootFor(uint32 loot_id) const
Definition: LootMgr.h:229
bool IsPet() const
Definition: Unit.h:1403
uint32 m_respawnDelay
Definition: Creature.h:735
Definition: UpdateFields.h:109
LootType loot_type
Definition: LootMgr.h:325
bool hasLootRecipient() const
Definition: Creature.h:586
uint32_t uint32
Definition: g3dmath.h:168

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Creature::CalculateMinMaxDamage ( WeaponAttackType  attType,
bool  normalized,
bool  addTotalPct,
float &  minDamage,
float &  maxDamage 

Implements Unit.

908 {
909  float variance = 1.0f;
910  UnitMods unitMod;
911  switch (attType)
912  {
913  case BASE_ATTACK:
914  default:
915  variance = GetCreatureTemplate()->BaseVariance;
917  break;
918  case OFF_ATTACK:
919  variance = GetCreatureTemplate()->BaseVariance;
921  break;
922  case RANGED_ATTACK:
923  variance = GetCreatureTemplate()->RangeVariance;
925  break;
926  }
928  if (attType == OFF_ATTACK && !haveOffhandWeapon())
929  {
930  minDamage = 0.0f;
931  maxDamage = 0.0f;
932  return;
933  }
935  float weaponMinDamage = GetWeaponDamageRange(attType, MINDAMAGE);
936  float weaponMaxDamage = GetWeaponDamageRange(attType, MAXDAMAGE);
938  if (!CanUseAttackType(attType)) // disarm case
939  {
940  weaponMinDamage = 0.0f;
941  weaponMaxDamage = 0.0f;
942  }
944  float attackPower = GetTotalAttackPowerValue(attType);
945  float attackSpeedMulti = GetAPMultiplier(attType, normalized);
946  float baseValue =