231{
237};
238
240{
246};
247
249{
266};
267
269{
271};
272
274{
284};
285
287
289{
302};
303
304typedef std::unordered_map<uint32, SpellProcEntry>
SpellProcMap;
305
307{
310};
311
313{
318};
319
321
323{
328};
329
330typedef std::unordered_map<uint32, SpellBonusEntry>
SpellBonusMap;
331
333{
338};
339
341{
342 template<>
344 {
345 size_t operator()(
SpellGroup const& group)
const
346 {
347 return hash<uint32>()(
uint32(group));
348 }
349 };
350}
351
352#define SPELL_GROUP_DB_RANGE_MIN 1000
353
354
357
358
361
363{
370};
371
373
375
377{
381};
382
383typedef std::unordered_map<uint32, SpellThreatEntry>
SpellThreatMap;
385
386
388{
394};
395
397
398
400{
458};
459
460
462{
463private:
464 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
465
466public:
468 {
470 }
471
474 {
475 auras[petEntry] = aura;
476 }
477
479 {
480 PetAuraMap::const_iterator itr =
auras.find(petEntry);
481 if (itr !=
auras.end())
482 return itr->second;
483 PetAuraMap::const_iterator itr2 =
auras.find(0);
484 if (itr2 !=
auras.end())
485 return itr2->second;
486 return 0;
487 }
488
490 {
491 auras[petEntry] = aura;
492 }
493
495 {
497 }
498
500 {
502 }
503
504private:
508};
510
512{
516};
517
519{
530
531
533};
534
539typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
543
544
546{
552};
553
554typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
555
556
558typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
559
560
563
564
566{
571};
572
574
577
580
582
584{
586};
587
588
590
593
595
597
599{
604};
605
607
609
611{
613}
614
616{
618}
619
621
622
628
630
632{
633
634private:
637
638
639public:
641
642
646
647
652
653
660
662
663
667
668
670
671
673
674
677
681
682
686
687
690
691
694
695
697
698
700
701
703
705
707
710
712
715
716
722
723
725
727 {
731 return spellInfo;
732 }
733
735 {
737 {
739 return nullptr;
740 }
742 if (!spellInfo)
743 {
744 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
745 return nullptr;
746 }
747 return spellInfo;
748 }
750
751
753
756
757private:
759
760
761public:
762
791
792private:
823};
824
825#define sSpellMgr SpellMgr::instance()
826
827#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:3497
Gender
Definition SharedDefines.h:60
DiminishingReturnsType
Definition SharedDefines.h:3489
@ SKILL_COOKING
Definition SharedDefines.h:3158
@ SKILL_FISHING
Definition SharedDefines.h:3197
@ SKILL_RIDING
Definition SharedDefines.h:3231
@ SKILL_FIRST_AID
Definition SharedDefines.h:3132
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:321
std::unordered_map< uint32, SpellProcEventEntry > SpellProcEventMap
Definition SpellMgr.h:287
std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
Definition SpellMgr.h:538
std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
Definition SpellMgr.h:375
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:616
std::unordered_multimap< SpellGroup, int32 > SpellGroupSpellMap
Definition SpellMgr.h:360
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const *spellproto)
Definition SpellMgr.cpp:272
ProcFlagsHit
Definition SpellMgr.h:250
@ PROC_HIT_BLOCK
Definition SpellMgr.h:258
@ PROC_HIT_FULL_RESIST
Definition SpellMgr.h:255
@ PROC_HIT_FULL_BLOCK
Definition SpellMgr.h:265
@ PROC_HIT_MISS
Definition SpellMgr.h:254
@ PROC_HIT_INTERRUPT
Definition SpellMgr.h:264
@ PROC_HIT_NONE
Definition SpellMgr.h:251
@ PROC_HIT_DEFLECT
Definition SpellMgr.h:261
@ PROC_HIT_EVADE
Definition SpellMgr.h:259
@ PROC_HIT_DODGE
Definition SpellMgr.h:256
@ PROC_HIT_IMMUNE
Definition SpellMgr.h:260
@ PROC_HIT_ABSORB
Definition SpellMgr.h:262
@ PROC_HIT_PARRY
Definition SpellMgr.h:257
@ PROC_HIT_MASK_ALL
Definition SpellMgr.h:266
@ PROC_HIT_CRITICAL
Definition SpellMgr.h:253
@ PROC_HIT_NORMAL
Definition SpellMgr.h:252
@ PROC_HIT_REFLECT
Definition SpellMgr.h:263
std::map< uint32, float > SpellMixologyMap
Definition SpellMgr.h:385
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:55
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:563
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:397
bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group)
Definition SpellMgr.cpp:327
std::pair< SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator > SpellSpellGroupMapBounds
Definition SpellMgr.h:357
bool IsProfessionSkill(uint32 skill)
Definition SpellMgr.h:611
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:536
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:540
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:582
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:607
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:597
SpellGroup
Definition SpellMgr.h:334
@ SPELL_GROUP_NONE
Definition SpellMgr.h:335
@ SPELL_GROUP_CORE_RANGE_MAX
Definition SpellMgr.h:338
@ SPELL_GROUP_ELIXIR_BATTLE
Definition SpellMgr.h:336
@ SPELL_GROUP_ELIXIR_GUARDIAN
Definition SpellMgr.h:337
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition SpellMgr.h:543
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:555
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:305
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:630
ProcAttributes
Definition SpellMgr.h:270
@ PROC_ATTR_REQ_EXP_OR_HONOR
Definition SpellMgr.h:271
std::multimap< uint32, SpellArea const * > SpellAreaForAreaMap
Definition SpellMgr.h:539
std::unordered_map< uint32, SpellThreatEntry > SpellThreatMap
Definition SpellMgr.h:384
SpellGroupStackRule
Definition SpellMgr.h:364
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_FROM_SAME_CASTER
Definition SpellMgr.h:367
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE
Definition SpellMgr.h:366
@ SPELL_GROUP_STACK_RULE_DEFAULT
Definition SpellMgr.h:365
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT
Definition SpellMgr.h:368
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST
Definition SpellMgr.h:369
@ SPELL_GROUP_STACK_RULE_MAX
Definition SpellMgr.h:370
std::unordered_multimap< uint32, SpellGroup > SpellSpellGroupMap
Definition SpellMgr.h:356
std::pair< SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator > SpellRequiredMapBounds
Definition SpellMgr.h:559
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:576
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:510
ICCBuff
Definition SpellMgr.h:513
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:515
@ ICC_AREA
Definition SpellMgr.h:514
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:516
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:537
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:590
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:593
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
Definition SpellMgr.cpp:242
std::pair< SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator > SpellGroupSpellMapBounds
Definition SpellMgr.h:361
std::vector< uint32 > SpellCustomAttribute
Definition SpellMgr.h:592
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:574
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:542
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:577
@ PROC_SPELL_TYPE_NONE
Definition SpellMgr.h:233
@ PROC_SPELL_TYPE_HEAL
Definition SpellMgr.h:235
@ PROC_SPELL_TYPE_MASK_ALL
Definition SpellMgr.h:237
@ PROC_SPELL_TYPE_DAMAGE
Definition SpellMgr.h:234
@ PROC_SPELL_TYPE_NO_DMG_HEAL
Definition SpellMgr.h:236
std::unordered_map< uint32, SpellBonusEntry > SpellBonusMap
Definition SpellMgr.h:331
std::map< uint32, PetLevelupSpellSet > PetLevelupSpellMap
Definition SpellMgr.h:580
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:261
EffectRadiusIndex
Definition SpellMgr.h:401
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:454
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:425
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:407
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:451
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:404
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:445
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:406
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:402
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:448
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:453
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:446
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:456
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:452
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:405
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:411
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:434
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:437
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:442
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:443
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:449
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:415
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:439
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:441
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:403
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:418
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:440
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:410
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:450
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:432
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:447
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:417
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:427
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:408
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:457
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:435
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:458
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:455
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:436
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:444
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:438
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:428
ProcFlagsSpellPhase
Definition SpellMgr.h:241
@ PROC_SPELL_PHASE_FINISH
Definition SpellMgr.h:245
@ PROC_SPELL_PHASE_NONE
Definition SpellMgr.h:242
@ PROC_SPELL_PHASE_CAST
Definition SpellMgr.h:243
@ PROC_SPELL_PHASE_HIT
Definition SpellMgr.h:244
@ PROC_SPELL_PHASE_MASK_ALL
Definition SpellMgr.h:246
std::multimap< uint32, uint32 > SpellsRequiringSpellMap
Definition SpellMgr.h:562
EnchantProcAttributes
Definition SpellMgr.h:308
@ ENCHANT_PROC_ATTR_WHITE_HIT
Definition SpellMgr.h:310
@ ENCHANT_PROC_ATTR_EXCLUSIVE
Definition SpellMgr.h:309
std::multimap< uint32, uint32 > SpellRequiredMap
Definition SpellMgr.h:558
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:595
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:541
std::unordered_map< SpellGroup, SpellGroupStackRule > SpellGroupStackMap
Definition SpellMgr.h:373
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:579
DiminishingLevels
Definition Unit.h:269
Utility class to enable range for loop syntax for multimap.equal_range uses.
Definition IteratorPair.h:32
Definition SpellMgr.h:463
int32 damage
Definition SpellMgr.h:508
int32 GetDamage() const
Definition SpellMgr.h:500
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:465
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:479
PetAura()
Definition SpellMgr.h:468
bool removeOnChangePet
Definition SpellMgr.h:507
PetAuraMap auras
Definition SpellMgr.h:506
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:495
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:490
Definition SpellInfo.h:316
Definition SpellMgr.h:633
SpellRequiredMap mSpellReq
Definition SpellMgr.h:797
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:810
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:727
void LoadSpellLinked()
Definition SpellMgr.cpp:2434
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:818
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1110
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:823
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:812
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:816
SpellProcEventEntry const * GetSpellProcEvent(uint32 spellId) const
Definition SpellMgr.cpp:787
SpellChainMap mSpellChains
Definition SpellMgr.h:795
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:809
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:798
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:804
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:815
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:820
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:808
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:2978
const std::vector< int32 > * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:1087
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:725
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:794
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
Acore::IteratorPair< SpellRequiredMap::const_iterator > GetSpellsRequiredForSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:605
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:802
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:811
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2581
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:819
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:735
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:805
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:796
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:799
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2937
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:947
SpellGroupSpellMap mSpellGroupSpell
Definition SpellMgr.h:801
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:803
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:822
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:1074
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:817
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:813
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2389
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:750
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:806
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:800
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:807
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:814
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:821
void LoadSpellProcs()
Definition SpellMgr.cpp:2013
~SpellMgr()
Definition SpellMgr.cpp:355
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:759
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1281
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2932
Definition SpellMgr.h:585
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:586
Definition SpellMgr.h:520
uint32 questEnd
Definition SpellMgr.h:524
bool autocast
Definition SpellMgr.h:530
uint32 raceMask
Definition SpellMgr.h:526
uint32 questStartStatus
Definition SpellMgr.h:528
uint32 spellId
Definition SpellMgr.h:521
uint32 questEndStatus
Definition SpellMgr.h:529
int32 auraSpell
Definition SpellMgr.h:525
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1135
Gender gender
Definition SpellMgr.h:527
uint32 areaId
Definition SpellMgr.h:522
uint32 questStart
Definition SpellMgr.h:523
Definition SpellMgr.h:324
float ap_dot_bonus
Definition SpellMgr.h:328
float dot_damage
Definition SpellMgr.h:326
float ap_bonus
Definition SpellMgr.h:327
float direct_damage
Definition SpellMgr.h:325
Definition SpellMgr.h:547
SpellInfo const * last
Definition SpellMgr.h:551
SpellInfo const * next
Definition SpellMgr.h:549
uint8 rank
Definition SpellMgr.h:552
SpellInfo const * first
Definition SpellMgr.h:550
SpellInfo const * prev
Definition SpellMgr.h:548
Definition SpellMgr.h:600
uint32 StartRecoveryTime
Definition SpellMgr.h:603
uint32 CategoryRecoveryTime
Definition SpellMgr.h:602
uint32 StartRecoveryCategory
Definition SpellMgr.h:604
uint32 RecoveryTime
Definition SpellMgr.h:601
Definition SpellMgr.h:314
uint32 procEx
Definition SpellMgr.h:317
uint32 attributeMask
Definition SpellMgr.h:318
uint32 customChance
Definition SpellMgr.h:315
float PPMChance
Definition SpellMgr.h:316
Definition SpellMgr.h:567
uint16 value
Definition SpellMgr.h:570
uint16 step
Definition SpellMgr.h:569
uint16 maxvalue
Definition SpellMgr.h:571
uint16 skill
Definition SpellMgr.h:568
Definition SpellMgr.h:290
uint32 SpellFamilyName
Definition SpellMgr.h:292
float ProcsPerMinute
Definition SpellMgr.h:299
Milliseconds Cooldown
Definition SpellMgr.h:301
uint32 Charges
Definition SpellMgr.h:302
uint32 AttributesMask
Definition SpellMgr.h:298
flag96 SpellFamilyMask
Definition SpellMgr.h:293
uint32 HitMask
Definition SpellMgr.h:297
uint32 SpellTypeMask
Definition SpellMgr.h:295
uint32 ProcFlags
Definition SpellMgr.h:294
uint32 SpellPhaseMask
Definition SpellMgr.h:296
uint32 SchoolMask
Definition SpellMgr.h:291
float Chance
Definition SpellMgr.h:300
Definition SpellMgr.h:275
uint32 cooldown
Definition SpellMgr.h:284
uint32 procPhase
Definition SpellMgr.h:281
flag96 spellFamilyMask
Definition SpellMgr.h:278
uint32 spellFamilyName
Definition SpellMgr.h:277
uint32 procEx
Definition SpellMgr.h:280
float ppmRate
Definition SpellMgr.h:282
uint32 schoolMask
Definition SpellMgr.h:276
float customChance
Definition SpellMgr.h:283
uint32 procFlags
Definition SpellMgr.h:279
Definition SpellMgr.h:389
float target_Z
Definition SpellMgr.h:393
uint32 target_mapId
Definition SpellMgr.h:390
float target_Y
Definition SpellMgr.h:392
float target_Orientation
Definition SpellMgr.h:394
float target_X
Definition SpellMgr.h:391
Definition SpellMgr.h:378
int32 flatMod
Definition SpellMgr.h:379
float apPctMod
Definition SpellMgr.h:381
float pctMod
Definition SpellMgr.h:380