AzerothCore 3.3.5a
OpenSource WoW Emulator
No Matches
Pet Class Reference

#include "Pet.h"

Inheritance diagram for Pet:
Guardian Minion TempSummon Creature Unit GridObject< Creature > MovableMapObject WorldObject Object WorldLocation Position

Public Member Functions

 Pet (Player *owner, PetType type=MAX_PET_TYPE)
 ~Pet () override=default
void AddToWorld () override
void RemoveFromWorld () override
float GetNativeObjectScale () const override
void SetDisplayId (uint32 modelId) override
PetType getPetType () const
void setPetType (PetType type)
bool isControlled () const
bool isTemporarySummoned () const
bool IsPermanentPetFor (Player *owner) const
bool Create (ObjectGuid::LowType guidlow, Map *map, uint32 phaseMask, uint32 Entry, uint32 pet_number)
bool CreateBaseAtCreature (Creature *creature)
bool CreateBaseAtCreatureInfo (CreatureTemplate const *cinfo, Unit *owner)
bool CreateBaseAtTamed (CreatureTemplate const *cinfo, Map *map, uint32 phaseMask)
bool LoadPetFromDB (Player *owner, uint32 petEntry, uint32 petnumber, bool current, uint32 healthPct=0)
bool isBeingLoaded () const override
void SavePetToDB (PetSaveMode mode)
void FillPetInfo (PetStable::PetInfo *petInfo) const
void Remove (PetSaveMode mode, bool returnreagent=false)
void setDeathState (DeathState s, bool despawn=false) override
void Update (uint32 diff) override
uint8 GetPetAutoSpellSize () const override
uint32 GetPetAutoSpellOnPos (uint8 pos) const override
void LoseHappiness ()
HappinessState GetHappinessState ()
void GivePetXP (uint32 xp)
void GivePetLevel (uint8 level)
void SynchronizeLevelWithOwner ()
bool HaveInDiet (ItemTemplate const *item) const
uint32 GetCurrentFoodBenefitLevel (uint32 itemlevel) const
void SetDuration (Milliseconds dur)
Milliseconds GetDuration () const
void ToggleAutocast (SpellInfo const *spellInfo, bool apply)
bool HasSpell (uint32 spell) const override
void LearnPetPassives ()
void CastPetAuras (bool current)
void CastWhenWillAvailable (uint32 spellid, Unit *spellTarget, Unit *oldTarget, bool spellIsPositive=false)
void ClearCastWhenWillAvailable ()
void RemoveSpellCooldown (uint32 spell_id, bool update)
void _SaveSpellCooldowns (CharacterDatabaseTransaction trans)
void _SaveAuras (CharacterDatabaseTransaction trans)
void _SaveSpells (CharacterDatabaseTransaction trans)
void _LoadSpellCooldowns (PreparedQueryResult result)
void _LoadAuras (PreparedQueryResult result, uint32 timediff)
void _LoadSpells (PreparedQueryResult result)
bool addSpell (uint32 spellId, ActiveStates active=ACT_DECIDE, PetSpellState state=PETSPELL_NEW, PetSpellType type=PETSPELL_NORMAL)
bool learnSpell (uint32 spell_id)
void learnSpellHighRank (uint32 spellid)
void InitLevelupSpellsForLevel ()
bool unlearnSpell (uint32 spell_id, bool learn_prev, bool clear_ab=true)
bool removeSpell (uint32 spell_id, bool learn_prev, bool clear_ab=true)
void CleanupActionBar ()
std::string GenerateActionBarData () const
void InitPetCreateSpells ()
bool resetTalents ()
void InitTalentForLevel ()
uint8 GetMaxTalentPointsForLevel (uint8 level)
uint8 GetFreeTalentPoints ()
void SetFreeTalentPoints (uint8 points)
uint64 GetAuraUpdateMaskForRaid () const
void SetAuraUpdateMaskForRaid (uint8 slot)
void ResetAuraUpdateMaskForRaid ()
DeclinedName const * GetDeclinedNames () const
PlayerGetOwner () const
void SetLoading (bool load)
bool HasTempSpell () const
std::string GetDebugInfo () const override
- Public Member Functions inherited from Guardian
 Guardian (SummonPropertiesEntry const *properties, ObjectGuid owner, bool isWorldObject)
void InitStats (uint32 duration) override
bool InitStatsForLevel (uint8 level)
void InitSummon () override
bool UpdateStats (Stats stat) override
bool UpdateAllStats () override
void UpdateArmor () override
void UpdateMaxHealth () override
void UpdateMaxPower (Powers power) override
void UpdateAttackPowerAndDamage (bool ranged=false) override
void UpdateDamagePhysical (WeaponAttackType attType) override
std::string GetDebugInfo () const override
- Public Member Functions inherited from Minion
 Minion (SummonPropertiesEntry const *properties, ObjectGuid owner, bool isWorldObject)
void InitStats (uint32 duration) override
void RemoveFromWorld () override
UnitGetOwner () const
float GetFollowAngle () const override
void SetFollowAngle (float angle)
bool IsPetGhoul () const
bool IsGuardianPet () const
void setDeathState (DeathState s, bool despawn=false) override
std::string GetDebugInfo () const override
- Public Member Functions inherited from TempSummon
 TempSummon (SummonPropertiesEntry const *properties, ObjectGuid owner, bool isWorldObject)
 ~TempSummon () override=default
void Update (uint32 time) override
virtual void InitStats (uint32 lifetime)
virtual void InitSummon ()
virtual void UnSummon (uint32 msTime=0)
void RemoveFromWorld () override
void SetTempSummonType (TempSummonType type)
void SaveToDB (uint32, uint8, uint32) override
WorldObjectGetSummoner () const
UnitGetSummonerUnit () const
CreatureGetSummonerCreatureBase () const
GameObjectGetSummonerGameObject () const
ObjectGuid GetSummonerGUID () const
TempSummonType GetSummonType () const
uint32 GetTimer ()
void SetTimer (uint32 t)
void SetVisibleBySummonerOnly (bool visibleBySummonerOnly)
bool IsVisibleBySummonerOnly () const
std::string GetDebugInfo () const override
- Public Member Functions inherited from Creature
 Creature (bool isWorldObject=false)
 ~Creature () override
void AddToWorld () override
void RemoveFromWorld () override
float GetNativeObjectScale () const override
void SetObjectScale (float scale) override
void SetDisplayId (uint32 modelId) override
void DisappearAndDie ()
bool isVendorWithIconSpeak () const
bool Create (ObjectGuid::LowType guidlow, Map *map, uint32 phaseMask, uint32 Entry, uint32 vehId, float x, float y, float z, float ang, const CreatureData *data=nullptr)
bool LoadCreaturesAddon (bool reload=false)
void SelectLevel (bool changelevel=true)
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)
void SetCorpseRemoveTime (uint32 delay)
uint32 GetCorpseDelay () const
bool IsRacialLeader () const
bool IsCivilian () const
bool IsTrigger () const
bool IsGuard () const
CreatureMovementData const & GetMovementTemplate () const
bool CanWalk () const
bool CanSwim () const override
 This method check the current flag/status of a creature and its inhabit type.
bool CanEnterWater () const override
bool CanFly () const override
bool CanHover () const
MovementGeneratorType GetDefaultMovementType () const override
 -------—End of Pet responses methods-------—
void SetDefaultMovementType (MovementGeneratorType mgt)
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 IsValidTrainerForPlayer (Player *player, uint32 *npcFlags=nullptr) const
bool CanCreatureAttack (Unit const *victim, bool skipDistCheck=false) const
void LoadSpellTemplateImmunity ()
bool IsImmunedToSpell (SpellInfo const *spellInfo, Spell const *spell=nullptr) override
bool HasMechanicTemplateImmunity (uint32 mask) const
bool IsImmunedToSpellEffect (SpellInfo const *spellInfo, uint32 index) const override
bool isElite () const
bool isWorldBoss () const
bool IsDungeonBoss () const
bool IsImmuneToKnockback () const
bool IsAvoidingAOE () const
uint8 getLevelForTarget (WorldObject const *target) const override
bool IsInEvadeMode () const
bool IsEvadingAttacks () const
bool AIM_Initialize (CreatureAI *ai=nullptr)
void Motion_Initialize ()
CreatureAIAI () const
bool SetWalk (bool enable) override
bool SetDisableGravity (bool disable, bool packetOnly=false, bool updateAnimationTier=true) override
bool SetSwim (bool enable) override
bool SetCanFly (bool enable, bool packetOnly=false) override
bool SetWaterWalking (bool enable, bool packetOnly=false) override
bool SetFeatherFall (bool enable, bool packetOnly=false) override
bool SetHover (bool enable, bool packetOnly=false, bool updateAnimationTier=true) override
bool HasSpellFocus (Spell const *focusSpell=nullptr) const
uint32 GetShieldBlockValue () const override
SpellSchoolMask GetMeleeDamageSchoolMask (WeaponAttackType=BASE_ATTACK, uint8=0) const override
void SetMeleeDamageSchool (SpellSchools school)
void _AddCreatureSpellCooldown (uint32 spell_id, uint16 categoryId, uint32 end_time)
void AddSpellCooldown (uint32 spell_id, uint32, uint32 end_time, bool needSendToClient=false, bool forceSendToSpectator=false) override
bool HasSpellCooldown (uint32 spell_id) const override
uint32 GetSpellCooldown (uint32 spell_id) const
void ProhibitSpellSchool (SpellSchoolMask idSchoolMask, uint32 unTimeMs) override
bool IsSpellProhibited (SpellSchoolMask idSchoolMask) const
bool HasSpell (uint32 spellID) const override
void UpdateMovementFlags ()
uint32 GetRandomId (uint32 id1, uint32 id2, uint32 id3)
bool UpdateEntry (uint32 entry, const CreatureData *data=nullptr, bool changelevel=true, bool updateAI=false)
bool UpdateEntry (uint32 entry, bool updateAI)
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, uint8 damageIndex) override
void SetCanDualWield (bool value) override
int8 GetOriginalEquipmentId () const
uint8 GetCurrentEquipmentId ()
void SetCurrentEquipmentId (uint8 id)
float GetSpellDamageMod (int32 Rank)
VendorItemData const * GetVendorItems () const
uint32 GetVendorItemCurrentCount (VendorItem const *vItem)
uint32 UpdateVendorItemCurrentCount (VendorItem const *vItem, uint32 used_count)
TrainerSpellData const * GetTrainerSpells () const
CreatureTemplate const * GetCreatureTemplate () const
CreatureData const * GetCreatureData () const
void SetDetectionDistance (float dist)
CreatureAddon const * GetCreatureAddon () const
std::string const & GetAIName () const
std::string GetScriptName () const
uint32 GetScriptId () const
std::string const & GetNameForLocaleIdx (LocaleConstant locale_idx) const override
void setDeathState (DeathState s, bool despawn=false) override
bool LoadFromDB (ObjectGuid::LowType guid, Map *map, bool allowDuplicate=false)
bool LoadCreatureFromDB (ObjectGuid::LowType guid, Map *map, bool addToMap=true, bool gridLoad=false, bool allowDuplicate=false)
void SaveToDB ()
virtual void SaveToDB (uint32 mapid, uint8 spawnMask, uint32 phaseMask)
virtual void DeleteFromDB ()
ObjectGuid GetLootRecipientGUID () const
PlayerGetLootRecipient () const
ObjectGuid::LowType GetLootRecipientGroupGUID () const
GroupGetLootRecipientGroup () const
bool hasLootRecipient () const
bool isTappedBy (Player const *player) const
bool CanGeneratePickPocketLoot () const
void SetPickPocketLootTime ()
void ResetPickPocketLootTime ()
void SetLootRecipient (Unit *unit, bool withGroup=true)
void AllLootRemovedFromCorpse ()
uint16 GetLootMode () const
bool HasLootMode (uint16 lootMode) const
void SetLootMode (uint16 lootMode)
void AddLootMode (uint16 lootMode)
void RemoveLootMode (uint16 lootMode)
void ResetLootMode ()
SpellInfo const * reachWithSpellAttack (Unit *victim)
SpellInfo const * reachWithSpellCure (Unit *victim)
bool CanStartAttack (Unit const *u) const
float GetAggroRange (Unit const *target) const
float GetAttackDistance (Unit const *player) const
float GetDetectionRange () const
void SendAIReaction (AiReaction reactionType)
UnitSelectNearestTarget (float dist=0, bool playerOnly=false) const
UnitSelectNearestTargetInAttackDistance (float dist) const
void DoFleeToGetAssistance ()
void CallForHelp (float fRadius, Unit *target=nullptr)
void CallAssistance (Unit *target=nullptr)
void SetNoCallAssistance (bool val)
void SetNoSearchAssistance (bool val)
bool HasSearchedAssistance ()
bool CanAssistTo (Unit const *u, Unit const *enemy, bool checkfaction=true) const
bool _IsTargetAcceptable (Unit const *target) const
bool CanIgnoreFeignDeath () const
void UpdateMoveInLineOfSightState ()
bool IsMoveInLineOfSightDisabled ()
bool IsMoveInLineOfSightStrictlyDisabled ()
void RemoveCorpse (bool setSpawnTime=true, bool skipVisibility=false)
void DespawnOrUnsummon (Milliseconds msTimeToDespawn, Seconds forcedRespawnTimer)
void DespawnOrUnsummon (uint32 msTimeToDespawn=0)
void DespawnOnEvade (Seconds respawnDelay=20s)
time_t const & GetRespawnTime () const
time_t GetRespawnTimeEx () const
void SetRespawnTime (uint32 respawn)
void Respawn (bool force=false)
void SaveRespawnTime () override
uint32 GetRespawnDelay () const
void SetRespawnDelay (uint32 delay)
uint32 GetCombatPulseDelay () const
void SetCombatPulseDelay (uint32 delay)
float GetWanderDistance () const
void SetWanderDistance (float dist)
void DoImmediateBoundaryCheck ()
void SendZoneUnderAttackMessage (Player *attacker)
 Send a message to LocalDefense channel for players opposition team in the zone.
void SetInCombatWithZone ()
bool hasQuest (uint32 quest_id) const override
bool hasInvolvedQuest (uint32 quest_id) const override
bool isRegeneratingHealth ()
void SetRegeneratingHealth (bool c)
void SetRegeneratingPower (bool c)
virtual uint8 GetPetAutoSpellSize () const
virtual uint32 GetPetAutoSpellOnPos (uint8 pos) const
void SetCannotReachTarget (ObjectGuid const &target=ObjectGuid::Empty)
bool CanNotReachTarget () const
bool IsNotReachableAndNeedRegen () 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 const & GetHomePosition () 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 const & GetTransportHomePosition () const
uint32 GetWaypointPath () const
void LoadPath (uint32 pathid)
uint32 GetCurrentWaypointID () const
void UpdateWaypointID (uint32 wpID)
void SearchFormation ()
CreatureGroup const * GetFormation () const
CreatureGroupGetFormation ()
void SetFormation (CreatureGroup *formation)
UnitSelectVictim ()
void SetDisableReputationGain (bool disable)
bool IsReputationGainDisabled () const
bool IsDamageEnoughForLootingAndReward () const
void LowerPlayerDamageReq (uint32 unDamage, bool damagedByPlayer=true)
void ResetPlayerDamageReq ()
uint32 GetPlayerDamageReq () const
uint32 GetOriginalEntry () const
void SetOriginalEntry (uint32 entry)
void SetTarget (ObjectGuid guid=ObjectGuid::Empty) override
void FocusTarget (Spell const *focusSpell, WorldObject const *target)
void ReleaseFocus (Spell const *focusSpell)
bool IsMovementPreventedByCasting () const override
time_t GetLastDamagedTime () const
std::shared_ptr< time_t > const & GetLastDamagedTimePtr () const
void SetLastDamagedTime (time_t val)
void SetLastDamagedTimePtr (std::shared_ptr< time_t > const &val)
bool IsFreeToMove ()
bool HasSwimmingFlagOutOfCombat () const
void RefreshSwimmingFlag (bool recheck=false)
void SetAssistanceTimer (uint32 value)
void ModifyThreatPercentTemp (Unit *victim, int32 percent, Milliseconds duration)
void ResumeChasingVictim ()
 Helper to resume chasing current victim.
std::string GetDebugInfo () const override
- Public Member Functions inherited from Unit
 ~Unit () override
UnitAIGetAI ()
void SetAI (UnitAI *newAI)
void AddToWorld () override
void RemoveFromWorld () override
void CleanupBeforeRemoveFromMap (bool finalCleanup)
void CleanupsBeforeDelete (bool finalCleanup=true) override
uint32 GetDynamicFlags () const override
void ReplaceAllDynamicFlags (uint32 flag) override
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 Update (uint32 time) override
void setAttackTimer (WeaponAttackType type, int32 time)
void resetAttackTimer (WeaponAttackType type=BASE_ATTACK)
int32 getAttackTimer (WeaponAttackType type) const
bool isAttackReady (WeaponAttackType type=BASE_ATTACK) const
bool haveOffhandWeapon () const
bool CanDualWield () const
virtual void SetCanDualWield (bool value)
float GetCombatReach () const override
float GetMeleeReach () const
bool IsWithinRange (Unit const *obj, float dist) const
bool IsWithinCombatRange (Unit const *obj, float dist2compare) const
bool IsWithinMeleeRange (Unit const *obj, float dist=0.f) const
float GetMeleeRange (Unit const *target) const
virtual SpellSchoolMask GetMeleeDamageSchoolMask (WeaponAttackType attackType=BASE_ATTACK, uint8 damageIndex=0) const =0
bool GetRandomContactPoint (Unit const *target, float &x, float &y, float &z, bool force=false) const
void _addAttacker (Unit *pAttacker)
void _removeAttacker (Unit *pAttacker)
UnitgetAttackerForHelper () const
bool Attack (Unit *victim, bool meleeAttack)
void CastStop (uint32 except_spellid=0, bool withInstant=true)
bool AttackStop ()
void RemoveAllAttackers ()
AttackerSet const & getAttackers () const
bool GetMeleeAttackPoint (Unit *attacker, Position &pos)
bool isAttackingPlayer () const
UnitGetVictim () const
void CombatStop (bool includingCast=false)
void CombatStopWithPets (bool includingCast=false)
void StopAttackFaction (uint32 faction_id)
void StopAttackingInvalidTarget ()
UnitSelectNearbyTarget (Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
UnitSelectNearbyNoTotemTarget (Unit *exclude=nullptr, float dist=NOMINAL_MELEE_RANGE) const
void SendMeleeAttackStop (Unit *victim=nullptr)
void SendMeleeAttackStart (Unit *victim, Player *sendTo=nullptr)
void AddUnitState (uint32 f)
bool HasUnitState (const uint32 f) const
void ClearUnitState (uint32 f)
uint32 GetUnitState () const
bool CanFreeMove () const
uint32 HasUnitTypeMask (uint32 mask) const
void AddUnitTypeMask (uint32 mask)
uint32 GetUnitTypeMask () const
bool IsSummon () const
bool IsGuardian () const
bool IsControllableGuardian () const
bool IsPet () const
bool IsHunterPet () const
bool IsTotem () const
bool IsVehicle () const
uint8 getLevel () const
uint8 GetLevel () const
uint8 getLevelForTarget (WorldObject const *) const override
void SetLevel (uint8 lvl, bool showLevelChange=true)
uint8 getRace (bool original=false) const
void setRace (uint8 race)
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
float GetPowerPct (Powers power) 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)
uint32 GetPower (Powers power) const
uint32 GetMaxPower (Powers power) const
void SetPower (Powers power, uint32 val, bool withPowerUpdate=true, bool fromRegenerate=false)
void SetMaxPower (Powers power, uint32 val)
int32 ModifyPower (Powers power, int32 val, bool withPowerUpdate=true)
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)
UnitFlags GetUnitFlags () const
bool HasUnitFlag (UnitFlags flags) const
void SetUnitFlag (UnitFlags flags)
void RemoveUnitFlag (UnitFlags flags)
void ReplaceAllUnitFlags (UnitFlags flags)
UnitFlags2 GetUnitFlags2 () const
bool HasUnitFlag2 (UnitFlags2 flags) const
void SetUnitFlag2 (UnitFlags2 flags)
void RemoveUnitFlag2 (UnitFlags2 flags)
void ReplaceAllUnitFlags2 (UnitFlags2 flags)
SheathState GetSheath () const
virtual void SetSheath (SheathState sheathed)
uint32 GetFaction () const
void SetFaction (uint32 faction)
FactionTemplateEntry const * GetFactionTemplateEntry () const
ReputationRank GetReactionTo (Unit const *target, bool checkOriginalFaction=false) const
ReputationRank GetFactionReactionTo (FactionTemplateEntry const *factionTemplateEntry, 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 IsInSanctuary () const
bool IsPvP () const
bool IsFFAPvP () const
void SetPvP (bool state)
uint32 GetCreatureType () const
uint32 GetCreatureTypeMask () const
uint8 getStandState () const
bool IsSitState () const
bool IsStandState () const
void SetStandState (uint8 state)
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 ()
uint16 GetMaxSkillValueForLevel (Unit const *target=nullptr) const
void KillSelf (bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
void ProcDamageAndSpellFor (bool isVictim, Unit *target, uint32 procFlag, uint32 procExtra, WeaponAttackType attType, SpellInfo const *procSpellInfo, uint32 damage, SpellInfo const *procAura=nullptr, int8 procAuraEffectIndex=-1, Spell const *procSpell=nullptr, DamageInfo *damageInfo=nullptr, HealInfo *healInfo=nullptr, uint32 procPhase=2)
void GetProcAurasTriggeredOnEvent (std::list< AuraApplication * > &aurasTriggeringProc, std::list< AuraApplication * > *procAuras, ProcEventInfo eventInfo)
void TriggerAurasProcOnEvent (CalcDamageInfo &damageInfo)
void TriggerAurasProcOnEvent (std::list< AuraApplication * > *myProcAuras, std::list< AuraApplication * > *targetProcAuras, Unit *actionTarget, uint32 typeMaskActor, uint32 typeMaskActionTarget, uint32 spellTypeMask, uint32 spellPhaseMask, uint32 hitMask, Spell *spell, DamageInfo *damageInfo, HealInfo *healInfo)
void TriggerAurasProcOnEvent (ProcEventInfo &eventInfo, std::list< AuraApplication * > &procAuras)
void HandleEmoteCommand (uint32 emoteId)
void AttackerStateUpdate (Unit *victim, WeaponAttackType attType=BASE_ATTACK, bool extra=false, bool ignoreCasting=false)
void CalculateMeleeDamage (Unit *victim, CalcDamageInfo *damageInfo, WeaponAttackType attackType=BASE_ATTACK, const bool sittingVictim=false)
void DealMeleeDamage (CalcDamageInfo *damageInfo, bool durabilityLoss)
void HandleProcExtraAttackFor (Unit *victim, uint32 count)
void SetLastExtraAttackSpell (uint32 spellId)
uint32 GetLastExtraAttackSpell () const
void AddExtraAttacks (uint32 count)
void SetLastDamagedTargetGuid (ObjectGuid const &guid)
ObjectGuid const & GetLastDamagedTargetGuid () const
void CalculateSpellDamageTaken (SpellNonMeleeDamage *damageInfo, int32 damage, SpellInfo const *spellInfo, WeaponAttackType attackType=BASE_ATTACK, bool crit=false)
void DealSpellDamage (SpellNonMeleeDamage *damageInfo, bool durabilityLoss, Spell const *spell=nullptr)
float GetMeleeCritChanceReduction () const
float GetRangedCritChanceReduction () const
float GetSpellCritChanceReduction () const
uint32 GetMeleeCritDamageReduction (uint32 damage) const
uint32 GetRangedCritDamageReduction (uint32 damage) const
uint32 GetSpellCritDamageReduction (uint32 damage) const
uint32 GetMeleeDamageReduction (uint32 damage) const
uint32 GetRangedDamageReduction (uint32 damage) const
uint32 GetSpellDamageReduction (uint32 damage) const
float MeleeSpellMissChance (Unit const *victim, WeaponAttackType attType, int32 skillDiff, uint32 spellId) const
SpellMissInfo MeleeSpellHitResult (Unit *victim, SpellInfo const *spell)
SpellMissInfo MagicSpellHitResult (Unit *victim, SpellInfo const *spell)
SpellMissInfo SpellHitResult (Unit *victim, SpellInfo const *spell, bool canReflect=false)
SpellMissInfo SpellHitResult (Unit *victim, Spell const *spell, bool canReflect=false)
float GetUnitDodgeChance () const
float GetUnitParryChance () const
float GetUnitBlockChance () const
float GetUnitMissChance (WeaponAttackType attType) const
float GetUnitCriticalChance (WeaponAttackType attackType, Unit const *victim) const
int32 GetMechanicResistChance (SpellInfo const *spell)
bool CanUseAttackType (uint8 attacktype) const
virtual uint32 GetShieldBlockValue () const =0
uint32 GetShieldBlockValue (uint32 soft_cap, uint32 hard_cap) const
uint32 GetUnitMeleeSkill (Unit const *target=nullptr) const
uint32 GetDefenseSkillValue (Unit const *target=nullptr) const
uint32 GetWeaponSkillValue (WeaponAttackType attType, Unit const *target=nullptr) const
float GetWeaponProcChance () const
float GetPPMProcChance (uint32 WeaponSpeed, float PPM, SpellInfo const *spellProto) const
MeleeHitOutcome RollMeleeOutcomeAgainst (Unit const *victim, WeaponAttackType attType) const
MeleeHitOutcome RollMeleeOutcomeAgainst (Unit const *victim, WeaponAttackType attType, int32 crit_chance, int32 miss_chance, int32 dodge_chance, int32 parry_chance, int32 block_chance) const
NPCFlags GetNpcFlags () const
bool HasNpcFlag (NPCFlags flags) const
void SetNpcFlag (NPCFlags flags)
void RemoveNpcFlag (NPCFlags flags)
void ReplaceAllNpcFlags (NPCFlags flags)
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
void SetImmuneToAll (bool apply, bool keepCombat=false)
bool IsImmuneToAll () const
void SetImmuneToPC (bool apply, bool keepCombat=false)
bool IsImmuneToPC () const
void SetImmuneToNPC (bool apply, bool keepCombat=false)
bool IsImmuneToNPC () const
bool IsEngaged () const
bool IsEngagedBy (Unit const *who) const
bool IsInCombat () const
bool IsInCombatWith (Unit const *who) const
bool IsPetInCombat () const
void CombatStart (Unit *target, bool initialAggro=true)
void CombatStartOnCast (Unit *target, bool initialAggro=true, uint32 duration=0)
void SetInCombatState (bool PvP, Unit *enemy=nullptr, uint32 duration=0)
void SetInCombatWith (Unit *enemy, uint32 duration=0)
void ClearInCombat ()
void ClearInPetCombat ()
uint32 GetCombatTimer () const
void SetCombatTimer (uint32 timer)
bool HasAuraTypeWithFamilyFlags (AuraType auraType, uint32 familyName, uint32 familyFlags) const
virtual bool HasSpell (uint32) const
bool HasBreakableByDamageAuraType (AuraType type, uint32 excludeAura=0) const
bool HasBreakableByDamageCrowdControlAura (Unit *excludeCasterChannel=nullptr) const
bool HasStealthAura () const
bool HasInvisibilityAura () const
bool isFeared () const
bool isInRoots () const
bool IsPolymorphed () const
bool isFrozen () const
bool isTargetableForAttack (bool checkFakeDeath=true, Unit const *byWho=nullptr) const
bool IsValidAttackTarget (Unit const *target, SpellInfo const *bySpell=nullptr) const
bool _IsValidAttackTarget (Unit const *target, SpellInfo const *bySpell, WorldObject const *obj=nullptr) const
bool IsValidAssistTarget (Unit const *target) const
bool _IsValidAssistTarget (Unit const *target, SpellInfo const *bySpell) const
virtual bool IsInWater () const
virtual bool IsUnderWater () const
bool isInAccessiblePlaceFor (Creature const *c) const
void SendHealSpellLog (Unit *victim, uint32 SpellID, uint32 Damage, uint32 OverHeal, uint32 Absorb, bool critical=false)
int32 HealBySpell (HealInfo &healInfo, bool critical=false)
void SendEnergizeSpellLog (Unit *victim, uint32 SpellID, uint32 Damage, Powers powertype)
void EnergizeBySpell (Unit *victim, uint32 SpellID, uint32 Damage, Powers powertype)
SpellCastResult CastSpell (SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (Unit *victim, uint32 spellId, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (Unit *victim, uint32 spellId, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (Unit *victim, SpellInfo const *spellInfo, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (Unit *victim, SpellInfo const *spellInfo, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (float x, float y, float z, uint32 spellId, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastSpell (GameObject *go, uint32 spellId, bool triggered, Item *castItem=nullptr, AuraEffect *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastCustomSpell (Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastCustomSpell (uint32 spellId, SpellValueMod mod, int32 value, Unit *victim, bool triggered, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastCustomSpell (uint32 spellId, SpellValueMod mod, int32 value, Unit *victim=nullptr, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
SpellCastResult CastCustomSpell (uint32 spellId, CustomSpellValues const &value, Unit *victim=nullptr, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=nullptr, AuraEffect const *triggeredByAura=nullptr, ObjectGuid originalCaster=ObjectGuid::Empty)
AuraAddAura (uint32 spellId, Unit *target)
AuraAddAura (SpellInfo const *spellInfo, uint8 effMask, Unit *target)
void SetAuraStack (uint32 spellId, Unit *target, uint32 stack)
void SendPlaySpellVisual (uint32 id)
void SendPlaySpellImpact (ObjectGuid guid, uint32 id)
void BuildCooldownPacket (WorldPacket &data, uint8 flags, uint32 spellId, uint32 cooldown)
void BuildCooldownPacket (WorldPacket &data, uint8 flags, PacketCooldowns const &cooldowns)
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 *log)
void SendSpellNonMeleeReflectLog (SpellNonMeleeDamage *log, Unit *attacker)
void SendSpellNonMeleeDamageLog (Unit *target, SpellInfo const *spellInfo, uint32 Damage, SpellSchoolMask damageSchoolMask, uint32 AbsorbedDamage, uint32 Resist, bool PhysicalDamage, uint32 Blocked, bool CriticalHit=false, bool Split=false)
void SendPeriodicAuraLog (SpellPeriodicAuraLogInfo *pInfo)
void SendSpellMiss (Unit *target, uint32 spellID, SpellMissInfo missInfo)
void SendSpellDamageResist (Unit *target, uint32 spellId)
void SendSpellDamageImmune (Unit *target, uint32 spellId)
void NearTeleportTo (Position &pos, bool casting=false, bool vehicleTeleport=false, bool withPet=false, bool removeTransport=false)
void NearTeleportTo (float x, float y, float z, float orientation, bool casting=false, bool vehicleTeleport=false, bool withPet=false, bool removeTransport=false)
void SendTameFailure (uint8 result)
void SendTeleportPacket (Position &pos)
virtual bool UpdatePosition (float x, float y, float z, float ang, bool teleport=false)
bool UpdatePosition (const Position &pos, bool teleport=false)
void UpdateOrientation (float orientation)
 Only server-side orientation update, does not broadcast to client.
void UpdateHeight (float newZ)
 Only server-side height update, does not broadcast to client.
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)
void SendMonsterMove (float NewPosX, float NewPosY, float NewPosZ, uint32 TransitTime, SplineFlags sf=SPLINEFLAG_WALK_MODE)
void MonsterMoveWithSpeed (float x, float y, float z, float speed)
void SendMovementFlagUpdate (bool self=false)
virtual bool SetWalk (bool enable)
virtual bool SetDisableGravity (bool disable, bool packetOnly=false, bool updateAnimationTier=true)
virtual bool SetSwim (bool enable)
virtual bool SetCanFly (bool enable, bool packetOnly=false)
virtual bool SetWaterWalking (bool enable, bool packetOnly=false)
virtual bool SetFeatherFall (bool enable, bool packetOnly=false)
virtual bool SetHover (bool enable, bool packetOnly=false, bool updateAnimationTier=true)
void SendMovementWaterWalking (Player *sendTo)
void SendMovementFeatherFall (Player *sendTo)
void SendMovementHover (Player *sendTo)
void SetInFront (WorldObject const *target)
void SetFacingTo (float ori)
void SetFacingToObject (WorldObject *object)
void SendChangeCurrentVictimOpcode (HostileReference *pHostileReference)
void SendClearThreatListOpcode ()
void SendRemoveFromThreatListOpcode (HostileReference *pHostileReference)
void SendThreatListUpdate ()
void SendClearTarget ()
void BuildHeartBeatMsg (WorldPacket *data) const
bool IsAlive () const
bool isDying () const
bool isDead () const
DeathState getDeathState ()
virtual void setDeathState (DeathState s, bool despawn=false)
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
bool IsCreatedByPlayer () 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< Creature * > &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=nullptr)
void RemoveCharmedBy (Unit *charmer)
void RestoreFaction ()
UnitGetFirstControlled () const
void RemoveAllControlled (bool onDeath=false)
bool IsCharmed () const
bool isPossessed () const
bool isPossessedByPlayer () const
bool isPossessing () const
bool isPossessing (Unit *u) const
CharmInfoGetCharmInfo ()
CharmInfoInitCharmInfo ()
void DeleteCharmInfo ()
void UpdateCharmAI ()
SharedVisionList const & GetSharedVisionList ()
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, uint8 effMask, Unit *caster, int32 *baseAmount=nullptr, Item *castItem=nullptr, ObjectGuid casterGUID=ObjectGuid::Empty, bool periodicReset=false)
void _AddAura (UnitAura *aura, Unit *caster)
AuraApplication_CreateAuraApplication (Aura *aura, uint8 effMask)
void _ApplyAuraEffect (Aura *aura, uint8 effIndex)
void _ApplyAura (AuraApplication *aurApp, uint8 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 const & GetOwnedAuras () const
void RemoveOwnedAura (AuraMap::iterator &i, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
void RemoveOwnedAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 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, uint8 reqEffMask=0, Aura *except=nullptr) const
AuraApplicationMapGetAppliedAuras ()
AuraApplicationMap const & GetAppliedAuras () const
void RemoveAura (AuraApplicationMap::iterator &i, AuraRemoveMode mode=AURA_REMOVE_BY_DEFAULT)
void RemoveAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 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 RemoveAurasDueToSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint8 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=nullptr, bool negative=true, bool positive=true)
void RemoveNotOwnSingleTargetAuras ()
void RemoveAurasWithInterruptFlags (uint32 flag, uint32 except=0, bool isAutoshot=false)
void RemoveAurasWithAttribute (uint32 flags)
void RemoveAurasWithFamily (SpellFamilyNames family, uint32 familyFlag1, uint32 familyFlag2, uint32 familyFlag3, ObjectGuid casterGUID)
void RemoveAurasWithMechanic (uint32 mechanic_mask, AuraRemoveMode removemode=AURA_REMOVE_BY_DEFAULT, uint32 except=0)
void RemoveMovementImpairingAuras (bool withRoot)
void RemoveAurasByShapeShift ()
void RemoveAreaAurasDueToLeaveWorld ()
void RemoveAllAuras ()
void RemoveArenaAuras ()
void RemoveAllAurasOnDeath ()
void RemoveAllAurasRequiringDeadTarget ()
void RemoveAllAurasExceptType (AuraType type)
void RemoveEvadeAuras ()
void DelayOwnedAuras (uint32 spellId, ObjectGuid caster, int32 delaytime)
void _RemoveAllAuraStatMods ()
void _ApplyAllAuraStatMods ()
AuraEffectList const & GetAuraEffectsByType (AuraType type) const
AuraListGetSingleCastAuras ()
AuraList const & GetSingleCastAuras () 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, uint32 familyFlag1, uint32 familyFlag2, uint32 familyFlag3, ObjectGuid casterGUID=ObjectGuid::Empty) const
AuraEffectGetAuraEffectDummy (uint32 spellid) const
AuraEffectGetDummyAuraEffect (SpellFamilyNames name, uint32 iconId, uint8 effIndex) const
AuraApplicationGetAuraApplication (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraApplication *except=nullptr) const
AuraGetAura (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0) const
AuraApplicationGetAuraApplicationOfRankedSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 reqEffMask=0, AuraApplication *except=nullptr) const
AuraGetAuraOfRankedSpell (uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint8 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, uint8 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 HasAuraTypeWithTriggerSpell (AuraType auratype, uint32 triggerSpell) const
bool HasNegativeAuraWithInterruptFlag (uint32 flag, ObjectGuid guid=ObjectGuid::Empty)
bool HasVisibleAuraType (AuraType auraType) const
bool HasNegativeAuraWithAttribute (uint32 flag, ObjectGuid guid=ObjectGuid::Empty)
bool HasAuraWithMechanic (uint32 mechanicMask) const
AuraEffectIsScriptOverriden (SpellInfo const *spell, int32 script) const
uint32 GetDiseasesByCaster (ObjectGuid casterGUID, uint8 mode=0)
uint32 GetDoTsByCaster (ObjectGuid casterGUID) const
int32 GetTotalAuraModifierAreaExclusive (AuraType auratype) const
int32 GetTotalAuraModifier (AuraType auratype) const
float GetTotalAuraMultiplier (AuraType auratype) const
int32 GetMaxPositiveAuraModifier (AuraType auratype)
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=nullptr) 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 GetCreatePowers (Powers power) const
float GetPosStat (Stats stat) const
float GetNegStat (Stats stat) const
float GetCreateStat (Stats stat) const
void SetCurrentCastedSpell (Spell *pSpell)
virtual void ProhibitSpellSchool (SpellSchoolMask, uint32)
void InterruptSpell (CurrentSpellTypes spellType, bool withDelayed=true, bool withInstant=true, bool bySelf=false)
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, bool bySelf=false)
SpellGetCurrentSpell (CurrentSpellTypes spellType) const
SpellGetCurrentSpell (uint32 spellType) const
SpellFindCurrentSpellBySpellId (uint32 spell_id) const
int32 GetCurrentSpellCastTime (uint32 spell_id) const
virtual bool IsMovementPreventedByCasting () 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, float additionalValue=0.0f) 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 bool UpdateStats (Stats stat)=0
virtual bool UpdateAllStats ()=0
virtual void UpdateResistances (uint32 school)=0
virtual void UpdateAllResistances ()
virtual void UpdateArmor ()=0
virtual void UpdateMaxHealth ()=0
virtual void UpdateMaxPower (Powers power)=0
virtual void UpdateAttackPowerAndDamage (bool ranged=false)=0
virtual void UpdateDamagePhysical (WeaponAttackType attType)
float GetTotalAttackPowerValue (WeaponAttackType attType, Unit *pVictim=nullptr) const
float GetWeaponDamageRange (WeaponAttackType attType, WeaponDamageRange type, uint8 damageIndex=0) const
void SetBaseWeaponDamage (WeaponAttackType attType, WeaponDamageRange damageRange, float value, uint8 damageIndex=0)
virtual void CalculateMinMaxDamage (WeaponAttackType attType, bool normalized, bool addTotalPct, float &minDamage, float &maxDamage, uint8 damageIndex=0)=0
uint32 CalculateDamage (WeaponAttackType attType, bool normalized, bool addTotalPct, uint8 itemDamagesMask=0)
float GetAPMultiplier (WeaponAttackType attType, bool normalized)
bool isInFrontInMap (Unit const *target, float distance, float arc=M_PI) const
bool isInBackInMap (Unit const *target, float distance, float arc=M_PI) const
bool IsVisible () const
void SetVisible (bool x)
void SetModelVisible (bool on)
uint32 GetPhaseByAuras () const
void SetPhaseMask (uint32 newPhaseMask, bool update) override
void UpdateObjectVisibility (bool forced=true, bool fromUpdate=false) override
bool CanHaveThreatList () const
void AddThreat (Unit *victim, float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *threatSpell=nullptr)
float ApplyTotalThreatModifier (float fThreat, SpellSchoolMask schoolMask=SPELL_SCHOOL_MASK_NORMAL)
void TauntApply (Unit *victim)
void TauntFadeOut (Unit *taunter)
ThreatMgrGetThreatMgr ()
ThreatMgr const & GetThreatMgr () const
void addHatedBy (HostileReference *pHostileReference)
void removeHatedBy (HostileReference *)
HostileRefMgrgetHostileRefMgr ()
VisibleAuraMap const * GetVisibleAuras ()
AuraApplicationGetVisibleAura (uint8 slot)
void SetVisibleAura (uint8 slot, AuraApplication *aur)
void RemoveVisibleAura (uint8 slot)
uint32 GetInterruptMask () const
void AddInterruptMask (uint32 mask)
void UpdateInterruptMask ()
virtual float GetNativeObjectScale () const
virtual void RecalculateObjectScale ()
uint32 GetDisplayId () const
virtual void SetDisplayId (uint32 modelId)
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)
bool 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=nullptr, Unit const *Caster=nullptr) const
void UnsummonAllTotems (bool onDeath=false)
UnitGetMagicHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo)
UnitGetMeleeHitRedirectTarget (Unit *victim, SpellInfo const *spellInfo=nullptr)
int32 SpellBaseDamageBonusDone (SpellSchoolMask schoolMask)
int32 SpellBaseDamageBonusTaken (SpellSchoolMask schoolMask, bool isDoT=false)
float SpellPctDamageModsDone (Unit *victim, SpellInfo const *spellProto, DamageEffectType damagetype)
uint32 SpellDamageBonusDone (Unit *victim, SpellInfo const *spellProto, uint32 pdamage, DamageEffectType damagetype, uint8 effIndex, float TotalMod=0.0f, uint32 stack=1)
uint32 SpellDamageBonusTaken (Unit *caster, SpellInfo const *spellProto, uint32 pdamage, DamageEffectType damagetype, uint32 stack=1)
int32 SpellBaseHealingBonusDone (SpellSchoolMask schoolMask)
int32 SpellBaseHealingBonusTaken (SpellSchoolMask schoolMask)
float SpellPctHealingModsDone (Unit *victim, SpellInfo const *spellProto, DamageEffectType damagetype)
uint32 SpellHealingBonusDone (Unit *victim, SpellInfo const *spellProto, uint32 healamount, DamageEffectType damagetype, uint8 effIndex, float TotalMod=0.0f, uint32 stack=1)
uint32 SpellHealingBonusTaken (Unit *caster, SpellInfo const *spellProto, uint32 healamount, DamageEffectType damagetype, uint32 stack=1)
uint32 MeleeDamageBonusDone (Unit *pVictim, uint32 damage, WeaponAttackType attType, SpellInfo const *spellProto=nullptr, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL)
uint32 MeleeDamageBonusTaken (Unit *attacker, uint32 pdamage, WeaponAttackType attType, SpellInfo const *spellProto=nullptr, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL)
bool isSpellBlocked (Unit *victim, SpellInfo const *spellProto, WeaponAttackType attackType=BASE_ATTACK)
bool isBlockCritical ()
float SpellDoneCritChance (Unit const *, SpellInfo const *spellProto, SpellSchoolMask schoolMask, WeaponAttackType attackType, bool skipEffectCheck) const
float SpellTakenCritChance (Unit const *caster, SpellInfo const *spellProto, SpellSchoolMask schoolMask, float doneChance, WeaponAttackType attackType, bool skipEffectCheck) const
void SetLastManaUse (uint32 spellCastTime)
bool IsUnderLastManaUseEffect () const
void SetContestedPvP (Player *attackedPlayer=nullptr, bool lookForNearContestedGuards=true)
uint32 GetCastingTimeForBonus (SpellInfo const *spellProto, DamageEffectType damagetype, uint32 CastingTime) const
float CalculateDefaultCoefficient (SpellInfo const *spellInfo, DamageEffectType damagetype) const
void CastDelayedSpellWithPeriodicAmount (Unit *caster, uint32 spellId, AuraType auraType, int32 addAmount, uint8 effectIndex=0)
void ApplySpellImmune (uint32 spellId, uint32 op, uint32 type, bool apply, SpellImmuneBlockType blockType=SPELL_BLOCK_TYPE_ALL)
void ApplySpellDispelImmunity (SpellInfo const *spellProto, DispelType type, bool apply)
virtual bool IsImmunedToSpell (SpellInfo const *spellInfo, Spell const *spell=nullptr)
bool IsImmunedToDamage (SpellSchoolMask meleeSchoolMask) const
bool IsImmunedToDamage (SpellInfo const *spellInfo) const
bool IsImmunedToDamage (Spell const *spell) const
bool IsImmunedToSchool (SpellSchoolMask meleeSchoolMask) const
bool IsImmunedToSchool (SpellInfo const *spellInfo) const
bool IsImmunedToSchool (Spell const *spell) const
bool IsImmunedToDamageOrSchool (SpellSchoolMask meleeSchoolMask) const
bool IsImmunedToDamageOrSchool (SpellInfo const *spellInfo) const
virtual bool IsImmunedToSpellEffect (SpellInfo const *spellInfo, uint32 index) const
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)
void SetSpeedRate (UnitMoveType mtype, float rate)
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) 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=nullptr)
float CalculateLevelPenalty (SpellInfo const *spellProto) const
void addFollower (FollowerReference *pRef)
void removeFollower (FollowerReference *)
MotionMasterGetMotionMaster ()
const MotionMasterGetMotionMaster () const
virtual MovementGeneratorType GetDefaultMovementType () const
 -------—End of Pet responses methods-------—
bool IsStopped () const
void StopMoving ()
void StopMovingOnCurrentPos ()
virtual void PauseMovement (uint32 timer=0, uint8 slot=0)
void ResumeMovement (uint32 timer=0, uint8 slot=0)
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)
void SetControlled (bool apply, UnitState state, Unit *source=nullptr, bool isFear=false)
void DisableRotate (bool apply)
void DisableSpline ()
uint8 GetComboPoints (Unit const *who=nullptr) const
 --------—Combo point system----------------—
uint8 GetComboPoints (ObjectGuid const &guid) const
UnitGetComboTarget () const
ObjectGuid const GetComboTargetGUID () const
void AddComboPoints (Unit *target, int8 count)
void AddComboPoints (int8 count)
void ClearComboPoints ()
void SendComboPoints ()
void AddComboPointHolder (Unit *unit)
void RemoveComboPointHolder (Unit *unit)
void ClearComboPointHolders ()
void SendPetActionFeedback (uint8 msg)
 -------—Pet responses methods--------------—
void SendPetTalk (uint32 pettalk)
void SendPetAIReaction (ObjectGuid guid)
void propagateSpeedChange ()
 -------—End of Pet responses methods-------—
void ClearAllReactives ()
void StartReactiveTimer (ReactiveType reactive)
void UpdateReactives (uint32 p_time)
void UpdateAuraForGroup (uint8 slot)
bool CanProc ()
void SetCantProc (bool apply)
void AddPetAura (PetAura const *petSpell)
void RemovePetAura (PetAura const *petSpell)
void CastPetAura (PetAura const *aura)
bool IsPetAura (Aura const *aura)
uint32 GetModelForForm (ShapeshiftForm form, uint32 spellId) const
uint32 GetModelForTotem (PlayerTotemType totemType)
void SetRedirectThreat (ObjectGuid guid, uint32 pct)
void ResetRedirectThreat ()
void ModifyRedirectThreat (int32 amount)
uint32 GetRedirectThreatPercent ()
UnitGetRedirectThreatTarget () const
bool CreateVehicleKit (uint32 id, uint32 creatureEntry)
void RemoveVehicleKit ()
VehicleGetVehicleKit () const
VehicleGetVehicle () const
bool IsOnVehicle (Unit const *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)
bool HandleSpellClick (Unit *clicker, int8 seatId=-1)
void EnterVehicle (Unit *base, int8 seatId=-1)
void EnterVehicleUnattackable (Unit *base, int8 seatId=-1)
void ExitVehicle (Position const *exitPosition=nullptr)
void ChangeSeat (int8 seatId, bool next=true)
void _ExitVehicle (Position const *exitPosition=nullptr)
void _EnterVehicle (Vehicle *vehicle, int8 seatId, AuraApplication const *aurApp=nullptr)
void BuildMovementPacket (ByteBuffer *data) const
virtual bool CanSwim () const
 this method checks the current flag of a unit
bool IsLevitating () const
bool IsWalking () const
bool isMoving () const
bool isTurning () const
bool IsHovering () const
bool isSwimming () const
virtual bool CanFly () const =0
bool IsFlying () const
bool IsFalling () const
float GetHoverHeight () const
virtual bool CanEnterWater () const =0
void RewardRage (uint32 damage, uint32 weaponSpeedHitFactor, bool attacker)
virtual float GetFollowAngle () const
void OutDebugInfo () const
virtual bool isBeingLoaded () const
bool IsDuringRemoveFromWorld () const
PetToPet ()
TotemToTotem ()
TempSummonToTempSummon ()
const TempSummonToTempSummon () const
void AddPointedBy (SafeUnitPointer *sup)
void RemovePointedBy (SafeUnitPointer *sup)
void ExecuteDelayedUnitRelocationEvent ()
void ExecuteDelayedUnitAINotifyEvent ()
virtual bool HasSpellCooldown (uint32) const
virtual bool HasSpellItemCooldown (uint32, uint32) const
virtual void AddSpellCooldown (uint32, uint32, uint32, bool needSendToClient=false, bool forceSendToSpectator=false)
bool CanApplyResilience () const
void PetSpellFail (SpellInfo const *spellInfo, Unit *target, uint32 result)
int32 CalculateAOEDamageReduction (int32 damage, uint32 schoolMask, Unit *caster) const
ObjectGuid GetTarget () const
virtual void SetTarget (ObjectGuid=ObjectGuid::Empty)=0
void SetInstantCast (bool set)
bool CanInstantCast () const
virtual void Talk (std::string_view text, ChatMsg msgType, Language language, float textRange, WorldObject const *target)
virtual void Say (std::string_view text, Language language, WorldObject const *target=nullptr)
virtual void Yell (std::string_view text, Language language, WorldObject const *target=nullptr)
virtual void TextEmote (std::string_view text, WorldObject const *target=nullptr, bool isBossEmote=false)
virtual void Whisper (std::string_view text, Language language, Player *target, bool isBossWhisper=false)
virtual void Talk (uint32 textId, ChatMsg msgType, float textRange, WorldObject const *target)
virtual void Say (uint32 textId, WorldObject const *target=nullptr)
virtual void Yell (uint32 textId, WorldObject const *target=nullptr)
virtual void TextEmote (uint32 textId, WorldObject const *target=nullptr, bool isBossEmote=false)
virtual void Whisper (uint32 textId, Player *target, bool isBossWhisper=false)
float GetCollisionHeight () const override
 Return collision height sent to client.
float GetCollisionWidth () const override
 this method gets the diameter of a Unit by DB if any value is defined, otherwise it gets the value by the DBC
float GetCollisionRadius () const override
 this method gets the radius of a Unit by DB if any value is defined, otherwise it gets the value by the DBC
void ProcessPositionDataChanged (PositionFullTerrainStatus const &data) override
virtual void ProcessTerrainStatusUpdate ()
bool CanRestoreMana (SpellInfo const *spellInfo) const
std::string GetDebugInfo () const override
uint32 GetOldFactionId () const
- Public Member Functions inherited from WorldObject
 ~WorldObject () override
virtual void Update (uint32)
void _Create (ObjectGuid::LowType guidlow, HighGuid guidhigh, uint32 phaseMask)
void AddToWorld () override
void RemoveFromWorld () override
void GetNearPoint2D (WorldObject const *searcher, float &x, float &y, float distance, float absAngle, Position const *startPos=nullptr) const
void GetNearPoint2D (float &x, float &y, float distance, float absAngle, Position const *startPos=nullptr) const
void GetNearPoint (WorldObject const *searcher, float &x, float &y, float &z, float searcher_size, float distance2d, float absAngle, float controlZ=0, Position const *startPos=nullptr) const
void GetVoidClosePoint (float &x, float &y, float &z, float size, float distance2d=0, float relAngle=0, float controlZ=0) const
bool GetClosePoint (float &x, float &y, float &z, float size, float distance2d=0, float angle=0, WorldObject const *forWho=nullptr, bool force=false) 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 startX, float startY, float startZ, float destX, float destY)
Position GetFirstCollisionPosition (float destX, float destY, float destZ)
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
void GetChargeContactPoint (WorldObject const *obj, float &x, float &y, float &z, float distance2d=CONTACT_DISTANCE) const
float GetObjectSize () const
virtual float GetCombatReach () const
void UpdateGroundPositionZ (float x, float y, float &z) const
void UpdateAllowedPositionZ (float x, float y, float &z, float *groundZ=nullptr) const
void GetRandomPoint (const Position &srcPos, float distance, float &rand_x, float &rand_y, float &rand_z) const
Position GetRandomPoint (const Position &srcPos, float distance) const
uint32 GetInstanceId () const
virtual void SetPhaseMask (uint32 newPhaseMask, bool update)
uint32 GetPhaseMask () const
bool InSamePhase (WorldObject const *obj) const
bool InSamePhase (uint32 phasemask) const
uint32 GetZoneId () const
uint32 GetAreaId () const
void GetZoneAndAreaId (uint32 &zoneid, uint32 &areaid) const
bool IsOutdoors () const
LiquidData const & GetLiquidData () const
InstanceScriptGetInstanceScript () const
std::string const & GetName () const
void SetName (std::string const &newname)
virtual std::string const & GetNameForLocaleIdx (LocaleConstant) const
float GetDistance (WorldObject const *obj) const
float GetDistance (const Position &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 (const Position *pos, float dist) const
bool IsWithinDist2d (float x, float y, float dist) const
bool IsWithinDist2d (const Position *pos, float dist) const
bool IsWithinDist (WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
bool IsWithinDistInMap (WorldObject const *obj, float dist2compare, bool is3D=true, bool useBoundingRadius=true) const
bool IsWithinLOS (float x, float y, float z, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS) const
bool IsWithinLOSInMap (WorldObject const *obj, VMAP::ModelIgnoreFlags ignoreFlags=VMAP::ModelIgnoreFlags::Nothing, LineOfSightChecks checks=LINEOFSIGHT_ALL_CHECKS, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
Position GetHitSpherePointFor (Position const &dest, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) const
void GetHitSpherePointFor (Position const &dest, float &x, float &y, float &z, Optional< float > collisionHeight={ }, Optional< float > combatReach={ }) 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=M_PI) const
bool isInBack (WorldObject const *target, float arc=M_PI) const
bool IsInBetween (WorldObject const *obj1, WorldObject const *obj2, float size=0) const
virtual void CleanupsBeforeDelete (bool finalCleanup=true)
virtual void SendMessageToSet (WorldPacket const *data, bool self) const
virtual void SendMessageToSetInRange (WorldPacket const *data, float dist, bool, bool includeMargin=false, Player const *skipped_rcvr=nullptr) const
virtual void SendMessageToSet (WorldPacket const *data, Player const *skipped_rcvr) const
virtual uint8 getLevelForTarget (WorldObject const *) const
void PlayDistanceSound (uint32 sound_id, Player *target=nullptr)
void PlayDirectSound (uint32 sound_id, Player *target=nullptr)
void PlayDirectMusic (uint32 music_id, Player *target=nullptr)
void SendObjectDeSpawnAnim (ObjectGuid guid)
virtual void SaveRespawnTime ()
void AddObjectToRemoveList ()
float GetGridActivationRange () const
float GetVisibilityRange () const
virtual float GetSightRange (WorldObject const *target=nullptr) const
bool CanSeeOrDetect (WorldObject const *obj, bool ignoreStealth=false, bool distanceCheck=false, bool checkAlert=false) const
void SendPlayMusic (uint32 Music, bool OnlySelf)
virtual void SetMap (Map *map)
virtual void ResetMap ()
MapGetMap () const
MapFindMap () const
void SetZoneScript ()
void ClearZoneScript ()
ZoneScriptGetZoneScript () const
TempSummonSummonCreature (uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
TempSummonSummonCreature (uint32 id, float x, float y, float z, float ang=0, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false)
GameObjectSummonGameObject (uint32 entry, float x, float y, float z, float ang, float rotation0, float rotation1, float rotation2, float rotation3, uint32 respawnTime, bool checkTransport=true, GOSummonType summonType=GO_SUMMON_TIMED_OR_CORPSE_DESPAWN)
CreatureSummonTrigger (float x, float y, float z, float ang, uint32 dur, bool setLevel=false, CreatureAI *(*GetAI)(Creature *)=nullptr)
void SummonCreatureGroup (uint8 group, std::list< TempSummon * > *list=nullptr)
CreatureFindNearestCreature (uint32 entry, float range, bool alive=true) const
GameObjectFindNearestGameObject (uint32 entry, float range, bool onlySpawned=false) const
GameObjectFindNearestGameObjectOfType (GameobjectTypes type, float range) const
PlayerSelectNearestPlayer (float distance=0) const
void GetGameObjectListWithEntryInGrid (std::list< GameObject * > &lList, uint32 uiEntry, float fMaxSearchRange) const
void GetCreatureListWithEntryInGrid (std::list< Creature * > &lList, uint32 uiEntry, float fMaxSearchRange) const
void GetDeadCreatureListInGrid (std::list< Creature * > &lList, float maxSearchRange, bool alive=false) const
void DestroyForNearbyPlayers ()
virtual void UpdateObjectVisibility (bool forced=true, bool fromUpdate=false)
void BuildUpdate (UpdateDataMapType &data_map, UpdatePlayerSet &player_set) override
void GetCreaturesWithEntryInRange (std::list< Creature * > &creatureList, float radius, uint32 entry)
void SetPositionDataUpdate ()
void UpdatePositionData ()
void AddToObjectUpdate () override
void RemoveFromObjectUpdate () override
void AddToNotify (uint16 f)
void RemoveFromNotify (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)
bool IsFarVisible () const
bool IsVisibilityOverridden () const
void SetVisibilityDistanceOverride (VisibilityDistanceType type)
void SetWorldObject (bool apply)
bool IsPermanentWorldObject () const
bool IsWorldObject () const
bool IsInWintergrasp () const
TransportGetTransport () const
float GetTransOffsetX () const
float GetTransOffsetY () const
float GetTransOffsetZ () const
float GetTransOffsetO () const
uint32 GetTransTime () const
int8 GetTransSeat () const
virtual ObjectGuid GetTransGUID () const
void SetTransport (Transport *t)
virtual float GetStationaryX () const
virtual float GetStationaryY () const
virtual float GetStationaryZ () const
virtual float GetStationaryO () const
float GetMapWaterOrGroundLevel (float x, float y, float z, float *ground=nullptr) const
float GetMapHeight (float x, float y, float z, bool vmap=true, float distanceToSearch=50.0f) const
float GetFloorZ () const
float GetMinHeightInWater () const
 Get the minimum height of a object that should be in water to start floating/swim.
virtual float GetCollisionHeight () const
virtual float GetCollisionWidth () const
virtual float GetCollisionRadius () const
void AddAllowedLooter (ObjectGuid guid)
void ResetAllowedLooters ()
void SetAllowedLooters (GuidUnorderedSet const looters)
bool HasAllowedLooter (ObjectGuid guid) const
GuidUnorderedSet const & GetAllowedLooters () const
std::string GetDebugInfo () const override
- Public Member Functions inherited from Object
virtual ~Object ()
bool IsInWorld () const
virtual void AddToWorld ()
virtual void RemoveFromWorld ()
ObjectGuid GetGUID () const
PackedGuid const & GetPackGUID () const
uint32 GetEntry () const
void SetEntry (uint32 entry)
float GetObjectScale () const
virtual void SetObjectScale (float scale)
virtual uint32 GetDynamicFlags () const
bool HasDynamicFlag (uint32 flag) const
virtual void SetDynamicFlag (uint32 flag)
virtual void RemoveDynamicFlag (uint32 flag)
virtual void ReplaceAllDynamicFlags (uint32 flag)
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
void BuildMovementUpdateBlock (UpdateData *data, uint32 flags=0) const
virtual void DestroyForPlayer (Player *target, bool onDeath=false) 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 GetGuidValue (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 SetInt16Value (uint16 index, uint8 offset, int16 value)
void SetGuidValue (uint16 index, ObjectGuid value)
void SetStatFloatValue (uint16 index, float value)
void SetStatInt32Value (uint16 index, int32 value)
bool AddGuidValue (uint16 index, ObjectGuid value)
bool RemoveGuidValue (uint16 index, ObjectGuid value)
void ApplyModUInt32Value (uint16 index, int32 val, bool apply)
void ApplyModInt32Value (uint16 index, int32 val, bool apply)
void ApplyModUInt64Value (uint16 index, int32 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)
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)
void ClearUpdateMask (bool remove)
uint16 GetValuesCount () const
virtual bool hasQuest (uint32) const
virtual bool hasInvolvedQuest (uint32) const
virtual void BuildUpdate (UpdateDataMapType &, UpdatePlayerSet &)
void BuildFieldsUpdate (Player *, UpdateDataMapType &) const
void SetFieldNotifyFlag (uint16 flag)
void RemoveFieldNotifyFlag (uint16 flag)
void ForceValuesUpdateAtIndex (uint32)
bool IsPlayer () const
PlayerToPlayer ()
Player const * ToPlayer () const
CreatureToCreature ()
Creature const * ToCreature () const
UnitToUnit ()
Unit const * ToUnit () const
GameObjectToGameObject ()
GameObject const * ToGameObject () const
CorpseToCorpse ()
Corpse const * ToCorpse () const
DynamicObjectToDynObject ()
DynamicObject const * ToDynObject () const
virtual std::string GetDebugInfo () 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 (uint32 mapId, Position const &position)
void WorldRelocate (const WorldLocation &loc)
void WorldRelocate (uint32 mapId=MAPID_INVALID, float x=0.f, float y=0.f, float z=0.f, float o=0.f)
void SetMapId (uint32 mapId)
uint32 GetMapId () const
void GetWorldLocation (uint32 &mapId, float &x, float &y) const
void GetWorldLocation (uint32 &mapId, float &x, float &y, float &z) const
void GetWorldLocation (uint32 &mapId, float &x, float &y, float &z, float &o) const
void GetWorldLocation (WorldLocation *location) const
WorldLocation GetWorldLocation () const
std::string GetDebugInfo () const
- Public Member Functions inherited from Position
 Position (float x=0, float y=0, float z=0, float o=0)
 Position (Position const &loc)
 Position (Position &&)=default
Positionoperator= (const Position &)=default
Positionoperator= (Position &&)=default
bool operator== (Position const &a) const
bool operator!= (Position const &a)
 operator G3D::Vector3 () const
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 (const Position &pos)
void Relocate (const Position *pos)
void RelocatePolarOffset (float angle, float dist, float z=0.0f)
void RelocateOffset (const Position &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::PositionXYZStreamer PositionXYZStream ()
Position::PositionXYZOStreamer PositionXYZOStream ()
bool IsPositionValid () const
float GetExactDist2dSq (const float x, const float y) const
float GetExactDist2dSq (Position const &pos) const
float GetExactDist2dSq (Position const *pos) const
float GetExactDist2d (const float x, const float y) const
float GetExactDist2d (Position const &pos) const
float GetExactDist2d (Position const *pos) const
float GetExactDistSq (float x, float y, float z) const
float GetExactDistSq (Position const &pos) const
float GetExactDistSq (Position const *pos) const
float GetExactDist (float x, float y, float z) const
float GetExactDist (Position const &pos) const
float GetExactDist (Position const *pos) const
void GetPositionOffsetTo (const Position &endPos, Position &retOffset) const
Position GetPositionWithOffset (Position const &offset) const
float GetAngle (const Position *pos) const
float GetAngle (float x, float y) const
float GetAbsoluteAngle (float x, float y) const
float GetAbsoluteAngle (Position const &pos) const
float GetAbsoluteAngle (Position const *pos) const
float GetRelativeAngle (const Position *pos) const
float GetRelativeAngle (float x, float y) const
float ToAbsoluteAngle (float relAngle) const
void GetSinCos (float x, float y, float &vsin, float &vcos) const
bool IsInDist2d (float x, float y, float dist) const
bool IsInDist2d (const Position *pos, float dist) const
bool IsInDist (float x, float y, float z, float dist) const
bool IsInDist (const Position *pos, float dist) const
bool IsWithinBox (const Position &center, float xradius, float yradius, float zradius) const
bool HasInArc (float arcangle, const Position *pos, float targetRadius=0.0f) const
bool HasInLine (Position const *pos, float width) const
std::string ToString () const
- Public Member Functions inherited from GridObject< Creature >
bool IsInGrid () const
void AddToGrid (GridRefMgr< Creature > &m)
void RemoveFromGrid ()

Static Public Member Functions

static std::pair< PetStable::PetInfo const *, PetSaveModeGetLoadPetInfo (PetStable const &stable, uint32 petEntry, uint32 petnumber, bool current)
static void DeleteFromDB (ObjectGuid::LowType guidlow)
static void resetTalentsForAllPetsOf (Player *owner, Pet *online_pet=nullptr)
- Static Public Member Functions inherited from Creature
static float _GetDamageMod (int32 Rank)
- Static Public Member Functions inherited from Unit
static float GetEffectiveResistChance (Unit const *owner, SpellSchoolMask schoolMask, Unit const *victim)
static void DealDamageMods (Unit const *victim, uint32 &damage, uint32 *absorb)
static uint32 DealDamage (Unit *attacker, Unit *victim, uint32 damage, CleanDamage const *cleanDamage=nullptr, DamageEffectType damagetype=DIRECT_DAMAGE, SpellSchoolMask damageSchoolMask=SPELL_SCHOOL_MASK_NORMAL, SpellInfo const *spellProto=nullptr, bool durabilityLoss=true, bool allowGM=false, Spell const *spell=nullptr)
static void Kill (Unit *killer, Unit *victim, bool durabilityLoss=true, WeaponAttackType attackType=BASE_ATTACK, SpellInfo const *spellProto=nullptr, Spell const *spell=nullptr)
static int32 DealHeal (Unit *healer, Unit *victim, uint32 addhealth)
static void ProcDamageAndSpell (Unit *actor, Unit *victim, uint32 procAttacker, uint32 procVictim, uint32 procEx, uint32 amount, WeaponAttackType attType=BASE_ATTACK, SpellInfo const *procSpellInfo=nullptr, SpellInfo const *procAura=nullptr, int8 procAuraEffectIndex=-1, Spell const *procSpell=nullptr, DamageInfo *damageInfo=nullptr, HealInfo *healInfo=nullptr, uint32 procPhase=2)
static void ApplyResilience (Unit const *victim, float *crit, int32 *damage, bool isCrit, CombatRating type)
static uint32 SpellCriticalDamageBonus (Unit const *caster, SpellInfo const *spellProto, uint32 damage, Unit const *victim)
static uint32 SpellCriticalHealingBonus (Unit const *caster, SpellInfo const *spellProto, uint32 damage, Unit const *victim)
static bool IsDamageReducedByArmor (SpellSchoolMask damageSchoolMask, SpellInfo const *spellInfo=nullptr, uint8 effIndex=MAX_SPELL_EFFECTS)
static uint32 CalcArmorReducedDamage (Unit const *attacker, Unit const *victim, const uint32 damage, SpellInfo const *spellInfo, uint8 attackerLevel=0, WeaponAttackType attackType=MAX_ATTACK)
static void CalcAbsorbResist (DamageInfo &dmgInfo, bool Splited=false)
static void CalcHealAbsorb (HealInfo &healInfo)
static void HandleSafeUnitPointersOnDelete (Unit *thisUnit)
- Static Public Member Functions inherited from Object
static ObjectGuid GetGUID (Object const *o)
- Static Public Member Functions inherited from Position
static float NormalizeOrientation (float o)

Public Attributes

PetSpellMap m_spells
AutoSpellList m_autospells
uint32 m_usedTalentCount
bool m_removed
- Public Attributes inherited from TempSummon
const SummonPropertiesEntry *const m_Properties
- Public Attributes inherited from Creature
struct {
   ::Spell const *   Spell = nullptr
   uint32   Delay = 0
   ObjectGuid   Target
   float   Orientation = 0.0f
Loot loot
uint32 m_spells [MAX_CREATURE_SPELLS]
CreatureSpellCooldowns m_CreatureSpellCooldowns
uint32 m_ProhibitSchoolTime [7]
uint32 m_groupLootTimer
uint32 lootingGroupLowGUID
float m_SightDistance
float m_CombatDistance
bool m_isTempWorldObject
uint32 m_moveCircleMovementTime = MOVE_CIRCLE_CHECK_INTERVAL
uint32 m_moveBackwardsMovementTime = MOVE_BACKWARDS_CHECK_INTERVAL
- Public Attributes inherited from Unit
uint32 m_extraAttacks
bool m_canDualWield
ControlSet m_Controlled
SafeUnitPointer m_movedByPlayer
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
bool m_ControlledByPlayer
bool m_CreatedByPlayer
std::set< SafeUnitPointer * > SafeUnitPointerSet
Position m_last_notify_position
uint32 m_last_notify_mstime
uint16 m_delayed_unit_relocation_timer
uint16 m_delayed_unit_ai_notify_timer
bool bRequestForcedVisibilityUpdate
- Public Attributes inherited from WorldObject
FlaggedValuesArray32< int32, uint32, StealthType, TOTAL_STEALTH_TYPESm_stealth
FlaggedValuesArray32< int32, uint32, StealthType, TOTAL_STEALTH_TYPESm_stealthDetect
FlaggedValuesArray32< int32, uint32, InvisibilityType, TOTAL_INVISIBILITY_TYPESm_invisibility
FlaggedValuesArray32< int32, uint32, InvisibilityType, TOTAL_INVISIBILITY_TYPESm_invisibilityDetect
FlaggedValuesArray32< int32, uint32, ServerSideVisibilityType, TOTAL_SERVERSIDE_VISIBILITY_TYPESm_serverSideVisibility
FlaggedValuesArray32< int32, uint32, ServerSideVisibilityType, TOTAL_SERVERSIDE_VISIBILITY_TYPESm_serverSideVisibilityDetect
uint32 LastUsedScriptID
MovementInfo m_movementInfo
ElunaEventProcessor * elunaEvents
- Public Attributes inherited from Object
DataMap CustomData
- Public Attributes inherited from WorldLocation
uint32 m_mapId
- Public Attributes inherited from Position
float m_positionX = 0
float m_positionY = 0
float m_positionZ = 0
float m_orientation = 0

Protected Attributes

int32 m_happinessTimer
PetType m_petType
Milliseconds m_duration
uint64 m_auraRaidUpdateMask
bool m_loading
Milliseconds m_petRegenTimer
std::unique_ptr< DeclinedNamem_declinedname
bool m_tempspellIsPositive
uint32 m_tempspell
- Protected Attributes inherited from Minion
const ObjectGuid m_owner
float m_followAngle
- Protected Attributes inherited from Creature
VendorItemCounts m_vendorItemCounts
ObjectGuid m_lootRecipient
ObjectGuid::LowType m_lootRecipientGroup
time_t m_corpseRemoveTime
time_t m_respawnTime
time_t m_respawnedTime
uint32 m_respawnDelay
uint32 m_corpseDelay
float m_wanderDistance
uint32 m_boundaryCheckTime
uint16 m_transportCheckTimer
uint32 lootPickPocketRestoreTime
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.
uint8 m_equipmentId
int8 m_originalEquipmentId
bool m_AlreadyCallAssistance
bool m_AlreadySearchedAssistance
bool m_regenHealth
bool m_regenPower
bool m_AI_locked
SpellSchoolMask m_meleeDamageSchoolMask
uint32 m_originalEntry
bool m_moveInLineOfSightDisabled
bool m_moveInLineOfSightStrictlyDisabled
Position m_homePosition
Position m_transportHomePosition
bool DisableReputationGain
CreatureTemplate const * m_creatureInfo
CreatureData const * m_creatureData
float m_detectionDistance
uint16 m_LootMode
- Protected Attributes inherited from Unit
uint8 m_realRace
uint8 m_race
bool m_AutoRepeatFirstCast
int32 m_attackTimer [MAX_ATTACK]
float m_createStats [MAX_STATS]
AttackerSet m_attackers
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]
bool m_canModifyStats
VisibleAuraMap m_visibleAuras
float m_speed_rate [MAX_MOVE_TYPE]
SharedVisionList m_sharedVision
uint32 m_reactiveTimer [MAX_REACTIVE]
int32 m_regenTimer
ThreatMgr m_ThreatMgr
CharmThreatMap _charmThreatInfo
uint32 m_unitTypeMask
LiquidTypeEntry const * _lastLiquid
bool m_applyResilience
bool _instantCast
uint32 m_rootTimes
- Protected Attributes inherited from WorldObject
std::string m_name
bool m_isActive
bool m_isFarVisible
Optional< float > m_visibilityDistanceOverride
const bool m_isWorldObject
uint32 _zoneId
uint32 _areaId
float _floorZ
bool _outdoors
LiquidData _liquidData
bool _updatePositionData
- Protected Attributes inherited from Object
uint16 m_objectType
TypeID m_objectTypeId
uint16 m_updateFlag
union {
   int32 *   m_int32Values
   uint32 *   m_uint32Values
   float *   m_floatValues
UpdateMask _changesMask
uint16 m_valuesCount
uint16 _fieldNotifyFlags
bool m_objectUpdated

Private Member Functions

void SaveToDB (uint32, uint8, uint32) override
void DeleteFromDB () override

Additional Inherited Members

- Public Types inherited from Unit
typedef std::unordered_set< Unit * > AttackerSet
typedef std::set< Unit * > ControlSet
typedef std::multimap< uint32, Aura * > AuraMap
typedef std::pair< AuraMap::const_iterator, AuraMap::const_iterator > AuraMapBounds
typedef std::pair< AuraMap::iterator, AuraMap::iterator > AuraMapBoundsNonConst
typedef std::multimap< uint32, AuraApplication * > AuraApplicationMap
typedef std::pair< AuraApplicationMap::const_iterator, AuraApplicationMap::const_iterator > AuraApplicationMapBounds
typedef std::pair< AuraApplicationMap::iterator, AuraApplicationMap::iterator > AuraApplicationMapBoundsNonConst
typedef std::multimap< AuraStateType, AuraApplication * > AuraStateAurasMap
typedef std::pair< AuraStateAurasMap::const_iterator, AuraStateAurasMap::const_iterator > AuraStateAurasMapBounds
typedef std::list< AuraEffect * > AuraEffectList
typedef std::list< Aura * > AuraList
typedef std::list< AuraApplication * > AuraApplicationList
typedef std::list< DiminishingReturnDiminishing
typedef GuidUnorderedSet ComboPointHolderSet
typedef std::map< uint8, AuraApplication * > VisibleAuraMap
typedef std::set< PetAura const * > PetAuraSet
- Static Public Attributes inherited from Creature
static constexpr uint32 MOVE_CIRCLE_CHECK_INTERVAL = 3000
static constexpr uint32 MOVE_BACKWARDS_CHECK_INTERVAL = 2000
- Protected Types inherited from Unit
typedef std::list< DynamicObject * > DynObjectList
typedef GuidList GameObjectList
typedef std::map< ObjectGuid, float > CharmThreatMap
- Protected Member Functions inherited from Creature
bool CreateFromProto (ObjectGuid::LowType guidlow, uint32 Entry, uint32 vehId, const CreatureData *data=nullptr)
bool InitEntry (uint32 entry, const CreatureData *data=nullptr)
void RegenerateHealth ()
void Regenerate (Powers power)
bool IsInvisibleDueToDespawn () const override
bool CanAlwaysSee (WorldObject const *obj) const override
bool IsAlwaysDetectableFor (WorldObject const *seer) const override
- Protected Member Functions inherited from Unit
 Unit (bool isWorldObject)
void BuildValuesUpdate (uint8 updatetype, ByteBuffer *data, 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 SetFeared (bool apply, Unit *fearedBy=nullptr, bool isFear=false)
void SetConfused (bool apply)
void SetStunned (bool apply)
void SetRooted (bool apply, bool isStun=false)
- Protected Member Functions inherited from WorldObject
 WorldObject (bool isWorldObject)
virtual void ProcessPositionDataChanged (PositionFullTerrainStatus const &data)
void SetLocationMapId (uint32 _mapId)
void SetLocationInstanceId (uint32 _instanceId)
virtual bool IsNeverVisible () const
virtual bool IsAlwaysVisibleFor (WorldObject const *) const
virtual bool IsInvisibleDueToDespawn () const
virtual bool IsAlwaysDetectableFor (WorldObject const *) const
- Protected Member Functions inherited from Object
 Object ()
void _InitValues ()
void _Create (ObjectGuid::LowType guidlow, uint32 entry, HighGuid guidhigh)
std::string _ConcatFields (uint16 startIndex, uint16 size) const
bool _LoadIntoDataField (std::string const &data, uint32 startOffset, uint32 count)
uint32 GetUpdateFieldData (Player const *target, uint32 *&flags) const
void BuildMovementUpdate (ByteBuffer *data, uint16 flags) const
virtual void BuildValuesUpdate (uint8 updatetype, ByteBuffer *data, Player *target) const
virtual void AddToObjectUpdate ()=0
virtual void RemoveFromObjectUpdate ()=0
void AddToObjectUpdateIfNeeded ()
- Protected Member Functions inherited from MovableMapObject
 MovableMapObject ()=default
- Static Protected Member Functions inherited from Creature
static float _GetHealthMod (int32 Rank)

Detailed Description

Constructor & Destructor Documentation

◆ Pet()

Pet::Pet ( Player owner,
PetType  type = MAX_PET_TYPE 
40 : Guardian(nullptr, owner ? owner->GetGUID() : ObjectGuid::Empty, true),
42 m_removed(false),
43 m_owner(owner),
45 m_petType(type),
46 m_duration(0),
48 m_loading(false),
50 m_tempspellTarget(nullptr),
51 m_tempoldTarget(nullptr),
59 if (type == HUNTER_PET)
63 {
66 }
68 m_name = "Pet";
#define ASSERT
Definition: Errors.h:68
constexpr Milliseconds PET_FOCUS_REGEN_INTERVAL
Definition: CreatureData.h:41
Definition: ObjectGuid.h:38
Definition: Pet.h:24
Definition: PetDefines.h:32
Definition: Unit.h:683
Definition: Unit.h:682
Definition: Unit.h:679
Definition: TemporarySummon.h:95
TypeID GetTypeId() const
Definition: Object.h:121
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
std::string m_name
Definition: Object.h:623
static ObjectGuid const Empty
Definition: ObjectGuid.h:122
PetType m_petType
Definition: Pet.h:152
bool m_loading
Definition: Pet.h:155
uint32 m_usedTalentCount
Definition: Pet.h:133
Unit * m_tempspellTarget
Definition: Pet.h:160
Player * m_owner
Definition: Pet.h:150
Unit * m_tempoldTarget
Definition: Pet.h:161
uint32 m_tempspell
Definition: Pet.h:163
bool m_tempspellIsPositive
Definition: Pet.h:162
Milliseconds m_duration
Definition: Pet.h:153
bool m_removed
Definition: Pet.h:141
uint64 m_auraRaidUpdateMask
Definition: Pet.h:154
int32 m_happinessTimer
Definition: Pet.h:151
Milliseconds m_petRegenTimer
Definition: Pet.h:156
uint32 m_unitTypeMask
Definition: Unit.h:2537
CharmInfo * InitCharmInfo()
Definition: Unit.cpp:15704

References ASSERT, Object::GetTypeId(), HUNTER_PET, Unit::InitCharmInfo(), WorldObject::m_name, m_owner, Unit::m_unitTypeMask, TYPEID_PLAYER, UNIT_MASK_CONTROLABLE_GUARDIAN, UNIT_MASK_HUNTER_PET, and UNIT_MASK_PET.

◆ ~Pet()

Pet::~Pet ( )

Member Function Documentation

◆ _LoadAuras()

void Pet::_LoadAuras ( PreparedQueryResult  result,
uint32  timediff 
1577 LOG_DEBUG("", "Loading auras for pet {}", GetGUID().ToString());
1579 if (result)
1580 {
1581 do
1582 {
1583 int32 damage[3];
1584 int32 baseDamage[3];
1585 Field* fields = result->Fetch();
1586 ObjectGuid caster_guid = ObjectGuid(fields[0].Get<uint64>());
1587 // nullptr guid stored - pet is the caster of the spell - see Pet::_SaveAuras
1588 if (!caster_guid)
1589 caster_guid = GetGUID();
1590 uint32 spellid = fields[1].Get<uint32>();
1591 uint8 effmask = fields[2].Get<uint8>();
1592 uint8 recalculatemask = fields[3].Get<uint8>();
1593 uint8 stackcount = fields[4].Get<uint8>();
1594 damage[0] = fields[5].Get<int32>();
1595 damage[1] = fields[6].Get<int32>();
1596 damage[2] = fields[7].Get<int32>();
1597 baseDamage[0] = fields[8].Get<int32>();
1598 baseDamage[1] = fields[9].Get<int32>();
1599 baseDamage[2] = fields[10].Get<int32>();
1600 int32 maxduration = fields[11].Get<int32>();
1601 int32 remaintime = fields[12].Get<int32>();
1602 uint8 remaincharges = fields[13].Get<uint8>();
1604 SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellid);
1605 if (!spellInfo)
1606 {
1607 LOG_ERROR("", "Unknown aura (spellid {}), ignore.", spellid);
1608 continue;
1609 }
1611 // avoid higher level auras if any, and adjust
1612 SpellInfo const* scaledSpellInfo = spellInfo->GetAuraRankForLevel(GetLevel());
1613 if (scaledSpellInfo != spellInfo)
1614 spellInfo = scaledSpellInfo;
1616 // again after level check
1617 if (!spellInfo)
1618 continue;
1620 // negative effects should continue counting down after logout
1621 if (remaintime != -1 && (!spellInfo->IsPositive() || spellInfo->HasAttribute(SPELL_ATTR4_AURA_EXPIRES_OFFLINE)))
1622 {
1623 if (remaintime / IN_MILLISECONDS <= int32(timediff))
1624 {
1625 continue;
1626 }
1628 remaintime -= timediff * IN_MILLISECONDS;
1629 }
1631 // prevent wrong values of remaincharges
1632 if (spellInfo->ProcCharges)
1633 {
1634 if (remaincharges <= 0 || remaincharges > spellInfo->ProcCharges)
1635 remaincharges = spellInfo->ProcCharges;
1636 }
1637 else
1638 remaincharges = 0;
1640 if (Aura* aura = Aura::TryCreate(spellInfo, effmask, this, nullptr, &baseDamage[0], nullptr, caster_guid))
1641 {
1642 if (!aura->CanBeSaved())
1643 {
1644 aura->Remove();
1645 continue;
1646 }
1647 aura->SetLoadedState(maxduration, remaintime, remaincharges, stackcount, recalculatemask, &damage[0]);
1648 aura->ApplyForTargets();
1649 LOG_DEBUG("", "Added aura spellid {}, effectmask {}", spellInfo->Id, effmask);
1650 }
1651 } while (result->NextRow());
1652 }
constexpr auto IN_MILLISECONDS
Definition: Common.h:62
std::int32_t int32
Definition: Define.h:104
std::uint8_t uint8
Definition: Define.h:110
std::uint32_t uint32
Definition: Define.h:108
#define LOG_ERROR(filterType__,...)
Definition: Log.h:159
#define LOG_DEBUG(filterType__,...)
Definition: Log.h:171
#define sSpellMgr
Definition: SpellMgr.h:818
Definition: SharedDefines.h:504
Class used to access individual fields of database query result.
Definition: Field.h:99
std::enable_if_t< std::is_arithmetic_v< T >, T > Get() const
Definition: Field.h:113
ObjectGuid GetGUID() const
Definition: Object.h:107
Definition: ObjectGuid.h:120
std::string ToString() const
Definition: Position.cpp:51
uint8 GetLevel() const
Definition: Unit.h:1420
Definition: SpellAuras.h:87
static Aura * TryCreate(SpellInfo const *spellproto, uint8 effMask, WorldObject *owner, Unit *caster, int32 *baseAmount=nullptr, Item *castItem=nullptr, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemGUID=ObjectGuid::Empty)
Definition: SpellAuras.cpp:352
Definition: SpellInfo.h:314
SpellInfo const * GetAuraRankForLevel(uint8 level) const
Definition: SpellInfo.cpp:2509

References Field::Get(), SpellInfo::GetAuraRankForLevel(), Object::GetGUID(), Unit::GetLevel(), IN_MILLISECONDS, LOG_DEBUG, LOG_ERROR, SPELL_ATTR4_AURA_EXPIRES_OFFLINE, sSpellMgr, Position::ToString(), and Aura::TryCreate().

◆ _LoadSpellCooldowns()

void Pet::_LoadSpellCooldowns ( PreparedQueryResult  result)
1439 if (result)
1440 {
1441 time_t curTime = GameTime::GetGameTime().count();
1443 PacketCooldowns cooldowns;
1444 WorldPacket data;
1446 do
1447 {
1448 Field* fields = result->Fetch();
1450 uint32 spell_id = fields[0].Get<uint32>();
1451 uint16 category = fields[1].Get<uint16>();
1452 time_t db_time = time_t(fields[2].Get<uint32>());
1454 if (!sSpellMgr->GetSpellInfo(spell_id))
1455 {
1456 LOG_ERROR("", "Pet {} have unknown spell {} in `pet_spell_cooldown`, skipping.", m_charmInfo->GetPetNumber(), spell_id);
1457 continue;
1458 }
1460 // skip outdated cooldown
1461 if (db_time <= curTime)
1462 continue;
1464 uint32 cooldown = (db_time - curTime) * IN_MILLISECONDS;
1465 cooldowns[spell_id] = cooldown;
1466 _AddCreatureSpellCooldown(spell_id, category, cooldown);
1468 LOG_DEBUG("", "Pet (Number: {}) spell {} cooldown loaded ({} secs).", m_charmInfo->GetPetNumber(), spell_id, uint32(db_time - curTime));
1469 } while (result->NextRow());
1471 if (!cooldowns.empty() && GetOwner())
1472 {
1474 GetOwner()->GetSession()->SendPacket(&data);
1475 }
1476 }
std::uint16_t uint16
Definition: Define.h:109
Definition: Unit.h:1230
std::unordered_map< uint32, uint32 > PacketCooldowns
Definition: Unit.h:1235
Seconds GetGameTime()
Definition: GameTime.cpp:38
void _AddCreatureSpellCooldown(uint32 spell_id, uint16 categoryId, uint32 end_time)
Definition: Creature.cpp:2756
CreatureSpellCooldowns m_CreatureSpellCooldowns
Definition: Creature.h:243
Player * GetOwner() const
Definition: Pet.cpp:2436
WorldSession * GetSession() const
Definition: Player.h:1948
uint32 GetPetNumber() const
Definition: Unit.h:1099
CharmInfo * m_charmInfo
Definition: Unit.h:2522
void BuildCooldownPacket(WorldPacket &data, uint8 flags, uint32 spellId, uint32 cooldown)
Definition: Unit.cpp:21164
Definition: WorldPacket.h:27
void SendPacket(WorldPacket const *packet)
Send a packet to the client.
Definition: WorldSession.cpp:207

References Creature::_AddCreatureSpellCooldown(), Unit::BuildCooldownPacket(), Field::Get(), GameTime::GetGameTime(), GetOwner(), CharmInfo::GetPetNumber(), Player::GetSession(), IN_MILLISECONDS, LOG_DEBUG, LOG_ERROR, Unit::m_charmInfo, Creature::m_CreatureSpellCooldowns, WorldSession::SendPacket(), SPELL_COOLDOWN_FLAG_NONE, and sSpellMgr.

◆ _LoadSpells()

void Pet::_LoadSpells ( PreparedQueryResult  result)
1515 if (result)
1516 {
1517 do
1518 {
1519 Field* fields = result->Fetch();
1521 addSpell(fields[0].Get<uint32>(), ActiveStates(fields[1].Get<uint8>()), PETSPELL_UNCHANGED);
1522 } while (result->NextRow());
1523 }
Definition: PetDefines.h:57
Definition: Unit.h:1012
bool addSpell(uint32 spellId, ActiveStates active=ACT_DECIDE, PetSpellState state=PETSPELL_NEW, PetSpellType type=PETSPELL_NORMAL)
Definition: Pet.cpp:1737

References addSpell(), and PETSPELL_UNCHANGED.

◆ _SaveAuras()

void Pet::_SaveAuras ( CharacterDatabaseTransaction  trans)
1658 stmt->SetData(0, m_charmInfo->GetPetNumber());
1659 trans->Append(stmt);
1661 for (AuraMap::const_iterator itr = m_ownedAuras.begin(); itr != m_ownedAuras.end(); ++itr)
1662 {
1663 // check if the aura has to be saved
1664 if (!itr->second->CanBeSaved() || IsPetAura(itr->second))
1665 continue;
1667 Aura* aura = itr->second;
1668 if (aura->GetDuration() < 60 * IN_MILLISECONDS)
1669 continue;
1671 // dont save infinite negative auras! (lavas, transformations etc)
1672 if (aura->IsPermanent() && !aura->GetSpellInfo()->IsPositive())
1673 continue;
1675 // pussywizard: don't save auras that cannot be cancelled (needed for ICC buff on pets/summons)
1677 continue;
1679 // xinef: don't save hidden auras
1681 continue;
1683 // Xinef: Dont save auras with model change
1685 continue;
1687 // xinef: don's save auras with interrupt flags on map change
1689 continue;
1691 int32 damage[MAX_SPELL_EFFECTS];
1692 int32 baseDamage[MAX_SPELL_EFFECTS];
1693 uint8 effMask = 0;
1694 uint8 recalculateMask = 0;
1695 for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i)
1696 {
1697 if (aura->GetEffect(i))
1698 {
1699 baseDamage[i] = aura->GetEffect(i)->GetBaseAmount();
1700 damage[i] = aura->GetEffect(i)->GetAmount();
1701 effMask |= (1 << i);
1702 if (aura->GetEffect(i)->CanBeRecalculated())
1703 recalculateMask |= (1 << i);
1704 }
1705 else
1706 {
1707 baseDamage[i] = 0;
1708 damage[i] = 0;
1709 }
1710 }
1712 // don't save guid of caster in case we are caster of the spell - guid for pet is generated every pet load, so it won't match saved guid anyways
1713 ObjectGuid casterGUID = (itr->second->GetCasterGUID() == GetGUID()) ? ObjectGuid::Empty : itr->second->GetCasterGUID();
1715 uint8 index = 0;
1718 stmt2->SetData(index++, m_charmInfo->GetPetNumber());
1719 stmt2->SetData(index++, casterGUID.GetRawValue());
1720 stmt2->SetData(index++, itr->second->GetId());
1721 stmt2->SetData(index++, effMask);
1722 stmt2->SetData(index++, recalculateMask);
1723 stmt2->SetData(index++, itr->second->GetStackAmount());
1724 stmt2->SetData(index++, damage[0]);
1725 stmt2->SetData(index++, damage[1]);
1726 stmt2->SetData(index++, damage[2]);
1727 stmt2->SetData(index++, baseDamage[0]);
1728 stmt2->SetData(index++, baseDamage[1]);
1729 stmt2->SetData(index++, baseDamage[2]);
1730 stmt2->SetData(index++, itr->second->GetMaxDuration());
1731 stmt2->SetData(index++, itr->second->GetDuration());
1732 stmt2->SetData(index++, itr->second->GetCharges());
1733 trans->Append(stmt2);
1734 }
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
Definition: DatabaseEnv.cpp:21
Definition: CharacterDatabase.h:464
Definition: CharacterDatabase.h:469
Definition: SpellAuraDefines.h:119
Definition: SpellDefines.h:63
Definition: DBCStructure.h:1610
Definition: SharedDefines.h:419
Definition: SharedDefines.h:385
Definition: PreparedStatement.h:158
Acore::Types::is_default< T > SetData(const uint8 index, T value)
Definition: PreparedStatement.h:78
uint64 GetRawValue() const
Definition: ObjectGuid.h:144
bool IsPetAura(Aura const *aura)
Definition: Unit.cpp:17496
AuraMap m_ownedAuras
Definition: Unit.h:2503
bool CanBeRecalculated() const
Definition: SpellAuraEffects.h:77
int32 GetBaseAmount() const
Definition: SpellAuraEffects.h:57
int32 GetAmount() const
Definition: SpellAuraEffects.h:63
int32 GetDuration() const
Definition: SpellAuras.h:133
AuraEffect * GetEffect(uint8 effIndex) const
Definition: SpellAuras.h:175
SpellInfo const * GetSpellInfo() const
Definition: SpellAuras.h:100
bool IsPermanent() const
Definition: SpellAuras.h:139
bool HasAttribute(SpellAttr0 attribute) const
Definition: SpellInfo.h:412
bool IsPositive() const
Definition: SpellInfo.cpp:1221
bool HasAura(AuraType aura) const
Definition: SpellInfo.cpp:877
uint32 AuraInterruptFlags
Definition: SpellInfo.h:351

References AURA_INTERRUPT_FLAG_CHANGE_MAP, SpellInfo::AuraInterruptFlags, AuraEffect::CanBeRecalculated(), CHAR_DEL_PET_AURAS, CHAR_INS_PET_AURA, CharacterDatabase, ObjectGuid::Empty, AuraEffect::GetAmount(), AuraEffect::GetBaseAmount(), Aura::GetDuration(), Aura::GetEffect(), Object::GetGUID(), CharmInfo::GetPetNumber(), ObjectGuid::GetRawValue(), Aura::GetSpellInfo(), SpellInfo::HasAttribute(), SpellInfo::HasAura(), IN_MILLISECONDS, Aura::IsPermanent(), Unit::IsPetAura(), SpellInfo::IsPositive(), Unit::m_charmInfo, Unit::m_ownedAuras, MAX_SPELL_EFFECTS, PreparedStatementBase::SetData(), SPELL_ATTR0_NO_AURA_CANCEL, SPELL_ATTR1_NO_AURA_ICON, and SPELL_AURA_TRANSFORM.

Referenced by SavePetToDB().

◆ _SaveSpellCooldowns()

void Pet::_SaveSpellCooldowns ( CharacterDatabaseTransaction  trans)
1482 stmt->SetData(0, m_charmInfo->GetPetNumber());
1483 trans->Append(stmt);
1485 time_t curTime = GameTime::GetGameTime().count();
1486 uint32 curMSTime = GameTime::GetGameTimeMS().count();
1487 uint32 infTime = curMSTime + infinityCooldownDelayCheck;
1489 // remove oudated and save active
1490 CreatureSpellCooldowns::iterator itr, itr2;
1491 for (itr = m_CreatureSpellCooldowns.begin(); itr != m_CreatureSpellCooldowns.end();)
1492 {
1493 itr2 = itr;
1494 ++itr;
1496 if (itr2->second.end <= curMSTime + 1000)
1497 {
1498 m_CreatureSpellCooldowns.erase(itr2);
1499 }
1500 else if (itr2->second.end <= infTime)
1501 {
1502 uint32 cooldown = ((itr2->second.end - curMSTime) / IN_MILLISECONDS) + curTime;
1503 stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL_COOLDOWN);
1504 stmt->SetData(0, m_charmInfo->GetPetNumber());
1505 stmt->SetData(1, itr2->first);
1506 stmt->SetData(2, itr2->second.category);
1507 stmt->SetData(3, cooldown);
1508 trans->Append(stmt);
1509 }
1510 }
Definition: CharacterDatabase.h:466
Definition: CharacterDatabase.h:465
static constexpr uint32 infinityCooldownDelayCheck
Definition: Unit.h:155
Milliseconds GetGameTimeMS()
Definition: GameTime.cpp:43

References CHAR_DEL_PET_SPELL_COOLDOWNS, CHAR_INS_PET_SPELL_COOLDOWN, CharacterDatabase, GameTime::GetGameTime(), GameTime::GetGameTimeMS(), CharmInfo::GetPetNumber(), IN_MILLISECONDS, infinityCooldownDelayCheck, Unit::m_charmInfo, Creature::m_CreatureSpellCooldowns, and PreparedStatementBase::SetData().

Referenced by SavePetToDB().

◆ _SaveSpells()

void Pet::_SaveSpells ( CharacterDatabaseTransaction  trans)
1528 for (PetSpellMap::iterator itr = m_spells.begin(), next = m_spells.begin(); itr != m_spells.end(); itr = next)
1529 {
1530 ++next;
1532 // prevent saving family passives to DB
1533 if (itr->second.type == PETSPELL_FAMILY)
1534 continue;
1538 switch (itr->second.state)
1539 {
1541 stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
1542 stmt->SetData(0, m_charmInfo->GetPetNumber());
1543 stmt->SetData(1, itr->first);
1544 trans->Append(stmt);
1546 m_spells.erase(itr);
1547 continue;
1549 stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PET_SPELL_BY_SPELL);
1550 stmt->SetData(0, m_charmInfo->GetPetNumber());
1551 stmt->SetData(1, itr->first);
1552 trans->Append(stmt);
1554 stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
1555 stmt->SetData(0, m_charmInfo->GetPetNumber());
1556 stmt->SetData(1, itr->first);
1557 stmt->SetData(2, itr->;
1558 trans->Append(stmt);
1560 break;
1561 case PETSPELL_NEW:
1562 stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_PET_SPELL);
1563 stmt->SetData(0, m_charmInfo->GetPetNumber());
1564 stmt->SetData(1, itr->first);
1565 stmt->SetData(2, itr->;
1566 trans->Append(stmt);
1567 break;
1569 continue;
1570 }
1571 itr->second.state = PETSPELL_UNCHANGED;
1572 }
Definition: CharacterDatabase.h:468
Definition: CharacterDatabase.h:467
Definition: PetDefines.h:59
Definition: PetDefines.h:58
Definition: PetDefines.h:60
Definition: PetDefines.h:66
PetSpellMap m_spells
Definition: Pet.h:120

References CHAR_DEL_PET_SPELL_BY_SPELL, CHAR_INS_PET_SPELL, CharacterDatabase, CharmInfo::GetPetNumber(), Unit::m_charmInfo, m_spells, PETSPELL_CHANGED, PETSPELL_FAMILY, PETSPELL_NEW, PETSPELL_REMOVED, PETSPELL_UNCHANGED, and PreparedStatementBase::SetData().

Referenced by SavePetToDB().

◆ addSpell()

bool Pet::addSpell ( uint32  spellId,
ActiveStates  active = ACT_DECIDE,
PetSpellState  state = PETSPELL_NEW,
PetSpellType  type = PETSPELL_NORMAL 
1739 SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
1740 if (!spellInfo)
1741 {
1742 // do pet spell book cleanup
1743 if (state == PETSPELL_UNCHANGED) // spell load case
1744 {
1745 LOG_ERROR("", "Pet::addSpell: Non-existed in SpellStore spell #{} request, deleting for all pets in `pet_spell`.", spellId);
1748 stmt->SetData(0, spellId);
1749 CharacterDatabase.Execute(stmt);
1750 }
1751 else
1752 LOG_ERROR("", "Pet::addSpell: Non-existed in SpellStore spell #{} request.", spellId);
1754 return false;
1755 }
1757 auto const& itr = m_spells.find(spellId);
1758 if (itr != m_spells.end())
1759 {
1760 if (itr->second.state == PETSPELL_REMOVED)
1761 {
1762 m_spells.erase(itr);
1763 state = PETSPELL_CHANGED;
1764 }
1765 else if (state == PETSPELL_UNCHANGED && itr->second.state != PETSPELL_UNCHANGED)
1766 {
1767 // can be in case spell loading but learned at some previous spell loading
1768 itr->second.state = PETSPELL_UNCHANGED;
1770 ToggleAutocast(spellInfo, active ==