230{
236};
237
239{
245};
246
248{
265};
266
268{
270};
271
273{
283};
284
286
288{
301};
302
303typedef std::unordered_map<uint32, SpellProcEntry>
SpellProcMap;
304
306{
309};
310
312{
317};
318
320
322{
327};
328
329typedef std::unordered_map<uint32, SpellBonusEntry>
SpellBonusMap;
330
332{
337};
338
340{
341 template<>
343 {
344 size_t operator()(
SpellGroup const& group)
const
345 {
346 return hash<uint32>()(
uint32(group));
347 }
348 };
349}
350
351#define SPELL_GROUP_DB_RANGE_MIN 1000
352
353
356
357
360
362{
369};
370
372
374
376{
380};
381
382typedef std::unordered_map<uint32, SpellThreatEntry>
SpellThreatMap;
384
385
387{
393};
394
396
397
399{
457};
458
459
461{
462private:
463 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
464
465public:
467 {
469 }
470
473 {
474 auras[petEntry] = aura;
475 }
476
478 {
479 PetAuraMap::const_iterator itr =
auras.find(petEntry);
480 if (itr !=
auras.end())
481 return itr->second;
482 PetAuraMap::const_iterator itr2 =
auras.find(0);
483 if (itr2 !=
auras.end())
484 return itr2->second;
485 return 0;
486 }
487
489 {
490 auras[petEntry] = aura;
491 }
492
494 {
496 }
497
499 {
501 }
502
503private:
507};
509
511{
515};
516
518{
529
530
532};
533
538typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
542
543
545{
551};
552
553typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
554
555
557typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
558
559
562
563
565{
570};
571
573
576
579
581
583{
585};
586
587
589
592
594
596
598{
603};
604
606
608
610{
612}
613
615{
617}
618
620
621
627
629
631{
632
633private:
636
637
638public:
640
641
645
646
651
652
659
661
662
666
667
669
670
672
673
676
680
681
685
686
689
690
693
694
696
697
699
700
702
704
706
709
711
714
715
721
722
724
726 {
730 return spellInfo;
731 }
732
734 {
736 {
738 return nullptr;
739 }
741 if (!spellInfo)
742 {
743 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
744 return nullptr;
745 }
746 return spellInfo;
747 }
749
750
752
755
756private:
758
759
760public:
761
790
791private:
822};
823
824#define sSpellMgr SpellMgr::instance()
825
826#endif
#define MAX_CREATURE_SPELL_DATA_SLOT
Definition DBCStructure.h:807
std::int32_t int32
Definition Define.h:103
std::uint8_t uint8
Definition Define.h:109
std::uint32_t uint32
Definition Define.h:107
std::uint16_t uint16
Definition Define.h:108
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
Definition Duration.h:27
#define ASSERT
Definition Errors.h:68
#define LOG_ERROR(filterType__,...)
Definition Log.h:158
SpellEffIndex
Definition SharedDefines.h:30
DiminishingGroup
Definition SharedDefines.h:3507
Gender
Definition SharedDefines.h:60
DiminishingReturnsType
Definition SharedDefines.h:3499
@ SKILL_COOKING
Definition SharedDefines.h:3168
@ SKILL_FISHING
Definition SharedDefines.h:3207
@ SKILL_RIDING
Definition SharedDefines.h:3241
@ SKILL_FIRST_AID
Definition SharedDefines.h:3142
bool IsPrimaryProfessionSkill(uint32 skill)
Definition SpellMgr.cpp:33
bool IsPartOfSkillLine(uint32 skillId, uint32 spellId)
Definition SpellMgr.cpp:45
std::unordered_map< uint32, SpellEnchantProcEntry > SpellEnchantProcEventMap
Definition SpellMgr.h:320
std::unordered_map< uint32, SpellProcEventEntry > SpellProcEventMap
Definition SpellMgr.h:286
std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
Definition SpellMgr.h:537
std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
Definition SpellMgr.h:374
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:615
std::unordered_multimap< SpellGroup, int32 > SpellGroupSpellMap
Definition SpellMgr.h:359
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const *spellproto)
Definition SpellMgr.cpp:272
ProcFlagsHit
Definition SpellMgr.h:249
@ PROC_HIT_BLOCK
Definition SpellMgr.h:257
@ PROC_HIT_FULL_RESIST
Definition SpellMgr.h:254
@ PROC_HIT_FULL_BLOCK
Definition SpellMgr.h:264
@ PROC_HIT_MISS
Definition SpellMgr.h:253
@ PROC_HIT_INTERRUPT
Definition SpellMgr.h:263
@ PROC_HIT_NONE
Definition SpellMgr.h:250
@ PROC_HIT_DEFLECT
Definition SpellMgr.h:260
@ PROC_HIT_EVADE
Definition SpellMgr.h:258
@ PROC_HIT_DODGE
Definition SpellMgr.h:255
@ PROC_HIT_IMMUNE
Definition SpellMgr.h:259
@ PROC_HIT_ABSORB
Definition SpellMgr.h:261
@ PROC_HIT_PARRY
Definition SpellMgr.h:256
@ PROC_HIT_MASK_ALL
Definition SpellMgr.h:265
@ PROC_HIT_CRITICAL
Definition SpellMgr.h:252
@ PROC_HIT_NORMAL
Definition SpellMgr.h:251
@ PROC_HIT_REFLECT
Definition SpellMgr.h:262
std::map< uint32, float > SpellMixologyMap
Definition SpellMgr.h:384
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:55
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:562
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:396
bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group)
Definition SpellMgr.cpp:327
std::pair< SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator > SpellSpellGroupMapBounds
Definition SpellMgr.h:356
bool IsProfessionSkill(uint32 skill)
Definition SpellMgr.h:610
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:535
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:539
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:581
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:606
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:596
SpellGroup
Definition SpellMgr.h:333
@ SPELL_GROUP_NONE
Definition SpellMgr.h:334
@ SPELL_GROUP_CORE_RANGE_MAX
Definition SpellMgr.h:337
@ SPELL_GROUP_ELIXIR_BATTLE
Definition SpellMgr.h:335
@ SPELL_GROUP_ELIXIR_GUARDIAN
Definition SpellMgr.h:336
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition SpellMgr.h:542
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:554
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:304
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:629
ProcAttributes
Definition SpellMgr.h:269
@ PROC_ATTR_REQ_EXP_OR_HONOR
Definition SpellMgr.h:270
std::multimap< uint32, SpellArea const * > SpellAreaForAreaMap
Definition SpellMgr.h:538
std::unordered_map< uint32, SpellThreatEntry > SpellThreatMap
Definition SpellMgr.h:383
SpellGroupStackRule
Definition SpellMgr.h:363
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_FROM_SAME_CASTER
Definition SpellMgr.h:366
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE
Definition SpellMgr.h:365
@ SPELL_GROUP_STACK_RULE_DEFAULT
Definition SpellMgr.h:364
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT
Definition SpellMgr.h:367
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST
Definition SpellMgr.h:368
@ SPELL_GROUP_STACK_RULE_MAX
Definition SpellMgr.h:369
std::unordered_multimap< uint32, SpellGroup > SpellSpellGroupMap
Definition SpellMgr.h:355
std::pair< SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator > SpellRequiredMapBounds
Definition SpellMgr.h:558
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:575
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:509
ICCBuff
Definition SpellMgr.h:512
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:514
@ ICC_AREA
Definition SpellMgr.h:513
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:515
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:536
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:589
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:592
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
Definition SpellMgr.cpp:242
std::pair< SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator > SpellGroupSpellMapBounds
Definition SpellMgr.h:360
std::vector< uint32 > SpellCustomAttribute
Definition SpellMgr.h:591
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:573
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:541
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:576
@ PROC_SPELL_TYPE_NONE
Definition SpellMgr.h:232
@ PROC_SPELL_TYPE_HEAL
Definition SpellMgr.h:234
@ PROC_SPELL_TYPE_MASK_ALL
Definition SpellMgr.h:236
@ PROC_SPELL_TYPE_DAMAGE
Definition SpellMgr.h:233
@ PROC_SPELL_TYPE_NO_DMG_HEAL
Definition SpellMgr.h:235
std::unordered_map< uint32, SpellBonusEntry > SpellBonusMap
Definition SpellMgr.h:330
std::map< uint32, PetLevelupSpellSet > PetLevelupSpellMap
Definition SpellMgr.h:579
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:261
EffectRadiusIndex
Definition SpellMgr.h:400
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:453
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:411
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:406
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:450
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:425
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:403
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:444
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:408
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:432
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:405
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:401
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:447
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:452
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:445
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:455
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:428
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:418
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:451
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:404
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:410
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:436
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:441
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:442
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:448
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:438
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:440
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:402
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:417
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:439
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:449
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:446
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:407
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:456
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:434
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:457
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:415
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:454
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:435
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:443
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:437
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:427
ProcFlagsSpellPhase
Definition SpellMgr.h:240
@ PROC_SPELL_PHASE_FINISH
Definition SpellMgr.h:244
@ PROC_SPELL_PHASE_NONE
Definition SpellMgr.h:241
@ PROC_SPELL_PHASE_CAST
Definition SpellMgr.h:242
@ PROC_SPELL_PHASE_HIT
Definition SpellMgr.h:243
@ PROC_SPELL_PHASE_MASK_ALL
Definition SpellMgr.h:245
std::multimap< uint32, uint32 > SpellsRequiringSpellMap
Definition SpellMgr.h:561
EnchantProcAttributes
Definition SpellMgr.h:307
@ ENCHANT_PROC_ATTR_WHITE_HIT
Definition SpellMgr.h:309
@ ENCHANT_PROC_ATTR_EXCLUSIVE
Definition SpellMgr.h:308
std::multimap< uint32, uint32 > SpellRequiredMap
Definition SpellMgr.h:557
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:594
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:540
std::unordered_map< SpellGroup, SpellGroupStackRule > SpellGroupStackMap
Definition SpellMgr.h:372
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:578
DiminishingLevels
Definition Unit.h:269
Definition SpellMgr.h:462
int32 damage
Definition SpellMgr.h:507
int32 GetDamage() const
Definition SpellMgr.h:499
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:464
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:478
PetAura()
Definition SpellMgr.h:467
bool removeOnChangePet
Definition SpellMgr.h:506
PetAuraMap auras
Definition SpellMgr.h:505
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:494
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:489
Definition SpellInfo.h:316
Definition SpellMgr.h:632
SpellRequiredMap mSpellReq
Definition SpellMgr.h:796
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:809
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:726
void LoadSpellLinked()
Definition SpellMgr.cpp:2434
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:817
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1110
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:822
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:811
void SetSpellDifficultyId(uint32 spellId, uint32 id)
Definition SpellMgr.cpp:481
static bool ComputeIsSpellValid(SpellInfo const *spellInfo, bool msg=true)
Some checks for spells, to prevent adding deprecated/broken spells for trainers, spell book,...
Definition SpellMgr.cpp:367
PetLevelupSpellSet const * GetPetLevelupSpellList(uint32 petFamily) const
Definition SpellMgr.cpp:1093
void LoadSpellInfoStore()
Definition SpellMgr.cpp:2872
uint32 GetSpellIdForDifficulty(uint32 spellId, Unit const *caster) const
Definition SpellMgr.cpp:486
void LoadSpellBonuses()
Definition SpellMgr.cpp:2145
SpellAreaForQuestMapBounds GetSpellAreaForQuestEndMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1120
SpellAreaForAuraMap mSpellAreaForAuraMap
Definition SpellMgr.h:815
SpellProcEventEntry const * GetSpellProcEvent(uint32 spellId) const
Definition SpellMgr.cpp:787
SpellChainMap mSpellChains
Definition SpellMgr.h:794
void LoadEnchantCustomAttr()
Definition SpellMgr.cpp:2348
void UnloadSpellInfoStore()
Definition SpellMgr.cpp:2943
void LoadSpellAreas()
Definition SpellMgr.cpp:2661
uint32 GetNextSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:567
static SpellMgr * instance()
Definition SpellMgr.cpp:360
SpellPetAuraMap mSpellPetAuraMap
Definition SpellMgr.h:808
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:797
void LoadSpellCooldownOverrides()
Definition SpellMgr.cpp:2901
SpellAreaForQuestMapBounds GetSpellAreaForQuestMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1115
SpellBonusEntry const * GetSpellBonusData(uint32 spellId) const
Definition SpellMgr.cpp:1020
void LoadSkillLineAbilityMap()
Definition SpellMgr.cpp:2263
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1060
SpellProcEventMap mSpellProcEventMap
Definition SpellMgr.h:803
static bool CheckSpellValid(SpellInfo const *spellInfo, uint32 spellId, bool isTalent)
Definition SpellMgr.cpp:456
float GetSpellMixologyBonus(uint32 spellId) const
Definition SpellMgr.cpp:1051
SpellAreaForQuestMap mSpellAreaForQuestEndMap
Definition SpellMgr.h:814
SpellGroupSpellMapBounds GetSpellGroupSpellMapBounds(SpellGroup group_id) const
Definition SpellMgr.cpp:665
bool IsSpellProcEventCanTriggeredBy(SpellInfo const *spellProto, SpellProcEventEntry const *spellProcEvent, uint32 EventProcFlag, ProcEventInfo const &eventInfo, bool active) const
Definition SpellMgr.cpp:795
PetDefaultSpellsMap mPetDefaultSpellsMap
Definition SpellMgr.h:819
uint32 GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict=false) const
Definition SpellMgr.cpp:593
SpellLearnSkillNode const * GetSpellLearnSkill(uint32 spell_id) const
Definition SpellMgr.cpp:631
bool IsSpellMemberOfSpellGroup(uint32 spell_id, SpellGroup group_id) const
Definition SpellMgr.cpp:654
SpellMixologyMap mSpellMixologyMap
Definition SpellMgr.h:807
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:2978
const std::vector< int32 > * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:1087
SpellRequiredMapBounds GetSpellsRequiredForSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:605
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:724
uint32 GetPrevSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:576
bool IsSpellRequiringSpell(uint32 spellid, uint32 req_spellid) const
Definition SpellMgr.cpp:615
void LoadSpellThreats()
Definition SpellMgr.cpp:2186
SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1125
void LoadSpellRequired()
Definition SpellMgr.cpp:1461
SpellInfo const * GetSpellForDifficultyFromSpell(SpellInfo const *spell, Unit const *caster) const
Definition SpellMgr.cpp:528
void LoadSpellTargetPositions()
Definition SpellMgr.cpp:1579
SpellDifficultySearcherMap mSpellDifficultySearcherMap
Definition SpellMgr.h:793
void GetSetOfSpellsInSpellGroup(SpellGroup group_id, std::set< uint32 > &foundSpells) const
Definition SpellMgr.cpp:670
void LoadSpellLearnSkills()
Definition SpellMgr.cpp:1526
uint32 GetLastSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:559
void LoadSpellTalentRanks()
Definition SpellMgr.cpp:1289
SpellGroupStackRule GetSpellGroupStackRule(SpellGroup group_id) const
Definition SpellMgr.cpp:778
SpellThreatEntry const * GetSpellThreatEntry(uint32 spellID) const
Definition SpellMgr.cpp:1036
void LoadSpellGroupStackRules()
Definition SpellMgr.cpp:1765
static bool IsSpellValid(SpellInfo const *spellInfo)
Definition SpellMgr.cpp:438
SpellGroupStackMap mSpellGroupStack
Definition SpellMgr.h:801
uint32 GetFirstSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:551
bool CanSpellTriggerProcOnEvent(SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
Definition SpellMgr.cpp:955
SpellEnchantProcEventMap mSpellEnchantProcEventMap
Definition SpellMgr.h:810
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2581
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:818
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:734
SpellGroupStackRule CheckSpellGroupStackRules(SpellInfo const *spellInfo1, SpellInfo const *spellInfo2) const
Definition SpellMgr.cpp:731
bool IsAdditionalTalentSpell(uint32 spellId) const
Definition SpellMgr.cpp:626
SpellProcMap mSpellProcMap
Definition SpellMgr.h:804
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:795
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:798
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2937
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:947
SpellGroupSpellMap mSpellGroupSpell
Definition SpellMgr.h:800
void LoadSpellSpecificAndAuraState()
Definition SpellMgr.cpp:2960
PetDefaultSpellsEntry const * GetPetDefaultSpellsEntry(int32 id) const
Definition SpellMgr.cpp:1102
SpellTargetPosition const * GetSpellTargetPosition(uint32 spell_id, SpellEffIndex effIndex) const
Definition SpellMgr.cpp:640
SameEffectStackMap mSpellSameEffectStack
Definition SpellMgr.h:802
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:821
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:1074
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:816
uint32 GetSpellDifficultyId(uint32 spellId) const
Definition SpellMgr.cpp:475
void LoadSpellProcEvents()
Definition SpellMgr.cpp:1919
uint8 GetSpellRank(uint32 spell_id) const
Definition SpellMgr.cpp:585
void LoadSpellPetAuras()
Definition SpellMgr.cpp:2285
void UnloadSpellInfoImplicitTargetConditionLists()
Definition SpellMgr.cpp:2951
SpellSpellGroupMapBounds GetSpellSpellGroupMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:648
SpellAreaMap mSpellAreaMap
Definition SpellMgr.h:812
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2389
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:749
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:805
SpellMgr()
Definition SpellMgr.cpp:351
SpellChainNode const * GetSpellChainNode(uint32 spell_id) const
Definition SpellMgr.cpp:542
SpellsRequiringSpellMapBounds GetSpellsRequiringSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:610
void LoadSpellRanks()
Definition SpellMgr.cpp:1350
bool AddSameEffectStackRuleSpellGroups(SpellInfo const *spellInfo, uint32 auraType, int32 amount, std::map< SpellGroup, int32 > &groups) const
Definition SpellMgr.cpp:697
void LoadSpellGroups()
Definition SpellMgr.cpp:1684
void LoadPetLevelupSpellMap()
Definition SpellMgr.cpp:2487
SpellSpellGroupMap mSpellSpellGroup
Definition SpellMgr.h:799
PetAura const * GetPetAura(uint32 spell_id, uint8 eff) const
Definition SpellMgr.cpp:1065
void LoadSpellMixology()
Definition SpellMgr.cpp:2227
SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const
Definition SpellMgr.cpp:1130
bool IsArenaAllowedEnchancment(uint32 ench_id) const
Definition SpellMgr.cpp:1082
SpellThreatMap mSpellThreatMap
Definition SpellMgr.h:806
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:813
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:820
void LoadSpellProcs()
Definition SpellMgr.cpp:2013
~SpellMgr()
Definition SpellMgr.cpp:355
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:758
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1281
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2932
Definition SpellMgr.h:584
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:585
Definition SpellMgr.h:519
uint32 questEnd
Definition SpellMgr.h:523
bool autocast
Definition SpellMgr.h:529
uint32 raceMask
Definition SpellMgr.h:525
uint32 questStartStatus
Definition SpellMgr.h:527
uint32 spellId
Definition SpellMgr.h:520
uint32 questEndStatus
Definition SpellMgr.h:528
int32 auraSpell
Definition SpellMgr.h:524
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1135
Gender gender
Definition SpellMgr.h:526
uint32 areaId
Definition SpellMgr.h:521
uint32 questStart
Definition SpellMgr.h:522
Definition SpellMgr.h:323
float ap_dot_bonus
Definition SpellMgr.h:327
float dot_damage
Definition SpellMgr.h:325
float ap_bonus
Definition SpellMgr.h:326
float direct_damage
Definition SpellMgr.h:324
Definition SpellMgr.h:546
SpellInfo const * last
Definition SpellMgr.h:550
SpellInfo const * next
Definition SpellMgr.h:548
uint8 rank
Definition SpellMgr.h:551
SpellInfo const * first
Definition SpellMgr.h:549
SpellInfo const * prev
Definition SpellMgr.h:547
Definition SpellMgr.h:599
uint32 StartRecoveryTime
Definition SpellMgr.h:602
uint32 CategoryRecoveryTime
Definition SpellMgr.h:601
uint32 StartRecoveryCategory
Definition SpellMgr.h:603
uint32 RecoveryTime
Definition SpellMgr.h:600
Definition SpellMgr.h:313
uint32 procEx
Definition SpellMgr.h:316
uint32 attributeMask
Definition SpellMgr.h:317
uint32 customChance
Definition SpellMgr.h:314
float PPMChance
Definition SpellMgr.h:315
Definition SpellMgr.h:566
uint16 value
Definition SpellMgr.h:569
uint16 step
Definition SpellMgr.h:568
uint16 maxvalue
Definition SpellMgr.h:570
uint16 skill
Definition SpellMgr.h:567
Definition SpellMgr.h:289
uint32 SpellFamilyName
Definition SpellMgr.h:291
float ProcsPerMinute
Definition SpellMgr.h:298
Milliseconds Cooldown
Definition SpellMgr.h:300
uint32 Charges
Definition SpellMgr.h:301
uint32 AttributesMask
Definition SpellMgr.h:297
flag96 SpellFamilyMask
Definition SpellMgr.h:292
uint32 HitMask
Definition SpellMgr.h:296
uint32 SpellTypeMask
Definition SpellMgr.h:294
uint32 ProcFlags
Definition SpellMgr.h:293
uint32 SpellPhaseMask
Definition SpellMgr.h:295
uint32 SchoolMask
Definition SpellMgr.h:290
float Chance
Definition SpellMgr.h:299
Definition SpellMgr.h:274
uint32 cooldown
Definition SpellMgr.h:283
uint32 procPhase
Definition SpellMgr.h:280
flag96 spellFamilyMask
Definition SpellMgr.h:277
uint32 spellFamilyName
Definition SpellMgr.h:276
uint32 procEx
Definition SpellMgr.h:279
float ppmRate
Definition SpellMgr.h:281
uint32 schoolMask
Definition SpellMgr.h:275
float customChance
Definition SpellMgr.h:282
uint32 procFlags
Definition SpellMgr.h:278
Definition SpellMgr.h:388
float target_Z
Definition SpellMgr.h:392
uint32 target_mapId
Definition SpellMgr.h:389
float target_Y
Definition SpellMgr.h:391
float target_Orientation
Definition SpellMgr.h:393
float target_X
Definition SpellMgr.h:390
Definition SpellMgr.h:377
int32 flatMod
Definition SpellMgr.h:378
float apPctMod
Definition SpellMgr.h:380
float pctMod
Definition SpellMgr.h:379