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

#include <TemporarySummon.h>

Public Member Functions

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

Protected Attributes

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

Additional Inherited Members

- Public Types inherited from Unit
typedef std::set< Unit * > AttackerSet
 
typedef std::set< Unit * > ControlList
 
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
< DiminishingReturn
Diminishing
 
typedef std::map< uint8,
AuraApplication * > 
VisibleAuraMap
 
typedef std::set< PetAura const * > PetAuraSet
 
- Static Public Member Functions inherited from Creature
static float _GetDamageMod (int32 Rank)
 
- Static Public Member Functions inherited from Unit
static ReputationRank GetFactionReactionTo (FactionTemplateEntry const *factionTemplateEntry, Unit const *target)
 
- Static Public Member Functions inherited from Position
static float NormalizeOrientation (float o)
 
- Public Attributes inherited from TempSummon
const SummonPropertiesEntry *const m_Properties
 
- Public Attributes inherited from Creature
Loot loot
 
uint32 m_spells [CREATURE_MAX_SPELLS]
 
uint32 m_groupLootTimer
 
ObjectGuid lootingGroupLowGUID
 
uint32 m_PlayerDamageReq
 
float m_SightDistance
 
float m_CombatDistance
 
bool m_isTempWorldObject
 
- Public Attributes inherited from Unit
uint32 m_extraAttacks
 
bool m_canDualWield
 
ControlList m_Controlled
 
Playerm_movedPlayer
 
ObjectGuid m_SummonSlot [MAX_SUMMON_SLOT]
 
ObjectGuid m_ObjectSlot [MAX_GAMEOBJECT_SLOT]
 
float m_modMeleeHitChance
 
float m_modRangedHitChance
 
float m_modSpellHitChance
 
int32 m_baseSpellCritChance
 
float m_threatModifier [MAX_SPELL_SCHOOL]
 
float m_modAttackSpeedPct [3]
 
EventProcessor m_Events
 
SpellImmuneList m_spellImmune [MAX_SPELL_IMMUNITY]
 
uint32 m_lastSanctuaryTime
 
PetAuraSet m_petAuras
 
bool IsAIEnabled
 
bool NeedChangeAI
 
ObjectGuid LastCharmerGUID
 
bool m_ControlledByPlayer
 
Movement::MoveSplinemovespline
 
- Public Attributes inherited from WorldObject
FlaggedValuesArray32< int32,
uint32, StealthType,
TOTAL_STEALTH_TYPES
m_stealth
 
FlaggedValuesArray32< int32,
uint32, StealthType,
TOTAL_STEALTH_TYPES
m_stealthDetect
 
FlaggedValuesArray32< int32,
uint32, InvisibilityType,
TOTAL_INVISIBILITY_TYPES
m_invisibility
 
FlaggedValuesArray32< int32,
uint32, InvisibilityType,
TOTAL_INVISIBILITY_TYPES
m_invisibilityDetect
 
FlaggedValuesArray32< int32,
uint32,
ServerSideVisibilityType,
TOTAL_SERVERSIDE_VISIBILITY_TYPES
m_serverSideVisibility
 
FlaggedValuesArray32< int32,
uint32,
ServerSideVisibilityType,
TOTAL_SERVERSIDE_VISIBILITY_TYPES
m_serverSideVisibilityDetect
 
uint32 LastUsedScriptID
 
MovementInfo m_movementInfo
 
- Public Attributes inherited from WorldLocation
uint32 m_mapId
 
- Public Attributes inherited from Position
float m_positionX
 
float m_positionY
 
float m_positionZ
 
- Protected Types inherited from Unit
typedef std::list
< DynamicObject * > 
DynObjectList
 
typedef std::list< GameObject * > GameObjectList
 
- Protected Member Functions inherited from Creature
bool CreateFromProto (ObjectGuid::LowType guidlow, uint32 entry, CreatureData const *data=nullptr, uint32 vehId=0)
 
bool InitEntry (uint32 entry, CreatureData const *data=nullptr)
 
void RegenerateMana ()
 
void RegenerateHealth ()
 
void Regenerate (Powers power)
 
bool IsInvisibleDueToDespawn () const override
 
bool CanAlwaysSee (WorldObject const *obj) const override
 
- Protected Member Functions inherited from Unit
 Unit (bool isWorldObject)
 
void BuildValuesUpdate (uint8 updatetype, ByteBuffer *data, Player *target) const override
 
void DestroyForPlayer (Player *target) const override
 
void _UpdateSpells (uint32 time)
 
void _DeleteRemovedAuras ()
 
void _UpdateAutoRepeatSpell ()
 
bool IsAlwaysVisibleFor (WorldObject const *seer) const override
 
bool IsAlwaysDetectableFor (WorldObject const *seer) const override
 
void DisableSpline ()
 
void SetFeared (bool apply)
 
void SetConfused (bool apply)
 
void SetStunned (bool apply)
 
void SetRooted (bool apply, bool packetOnly=false)
 
- Protected Member Functions inherited from WorldObject
 WorldObject (bool isWorldObject)
 
void SetLocationMapId (uint32 _mapId)
 
void SetLocationInstanceId (uint32 _instanceId)
 
virtual bool IsNeverVisible () const
 
- Protected Member Functions inherited from Object
 Object ()
 
void _InitValues ()
 
void _Create (ObjectGuid const &guid)
 
std::string _ConcatFields (uint16 startIndex, uint16 size) const
 
void _LoadIntoDataField (std::string const &data, uint32 startOffset, uint32 count)
 
uint32 GetUpdateFieldData (Player const *target, uint32 *&flags) const
 
uint32 GetDynamicUpdateFieldData (Player const *target, uint32 *&flags) const
 
void BuildMovementUpdate (ByteBuffer *data, uint32 flags) const
 
virtual void BuildDynamicValuesUpdate (uint8 updatetype, ByteBuffer *data, Player *target) const
 
void AddToObjectUpdateIfNeeded ()
 
- Protected Member Functions inherited from MapObject
 MapObject ()
 
- Static Protected Member Functions inherited from Creature
static float _GetHealthMod (int32 Rank)
 

Constructor & Destructor Documentation

Guardian::Guardian ( SummonPropertiesEntry const properties,
Unit owner,
bool  isWorldObject 
)
324  : Minion(properties, owner, isWorldObject)
326 {
327  memset(m_statFromOwner, 0, sizeof(float)*MAX_STATS);
329  if (properties && properties->Type == SUMMON_TYPE_PET)
330  {
332  InitCharmInfo();
333  }
334 }
Definition: SharedDefines.h:4396
Definition: Unit.h:860
int32 m_bonusSpellDamage
Definition: TemporarySummon.h:103
Definition: Unit.h:866
#define MAX_STATS
Definition: SharedDefines.h:244
Minion(SummonPropertiesEntry const *properties, Unit *owner, bool isWorldObject)
Definition: TemporarySummon.cpp:288
uint32 m_unitTypeMask
Definition: Unit.h:2307
CharmInfo * InitCharmInfo()
Definition: Unit.cpp:11836
float m_statFromOwner[MAX_STATS]
Definition: TemporarySummon.h:104

+ Here is the call graph for this function:

Member Function Documentation

int32 Guardian::GetBonusDamage ( ) const
inline
100 { return m_bonusSpellDamage; }
int32 m_bonusSpellDamage
Definition: TemporarySummon.h:103
void Guardian::InitStats ( uint32  duration)
overridevirtual

Reimplemented from Minion.

337 {
338  Minion::InitStats(duration);
339 
341 
344 
346 }
Definition: Unit.h:1131
void InitCharmCreateSpells()
Definition: Unit.cpp:11937
void InitStats(uint32 duration) override
Definition: TemporarySummon.cpp:298
CharmInfo * m_charmInfo
Definition: Unit.h:2292
Definition: Unit.h:866
uint8 getLevel() const
Definition: Unit.h:1408
TypeID GetTypeId() const
Definition: Object.h:113
Unit * GetOwner() const
Definition: TemporarySummon.h:72
Definition: ObjectGuid.h:33
uint32 HasUnitTypeMask(uint32 mask) const
Definition: Unit.h:1399
bool InitStatsForLevel(uint8 level)
Definition: Pet.cpp:801
void SetReactState(ReactStates st)
Definition: Creature.h:502

+ Here is the call graph for this function:

bool Guardian::InitStatsForLevel ( uint8  petlevel)
Todo:
Move stat mods code to pet passive auras
802 {
803  CreatureTemplate const* cinfo = GetCreatureTemplate();
804  ASSERT(cinfo);
805 
806  SetLevel(petlevel);
807 
808  //Determine pet type
809  PetType petType = MAX_PET_TYPE;
810  if (IsPet() && GetOwner()->GetTypeId() == TYPEID_PLAYER)
811  {
812  if (GetOwner()->getClass() == CLASS_WARLOCK
813  || GetOwner()->getClass() == CLASS_SHAMAN // Fire Elemental
814  || GetOwner()->getClass() == CLASS_DEATH_KNIGHT) // Risen Ghoul
815  {
816  petType = SUMMON_PET;
817  }
818  else if (GetOwner()->getClass() == CLASS_HUNTER)
819  {
820  petType = HUNTER_PET;
822  }
823  else
824  {
825  TC_LOG_ERROR("entities.pet", "Unknown type pet %u is summoned by player class %u",
826  GetEntry(), GetOwner()->getClass());
827  }
828  }
829 
830  uint32 creature_ID = (petType == HUNTER_PET) ? 1 : cinfo->Entry;
831 
833 
834  SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(petlevel*50));
835 
839 
842 
843  //scale
844  CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family);
845  if (cFamily && cFamily->MinScale > 0.0f && petType == HUNTER_PET)
846  {
847  float scale;
848  if (getLevel() >= cFamily->MaxScaleLevel)
849  scale = cFamily->MaxScale;
850  else if (getLevel() <= cFamily->MinScaleLevel)
851  scale = cFamily->MinScale;
852  else
853  scale = cFamily->MinScale + float(getLevel() - cFamily->MinScaleLevel) / cFamily->MaxScaleLevel * (cFamily->MaxScale - cFamily->MinScale);
854 
855  SetObjectScale(scale);
856  }
857 
858  // Resistance
859  for (uint8 i = SPELL_SCHOOL_HOLY; i < MAX_SPELL_SCHOOL; ++i)
861 
862  //health, mana, armor and resistance
863  PetLevelInfo const* pInfo = sObjectMgr->GetPetLevelInfo(creature_ID, petlevel);
864  if (pInfo) // exist in DB
865  {
866  SetCreateHealth(pInfo->health);
867  if (petType != HUNTER_PET) //hunter pet use focus
868  SetCreateMana(pInfo->mana);
869 
870  if (pInfo->armor > 0)
872 
873  for (uint8 stat = 0; stat < MAX_STATS; ++stat)
874  SetCreateStat(Stats(stat), float(pInfo->stats[stat]));
875  }
876  else // not exist in DB, use some default fake data
877  {
878  // remove elite bonuses included in DB values
879  CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(petlevel, cinfo->unit_class);
880  SetCreateHealth(stats->BaseHealth[cinfo->expansion]);
881  SetCreateMana(stats->BaseMana);
882 
888  }
889 
890  SetBonusDamage(0);
891  switch (petType)
892  {
893  case SUMMON_PET:
894  {
895  // the damage bonus used for pets is either fire or shadow damage, whatever is higher
898  int32 val = (fire > shadow) ? fire : shadow;
899  if (val < 0)
900  val = 0;
901 
902  SetBonusDamage(val * 0.15f);
903 
904  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
905  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
906 
907  //SetModifierValue(UNIT_MOD_ATTACK_POWER, BASE_VALUE, float(cinfo->attackpower));
908  break;
909  }
910  case HUNTER_PET:
911  {
913  //these formula may not be correct; however, it is designed to be close to what it should be
914  //this makes dps 0.5 of pets level
915  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
916  //damage range is then petlevel / 2
917  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
918  //damage is increased afterwards as strength and pet scaling modify attack power
919  break;
920  }
921  default:
922  {
923  switch (GetEntry())
924  {
925  case 510: // mage Water Elemental
926  {
928  break;
929  }
930  case 1964: //force of nature
931  {
932  if (!pInfo)
933  SetCreateHealth(30 + 30*petlevel);
934  float bonusDmg = GetOwner()->SpellBaseDamageBonusDone(SPELL_SCHOOL_MASK_NATURE) * 0.15f;
935  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel * 2.5f - (petlevel / 2) + bonusDmg));
936  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel * 2.5f + (petlevel / 2) + bonusDmg));
937  break;
938  }
939  case 15352: //earth elemental 36213
940  {
941  if (!pInfo)
942  SetCreateHealth(100 + 120*petlevel);
943  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
944  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
945  break;
946  }
947  case 15438: //fire elemental
948  {
949  if (!pInfo)
950  {
951  SetCreateHealth(40*petlevel);
952  SetCreateMana(28 + 10*petlevel);
953  }
955  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel * 4 - petlevel));
956  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel * 4 + petlevel));
957  break;
958  }
959  case 19668: // Shadowfiend
960  {
961  if (!pInfo)
962  {
963  SetCreateMana(28 + 10*petlevel);
964  SetCreateHealth(28 + 30*petlevel);
965  }
967  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float((petlevel * 4 - petlevel) + bonus_dmg));
968  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float((petlevel * 4 + petlevel) + bonus_dmg));
969 
970  break;
971  }
972  case 19833: //Snake Trap - Venomous Snake
973  {
974  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float((petlevel / 2) - 25));
975  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float((petlevel / 2) - 18));
976  break;
977  }
978  case 19921: //Snake Trap - Viper
979  {
980  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel / 2 - 10));
981  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel / 2));
982  break;
983  }
984  case 29264: // Feral Spirit
985  {
986  if (!pInfo)
987  SetCreateHealth(30*petlevel);
988 
989  // wolf attack speed is 1.5s
991 
992  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float((petlevel * 4 - petlevel)));
993  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float((petlevel * 4 + petlevel)));
994 
995  SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, float(GetOwner()->GetArmor()) * 0.35f); // Bonus Armor (35% of player armor)
996  SetModifierValue(UNIT_MOD_STAT_STAMINA, BASE_VALUE, float(GetOwner()->GetStat(STAT_STAMINA)) * 0.3f); // Bonus Stamina (30% of player stamina)
997  if (!HasAura(58877))//prevent apply twice for the 2 wolves
998  AddAura(58877, this);//Spirit Hunt, passive, Spirit Wolves' attacks heal them and their master for 150% of damage done.
999  break;
1000  }
1001  case 31216: // Mirror Image
1002  {
1005  if (!pInfo)
1006  {
1007  SetCreateMana(28 + 30*petlevel);
1008  SetCreateHealth(28 + 10*petlevel);
1009  }
1010  break;
1011  }
1012  case 27829: // Ebon Gargoyle
1013  {
1014  if (!pInfo)
1015  {
1016  SetCreateMana(28 + 10*petlevel);
1017  SetCreateHealth(28 + 30*petlevel);
1018  }
1020  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - (petlevel / 4)));
1021  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel + (petlevel / 4)));
1022  break;
1023  }
1024  case 28017: // Bloodworms
1025  {
1026  SetCreateHealth(4 * petlevel);
1028  SetBaseWeaponDamage(BASE_ATTACK, MINDAMAGE, float(petlevel - 30 - (petlevel / 4)));
1029  SetBaseWeaponDamage(BASE_ATTACK, MAXDAMAGE, float(petlevel - 30 + (petlevel / 4)));
1030  }
1031  }
1032  break;
1033  }
1034  }
1035 
1036  UpdateAllStats();
1037 
1038  SetFullHealth();
1040  return true;
1041 }
Definition: UpdateFields.h:128
uint16 mana
Definition: ObjectMgr.h:451
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
Definition: Unit.cpp:4240
#define BASE_ATTACK_TIME
Definition: Unit.h:202
Definition: Unit.h:865
int32 expansion
Definition: Creature.h:95
Definition: PetDefines.h:24
uint32 GetUInt32Value(uint16 index) const
Definition: Object.cpp:300
Definition: ObjectMgr.h:445
int32 SpellBaseDamageBonusDone(SpellSchoolMask schoolMask) const
Definition: Unit.cpp:8581
Definition: SharedDefines.h:172
uint32 GetDisplayId() const
Definition: Unit.h:2012
UnitMods
Definition: Unit.h:482
Definition: Unit.h:444
void SetModifierValue(UnitMods unitMod, UnitModifierType modifierType, float value)
Definition: Unit.h:1952
uint16 stats[MAX_STATS]
Definition: ObjectMgr.h:449
void SetAttackTime(WeaponAttackType att, uint32 val)
Definition: Unit.h:1458
Definition: Unit.h:619
uint16 armor
Definition: ObjectMgr.h:452
Definition: SharedDefines.h:239
Aura * AddAura(uint32 spellId, Unit *target)
Definition: Unit.cpp:14463
uint32 MinScaleLevel
Definition: DBCStructure.h:283
Definition: Unit.h:434
void SetCreateHealth(uint32 val)
Definition: Unit.h:1894
Definition: UpdateFields.h:129
Stats
Definition: SharedDefines.h:235
Definition: Unit.h:517
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:996
SpellSchools
Definition: SharedDefines.h:272
uint32 BaseMana
Definition: Creature.h:221
Definition: SharedDefines.h:238
void SetObjectScale(float scale) override
Definition: Creature.cpp:2653
#define sObjectMgr
Definition: ObjectMgr.h:1567
#define MAX_SPELL_SCHOOL
Definition: SharedDefines.h:283
bool UpdateAllStats() override
Definition: StatSystem.cpp:1048
Definition: SharedDefines.h:275
Definition: SharedDefines.h:237
Definition: PetDefines.h:25
Definition: SharedDefines.h:240
uint8 getLevel() const
Definition: Unit.h:1408
float MaxScale
Definition: DBCStructure.h:284
#define MAX_STATS
Definition: SharedDefines.h:244
Definition: SharedDefines.h:292
Definition: Unit.h:486
TypeID GetTypeId() const
Definition: Object.h:113
CreatureTemplate const * GetCreatureTemplate() const
Definition: Creature.h:558
Unit * GetOwner() const
Definition: TemporarySummon.h:72
void SetMeleeDamageSchool(SpellSchools school)
Definition: Creature.h:528
Definition: Unit.h:618
void SetLevel(uint8 lvl)
Definition: Unit.cpp:11523
Definition: SharedDefines.h:276
uint32 Entry
Definition: Creature.h:81
void SetCreateMana(uint32 val)
Definition: Unit.h:1896
Definition: UpdateFields.h:130
uint32 BaseHealth[MAX_EXPANSIONS]
Definition: Creature.h:220
Definition: SharedDefines.h:290
void SetCreateStat(Stats stat, float val)
Definition: Unit.h:1893
int32_t int32
Definition: Define.h:146
uint32_t uint32
Definition: Define.h:150
Definition: PetDefines.h:26
Definition: SharedDefines.h:173
#define PET_XP_FACTOR
Definition: Pet.cpp:37
Definition: SharedDefines.h:293
float MinScale
Definition: DBCStructure.h:282
DBCStorage< CreatureFamilyEntry > sCreatureFamilyStore(CreatureFamilyfmt)
int32 resistance[MAX_SPELL_SCHOOL]
Definition: Creature.h:122
void SetBaseWeaponDamage(WeaponAttackType attType, WeaponDamageRange damageRange, float value)
Definition: Unit.h:1972
uint32 GetArmor() const
Definition: Unit.h:1419
Definition: SharedDefines.h:279
bool IsPet() const
Definition: Unit.h:1403
void SetPower(Powers power, int32 val)
Definition: Unit.cpp:11607
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
Definition: Unit.h:445
Definition: ObjectGuid.h:33
Definition: UpdateFields.h:251
Definition: SharedDefines.h:169
uint32 m_unitTypeMask
Definition: Unit.h:2307
void SetFloatValue(uint16 index, float value)
Definition: Object.cpp:1067
uint32 BaseAttackTime
Definition: Creature.h:104
int32_t int32
Definition: g3dmath.h:167
uint8 getClass() const
Definition: Unit.h:1413
uint32 dmgschool
Definition: Creature.h:103
Definition: SharedDefines.h:241
uint8_t uint8
Definition: Define.h:152
#define ASSERT
Definition: Errors.h:55
uint32 family
Definition: Creature.h:112
int32 GetMaxPower(Powers power) const
Definition: Unit.cpp:11598
uint32 GetEntry() const
Definition: Object.h:107
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:207
void SetFullHealth()
Definition: Unit.h:1440
uint32_t uint32
Definition: g3dmath.h:168
void SetBonusDamage(int32 damage)
Definition: StatSystem.cpp:1278
float GetTotalAttackPowerValue(WeaponAttackType attType) const
Definition: Unit.cpp:11491
Definition: SharedDefines.h:175
uint16 health
Definition: ObjectMgr.h:450
uint32 MaxScaleLevel
Definition: DBCStructure.h:285
float GetStat(Stats stat) const
Definition: Unit.h:1417
uint32 unit_class
Definition: Creature.h:108
PetType
Definition: PetDefines.h:22
Definition: Creature.h:79
Definition: Unit.h:501
Definition: Unit.h:617
Definition: SharedDefines.h:291
Definition: SharedDefines.h:248
Definition: Creature.h:218
Definition: DBCStructure.h:279

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::InitSummon ( )
overridevirtual

Reimplemented from TempSummon.

349 {
351 
352  if (GetOwner()->GetTypeId() == TYPEID_PLAYER
353  && GetOwner()->GetMinionGUID() == GetGUID()
354  && !GetOwner()->GetCharmGUID())
355  {
356  GetOwner()->ToPlayer()->CharmSpellInitialize();
357  }
358 }
ObjectGuid GetCharmGUID() const
Definition: Unit.h:1706
ObjectGuid GetMinionGUID() const
Definition: Unit.h:1702
Player * ToPlayer()
Definition: Object.h:191
TypeID GetTypeId() const
Definition: Object.h:113
Unit * GetOwner() const
Definition: TemporarySummon.h:72
ObjectGuid const & GetGUID() const
Definition: Object.h:105
Definition: ObjectGuid.h:33
virtual void InitSummon()
Definition: TemporarySummon.cpp:220

+ Here is the call graph for this function:

void Guardian::SetBonusDamage ( int32  damage)
1279 {
1280  m_bonusSpellDamage = damage;
1281  if (GetOwner()->GetTypeId() == TYPEID_PLAYER)
1283 }
int32 m_bonusSpellDamage
Definition: TemporarySummon.h:103
Definition: UpdateFields.h:283
void SetUInt32Value(uint16 index, uint32 value)
Definition: Object.cpp:996
TypeID GetTypeId() const
Definition: Object.h:113
Unit * GetOwner() const
Definition: TemporarySummon.h:72
Definition: ObjectGuid.h:33

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool Guardian::UpdateAllStats ( )
overridevirtual

Reimplemented from Creature.

1049 {
1050  for (uint8 i = STAT_STRENGTH; i < MAX_STATS; ++i)
1051  UpdateStats(Stats(i));
1052 
1053  for (uint8 i = POWER_MANA; i < MAX_POWERS; ++i)
1054  UpdateMaxPower(Powers(i));
1055 
1057 
1058  return true;
1059 }
void UpdateMaxPower(Powers power) override
Definition: StatSystem.cpp:1122
Stats
Definition: SharedDefines.h:235
bool UpdateStats(Stats stat) override
Definition: StatSystem.cpp:973
Definition: SharedDefines.h:237
#define MAX_STATS
Definition: SharedDefines.h:244
Powers
Definition: SharedDefines.h:246
uint8_t uint8
Definition: Define.h:152
Definition: SharedDefines.h:265
virtual void UpdateAllResistances()
Definition: StatSystem.cpp:54
Definition: SharedDefines.h:248

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateArmor ( )
overridevirtual

Reimplemented from Creature.

1078 {
1079  float value = 0.0f;
1080  float bonus_armor = 0.0f;
1081  UnitMods unitMod = UNIT_MOD_ARMOR;
1082 
1083  // hunter pets gain 35% of owner's armor value, warlock pets gain 100% of owner's armor
1084  if (IsHunterPet())
1085  bonus_armor = float(CalculatePct(m_owner->GetArmor(), 70));
1086  else if (IsPet())
1087  bonus_armor = m_owner->GetArmor();
1088 
1089  value = GetModifierValue(unitMod, BASE_VALUE);
1090  value *= GetModifierValue(unitMod, BASE_PCT);
1091  value += GetModifierValue(unitMod, TOTAL_VALUE) + bonus_armor;
1092  value *= GetModifierValue(unitMod, TOTAL_PCT);
1093 
1094  SetArmor(int32(value));
1095 }
UnitMods
Definition: Unit.h:482
Definition: Unit.h:434
bool IsHunterPet() const
Definition: Unit.h:1404
void SetArmor(int32 val)
Definition: Unit.h:1420
float GetModifierValue(UnitMods unitMod, UnitModifierType modifierType) const
Definition: Unit.cpp:11388
T CalculatePct(T base, U pct)
Definition: Util.h:92
Unit *const m_owner
Definition: TemporarySummon.h:79
uint32 GetArmor() const
Definition: Unit.h:1419
Definition: Unit.h:437
bool IsPet() const
Definition: Unit.h:1403
Definition: Unit.h:438
int32_t int32
Definition: g3dmath.h:167
const FieldDescriptor value
Definition: descriptor.h:1522
Definition: Unit.h:436
Definition: Unit.h:501

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateAttackPowerAndDamage ( bool  ranged = false)
overridevirtual

Reimplemented from Creature.

1148 {
1149  if (ranged)
1150  return;
1151 
1152  float val = 0.0f;
1153  float bonusAP = 0.0f;
1154  UnitMods unitMod = UNIT_MOD_ATTACK_POWER;
1155 
1156  if (GetEntry() == ENTRY_IMP) // imp's attack power
1157  val = GetStat(STAT_STRENGTH) - 10.0f;
1158  else
1159  val = 2 * GetStat(STAT_STRENGTH) - 20.0f;
1160 
1161  Unit* owner = GetOwner();
1162  if (owner && owner->GetTypeId() == TYPEID_PLAYER)
1163  {
1164  if (IsHunterPet()) //hunter pets benefit from owner's attack power
1165  {
1166  float mod = 1.0f; //Hunter contribution modifier
1167  bonusAP = owner->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.22f * mod;
1168  SetBonusDamage(int32(owner->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.1287f * mod));
1169  }
1170  else if (IsPetGhoul()) //ghouls benefit from deathknight's attack power (may be summon pet or not)
1171  {
1172  bonusAP = owner->GetTotalAttackPowerValue(BASE_ATTACK) * 0.22f;
1174  }
1175  else if (IsSpiritWolf()) //wolf benefit from shaman's attack power
1176  {
1177  float dmg_multiplier = 0.31f;
1178  if (m_owner->GetAuraEffect(63271, 0)) // Glyph of Feral Spirit
1179  dmg_multiplier = 0.61f;
1180  bonusAP = owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier;
1181  SetBonusDamage(int32(owner->GetTotalAttackPowerValue(BASE_ATTACK) * dmg_multiplier));
1182  }
1183  //demons benefit from warlocks shadow or fire damage
1184  else if (IsPet())
1185  {
1188  int32 maximum = (fire > shadow) ? fire : shadow;
1189  if (maximum < 0)
1190  maximum = 0;
1191  SetBonusDamage(int32(maximum * 0.15f));
1192  bonusAP = maximum * 0.57f;
1193  }
1194  //water elementals benefit from mage's frost damage
1195  else if (GetEntry() == ENTRY_WATER_ELEMENTAL)
1196  {
1198  if (frost < 0)
1199  frost = 0;
1200  SetBonusDamage(int32(frost * 0.4f));
1201  }
1202  }
1203 
1205 
1206  //in BASE_VALUE of UNIT_MOD_ATTACK_POWER for creatures we store data of meleeattackpower field in DB
1207  float base_attPower = GetModifierValue(unitMod, BASE_VALUE) * GetModifierValue(unitMod, BASE_PCT);
1208  float attPowerMultiplier = GetModifierValue(unitMod, TOTAL_PCT) - 1.0f;
1209 
1210  //UNIT_FIELD_(RANGED)_ATTACK_POWER field
1211  SetInt32Value(UNIT_FIELD_ATTACK_POWER, (int32)base_attPower);
1212  //UNIT_FIELD_(RANGED)_ATTACK_POWER_MULTIPLIER field
1214 
1215  //automatically update weapon damage after attack power modification
1217 }
Definition: UpdateFields.h:150
#define ENTRY_IMP
Definition: StatSystem.cpp:962
bool IsPetGhoul() const
Definition: TemporarySummon.h:75
uint32 GetUInt32Value(uint16 index) const
Definition: Object.cpp:300
UnitMods
Definition: Unit.h:482
void SetModifierValue(UnitMods unitMod, UnitModifierType modifierType, float value)
Definition: Unit.h:1952
Definition: Unit.h:619
void SetInt32Value(uint16 index, int32 value)
Definition: Object.cpp:983
Definition: Unit.h:434
Definition: SharedDefines.h:278
Definition: Unit.h:508
Definition: SharedDefines.h:237
bool IsSpiritWolf() const
Definition: TemporarySummon.h:76
bool IsHunterPet() const
Definition: Unit.h:1404
TypeID GetTypeId() const
Definition: Object.h:113
Unit * GetOwner() const
Definition: TemporarySummon.h:72
Definition: SharedDefines.h:276
void UpdateDamagePhysical(WeaponAttackType attType) override
Definition: StatSystem.cpp:1219
int32_t int32
Definition: Define.h:146
float GetModifierValue(UnitMods unitMod, UnitModifierType modifierType) const
Definition: Unit.cpp:11388
Definition: UpdateFields.h:147
Definition: UpdateFields.h:252
Unit *const m_owner
Definition: TemporarySummon.h:79
Definition: SharedDefines.h:279
bool IsPet() const
Definition: Unit.h:1403
Definition: Unit.h:438
Definition: ObjectGuid.h:33
#define ENTRY_WATER_ELEMENTAL
Definition: StatSystem.cpp:967
Definition: UpdateFields.h:251
void SetFloatValue(uint16 index, float value)
Definition: Object.cpp:1067
int32_t int32
Definition: g3dmath.h:167
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
Definition: Unit.cpp:4071
uint32 GetEntry() const
Definition: Object.h:107
Definition: Unit.h:436
void SetBonusDamage(int32 damage)
Definition: StatSystem.cpp:1278
float GetTotalAttackPowerValue(WeaponAttackType attType) const
Definition: Unit.cpp:11491
Definition: Unit.h:1305
float GetStat(Stats stat) const
Definition: Unit.h:1417
Definition: Unit.h:617

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateDamagePhysical ( WeaponAttackType  attType)
overridevirtual
Todo:
: remove this

Reimplemented from Unit.

1220 {
1221  if (attType > BASE_ATTACK)
1222  return;
1223 
1224  float bonusDamage = 0.0f;
1225  if (m_owner->GetTypeId() == TYPEID_PLAYER)
1226  {
1227  //force of nature
1228  if (GetEntry() == ENTRY_TREANT)
1229  {
1231  if (spellDmg > 0)
1232  bonusDamage = spellDmg * 0.09f;
1233  }
1234  //greater fire elemental
1235  else if (GetEntry() == ENTRY_FIRE_ELEMENTAL)
1236  {
1238  if (spellDmg > 0)
1239  bonusDamage = spellDmg * 0.4f;
1240  }
1241  }
1242 
1244 
1245  float att_speed = float(GetAttackTime(BASE_ATTACK))/1000.0f;
1246 
1247  float base_value = GetModifierValue(unitMod, BASE_VALUE) + GetTotalAttackPowerValue(attType)/ 3.5f * att_speed + bonusDamage;
1248  float base_pct = GetModifierValue(unitMod, BASE_PCT);
1249  float total_value = GetModifierValue(unitMod, TOTAL_VALUE);
1250  float total_pct = GetModifierValue(unitMod, TOTAL_PCT);
1251 
1252  float weapon_mindamage = GetWeaponDamageRange(BASE_ATTACK, MINDAMAGE);
1253  float weapon_maxdamage = GetWeaponDamageRange(BASE_ATTACK, MAXDAMAGE);
1254 
1255  float mindamage = ((base_value + weapon_mindamage) * base_pct + total_value) * total_pct;
1256  float maxdamage = ((base_value + weapon_maxdamage) * base_pct + total_value) * total_pct;
1257 
1260  for (Unit::AuraEffectList::const_iterator itr = mDummy.begin(); itr != mDummy.end(); ++itr)
1261  {
1262  switch ((*itr)->GetSpellInfo()->Id)
1263  {
1264  case 61682:
1265  case 61683:
1266  AddPct(mindamage, -(*itr)->GetAmount());
1267  AddPct(maxdamage, -(*itr)->GetAmount());
1268  break;
1269  default:
1270  break;
1271  }
1272  }
1273 
1276 }
void SetStatFloatValue(uint16 index, float value)
Definition: Object.cpp:1135
Definition: UpdateFields.h:120
uint32 GetUInt32Value(uint16 index) const
Definition: Object.cpp:300
UnitMods
Definition: Unit.h:482
Definition: Unit.h:510
Definition: Unit.h:444
std::list< AuraEffect * > AuraEffectList
Definition: Unit.h:1322
Definition: Unit.h:434
Definition: SharedDefines.h:277
Definition: UpdateFields.h:121
#define ENTRY_FIRE_ELEMENTAL
Definition: StatSystem.cpp:969
uint32 GetAttackTime(WeaponAttackType att) const
Definition: Unit.cpp:10326
TypeID GetTypeId() const
Definition: Object.h:113
#define ENTRY_TREANT
Definition: StatSystem.cpp:968
Definition: SharedDefines.h:276
int32_t int32
Definition: Define.h:146
AuraEffectList const & GetAuraEffectsByType(AuraType type) const
Definition: Unit.h:1832
float GetModifierValue(UnitMods unitMod, UnitModifierType modifierType) const
Definition: Unit.cpp:11388
Definition: UpdateFields.h:252
Unit *const m_owner
Definition: TemporarySummon.h:79
Definition: Unit.h:437
float GetWeaponDamageRange(WeaponAttackType attType, WeaponDamageRange type) const
Definition: Unit.cpp:11509
Definition: Unit.h:438
Definition: Unit.h:445
Definition: ObjectGuid.h:33
Definition: SpellAuraDefines.h:69
Definition: UpdateFields.h:251
T AddPct(T &base, U pct)
Definition: Util.h:98
int32_t int32
Definition: g3dmath.h:167
uint32 GetEntry() const
Definition: Object.h:107
Definition: Unit.h:436
float GetTotalAttackPowerValue(WeaponAttackType attType) const
Definition: Unit.cpp:11491
Definition: Unit.h:617

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateMaxHealth ( )
overridevirtual

Reimplemented from Creature.

1098 {
1099  UnitMods unitMod = UNIT_MOD_HEALTH;
1100  float stamina = GetStat(STAT_STAMINA) - GetCreateStat(STAT_STAMINA);
1101 
1102  float multiplicator;
1103  switch (GetEntry())
1104  {
1105  case ENTRY_IMP: multiplicator = 8.4f; break;
1106  case ENTRY_VOIDWALKER: multiplicator = 11.0f; break;
1107  case ENTRY_SUCCUBUS: multiplicator = 9.1f; break;
1108  case ENTRY_FELHUNTER: multiplicator = 9.5f; break;
1109  case ENTRY_FELGUARD: multiplicator = 11.0f; break;
1110  case ENTRY_BLOODWORM: multiplicator = 1.0f; break;
1111  default: multiplicator = 10.0f; break;
1112  }
1113 
1114  float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreateHealth();
1115  value *= GetModifierValue(unitMod, BASE_PCT);
1116  value += GetModifierValue(unitMod, TOTAL_VALUE) + stamina * multiplicator;
1117  value *= GetModifierValue(unitMod, TOTAL_PCT);
1118 
1119  SetMaxHealth((uint32)value);
1120 }
#define ENTRY_IMP
Definition: StatSystem.cpp:962
#define ENTRY_VOIDWALKER
Definition: StatSystem.cpp:963
UnitMods
Definition: Unit.h:482
#define ENTRY_FELHUNTER
Definition: StatSystem.cpp:965
Definition: SharedDefines.h:239
Definition: Unit.h:434
#define ENTRY_SUCCUBUS
Definition: StatSystem.cpp:964
uint32_t uint32
Definition: Define.h:150
float GetModifierValue(UnitMods unitMod, UnitModifierType modifierType) const
Definition: Unit.cpp:11388
void SetMaxHealth(uint32 val)
Definition: Unit.cpp:11565
Definition: Unit.h:437
Definition: Unit.h:438
Definition: Unit.h:489
#define ENTRY_FELGUARD
Definition: StatSystem.cpp:966
float GetCreateStat(Stats stat) const
Definition: Unit.h:1902
uint32 GetCreateHealth() const
Definition: Unit.h:1895
const FieldDescriptor value
Definition: descriptor.h:1522
uint32 GetEntry() const
Definition: Object.h:107
Definition: Unit.h:436
float GetStat(Stats stat) const
Definition: Unit.h:1417
#define ENTRY_BLOODWORM
Definition: StatSystem.cpp:971

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateMaxPower ( Powers  power)
overridevirtual

Reimplemented from Creature.

1123 {
1124  UnitMods unitMod = UnitMods(UNIT_MOD_POWER_START + power);
1125 
1126  float addValue = (power == POWER_MANA) ? GetStat(STAT_INTELLECT) - GetCreateStat(STAT_INTELLECT) : 0.0f;
1127  float multiplicator = 15.0f;
1128 
1129  switch (GetEntry())
1130  {
1131  case ENTRY_IMP: multiplicator = 4.95f; break;
1132  case ENTRY_VOIDWALKER:
1133  case ENTRY_SUCCUBUS:
1134  case ENTRY_FELHUNTER:
1135  case ENTRY_FELGUARD: multiplicator = 11.5f; break;
1136  default: multiplicator = 15.0f; break;
1137  }
1138 
1139  float value = GetModifierValue(unitMod, BASE_VALUE) + GetCreatePowers(power);
1140  value *= GetModifierValue(unitMod, BASE_PCT);
1141  value += GetModifierValue(unitMod, TOTAL_VALUE) + addValue * multiplicator;
1142  value *= GetModifierValue(unitMod, TOTAL_PCT);
1143 
1144  SetMaxPower(power, uint32(value));
1145 }
#define ENTRY_IMP
Definition: StatSystem.cpp:962
#define ENTRY_VOIDWALKER
Definition: StatSystem.cpp:963
UnitMods
Definition: Unit.h:482
#define ENTRY_FELHUNTER
Definition: StatSystem.cpp:965
Definition: Unit.h:434
#define ENTRY_SUCCUBUS
Definition: StatSystem.cpp:964
Definition: SharedDefines.h:240
float GetModifierValue(UnitMods unitMod, UnitModifierType modifierType) const
Definition: Unit.cpp:11388
Definition: Unit.h:437
Definition: Unit.h:438
#define ENTRY_FELGUARD
Definition: StatSystem.cpp:966
float GetCreateStat(Stats stat) const
Definition: Unit.h:1902
Definition: Unit.h:519
int32 GetCreatePowers(Powers power) const
Definition: Unit.cpp:11679
void SetMaxPower(Powers power, int32 val)
Definition: Unit.cpp:11641
const FieldDescriptor value
Definition: descriptor.h:1522
uint32 GetEntry() const
Definition: Object.h:107
Definition: Unit.h:436
uint32_t uint32
Definition: g3dmath.h:168
float GetStat(Stats stat) const
Definition: Unit.h:1417
Definition: SharedDefines.h:248

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void Guardian::UpdateResistances ( uint32  school)
overridevirtual

Reimplemented from Creature.

1062 {
1063  if (school > SPELL_SCHOOL_NORMAL)
1064  {
1066 
1067  // hunter and warlock pets gain 40% of owner's resistance
1068  if (IsPet())
1069  value += float(CalculatePct(m_owner->GetResistance(SpellSchools(school)), 40));
1070 
1071  SetResistance(SpellSchools(school), int32(value));
1072  }
1073  else
1074  UpdateArmor();
1075 }
UnitMods
Definition: Unit.h:482
Definition: Unit.h:517
SpellSchools
Definition: SharedDefines.h:272
void SetResistance(SpellSchools school, int32 val)
Definition: Unit.h:1424
void UpdateArmor() override
Definition: StatSystem.cpp:1077
Definition: SharedDefines.h:274
T CalculatePct(T base, U pct)
Definition: Util.h:92
Unit *const m_owner
Definition: TemporarySummon.h:79
bool IsPet() const
Definition: Unit.h:1403
int32_t int32
Definition: g3dmath.h:167
uint32 GetResistance(SpellSchools school) const
Definition: Unit.h:1422
const FieldDescriptor value
Definition: descriptor.h:1522
float GetTotalAuraModValue(UnitMods unitMod) const
Definition: Unit.cpp:11419

+ Here is the call graph for this function:

bool Guardian::UpdateStats ( Stats  stat)
overridevirtual

Reimplemented from Creature.

974 {
975  if (stat >= MAX_STATS)
976  return false;
977 
978  // value = ((base_value * base_pct) + total_value) * total_pct
979  float value = GetTotalStatValue(stat);
980  ApplyStatBuffMod(stat, m_statFromOwner[stat], false);
981  float ownersBonus = 0.0f;
982 
983  Unit* owner = GetOwner();
984  // Handle Death Knight Glyphs and Talents
985  float mod = 0.75f;
986  if (IsPetGhoul() && (stat == STAT_STAMINA || stat == STAT_STRENGTH))
987  {
988  if (stat == STAT_STAMINA)
989  mod = 0.3f; // Default Owner's Stamina scale
990  else
991  mod = 0.7f; // Default Owner's Strength scale
992 
993  // Check just if owner has Ravenous Dead since it's effect is not an aura
995  if (aurEff)
996  {
997  SpellInfo const* spellInfo = aurEff->GetSpellInfo(); // Then get the SpellProto and add the dummy effect value
998  if (SpellEffectInfo const* effect = spellInfo->GetEffect(GetMap()->GetDifficultyID(), EFFECT_1))
999  AddPct(mod, effect->CalcValue(owner)); // Ravenous Dead edits the original scale
1000  }
1001  // Glyph of the Ghoul
1002  aurEff = owner->GetAuraEffect(58686, 0);
1003  if (aurEff)
1004  mod += CalculatePct(1.0f, aurEff->GetAmount()); // Glyph of the Ghoul adds a flat value to the scale mod
1005  ownersBonus = float(owner->GetStat(stat)) * mod;
1006  value += ownersBonus;
1007  }
1008  else if (stat == STAT_STAMINA)
1009  {
1010  ownersBonus = CalculatePct(owner->GetStat(STAT_STAMINA), 30);
1011  value += ownersBonus;
1012  }
1013  //warlock's and mage's pets gain 30% of owner's intellect
1014  else if (stat == STAT_INTELLECT)
1015  {
1016  if (owner->getClass() == CLASS_WARLOCK || owner->getClass() == CLASS_MAGE)
1017  {
1018  ownersBonus = CalculatePct(owner->GetStat(stat), 30);
1019  value += ownersBonus;
1020  }
1021  }
1022 /*
1023  else if (stat == STAT_STRENGTH)
1024  {
1025  if (IsPetGhoul())
1026  value += float(owner->GetStat(stat)) * 0.3f;
1027  }
1028 */
1029 
1030  SetStat(stat, int32(value));
1031  m_statFromOwner[stat] = ownersBonus;
1032  ApplyStatBuffMod(stat, m_statFromOwner[stat], true);
1033 
1034  switch (stat)
1035  {
1037  case STAT_AGILITY: UpdateArmor(); break;
1038  case STAT_STAMINA: UpdateMaxHealth(); break;
1040  case STAT_SPIRIT:
1041  default:
1042  break;
1043  }
1044 
1045  return true;
1046 }
Definition: SpellAuraEffects.h:30
SpellInfo const * GetSpellInfo() const
Definition: SpellAuraEffects.h:46
void UpdateMaxPower(Powers power) override
Definition: StatSystem.cpp:1122
bool IsPetGhoul() const
Definition: TemporarySummon.h:75
void SetStat(Stats stat, int32 val)
Definition: Unit.h:1418
Definition: SharedDefines.h:29
Map * GetMap() const
Definition: Object.h:543
Definition: SpellInfo.h:326
Definition: SharedDefines.h:239
Definition: SharedDefines.h:4638
Definition: SharedDefines.h:238
Definition: SharedDefines.h:237
Definition: SharedDefines.h:240
void UpdateAttackPowerAndDamage(bool ranged=false) override
Definition: StatSystem.cpp:1147
#define MAX_STATS
Definition: SharedDefines.h:244
Unit * GetOwner() const
Definition: TemporarySummon.h:72
void UpdateArmor() override
Definition: StatSystem.cpp:1077
int32 GetAmount() const
Definition: SpellAuraEffects.h:55
Definition: SpellInfo.h:238
Definition: SharedDefines.h:174
T CalculatePct(T base, U pct)
Definition: Util.h:92
float GetTotalStatValue(Stats stat) const
Definition: Unit.cpp:11402
SpellEffectInfo const * GetEffect(uint32 difficulty, uint32 index) const
Definition: SpellInfo.cpp:3348
void ApplyStatBuffMod(Stats stat, float val, bool apply)
Definition: Unit.cpp:4681
Definition: SpellAuraDefines.h:197
T AddPct(T &base, U pct)
Definition: Util.h:98
int32_t int32
Definition: g3dmath.h:167
uint8 getClass() const
Definition: Unit.h:1413
AuraEffect * GetAuraEffect(uint32 spellId, uint8 effIndex, ObjectGuid casterGUID=ObjectGuid::Empty) const
Definition: Unit.cpp:4071
Definition: SharedDefines.h:241
const FieldDescriptor value
Definition: descriptor.h:1522
Definition: SharedDefines.h:175
Definition: Unit.h:1305
float m_statFromOwner[MAX_STATS]
Definition: TemporarySummon.h:104
void UpdateMaxHealth() override
Definition: StatSystem.cpp:1097
float GetStat(Stats stat) const
Definition: Unit.h:1417
Definition: SharedDefines.h:248

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

int32 Guardian::m_bonusSpellDamage
protected
float Guardian::m_statFromOwner[MAX_STATS]
protected

The documentation for this class was generated from the following files: