AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Unit.h File Reference
#include "EnumFlag.h"
#include "EventProcessor.h"
#include "FollowerRefMgr.h"
#include "FollowerReference.h"
#include "HostileRefMgr.h"
#include "ItemTemplate.h"
#include "MotionMaster.h"
#include "Object.h"
#include "PetDefines.h"
#include "SharedDefines.h"
#include "SpellAuraDefines.h"
#include "SpellDefines.h"
#include "ThreatMgr.h"
#include "UnitDefines.h"
#include "UnitUtils.h"
#include <functional>
#include <utility>

Go to the source code of this file.

Classes

struct  DiminishingReturn
 
class  DispelInfo
 
struct  CleanDamage
 
class  DamageInfo
 
class  HealInfo
 
class  ProcEventInfo
 
struct  CalcDamageInfo
 
struct  SpellNonMeleeDamage
 
struct  SpellPeriodicAuraLogInfo
 
struct  DeclinedName
 
struct  AttackPosition
 
class  Unit
 
class  Acore::PowerPctOrderPred
 
class  Acore::HealthPctOrderPred
 
class  RedirectSpellEvent
 

Namespaces

namespace  Movement
 
namespace  Acore
 

Macros

#define WORLD_TRIGGER   12999
 
#define BASE_MINDAMAGE   1.0f
 
#define BASE_MAXDAMAGE   2.0f
 
#define BASE_ATTACK_TIME   2000
 
#define MAX_AGGRO_RADIUS   45.0f
 
#define MOD_END   (PCT_MOD+1)
 
#define MAX_COMBAT_RATING   25
 
#define MAX_DECLINED_NAME_CASES   5
 
#define CURRENT_FIRST_NON_MELEE_SPELL   1
 
#define CURRENT_MAX_SPELL   4
 
#define REACTIVE_TIMER_START   5000
 
#define ATTACK_DISPLAY_DELAY   200
 
#define MAX_PLAYER_STEALTH_DETECT_RANGE   30.0f
 

Typedefs

typedef std::list< Unit * > UnitList
 
typedef std::list< std::pair< Aura *, uint8 > > DispelChargesList
 
typedef std::list< Player * > SharedVisionList
 
typedef std::unordered_map< uint32, uint32PacketCooldowns
 
typedef const Opcodes SpeedOpcodePair[static_cast< size_t >(SpeedOpcodeIndex::MAX)]
 

Enumerations

enum  VictimState {
  VICTIMSTATE_INTACT = 0 ,
  VICTIMSTATE_HIT = 1 ,
  VICTIMSTATE_DODGE = 2 ,
  VICTIMSTATE_PARRY = 3 ,
  VICTIMSTATE_INTERRUPT = 4 ,
  VICTIMSTATE_BLOCKS = 5 ,
  VICTIMSTATE_EVADES = 6 ,
  VICTIMSTATE_IS_IMMUNE = 7 ,
  VICTIMSTATE_DEFLECTS = 8
}
 
enum  HitInfo {
  HITINFO_NORMALSWING = 0x00000000 ,
  HITINFO_UNK1 = 0x00000001 ,
  HITINFO_AFFECTS_VICTIM = 0x00000002 ,
  HITINFO_OFFHAND = 0x00000004 ,
  HITINFO_UNK2 = 0x00000008 ,
  HITINFO_MISS = 0x00000010 ,
  HITINFO_FULL_ABSORB = 0x00000020 ,
  HITINFO_PARTIAL_ABSORB = 0x00000040 ,
  HITINFO_FULL_RESIST = 0x00000080 ,
  HITINFO_PARTIAL_RESIST = 0x00000100 ,
  HITINFO_CRITICALHIT = 0x00000200 ,
  HITINFO_UNK10 = 0x00000400 ,
  HITINFO_UNK11 = 0x00000800 ,
  HITINFO_UNK12 = 0x00001000 ,
  HITINFO_BLOCK = 0x00002000 ,
  HITINFO_UNK14 = 0x00004000 ,
  HITINFO_UNK15 = 0x00008000 ,
  HITINFO_GLANCING = 0x00010000 ,
  HITINFO_CRUSHING = 0x00020000 ,
  HITINFO_NO_ANIMATION = 0x00040000 ,
  HITINFO_UNK19 = 0x00080000 ,
  HITINFO_UNK20 = 0x00100000 ,
  HITINFO_SWINGNOHITSOUND = 0x00200000 ,
  HITINFO_UNK22 = 0x00400000 ,
  HITINFO_RAGE_GAIN = 0x00800000 ,
  HITINFO_FAKE_DAMAGE = 0x01000000
}
 
enum  UnitModifierFlatType {
  BASE_VALUE = 0 ,
  TOTAL_VALUE = 1 ,
  MODIFIER_TYPE_FLAT_END = 3
}
 
enum  UnitModifierPctType {
  BASE_PCT = 0 ,
  TOTAL_PCT = 1 ,
  MODIFIER_TYPE_PCT_END = 2
}
 
enum  WeaponDamageRange {
  MINDAMAGE ,
  MAXDAMAGE ,
  MAX_WEAPON_DAMAGE_RANGE
}
 
enum  UnitMods {
  UNIT_MOD_STAT_STRENGTH ,
  UNIT_MOD_STAT_AGILITY ,
  UNIT_MOD_STAT_STAMINA ,
  UNIT_MOD_STAT_INTELLECT ,
  UNIT_MOD_STAT_SPIRIT ,
  UNIT_MOD_HEALTH ,
  UNIT_MOD_MANA ,
  UNIT_MOD_RAGE ,
  UNIT_MOD_FOCUS ,
  UNIT_MOD_ENERGY ,
  UNIT_MOD_HAPPINESS ,
  UNIT_MOD_RUNE ,
  UNIT_MOD_RUNIC_POWER ,
  UNIT_MOD_ARMOR ,
  UNIT_MOD_RESISTANCE_HOLY ,
  UNIT_MOD_RESISTANCE_FIRE ,
  UNIT_MOD_RESISTANCE_NATURE ,
  UNIT_MOD_RESISTANCE_FROST ,
  UNIT_MOD_RESISTANCE_SHADOW ,
  UNIT_MOD_RESISTANCE_ARCANE ,
  UNIT_MOD_ATTACK_POWER ,
  UNIT_MOD_ATTACK_POWER_RANGED ,
  UNIT_MOD_DAMAGE_MAINHAND ,
  UNIT_MOD_DAMAGE_OFFHAND ,
  UNIT_MOD_DAMAGE_RANGED ,
  UNIT_MOD_END ,
  UNIT_MOD_STAT_START = UNIT_MOD_STAT_STRENGTH ,
  UNIT_MOD_STAT_END = UNIT_MOD_STAT_SPIRIT + 1 ,
  UNIT_MOD_RESISTANCE_START = UNIT_MOD_ARMOR ,
  UNIT_MOD_RESISTANCE_END = UNIT_MOD_RESISTANCE_ARCANE + 1 ,
  UNIT_MOD_POWER_START = UNIT_MOD_MANA ,
  UNIT_MOD_POWER_END = UNIT_MOD_RUNIC_POWER + 1
}
 
enum  BaseModGroup {
  CRIT_PERCENTAGE ,
  RANGED_CRIT_PERCENTAGE ,
  OFFHAND_CRIT_PERCENTAGE ,
  SHIELD_BLOCK_VALUE ,
  BASEMOD_END
}
 
enum  BaseModType {
  FLAT_MOD ,
  PCT_MOD
}
 
enum class  DeathState : uint8 {
  Alive = 0 ,
  JustDied = 1 ,
  Corpse = 2 ,
  Dead = 3 ,
  JustRespawned = 4
}
 
enum  WeaponAttackType : uint8 {
  BASE_ATTACK = 0 ,
  OFF_ATTACK = 1 ,
  RANGED_ATTACK = 2 ,
  MAX_ATTACK
}
 
enum  CombatRating : uint8 {
  CR_WEAPON_SKILL = 0 ,
  CR_DEFENSE_SKILL = 1 ,
  CR_DODGE = 2 ,
  CR_PARRY = 3 ,
  CR_BLOCK = 4 ,
  CR_HIT_MELEE = 5 ,
  CR_HIT_RANGED = 6 ,
  CR_HIT_SPELL = 7 ,
  CR_CRIT_MELEE = 8 ,
  CR_CRIT_RANGED = 9 ,
  CR_CRIT_SPELL = 10 ,
  CR_HIT_TAKEN_MELEE = 11 ,
  CR_HIT_TAKEN_RANGED = 12 ,
  CR_HIT_TAKEN_SPELL = 13 ,
  CR_CRIT_TAKEN_MELEE = 14 ,
  CR_CRIT_TAKEN_RANGED = 15 ,
  CR_CRIT_TAKEN_SPELL = 16 ,
  CR_HASTE_MELEE = 17 ,
  CR_HASTE_RANGED = 18 ,
  CR_HASTE_SPELL = 19 ,
  CR_WEAPON_SKILL_MAINHAND = 20 ,
  CR_WEAPON_SKILL_OFFHAND = 21 ,
  CR_WEAPON_SKILL_RANGED = 22 ,
  CR_EXPERTISE = 23 ,
  CR_ARMOR_PENETRATION = 24
}
 
enum  DamageEffectType : uint8 {
  DIRECT_DAMAGE = 0 ,
  SPELL_DIRECT_DAMAGE = 1 ,
  DOT = 2 ,
  HEAL = 3 ,
  NODAMAGE = 4 ,
  SELF_DAMAGE = 5
}
 
enum  DiminishingLevels {
  DIMINISHING_LEVEL_1 = 0 ,
  DIMINISHING_LEVEL_2 = 1 ,
  DIMINISHING_LEVEL_3 = 2 ,
  DIMINISHING_LEVEL_IMMUNE = 3 ,
  DIMINISHING_LEVEL_4 = 3 ,
  DIMINISHING_LEVEL_TAUNT_IMMUNE = 4
}
 
enum  MeleeHitOutcome {
  MELEE_HIT_EVADE ,
  MELEE_HIT_MISS ,
  MELEE_HIT_DODGE ,
  MELEE_HIT_BLOCK ,
  MELEE_HIT_PARRY ,
  MELEE_HIT_GLANCING ,
  MELEE_HIT_CRIT ,
  MELEE_HIT_CRUSHING ,
  MELEE_HIT_NORMAL
}
 
enum  ExtraAttackSpells {
  SPELL_SWORD_SPECIALIZATION = 16459 ,
  SPELL_HACK_AND_SLASH = 66923
}
 
enum  CurrentSpellTypes {
  CURRENT_MELEE_SPELL = 0 ,
  CURRENT_GENERIC_SPELL = 1 ,
  CURRENT_CHANNELED_SPELL = 2 ,
  CURRENT_AUTOREPEAT_SPELL = 3
}
 
enum  ReactStates : uint8 {
  REACT_PASSIVE = 0 ,
  REACT_DEFENSIVE = 1 ,
  REACT_AGGRESSIVE = 2
}
 
enum  CommandStates : uint8 {
  COMMAND_STAY = 0 ,
  COMMAND_FOLLOW = 1 ,
  COMMAND_ATTACK = 2 ,
  COMMAND_ABANDON = 3
}
 
enum class  SearchMethod {
  MatchAll ,
  MatchAny
}
 
enum class  DualWieldMode : uint8 {
  AUTO = 0 ,
  DISABLED = 1 ,
  ENABLED = 2
}
 
enum  ReactiveType {
  REACTIVE_DEFENSE = 0 ,
  REACTIVE_HUNTER_PARRY = 1 ,
  REACTIVE_OVERPOWER = 2 ,
  REACTIVE_WOLVERINE_BITE = 3 ,
  MAX_REACTIVE
}
 
enum  SpellCooldownFlags {
  SPELL_COOLDOWN_FLAG_NONE = 0x0 ,
  SPELL_COOLDOWN_FLAG_INCLUDE_GCD = 0x1 ,
  SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS = 0x2
}
 Spell cooldown flags sent in SMSG_SPELL_COOLDOWN. More...
 
enum class  SpeedOpcodeIndex : uint32 {
  PC ,
  NPC ,
  ACK_RESPONSE ,
  MAX
}
 

Functions

void createProcFlags (SpellInfo const *spellInfo, WeaponAttackType attackType, bool positive, uint32 &procAttacker, uint32 &procVictim)
 
uint32 createProcExtendMask (SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition)
 

Variables

static constexpr uint32 MAX_CREATURE_SPELLS = 8
 
static constexpr uint32 infinityCooldownDelay = 0x9A7EC800
 
static constexpr uint32 infinityCooldownDelayCheck = 0x4D3F6400
 
float baseMoveSpeed [MAX_MOVE_TYPE]
 
float playerBaseMoveSpeed [MAX_MOVE_TYPE]
 
SpeedOpcodePair SetSpeed2Opc_table [MAX_MOVE_TYPE]
 

Macro Definition Documentation

◆ ATTACK_DISPLAY_DELAY

#define ATTACK_DISPLAY_DELAY   200

◆ BASE_ATTACK_TIME

#define BASE_ATTACK_TIME   2000

◆ BASE_MAXDAMAGE

#define BASE_MAXDAMAGE   2.0f

◆ BASE_MINDAMAGE

#define BASE_MINDAMAGE   1.0f

◆ CURRENT_FIRST_NON_MELEE_SPELL

#define CURRENT_FIRST_NON_MELEE_SPELL   1

◆ CURRENT_MAX_SPELL

#define CURRENT_MAX_SPELL   4

◆ MAX_AGGRO_RADIUS

#define MAX_AGGRO_RADIUS   45.0f

◆ MAX_COMBAT_RATING

#define MAX_COMBAT_RATING   25

◆ MAX_DECLINED_NAME_CASES

#define MAX_DECLINED_NAME_CASES   5

◆ MAX_PLAYER_STEALTH_DETECT_RANGE

#define MAX_PLAYER_STEALTH_DETECT_RANGE   30.0f

◆ MOD_END

#define MOD_END   (PCT_MOD+1)

◆ REACTIVE_TIMER_START

#define REACTIVE_TIMER_START   5000

◆ WORLD_TRIGGER

#define WORLD_TRIGGER   12999

Typedef Documentation

◆ DispelChargesList

typedef std::list< std::pair<Aura*, uint8> > DispelChargesList

◆ PacketCooldowns

typedef std::unordered_map<uint32, uint32> PacketCooldowns

◆ SharedVisionList

typedef std::list<Player*> SharedVisionList

◆ SpeedOpcodePair

typedef const Opcodes SpeedOpcodePair[static_cast< size_t >(SpeedOpcodeIndex::MAX)]

◆ UnitList

typedef std::list<Unit*> UnitList

Enumeration Type Documentation

◆ BaseModGroup

Enumerator
CRIT_PERCENTAGE 
RANGED_CRIT_PERCENTAGE 
OFFHAND_CRIT_PERCENTAGE 
SHIELD_BLOCK_VALUE 
BASEMOD_END 
186{
192};
@ OFFHAND_CRIT_PERCENTAGE
Definition Unit.h:189
@ BASEMOD_END
Definition Unit.h:191
@ SHIELD_BLOCK_VALUE
Definition Unit.h:190
@ CRIT_PERCENTAGE
Definition Unit.h:187
@ RANGED_CRIT_PERCENTAGE
Definition Unit.h:188

◆ BaseModType

Enumerator
FLAT_MOD 
PCT_MOD 
195{
196 FLAT_MOD,
197 PCT_MOD
198};
@ FLAT_MOD
Definition Unit.h:196
@ PCT_MOD
Definition Unit.h:197

◆ CombatRating

Enumerator
CR_WEAPON_SKILL 
CR_DEFENSE_SKILL 
CR_DODGE 
CR_PARRY 
CR_BLOCK 
CR_HIT_MELEE 
CR_HIT_RANGED 
CR_HIT_SPELL 
CR_CRIT_MELEE 
CR_CRIT_RANGED 
CR_CRIT_SPELL 
CR_HIT_TAKEN_MELEE 
CR_HIT_TAKEN_RANGED 
CR_HIT_TAKEN_SPELL 
CR_CRIT_TAKEN_MELEE 
CR_CRIT_TAKEN_RANGED 
CR_CRIT_TAKEN_SPELL 
CR_HASTE_MELEE 
CR_HASTE_RANGED 
CR_HASTE_SPELL 
CR_WEAPON_SKILL_MAINHAND 
CR_WEAPON_SKILL_OFFHAND 
CR_WEAPON_SKILL_RANGED 
CR_EXPERTISE 
CR_ARMOR_PENETRATION 
223{
224 CR_WEAPON_SKILL = 0,
226 CR_DODGE = 2,
227 CR_PARRY = 3,
228 CR_BLOCK = 4,
229 CR_HIT_MELEE = 5,
230 CR_HIT_RANGED = 6,
231 CR_HIT_SPELL = 7,
232 CR_CRIT_MELEE = 8,
233 CR_CRIT_RANGED = 9,
234 CR_CRIT_SPELL = 10,
241 CR_HASTE_MELEE = 17,
242 CR_HASTE_RANGED = 18,
243 CR_HASTE_SPELL = 19,
247 CR_EXPERTISE = 23,
249};
@ CR_EXPERTISE
Definition Unit.h:247
@ CR_HIT_TAKEN_MELEE
Definition Unit.h:235
@ CR_WEAPON_SKILL_RANGED
Definition Unit.h:246
@ CR_HASTE_RANGED
Definition Unit.h:242
@ CR_HIT_MELEE
Definition Unit.h:229
@ CR_CRIT_TAKEN_RANGED
Definition Unit.h:239
@ CR_CRIT_TAKEN_SPELL
Definition Unit.h:240
@ CR_ARMOR_PENETRATION
Definition Unit.h:248
@ CR_CRIT_MELEE
Definition Unit.h:232
@ CR_CRIT_RANGED
Definition Unit.h:233
@ CR_HIT_TAKEN_SPELL
Definition Unit.h:237
@ CR_WEAPON_SKILL
Definition Unit.h:224
@ CR_PARRY
Definition Unit.h:227
@ CR_WEAPON_SKILL_OFFHAND
Definition Unit.h:245
@ CR_DODGE
Definition Unit.h:226
@ CR_DEFENSE_SKILL
Definition Unit.h:225
@ CR_HASTE_MELEE
Definition Unit.h:241
@ CR_BLOCK
Definition Unit.h:228
@ CR_WEAPON_SKILL_MAINHAND
Definition Unit.h:244
@ CR_HASTE_SPELL
Definition Unit.h:243
@ CR_HIT_SPELL
Definition Unit.h:231
@ CR_HIT_TAKEN_RANGED
Definition Unit.h:236
@ CR_CRIT_SPELL
Definition Unit.h:234
@ CR_HIT_RANGED
Definition Unit.h:230
@ CR_CRIT_TAKEN_MELEE
Definition Unit.h:238

◆ CommandStates

Enumerator
COMMAND_STAY 
COMMAND_FOLLOW 
COMMAND_ATTACK 
COMMAND_ABANDON 
561{
562 COMMAND_STAY = 0,
563 COMMAND_FOLLOW = 1,
564 COMMAND_ATTACK = 2,
566};
@ COMMAND_ATTACK
Definition Unit.h:564
@ COMMAND_ABANDON
Definition Unit.h:565
@ COMMAND_STAY
Definition Unit.h:562
@ COMMAND_FOLLOW
Definition Unit.h:563

◆ CurrentSpellTypes

Enumerator
CURRENT_MELEE_SPELL 
CURRENT_GENERIC_SPELL 
CURRENT_CHANNELED_SPELL 
CURRENT_AUTOREPEAT_SPELL 
543{
548};
@ CURRENT_CHANNELED_SPELL
Definition Unit.h:546
@ CURRENT_GENERIC_SPELL
Definition Unit.h:545
@ CURRENT_MELEE_SPELL
Definition Unit.h:544
@ CURRENT_AUTOREPEAT_SPELL
Definition Unit.h:547

◆ DamageEffectType

Enumerator
DIRECT_DAMAGE 
SPELL_DIRECT_DAMAGE 
DOT 
HEAL 
NODAMAGE 
SELF_DAMAGE 
254{
255 DIRECT_DAMAGE = 0, // used for normal weapon damage (not for class abilities or spells)
256 SPELL_DIRECT_DAMAGE = 1, // spell/class abilities damage
257 DOT = 2,
258 HEAL = 3,
259 NODAMAGE = 4, // used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
260 SELF_DAMAGE = 5
261};
@ SELF_DAMAGE
Definition Unit.h:260
@ DIRECT_DAMAGE
Definition Unit.h:255
@ NODAMAGE
Definition Unit.h:259
@ DOT
Definition Unit.h:257
@ SPELL_DIRECT_DAMAGE
Definition Unit.h:256
@ HEAL
Definition Unit.h:258

◆ DeathState

enum class DeathState : uint8
strong
Enumerator
Alive 
JustDied 
Corpse 
Dead 
JustRespawned 
203{
204 Alive = 0,
205 JustDied = 1,
206 Corpse = 2,
207 Dead = 3,
208 JustRespawned = 4,
209};
Definition Corpse.h:49

◆ DiminishingLevels

Enumerator
DIMINISHING_LEVEL_1 
DIMINISHING_LEVEL_2 
DIMINISHING_LEVEL_3 
DIMINISHING_LEVEL_IMMUNE 
DIMINISHING_LEVEL_4 
DIMINISHING_LEVEL_TAUNT_IMMUNE 
269{
276};
@ DIMINISHING_LEVEL_3
Definition Unit.h:272
@ DIMINISHING_LEVEL_1
Definition Unit.h:270
@ DIMINISHING_LEVEL_4
Definition Unit.h:274
@ DIMINISHING_LEVEL_IMMUNE
Definition Unit.h:273
@ DIMINISHING_LEVEL_TAUNT_IMMUNE
Definition Unit.h:275
@ DIMINISHING_LEVEL_2
Definition Unit.h:271

◆ DualWieldMode

enum class DualWieldMode : uint8
strong
Enumerator
AUTO 
DISABLED 
ENABLED 
577{
578 AUTO = 0, // non-player units must have a valid offhand weapon to enable dual wield
579 DISABLED = 1,
580 ENABLED = 2,
581};

◆ ExtraAttackSpells

Enumerator
SPELL_SWORD_SPECIALIZATION 
SPELL_HACK_AND_SLASH 
297{
300};
@ SPELL_HACK_AND_SLASH
Definition Unit.h:299
@ SPELL_SWORD_SPECIALIZATION
Definition Unit.h:298

◆ HitInfo

enum HitInfo
Enumerator
HITINFO_NORMALSWING 
HITINFO_UNK1 
HITINFO_AFFECTS_VICTIM 
HITINFO_OFFHAND 
HITINFO_UNK2 
HITINFO_MISS 
HITINFO_FULL_ABSORB 
HITINFO_PARTIAL_ABSORB 
HITINFO_FULL_RESIST 
HITINFO_PARTIAL_RESIST 
HITINFO_CRITICALHIT 
HITINFO_UNK10 
HITINFO_UNK11 
HITINFO_UNK12 
HITINFO_BLOCK 
HITINFO_UNK14 
HITINFO_UNK15 
HITINFO_GLANCING 
HITINFO_CRUSHING 
HITINFO_NO_ANIMATION 
HITINFO_UNK19 
HITINFO_UNK20 
HITINFO_SWINGNOHITSOUND 
HITINFO_UNK22 
HITINFO_RAGE_GAIN 
HITINFO_FAKE_DAMAGE 
97{
98 HITINFO_NORMALSWING = 0x00000000,
99 HITINFO_UNK1 = 0x00000001, // req correct packet structure
100 HITINFO_AFFECTS_VICTIM = 0x00000002,
101 HITINFO_OFFHAND = 0x00000004,
102 HITINFO_UNK2 = 0x00000008,
103 HITINFO_MISS = 0x00000010,
104 HITINFO_FULL_ABSORB = 0x00000020,
105 HITINFO_PARTIAL_ABSORB = 0x00000040,
106 HITINFO_FULL_RESIST = 0x00000080,
107 HITINFO_PARTIAL_RESIST = 0x00000100,
108 HITINFO_CRITICALHIT = 0x00000200, // critical hit
109 HITINFO_UNK10 = 0x00000400,
110 HITINFO_UNK11 = 0x00000800,
111 HITINFO_UNK12 = 0x00001000,
112 HITINFO_BLOCK = 0x00002000, // blocked damage
113 HITINFO_UNK14 = 0x00004000, // set only if meleespellid is present// no world text when victim is hit for 0 dmg(HideWorldTextForNoDamage?)
114 HITINFO_UNK15 = 0x00008000, // player victim?// something related to blod sprut visual (BloodSpurtInBack?)
115 HITINFO_GLANCING = 0x00010000,
116 HITINFO_CRUSHING = 0x00020000,
117 HITINFO_NO_ANIMATION = 0x00040000,
118 HITINFO_UNK19 = 0x00080000,
119 HITINFO_UNK20 = 0x00100000,
120 HITINFO_SWINGNOHITSOUND = 0x00200000, // unused?
121 HITINFO_UNK22 = 0x00400000,
122 HITINFO_RAGE_GAIN = 0x00800000,
123 HITINFO_FAKE_DAMAGE = 0x01000000 // enables damage animation even if no damage done, set only if no damage
124};
@ HITINFO_PARTIAL_ABSORB
Definition Unit.h:105
@ HITINFO_UNK2
Definition Unit.h:102
@ HITINFO_FULL_RESIST
Definition Unit.h:106
@ HITINFO_NORMALSWING
Definition Unit.h:98
@ HITINFO_UNK22
Definition Unit.h:121
@ HITINFO_BLOCK
Definition Unit.h:112
@ HITINFO_UNK15
Definition Unit.h:114
@ HITINFO_UNK19
Definition Unit.h:118
@ HITINFO_CRUSHING
Definition Unit.h:116
@ HITINFO_UNK20
Definition Unit.h:119
@ HITINFO_FAKE_DAMAGE
Definition Unit.h:123
@ HITINFO_SWINGNOHITSOUND
Definition Unit.h:120
@ HITINFO_UNK12
Definition Unit.h:111
@ HITINFO_MISS
Definition Unit.h:103
@ HITINFO_RAGE_GAIN
Definition Unit.h:122
@ HITINFO_FULL_ABSORB
Definition Unit.h:104
@ HITINFO_NO_ANIMATION
Definition Unit.h:117
@ HITINFO_OFFHAND
Definition Unit.h:101
@ HITINFO_UNK1
Definition Unit.h:99
@ HITINFO_GLANCING
Definition Unit.h:115
@ HITINFO_UNK11
Definition Unit.h:110
@ HITINFO_CRITICALHIT
Definition Unit.h:108
@ HITINFO_PARTIAL_RESIST
Definition Unit.h:107
@ HITINFO_AFFECTS_VICTIM
Definition Unit.h:100
@ HITINFO_UNK14
Definition Unit.h:113
@ HITINFO_UNK10
Definition Unit.h:109

◆ MeleeHitOutcome

Enumerator
MELEE_HIT_EVADE 
MELEE_HIT_MISS 
MELEE_HIT_DODGE 
MELEE_HIT_BLOCK 
MELEE_HIT_PARRY 
MELEE_HIT_GLANCING 
MELEE_HIT_CRIT 
MELEE_HIT_CRUSHING 
MELEE_HIT_NORMAL 
291{
294};
@ MELEE_HIT_CRUSHING
Definition Unit.h:293
@ MELEE_HIT_BLOCK
Definition Unit.h:292
@ MELEE_HIT_CRIT
Definition Unit.h:293
@ MELEE_HIT_NORMAL
Definition Unit.h:293
@ MELEE_HIT_EVADE
Definition Unit.h:292
@ MELEE_HIT_DODGE
Definition Unit.h:292
@ MELEE_HIT_MISS
Definition Unit.h:292
@ MELEE_HIT_PARRY
Definition Unit.h:292
@ MELEE_HIT_GLANCING
Definition Unit.h:293

◆ ReactiveType

Enumerator
REACTIVE_DEFENSE 
REACTIVE_HUNTER_PARRY 
REACTIVE_OVERPOWER 
REACTIVE_WOLVERINE_BITE 
MAX_REACTIVE 
607{
612
614};
@ MAX_REACTIVE
Definition Unit.h:613
@ REACTIVE_OVERPOWER
Definition Unit.h:610
@ REACTIVE_DEFENSE
Definition Unit.h:608
@ REACTIVE_HUNTER_PARRY
Definition Unit.h:609
@ REACTIVE_WOLVERINE_BITE
Definition Unit.h:611

◆ ReactStates

Enumerator
REACT_PASSIVE 
REACT_DEFENSIVE 
REACT_AGGRESSIVE 
554{
555 REACT_PASSIVE = 0,
556 REACT_DEFENSIVE = 1,
558};
@ REACT_DEFENSIVE
Definition Unit.h:556
@ REACT_PASSIVE
Definition Unit.h:555
@ REACT_AGGRESSIVE
Definition Unit.h:557

◆ SearchMethod

enum class SearchMethod
strong
Enumerator
MatchAll 
MatchAny 
569{
570 MatchAll,
572};

◆ SpeedOpcodeIndex

enum class SpeedOpcodeIndex : uint32
strong
Enumerator
PC 
NPC 
ACK_RESPONSE 
MAX 

◆ SpellCooldownFlags

Spell cooldown flags sent in SMSG_SPELL_COOLDOWN.

Enumerator
SPELL_COOLDOWN_FLAG_NONE 
SPELL_COOLDOWN_FLAG_INCLUDE_GCD 

Starts GCD in addition to normal cooldown specified in the packet.

SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS 

Starts GCD for spells that should start their cooldown on events, requires SPELL_COOLDOWN_FLAG_INCLUDE_GCD set.

618{
622};
@ SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS
Starts GCD for spells that should start their cooldown on events, requires SPELL_COOLDOWN_FLAG_INCLUD...
Definition Unit.h:621
@ SPELL_COOLDOWN_FLAG_INCLUDE_GCD
Starts GCD in addition to normal cooldown specified in the packet.
Definition Unit.h:620
@ SPELL_COOLDOWN_FLAG_NONE
Definition Unit.h:619

◆ UnitModifierFlatType

Enumerator
BASE_VALUE 
TOTAL_VALUE 
MODIFIER_TYPE_FLAT_END 
127{
128 BASE_VALUE = 0,
129 TOTAL_VALUE = 1,
131};
@ BASE_VALUE
Definition Unit.h:128
@ MODIFIER_TYPE_FLAT_END
Definition Unit.h:130
@ TOTAL_VALUE
Definition Unit.h:129

◆ UnitModifierPctType

Enumerator
BASE_PCT 
TOTAL_PCT 
MODIFIER_TYPE_PCT_END 
134{
135 BASE_PCT = 0,
136 TOTAL_PCT = 1,
138};
@ MODIFIER_TYPE_PCT_END
Definition Unit.h:137
@ TOTAL_PCT
Definition Unit.h:136
@ BASE_PCT
Definition Unit.h:135

◆ UnitMods

enum UnitMods
Enumerator
UNIT_MOD_STAT_STRENGTH 
UNIT_MOD_STAT_AGILITY 
UNIT_MOD_STAT_STAMINA 
UNIT_MOD_STAT_INTELLECT 
UNIT_MOD_STAT_SPIRIT 
UNIT_MOD_HEALTH 
UNIT_MOD_MANA 
UNIT_MOD_RAGE 
UNIT_MOD_FOCUS 
UNIT_MOD_ENERGY 
UNIT_MOD_HAPPINESS 
UNIT_MOD_RUNE 
UNIT_MOD_RUNIC_POWER 
UNIT_MOD_ARMOR 
UNIT_MOD_RESISTANCE_HOLY 
UNIT_MOD_RESISTANCE_FIRE 
UNIT_MOD_RESISTANCE_NATURE 
UNIT_MOD_RESISTANCE_FROST 
UNIT_MOD_RESISTANCE_SHADOW 
UNIT_MOD_RESISTANCE_ARCANE 
UNIT_MOD_ATTACK_POWER 
UNIT_MOD_ATTACK_POWER_RANGED 
UNIT_MOD_DAMAGE_MAINHAND 
UNIT_MOD_DAMAGE_OFFHAND 
UNIT_MOD_DAMAGE_RANGED 
UNIT_MOD_END 
UNIT_MOD_STAT_START 
UNIT_MOD_STAT_END 
UNIT_MOD_RESISTANCE_START 
UNIT_MOD_RESISTANCE_END 
UNIT_MOD_POWER_START 
UNIT_MOD_POWER_END 
149{
150 UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_SPIRIT must be in existed order, it's accessed by index values of Stats enum.
156 UNIT_MOD_MANA, // UNIT_MOD_MANA..UNIT_MOD_RUNIC_POWER must be in existed order, it's accessed by index values of Powers enum.
163 UNIT_MOD_ARMOR, // UNIT_MOD_ARMOR..UNIT_MOD_RESISTANCE_ARCANE must be in existed order, it's accessed by index values of SpellSchools enum.
176 // synonyms
183};
@ UNIT_MOD_DAMAGE_OFFHAND
Definition Unit.h:173
@ UNIT_MOD_RUNE
Definition Unit.h:161
@ UNIT_MOD_STAT_INTELLECT
Definition Unit.h:153
@ UNIT_MOD_POWER_END
Definition Unit.h:182
@ UNIT_MOD_STAT_SPIRIT
Definition Unit.h:154
@ UNIT_MOD_ARMOR
Definition Unit.h:163
@ UNIT_MOD_RESISTANCE_SHADOW
Definition Unit.h:168
@ UNIT_MOD_RESISTANCE_FROST
Definition Unit.h:167
@ UNIT_MOD_END
Definition Unit.h:175
@ UNIT_MOD_ATTACK_POWER
Definition Unit.h:170
@ UNIT_MOD_STAT_END
Definition Unit.h:178
@ UNIT_MOD_RESISTANCE_HOLY
Definition Unit.h:164
@ UNIT_MOD_RESISTANCE_START
Definition Unit.h:179
@ UNIT_MOD_RESISTANCE_ARCANE
Definition Unit.h:169
@ UNIT_MOD_ENERGY
Definition Unit.h:159
@ UNIT_MOD_HEALTH
Definition Unit.h:155
@ UNIT_MOD_DAMAGE_RANGED
Definition Unit.h:174
@ UNIT_MOD_POWER_START
Definition Unit.h:181
@ UNIT_MOD_RESISTANCE_FIRE
Definition Unit.h:165
@ UNIT_MOD_STAT_STRENGTH
Definition Unit.h:150
@ UNIT_MOD_RESISTANCE_NATURE
Definition Unit.h:166
@ UNIT_MOD_STAT_AGILITY
Definition Unit.h:151
@ UNIT_MOD_RESISTANCE_END
Definition Unit.h:180
@ UNIT_MOD_FOCUS
Definition Unit.h:158
@ UNIT_MOD_DAMAGE_MAINHAND
Definition Unit.h:172
@ UNIT_MOD_HAPPINESS
Definition Unit.h:160
@ UNIT_MOD_MANA
Definition Unit.h:156
@ UNIT_MOD_STAT_START
Definition Unit.h:177
@ UNIT_MOD_RAGE
Definition Unit.h:157
@ UNIT_MOD_STAT_STAMINA
Definition Unit.h:152
@ UNIT_MOD_RUNIC_POWER
Definition Unit.h:162
@ UNIT_MOD_ATTACK_POWER_RANGED
Definition Unit.h:171

◆ VictimState

Enumerator
VICTIMSTATE_INTACT 
VICTIMSTATE_HIT 
VICTIMSTATE_DODGE 
VICTIMSTATE_PARRY 
VICTIMSTATE_INTERRUPT 
VICTIMSTATE_BLOCKS 
VICTIMSTATE_EVADES 
VICTIMSTATE_IS_IMMUNE 
VICTIMSTATE_DEFLECTS 
84{
85 VICTIMSTATE_INTACT = 0, // set when attacker misses
86 VICTIMSTATE_HIT = 1, // victim got clear/blocked hit
90 VICTIMSTATE_BLOCKS = 5, // unused? not set when blocked, even on full block
94};
@ VICTIMSTATE_DEFLECTS
Definition Unit.h:93
@ VICTIMSTATE_INTERRUPT
Definition Unit.h:89
@ VICTIMSTATE_INTACT
Definition Unit.h:85
@ VICTIMSTATE_HIT
Definition Unit.h:86
@ VICTIMSTATE_DODGE
Definition Unit.h:87
@ VICTIMSTATE_IS_IMMUNE
Definition Unit.h:92
@ VICTIMSTATE_PARRY
Definition Unit.h:88
@ VICTIMSTATE_BLOCKS
Definition Unit.h:90
@ VICTIMSTATE_EVADES
Definition Unit.h:91

◆ WeaponAttackType

Enumerator
BASE_ATTACK 
OFF_ATTACK 
RANGED_ATTACK 
MAX_ATTACK 
215{
216 BASE_ATTACK = 0,
217 OFF_ATTACK = 1,
218 RANGED_ATTACK = 2,
220};
@ OFF_ATTACK
Definition Unit.h:217
@ MAX_ATTACK
Definition Unit.h:219
@ BASE_ATTACK
Definition Unit.h:216
@ RANGED_ATTACK
Definition Unit.h:218

◆ WeaponDamageRange

Enumerator
MINDAMAGE 
MAXDAMAGE 
MAX_WEAPON_DAMAGE_RANGE 
141{
142 MINDAMAGE,
143 MAXDAMAGE,
144
146};
@ MAX_WEAPON_DAMAGE_RANGE
Definition Unit.h:145
@ MINDAMAGE
Definition Unit.h:142
@ MAXDAMAGE
Definition Unit.h:143

Function Documentation

◆ createProcExtendMask()

uint32 createProcExtendMask ( SpellNonMeleeDamage damageInfo,
SpellMissInfo  missCondition 
)
16216{
16217 uint32 procEx = PROC_EX_NONE;
16218 // Check victim state
16219 if (missCondition != SPELL_MISS_NONE)
16220 switch (missCondition)
16221 {
16222 case SPELL_MISS_MISS:
16223 procEx |= PROC_EX_MISS;
16224 break;
16225 case SPELL_MISS_RESIST:
16226 procEx |= PROC_EX_RESIST;
16227 break;
16228 case SPELL_MISS_DODGE:
16229 procEx |= PROC_EX_DODGE;
16230 break;
16231 case SPELL_MISS_PARRY:
16232 procEx |= PROC_EX_PARRY;
16233 break;
16234 case SPELL_MISS_BLOCK:
16235 procEx |= PROC_EX_BLOCK;
16236 break;
16237 case SPELL_MISS_EVADE:
16238 procEx |= PROC_EX_EVADE;
16239 break;
16240 case SPELL_MISS_IMMUNE:
16241 procEx |= PROC_EX_IMMUNE;
16242 break;
16243 case SPELL_MISS_IMMUNE2:
16244 procEx |= PROC_EX_IMMUNE;
16245 break;
16246 case SPELL_MISS_DEFLECT:
16247 procEx |= PROC_EX_DEFLECT;
16248 break;
16249 case SPELL_MISS_ABSORB:
16250 procEx |= PROC_EX_ABSORB;
16251 break;
16252 case SPELL_MISS_REFLECT:
16253 procEx |= PROC_EX_REFLECT;
16254 break;
16255 default:
16256 break;
16257 }
16258 else
16259 {
16260 // On block
16261 if (damageInfo->blocked)
16262 procEx |= PROC_EX_BLOCK;
16263 // On absorb
16264 if (damageInfo->absorb)
16265 procEx |= PROC_EX_ABSORB;
16266 // On crit
16267 if (damageInfo->HitInfo & SPELL_HIT_TYPE_CRIT)
16268 procEx |= PROC_EX_CRITICAL_HIT;
16269 else
16270 procEx |= PROC_EX_NORMAL_HIT;
16271 }
16272 return procEx;
16273}
std::uint32_t uint32
Definition Define.h:107
@ SPELL_HIT_TYPE_CRIT
Definition SharedDefines.h:1547
@ SPELL_MISS_PARRY
Definition SharedDefines.h:1534
@ SPELL_MISS_IMMUNE
Definition SharedDefines.h:1537
@ SPELL_MISS_ABSORB
Definition SharedDefines.h:1540
@ SPELL_MISS_DODGE
Definition SharedDefines.h:1533
@ SPELL_MISS_IMMUNE2
Definition SharedDefines.h:1538
@ SPELL_MISS_NONE
Definition SharedDefines.h:1530
@ SPELL_MISS_RESIST
Definition SharedDefines.h:1532
@ SPELL_MISS_MISS
Definition SharedDefines.h:1531
@ SPELL_MISS_EVADE
Definition SharedDefines.h:1536
@ SPELL_MISS_REFLECT
Definition SharedDefines.h:1541
@ SPELL_MISS_BLOCK
Definition SharedDefines.h:1535
@ SPELL_MISS_DEFLECT
Definition SharedDefines.h:1539
@ PROC_EX_NONE
Definition SpellMgr.h:192
@ PROC_EX_DODGE
Definition SpellMgr.h:197
@ PROC_EX_DEFLECT
Definition SpellMgr.h:202
@ PROC_EX_BLOCK
Definition SpellMgr.h:199
@ PROC_EX_CRITICAL_HIT
Definition SpellMgr.h:194
@ PROC_EX_NORMAL_HIT
Definition SpellMgr.h:193
@ PROC_EX_IMMUNE
Definition SpellMgr.h:201
@ PROC_EX_MISS
Definition SpellMgr.h:195
@ PROC_EX_RESIST
Definition SpellMgr.h:196
@ PROC_EX_REFLECT
Definition SpellMgr.h:204
@ PROC_EX_ABSORB
Definition SpellMgr.h:203
@ PROC_EX_PARRY
Definition SpellMgr.h:198
@ PROC_EX_EVADE
Definition SpellMgr.h:200
uint32 HitInfo
Definition Unit.h:513
uint32 absorb
Definition Unit.h:508
uint32 blocked
Definition Unit.h:512

References SpellNonMeleeDamage::absorb, SpellNonMeleeDamage::blocked, SpellNonMeleeDamage::HitInfo, PROC_EX_ABSORB, PROC_EX_BLOCK, PROC_EX_CRITICAL_HIT, PROC_EX_DEFLECT, PROC_EX_DODGE, PROC_EX_EVADE, PROC_EX_IMMUNE, PROC_EX_MISS, PROC_EX_NONE, PROC_EX_NORMAL_HIT, PROC_EX_PARRY, PROC_EX_REFLECT, PROC_EX_RESIST, SPELL_HIT_TYPE_CRIT, SPELL_MISS_ABSORB, SPELL_MISS_BLOCK, SPELL_MISS_DEFLECT, SPELL_MISS_DODGE, SPELL_MISS_EVADE, SPELL_MISS_IMMUNE, SPELL_MISS_IMMUNE2, SPELL_MISS_MISS, SPELL_MISS_NONE, SPELL_MISS_PARRY, SPELL_MISS_REFLECT, and SPELL_MISS_RESIST.

Referenced by Spell::DoAllEffectOnTarget(), and AuraEffect::HandlePeriodicPowerBurnAuraTick().

◆ createProcFlags()

void createProcFlags ( SpellInfo const *  spellInfo,
WeaponAttackType  attackType,
bool  positive,
uint32 procAttacker,
uint32 procVictim 
)
16142{
16143 if (spellInfo)
16144 {
16145 switch (spellInfo->DmgClass)
16146 {
16148 if (positive)
16149 {
16152 }
16153 else
16154 {
16157 }
16158 break;
16160 if (positive)
16161 {
16164 }
16165 else
16166 {
16169 }
16170 break;
16173 if (attackType == OFF_ATTACK)
16174 procAttacker |= PROC_FLAG_DONE_OFFHAND_ATTACK;
16175 else
16176 procAttacker |= PROC_FLAG_DONE_MAINHAND_ATTACK;
16178 break;
16180 // Auto attack
16181 if (spellInfo->HasAttribute(SPELL_ATTR2_AUTO_REPEAT))
16182 {
16183 procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
16185 }
16186 else // Ranged spell attack
16187 {
16190 }
16191 break;
16192 default:
16193 if (spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON &&
16194 spellInfo->EquippedItemSubClassMask & (1 << ITEM_SUBCLASS_WEAPON_WAND)
16195 && spellInfo->HasAttribute(SPELL_ATTR2_AUTO_REPEAT)) // Wands auto attack
16196 {
16197 procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
16199 }
16200 break;
16201 }
16202 }
16203 else if (attackType == BASE_ATTACK)
16204 {
16207 }
16208 else if (attackType == OFF_ATTACK)
16209 {
16212 }
16213}
@ ITEM_SUBCLASS_WEAPON_WAND
Definition ItemTemplate.h:363
@ ITEM_CLASS_WEAPON
Definition ItemTemplate.h:293
@ SPELL_ATTR2_AUTO_REPEAT
Definition SharedDefines.h:472
@ SPELL_DAMAGE_CLASS_RANGED
Definition SharedDefines.h:1559
@ SPELL_DAMAGE_CLASS_MAGIC
Definition SharedDefines.h:1557
@ SPELL_DAMAGE_CLASS_NONE
Definition SharedDefines.h:1556
@ SPELL_DAMAGE_CLASS_MELEE
Definition SharedDefines.h:1558
@ PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS
Definition SpellMgr.h:118
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS
Definition SpellMgr.h:127
@ PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK
Definition SpellMgr.h:116
@ PROC_FLAG_DONE_MELEE_AUTO_ATTACK
Definition SpellMgr.h:109
@ PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS
Definition SpellMgr.h:121
@ PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS
Definition SpellMgr.h:112
@ PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG
Definition SpellMgr.h:131
@ PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS
Definition SpellMgr.h:119
@ PROC_FLAG_DONE_MAINHAND_ATTACK
Definition SpellMgr.h:139
@ PROC_FLAG_DONE_RANGED_AUTO_ATTACK
Definition SpellMgr.h:115
@ PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG
Definition SpellMgr.h:125
@ PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG
Definition SpellMgr.h:124
@ PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS
Definition SpellMgr.h:128
@ PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK
Definition SpellMgr.h:110
@ PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS
Definition SpellMgr.h:122
@ PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS
Definition SpellMgr.h:113
@ PROC_FLAG_DONE_OFFHAND_ATTACK
Definition SpellMgr.h:140
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG
Definition SpellMgr.h:130

References BASE_ATTACK, SpellInfo::DmgClass, SpellInfo::EquippedItemClass, SpellInfo::EquippedItemSubClassMask, SpellInfo::HasAttribute(), ITEM_CLASS_WEAPON, ITEM_SUBCLASS_WEAPON_WAND, OFF_ATTACK, PROC_FLAG_DONE_MAINHAND_ATTACK, PROC_FLAG_DONE_MELEE_AUTO_ATTACK, PROC_FLAG_DONE_OFFHAND_ATTACK, PROC_FLAG_DONE_RANGED_AUTO_ATTACK, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS, PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS, PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS, PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK, PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK, PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS, PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS, PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG, PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS, PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS, SPELL_ATTR2_AUTO_REPEAT, SPELL_DAMAGE_CLASS_MAGIC, SPELL_DAMAGE_CLASS_MELEE, SPELL_DAMAGE_CLASS_NONE, and SPELL_DAMAGE_CLASS_RANGED.

Referenced by Unit::CalcAbsorbResist().

Variable Documentation

◆ baseMoveSpeed

float baseMoveSpeed[MAX_MOVE_TYPE]
extern
77{
78 2.5f, // MOVE_WALK
79 7.0f, // MOVE_RUN
80 4.5f, // MOVE_RUN_BACK
81 4.722222f, // MOVE_SWIM
82 2.5f, // MOVE_SWIM_BACK
83 3.141594f, // MOVE_TURN_RATE
84 7.0f, // MOVE_FLIGHT
85 4.5f, // MOVE_FLIGHT_BACK
86 3.14f // MOVE_PITCH_RATE
87};

Referenced by Spell::CalculateJumpSpeeds(), Unit::GetSpeed(), World::LoadConfigSettings(), and Unit::UpdateSpeed().

◆ infinityCooldownDelay

constexpr uint32 infinityCooldownDelay = 0x9A7EC800
staticconstexpr

◆ infinityCooldownDelayCheck

◆ MAX_CREATURE_SPELLS

◆ playerBaseMoveSpeed

float playerBaseMoveSpeed[MAX_MOVE_TYPE]
extern
90{
91 2.5f, // MOVE_WALK
92 7.0f, // MOVE_RUN
93 4.5f, // MOVE_RUN_BACK
94 4.722222f, // MOVE_SWIM
95 2.5f, // MOVE_SWIM_BACK
96 3.141594f, // MOVE_TURN_RATE
97 7.0f, // MOVE_FLIGHT
98 4.5f, // MOVE_FLIGHT_BACK
99 3.14f // MOVE_PITCH_RATE
100};

Referenced by Spell::CalculateJumpSpeeds(), Unit::GetSpeed(), World::LoadConfigSettings(), and Unit::UpdateSpeed().

◆ SetSpeed2Opc_table

SpeedOpcodePair SetSpeed2Opc_table[MAX_MOVE_TYPE]
Initial value:
=
{
}
@ SMSG_FORCE_TURN_RATE_CHANGE
Definition Opcodes.h:764
@ MSG_MOVE_SET_SWIM_BACK_SPEED
Definition Opcodes.h:243
@ MSG_MOVE_SET_TURN_RATE
Definition Opcodes.h:246
@ SMSG_FORCE_WALK_SPEED_CHANGE
Definition Opcodes.h:760
@ SMSG_SPLINE_SET_FLIGHT_SPEED
Definition Opcodes.h:931
@ SMSG_FORCE_FLIGHT_BACK_SPEED_CHANGE
Definition Opcodes.h:929
@ MSG_MOVE_SET_PITCH_RATE
Definition Opcodes.h:1145
@ SMSG_SPLINE_SET_SWIM_SPEED
Definition Opcodes.h:798
@ SMSG_FORCE_RUN_SPEED_CHANGE
Definition Opcodes.h:256
@ SMSG_FORCE_SWIM_BACK_SPEED_CHANGE
Definition Opcodes.h:762
@ SMSG_SPLINE_SET_FLIGHT_BACK_SPEED
Definition Opcodes.h:932
@ SMSG_FORCE_RUN_BACK_SPEED_CHANGE
Definition Opcodes.h:258
@ SMSG_FORCE_FLIGHT_SPEED_CHANGE
Definition Opcodes.h:927
@ SMSG_FORCE_SWIM_SPEED_CHANGE
Definition Opcodes.h:260
@ MSG_MOVE_SET_RUN_SPEED
Definition Opcodes.h:235
@ MSG_MOVE_SET_FLIGHT_SPEED
Definition Opcodes.h:924
@ MSG_MOVE_SET_WALK_SPEED
Definition Opcodes.h:239
@ SMSG_SPLINE_SET_WALK_SPEED
Definition Opcodes.h:799
@ SMSG_SPLINE_SET_RUN_BACK_SPEED
Definition Opcodes.h:797
@ MSG_MOVE_SET_SWIM_SPEED
Definition Opcodes.h:241
@ MSG_MOVE_SET_FLIGHT_BACK_SPEED
Definition Opcodes.h:926
@ SMSG_SPLINE_SET_RUN_SPEED
Definition Opcodes.h:796
@ SMSG_FORCE_PITCH_RATE_CHANGE
Definition Opcodes.h:1146
@ SMSG_SPLINE_SET_TURN_RATE
Definition Opcodes.h:801
@ SMSG_SPLINE_SET_PITCH_RATE
Definition Opcodes.h:1148
@ SMSG_SPLINE_SET_SWIM_BACK_SPEED
Definition Opcodes.h:800
@ MSG_MOVE_SET_RUN_BACK_SPEED
Definition Opcodes.h:237

Referenced by WorldSession::HandleForceSpeedChangeAck(), and Unit::SetSpeed().