664{
687
693};
694
696{
704};
705
707{
714};
715
717{
727
730};
731
733{
743};
744
746{
758};
759
761{
765};
766
767
769{
792};
793
795{
829
832};
833
835
837{
840 int32 DiminishMaxLevel = 3;
841 int32 DiminishDurationLimit = 0;
842};
843
845{
846 uint32 SchoolImmuneMask = 0;
847 uint32 ApplyHarmfulAuraImmuneMask = 0;
848 uint64 MechanicImmuneMask = 0;
849 uint32 DispelImmuneMask = 0;
850 uint32 DamageSchoolMask = 0;
851
852 boost::container::flat_set<AuraType> AuraTypeImmune;
853 boost::container::flat_set<SpellEffects> SpellEffectImmune;
854};
855
857{
858private:
860public:
863
864 bool IsArea() const;
870 float CalcDirectionAngle() const;
871
873 uint32 GetExplicitTargetMask(
bool& srcSet,
bool& dstSet)
const;
874
875private:
876 struct StaticData
877 {
883 };
884
885 static std::array<StaticData, TOTAL_SPELL_TARGETS> _data;
886};
887
889{
891public:
914
920
930
935
938
941
944
946
947private:
948 struct StaticData
949 {
952 };
953
954 static std::array<StaticData, TOTAL_SPELL_EFFECTS>
_data;
955
956};
957
959{
961
962public:
979 uint32 TargetCreatureType;
980 uint32 RequiresSpellFocus;
984 uint32 CasterAuraStateNot;
985 uint32 TargetAuraStateNot;
988 uint32 ExcludeCasterAuraSpell;
989 uint32 ExcludeTargetAuraSpell;
992 uint32 CategoryRecoveryTime;
993 uint32 StartRecoveryCategory;
996 uint32 AuraInterruptFlags;
997 uint32 ChannelInterruptFlags;
1009 uint32 ManaPerSecondPerLevel;
1010 uint32 ManaCostPercentage;
1013 float Speed;
1015 std::array<uint32, 2>
Totem;
1016 std::array<int32, MAX_SPELL_REAGENTS> Reagent;
1017 std::array<uint32, MAX_SPELL_REAGENTS> ReagentCount;
1018 int32 EquippedItemClass;
1019 int32 EquippedItemSubClassMask;
1020 int32 EquippedItemInventoryTypeMask;
1022 std::array<uint32, 2> SpellVisual;
1026 std::array<char const*, 16> SpellName;
1027 std::array<char const*, 16> Rank;
1029 uint32 MaxAffectedTargets;
1036 std::array<SpellEffectInfo, MAX_SPELL_EFFECTS> Effects;
1037 uint32 ExplicitTargetMask;
1039
1040
1043 bool _isStackableWithRanks;
1044 bool _isSpellValid;
1045 bool _isCritCapable;
1046 bool _requireCooldownInfo;
1047 float JumpDistance;
1048
1051
1052 uint32 GetCategory()
const;
1054 bool HasEffectMechanic(
Mechanics mechanic)
const;
1056 bool HasAnyAura() const;
1057 bool HasAreaAuraEffect() const;
1058 bool HasOnlyDamageEffects() const;
1059
1060 inline bool HasAttribute(
SpellAttr0 attribute)
const {
return (Attributes & attribute) != 0; }
1061 inline bool HasAttribute(
SpellAttr1 attribute)
const {
return (AttributesEx & attribute) != 0; }
1062 inline bool HasAttribute(
SpellAttr2 attribute)
const {
return (AttributesEx2 & attribute) != 0; }
1063 inline bool HasAttribute(
SpellAttr3 attribute)
const {
return (AttributesEx3 & attribute) != 0; }
1064 inline bool HasAttribute(
SpellAttr4 attribute)
const {
return (AttributesEx4 & attribute) != 0; }
1065 inline bool HasAttribute(
SpellAttr5 attribute)
const {
return (AttributesEx5 & attribute) != 0; }
1066 inline bool HasAttribute(
SpellAttr6 attribute)
const {
return (AttributesEx6 & attribute) != 0; }
1067 inline bool HasAttribute(
SpellAttr7 attribute)
const {
return (AttributesEx7 & attribute) != 0; }
1068 inline bool HasAttribute(
SpellCustomAttributes customAttribute)
const {
return (AttributesCu & customAttribute) != 0; }
1069
1070 bool IsExplicitDiscovery() const;
1071 bool IsLootCrafting() const;
1072 bool IsQuestTame() const;
1073 bool IsProfessionOrRiding() const;
1074 bool IsProfession() const;
1075 bool IsPrimaryProfession() const;
1076 bool IsPrimaryProfessionFirstRank() const;
1077 bool IsAbilityLearnedWithProfession() const;
1078 bool IsAbilityOfSkillType(
uint32 skillType)
const;
1079
1080 bool IsAffectingArea() const;
1081 bool CanBeRedirectedBySpellMagnet() const;
1082 bool IsTargetingArea() const;
1083 bool NeedsExplicitUnitTarget() const;
1085 bool IsChannelCategorySpell() const;
1086 bool IsSelfCast() const;
1087
1088 bool IsPassive() const;
1089 bool IsAutocastable() const;
1090 bool ComputeIsCritCapable() const;
1091 bool IsCritCapable() const;
1092 bool RequireCooldownInfo() const;
1093 void SetCritCapable(bool val);
1094 bool ComputeIsStackableWithRanks() const;
1095 bool IsStackableWithRanks() const;
1096 void SetStackableWithRanks(bool val);
1097 bool IsSpellValid() const;
1098 void SetSpellValid(bool val);
1099 bool IsPassiveStackableWithRanks() const;
1100 bool IsMultiSlotAura() const;
1101 bool IsCooldownStartedOnEvent() const;
1102 bool IsDeathPersistent() const;
1103 bool IsRequiringDeadTarget() const;
1104 bool IsAllowingDeadTarget() const;
1105 bool CanBeUsedInCombat() const;
1106 bool IsPositive() const;
1107 bool IsPositiveEffect(
uint8 effIndex)
const;
1108 bool IsChanneled() const;
1109 [[nodiscard]] bool IsActionAllowedChannel() const;
1110 bool NeedsComboPoints() const;
1111 bool IsBreakingStealth() const;
1112 bool IsRangedWeaponSpell() const;
1113 bool IsAutoRepeatRangedSpell() const;
1114 bool HasInitialAggro() const;
1115
1116 [[nodiscard]]
bool IsAffected(
uint32 familyName,
flag96 const& familyFlags)
const;
1117
1118 bool IsAffectedBySpellMods() const;
1120
1121 bool CanPierceImmuneAura(
SpellInfo const* auraSpellInfo)
const;
1122 bool CanDispelAura(
SpellInfo const* auraSpellInfo)
const;
1123
1124 void ApplyAllSpellImmunitiesTo(
Unit* target,
SpellEffectInfo const* effect,
bool apply)
const;
1125 bool CanSpellProvideImmunityAgainstAura(
SpellInfo const* auraSpellInfo)
const;
1126 bool CanSpellCastOverrideAuraEffect(
AuraEffect const* aurEff)
const;
1127
1128 bool IsSingleTarget() const;
1129 bool IsAuraExclusiveBySpecificWith(
SpellInfo const* spellInfo)
const;
1130 bool IsAuraExclusiveBySpecificPerCasterWith(
SpellInfo const* spellInfo)
const;
1131
1136 bool CheckTargetCreatureType(
Unit const* target)
const;
1137
1138 bool IsAuraEffectEqual(
SpellInfo const* otherSpellInfo)
const;
1139 bool ValidateAttribute6SpellDamageMods(
Unit const* caster,
AuraEffect const* auraEffect,
bool isDot)
const;
1140
1142 uint64 GetAllEffectsMechanicMask()
const;
1143 uint64 GetEffectMechanicMask(
uint8 effIndex)
const;
1144 uint64 GetSpellMechanicMaskByEffectMask(
uint32 effectMask)
const;
1146 bool HasAnyEffectMechanic() const;
1148 uint32 GetDispelMask()
const;
1150 uint32 GetExplicitTargetMask()
const;
1151
1154
1155 float GetMinRange(bool positive = false) const;
1156 float GetMaxRange(
bool positive =
false,
WorldObject* caster =
nullptr,
Spell* spell =
nullptr)
const;
1157
1158 int32 GetDuration()
const;
1159 int32 GetMaxDuration()
const;
1160
1161 uint32 GetMaxTicks()
const;
1162
1164 uint32 GetRecoveryTime()
const;
1165
1167
1168 bool IsRanked() const;
1169 uint8 GetRank()
const;
1170 SpellInfo const* GetFirstRankSpell()
const;
1171 SpellInfo const* GetLastRankSpell()
const;
1172 SpellInfo const* GetNextRankSpell()
const;
1173 SpellInfo const* GetPrevRankSpell()
const;
1175 bool IsRankOf(
SpellInfo const* spellInfo)
const;
1176 bool IsDifferentRankOf(
SpellInfo const* spellInfo)
const;
1177 bool IsHighRankOf(
SpellInfo const* spellInfo)
const;
1178
1179 std::array<SpellEffectInfo, MAX_SPELL_EFFECTS> const& GetEffects() const { return Effects; }
1181
1182
1183 void _InitializeExplicitTargetMask();
1184 bool _IsPositiveEffect(
uint8 effIndex,
bool deep)
const;
1185 bool _IsPositiveSpell() const;
1186 static bool _IsPositiveTarget(
uint32 targetA,
uint32 targetB);
1187
1190
1191
1192 void _UnloadImplicitTargetConditionLists();
1193
1194
1195 void _LoadImmunityInfo();
1196
1199
1201 std::array<SpellEffectInfo, MAX_SPELL_EFFECTS>& _GetEffects() { return Effects; }
1203};
1204
1205#endif
#define MAX_SPELL_EFFECTS
Definition DBCStructure.h:1673
#define AC_GAME_API
Definition Define.h:94
std::uint64_t uint64
Definition Define.h:106
#define ASSERT
Definition Errors.h:68
SpellEffIndex
Definition SharedDefines.h:30
DiminishingGroup
Definition SharedDefines.h:3490
@ DIMINISHING_NONE
Definition SharedDefines.h:3491
SpellAttr7
Definition SharedDefines.h:628
SpellEffects
Definition SharedDefines.h:766
SpellAttr5
Definition SharedDefines.h:554
Targets
Definition SharedDefines.h:1413
SpellAttr2
Definition SharedDefines.h:443
SpellAttr1
Definition SharedDefines.h:406
SpellAttr3
Definition SharedDefines.h:480
SpellAttr0
Definition SharedDefines.h:369
TotemCategory
Definition SharedDefines.h:3316
AuraStateType
Definition SharedDefines.h:1276
DiminishingReturnsType
Definition SharedDefines.h:3482
@ DRTYPE_NONE
Definition SharedDefines.h:3483
DispelType
Definition SharedDefines.h:1374
SpellCastResult
Definition SharedDefines.h:936
SpellAttr4
Definition SharedDefines.h:517
SpellAttr6
Definition SharedDefines.h:591
SpellSchoolMask
Definition SharedDefines.h:283
SpellEffectImplicitTargetTypes
Definition SpellInfo.h:142
@ EFFECT_IMPLICIT_TARGET_CASTER
Definition SpellInfo.h:145
@ EFFECT_IMPLICIT_TARGET_NONE
Definition SpellInfo.h:143
@ EFFECT_IMPLICIT_TARGET_EXPLICIT
Definition SpellInfo.h:144
SpellTargetSelectionCategories
Definition SpellInfo.h:77
@ TARGET_SELECT_CATEGORY_CONE
Definition SpellInfo.h:82
@ TARGET_SELECT_CATEGORY_AREA
Definition SpellInfo.h:83
@ TARGET_SELECT_CATEGORY_DEFAULT
Definition SpellInfo.h:79
@ TARGET_SELECT_CATEGORY_NEARBY
Definition SpellInfo.h:81
@ TARGET_SELECT_CATEGORY_NYI
Definition SpellInfo.h:78
@ TARGET_SELECT_CATEGORY_TRAJ
Definition SpellInfo.h:84
@ TARGET_SELECT_CATEGORY_CHANNEL
Definition SpellInfo.h:80
SpellTargetCheckTypes
Definition SpellInfo.h:114
@ TARGET_CHECK_CORPSE
Definition SpellInfo.h:123
@ TARGET_CHECK_PASSENGER
Definition SpellInfo.h:122
@ TARGET_CHECK_PARTY
Definition SpellInfo.h:119
@ TARGET_CHECK_ENEMY
Definition SpellInfo.h:117
@ TARGET_CHECK_DEFAULT
Definition SpellInfo.h:115
@ TARGET_CHECK_ENTRY
Definition SpellInfo.h:116
@ TARGET_CHECK_RAID_CLASS
Definition SpellInfo.h:121
@ TARGET_CHECK_ALLY
Definition SpellInfo.h:118
@ TARGET_CHECK_RAID
Definition SpellInfo.h:120
@ TARGET_FLAG_TRADE_ITEM
Definition SpellInfo.h:59
@ TARGET_FLAG_STRING
Definition SpellInfo.h:60
@ TARGET_FLAG_NONE
Definition SpellInfo.h:46
@ TARGET_FLAG_UNIT_RAID
Definition SpellInfo.h:49
@ TARGET_FLAG_UNIT_ENEMY
Definition SpellInfo.h:54
@ TARGET_FLAG_GLYPH_SLOT
Definition SpellInfo.h:64
@ TARGET_FLAG_CORPSE_ALLY
Definition SpellInfo.h:62
@ TARGET_FLAG_UNIT_MINIPET
Definition SpellInfo.h:63
@ TARGET_FLAG_UNIT_PASSENGER
Definition SpellInfo.h:67
@ TARGET_FLAG_UNUSED20
Definition SpellInfo.h:66
@ TARGET_FLAG_UNIT_ALLY
Definition SpellInfo.h:55
@ TARGET_FLAG_ITEM_MASK
Definition SpellInfo.h:73
@ TARGET_FLAG_UNUSED_1
Definition SpellInfo.h:47
@ TARGET_FLAG_UNIT
Definition SpellInfo.h:48
@ TARGET_FLAG_DEST_TARGET
Definition SpellInfo.h:65
@ TARGET_FLAG_UNIT_DEAD
Definition SpellInfo.h:57
@ TARGET_FLAG_CORPSE_ENEMY
Definition SpellInfo.h:56
@ TARGET_FLAG_GAMEOBJECT_MASK
Definition SpellInfo.h:71
@ TARGET_FLAG_UNIT_PARTY
Definition SpellInfo.h:50
SpellTargetDirectionTypes
Definition SpellInfo.h:127
@ TARGET_DIR_FRONT_RIGHT
Definition SpellInfo.h:133
@ TARGET_DIR_NONE
Definition SpellInfo.h:128
@ TARGET_DIR_BACK
Definition SpellInfo.h:130
@ TARGET_DIR_BACK_RIGHT
Definition SpellInfo.h:134
@ TARGET_DIR_RIGHT
Definition SpellInfo.h:131
@ TARGET_DIR_FRONT_LEFT
Definition SpellInfo.h:136
@ TARGET_DIR_FRONT
Definition SpellInfo.h:129
@ TARGET_DIR_LEFT
Definition SpellInfo.h:132
@ TARGET_DIR_ENTRY
Definition SpellInfo.h:138
@ TARGET_DIR_BACK_LEFT
Definition SpellInfo.h:135
@ TARGET_DIR_RANDOM
Definition SpellInfo.h:137
SpellCustomAttributes
Definition SpellInfo.h:176
@ SPELL_ATTR0_CU_IGNORE_ARMOR
Definition SpellInfo.h:192
@ SPELL_ATTR0_CU_POSITIVE_EFF2
Definition SpellInfo.h:204
@ SPELL_ATTR0_CU_REQ_TARGET_FACING_CASTER
Definition SpellInfo.h:193
@ SPELL_ATTR0_CU_ALLOW_INFLIGHT_TARGET
Definition SpellInfo.h:195
@ SPELL_ATTR0_CU_ENCHANT_PROC
Definition SpellInfo.h:177
@ SPELL_ATTR0_CU_NO_POSITIVE_TAKEN_BONUS
Definition SpellInfo.h:198
@ SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS
Definition SpellInfo.h:205
@ SPELL_ATTR0_CU_DIRECT_DAMAGE
Definition SpellInfo.h:185
@ SPELL_ATTR0_CU_POSITIVE
Definition SpellInfo.h:212
@ SPELL_ATTR0_CU_FORCE_AURA_SAVING
Definition SpellInfo.h:206
@ SPELL_ATTR0_CU_NO_PVP_FLAG
Definition SpellInfo.h:184
@ SPELL_ATTR0_CU_DONT_BREAK_STEALTH
Definition SpellInfo.h:183
@ SPELL_ATTR0_CU_REQ_CASTER_BEHIND_TARGET
Definition SpellInfo.h:194
@ SPELL_ATTR0_CU_CONE_BACK
Definition SpellInfo.h:178
@ SPELL_ATTR0_CU_SINGLE_AURA_STACK
Definition SpellInfo.h:199
@ SPELL_ATTR0_CU_AURA_CANNOT_BE_SAVED
Definition SpellInfo.h:201
@ SPELL_ATTR0_CU_NEGATIVE_EFF2
Definition SpellInfo.h:191
@ SPELL_ATTR0_CU_AURA_CC
Definition SpellInfo.h:182
@ SPELL_ATTR0_CU_NEGATIVE_EFF1
Definition SpellInfo.h:190
@ SPELL_ATTR0_CU_CHARGE
Definition SpellInfo.h:186
@ SPELL_ATTR0_CU_NEGATIVE
Definition SpellInfo.h:211
@ SPELL_ATTR0_CU_NEEDS_AMMO_DATA
Definition SpellInfo.h:196
@ SPELL_ATTR0_CU_BYPASS_MECHANIC_IMMUNITY
Definition SpellInfo.h:209
@ SPELL_ATTR0_CU_POSITIVE_EFF0
Definition SpellInfo.h:202
@ SPELL_ATTR0_CU_NEGATIVE_EFF0
Definition SpellInfo.h:189
@ SPELL_ATTR0_CU_POSITIVE_EFF1
Definition SpellInfo.h:203
@ SPELL_ATTR0_CU_BINARY_SPELL
Definition SpellInfo.h:197
@ SPELL_ATTR0_CU_SHARE_DAMAGE
Definition SpellInfo.h:180
@ SPELL_ATTR0_CU_SCHOOLMASK_NORMAL_WITH_MAGIC
Definition SpellInfo.h:200
@ SPELL_ATTR0_CU_IGNORE_EVADE
Definition SpellInfo.h:188
@ SPELL_ATTR0_CU_ONLY_ONE_AREA_AURA
Definition SpellInfo.h:207
@ SPELL_ATTR0_CU_ENCOUNTER_REWARD
Definition SpellInfo.h:208
@ SPELL_ATTR0_CU_PICKPOCKET
Definition SpellInfo.h:187
@ SPELL_ATTR0_CU_CONE_LINE
Definition SpellInfo.h:179
@ SPELL_ATTR0_CU_NO_INITIAL_THREAT
Definition SpellInfo.h:181
SpellSpecificType
Definition SpellInfo.h:150
@ SPELL_SPECIFIC_FOOD
Definition SpellInfo.h:164
@ SPELL_SPECIFIC_MAGE_ARMOR
Definition SpellInfo.h:159
@ SPELL_SPECIFIC_NORMAL
Definition SpellInfo.h:151
@ SPELL_SPECIFIC_STING
Definition SpellInfo.h:154
@ SPELL_SPECIFIC_MAGE_ARCANE_BRILLANCE
Definition SpellInfo.h:170
@ SPELL_SPECIFIC_ASPECT
Definition SpellInfo.h:156
@ SPELL_SPECIFIC_PRIEST_DIVINE_SPIRIT
Definition SpellInfo.h:171
@ SPELL_SPECIFIC_ELEMENTAL_SHIELD
Definition SpellInfo.h:160
@ SPELL_SPECIFIC_WARLOCK_CORRUPTION
Definition SpellInfo.h:163
@ SPELL_SPECIFIC_PRESENCE
Definition SpellInfo.h:167
@ SPELL_SPECIFIC_CURSE
Definition SpellInfo.h:155
@ SPELL_SPECIFIC_JUDGEMENT
Definition SpellInfo.h:162
@ SPELL_SPECIFIC_DRINK
Definition SpellInfo.h:165
@ SPELL_SPECIFIC_HAND
Definition SpellInfo.h:172
@ SPELL_SPECIFIC_AURA
Definition SpellInfo.h:153
@ SPELL_SPECIFIC_WARLOCK_ARMOR
Definition SpellInfo.h:158
@ SPELL_SPECIFIC_SCROLL
Definition SpellInfo.h:169
@ SPELL_SPECIFIC_MAGE_POLYMORPH
Definition SpellInfo.h:161
@ SPELL_SPECIFIC_TRACKER
Definition SpellInfo.h:157
@ SPELL_SPECIFIC_SEAL
Definition SpellInfo.h:152
@ SPELL_SPECIFIC_FOOD_AND_DRINK
Definition SpellInfo.h:166
@ SPELL_SPECIFIC_CHARM
Definition SpellInfo.h:168
SpellTargetObjectTypes
Definition SpellInfo.h:98
@ TARGET_OBJECT_TYPE_UNIT
Definition SpellInfo.h:102
@ TARGET_OBJECT_TYPE_ITEM
Definition SpellInfo.h:106
@ TARGET_OBJECT_TYPE_CORPSE
Definition SpellInfo.h:107
@ TARGET_OBJECT_TYPE_UNIT_AND_DEST
Definition SpellInfo.h:103
@ TARGET_OBJECT_TYPE_NONE
Definition SpellInfo.h:99
@ TARGET_OBJECT_TYPE_DEST
Definition SpellInfo.h:101
@ TARGET_OBJECT_TYPE_GOBJ
Definition SpellInfo.h:104
@ TARGET_OBJECT_TYPE_CORPSE_ALLY
Definition SpellInfo.h:110
@ TARGET_OBJECT_TYPE_CORPSE_ENEMY
Definition SpellInfo.h:109
@ TARGET_OBJECT_TYPE_GOBJ_ITEM
Definition SpellInfo.h:105
@ TARGET_OBJECT_TYPE_SRC
Definition SpellInfo.h:100
SpellTargetReferenceTypes
Definition SpellInfo.h:88
@ TARGET_REFERENCE_TYPE_SRC
Definition SpellInfo.h:93
@ TARGET_REFERENCE_TYPE_TARGET
Definition SpellInfo.h:91
@ TARGET_REFERENCE_TYPE_LAST
Definition SpellInfo.h:92
@ TARGET_REFERENCE_TYPE_NONE
Definition SpellInfo.h:89
@ TARGET_REFERENCE_TYPE_CASTER
Definition SpellInfo.h:90
@ TARGET_REFERENCE_TYPE_DEST
Definition SpellInfo.h:94
ProcFlags
Definition SpellMgr.h:107
PowerType
Definition VehicleDefines.h:29
Definition SpellAuraEffects.h:39
Definition SpellInfo.h:270
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr, Unit const *target=nullptr) const
Definition SpellInfo.cpp:409
float CalcDamageMultiplier(WorldObject *caster, Spell *spell=nullptr) const
Definition SpellInfo.cpp:541
float CalcRadius(WorldObject *caster=nullptr, Spell *=nullptr) const
Definition SpellInfo.cpp:554
float CalcValueMultiplier(WorldObject *caster, Spell *spell=nullptr) const
Definition SpellInfo.cpp:533
ImmunityInfo const * GetImmunityInfo() const
Definition SpellInfo.cpp:612
uint32 GetMissingTargetMask(bool srcSet=false, bool destSet=false, uint32 mask=0) const
Definition SpellInfo.cpp:578
bool IsFarUnitTargetEffect() const
Definition SpellInfo.cpp:390
bool IsEffect() const
Definition SpellInfo.cpp:353
bool IsTargetingArea() const
Definition SpellInfo.cpp:373
bool IsFarDestTargetEffect() const
Definition SpellInfo.cpp:399
SpellEffectImplicitTargetTypes GetImplicitTargetType() const
Definition SpellInfo.cpp:602
SpellEffectInfo()
Definition SpellInfo.h:296
uint32 GetProvidedTargetMask() const
Definition SpellInfo.cpp:573
int32 CalcBaseValue(int32 value) const
Definition SpellInfo.cpp:525
Definition SpellInfo.h:340
Definition SpellMgr.h:649
Definition SpellInfo.h:226
Definition DBCStructure.h:1794
Definition DBCStructure.h:1802
Definition SpellMgr.h:551
Definition SpellInfo.h:218
Definition DBCStructure.h:1869
SpellTargetObjectTypes UsedTargetObjectType
Definition SpellInfo.h:332
SpellEffectImplicitTargetTypes ImplicitTargetType
Definition SpellInfo.h:331
Definition DBCStructure.h:1678
Definition DBCStructure.h:1821
Definition DBCStructure.h:1829