236{
242};
243
245{
251};
252
254{
271};
272
274{
282};
283
285{
299};
300
301typedef std::unordered_map<uint32, SpellProcEntry>
SpellProcMap;
302
304{
307};
308
310{
315};
316
318
320{
325};
326
327typedef std::unordered_map<uint32, SpellBonusEntry>
SpellBonusMap;
328
330{
335};
336
338{
339 template<>
341 {
342 size_t operator()(
SpellGroup const& group)
const
343 {
344 return hash<uint32>()(
uint32(group));
345 }
346 };
347}
348
349#define SPELL_GROUP_DB_RANGE_MIN 1000
350
351
354
355
358
360{
367};
368
370
372
374{
378};
379
380typedef std::unordered_map<uint32, SpellThreatEntry>
SpellThreatMap;
382
383
385{
391};
392
394
395
397{
455};
456
457
459{
460private:
461 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
462
463public:
465 {
467 }
468
471 {
472 auras[petEntry] = aura;
473 }
474
476 {
477 PetAuraMap::const_iterator itr =
auras.find(petEntry);
478 if (itr !=
auras.end())
479 return itr->second;
480 PetAuraMap::const_iterator itr2 =
auras.find(0);
481 if (itr2 !=
auras.end())
482 return itr2->second;
483 return 0;
484 }
485
487 {
488 auras[petEntry] = aura;
489 }
490
492 {
494 }
495
497 {
499 }
500
501private:
505};
507
509{
513};
514
516{
527
528
530};
531
536typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
540
541
543{
549};
550
551typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
552
553
555typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
556
557
560
561
563{
564 std::bitset<MAX_SPELL_SCHOOL>
School;
567 std::vector<SpellEffects>
Effect;
568 std::vector<AuraType>
Aura;
571};
572
575{
580};
581
583
586
589
591
593{
595};
596
597
599
602
604
606
608{
613};
614
616
618
620{
622}
623
625{
627}
628
630
631
637
639
641{
642
643private:
646
647
648public:
650
651
653
654
658
659
664
665
672
674
675
679
680
682
683
685
686
689
693
694
698
699
702
703
705
706
708
709
711
713
715
718
720
723
724
730
731
733
735 {
739 return spellInfo;
740 }
741
743 {
745 {
747 return nullptr;
748 }
750 if (!spellInfo)
751 {
752 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
753 return nullptr;
754 }
755 return spellInfo;
756 }
758
759
761
764
765private:
767
768
769public:
770
801
802private:
833};
834
835#define sSpellMgr SpellMgr::instance()
836
837#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:3492
Gender
Definition SharedDefines.h:60
DiminishingReturnsType
Definition SharedDefines.h:3484
@ SKILL_COOKING
Definition SharedDefines.h:3153
@ SKILL_FISHING
Definition SharedDefines.h:3192
@ SKILL_RIDING
Definition SharedDefines.h:3226
@ SKILL_FIRST_AID
Definition SharedDefines.h:3127
bool IsPrimaryProfessionSkill(uint32 skill)
Definition SpellMgr.cpp:36
bool IsPartOfSkillLine(uint32 skillId, uint32 spellId)
Definition SpellMgr.cpp:48
std::unordered_map< uint32, SpellEnchantProcEntry > SpellEnchantProcEventMap
Definition SpellMgr.h:318
std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
Definition SpellMgr.h:535
std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
Definition SpellMgr.h:372
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:625
std::unordered_multimap< SpellGroup, int32 > SpellGroupSpellMap
Definition SpellMgr.h:357
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const *spellproto)
Definition SpellMgr.cpp:322
ProcFlagsHit
Definition SpellMgr.h:255
@ PROC_HIT_BLOCK
Definition SpellMgr.h:263
@ PROC_HIT_FULL_RESIST
Definition SpellMgr.h:260
@ PROC_HIT_FULL_BLOCK
Definition SpellMgr.h:270
@ PROC_HIT_MISS
Definition SpellMgr.h:259
@ PROC_HIT_INTERRUPT
Definition SpellMgr.h:269
@ PROC_HIT_NONE
Definition SpellMgr.h:256
@ PROC_HIT_DEFLECT
Definition SpellMgr.h:266
@ PROC_HIT_EVADE
Definition SpellMgr.h:264
@ PROC_HIT_DODGE
Definition SpellMgr.h:261
@ PROC_HIT_IMMUNE
Definition SpellMgr.h:265
@ PROC_HIT_ABSORB
Definition SpellMgr.h:267
@ PROC_HIT_PARRY
Definition SpellMgr.h:262
@ PROC_HIT_MASK_ALL
Definition SpellMgr.h:271
@ PROC_HIT_CRITICAL
Definition SpellMgr.h:258
@ PROC_HIT_NORMAL
Definition SpellMgr.h:257
@ PROC_HIT_REFLECT
Definition SpellMgr.h:268
std::map< uint32, float > SpellMixologyMap
Definition SpellMgr.h:382
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:105
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:560
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:394
bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group)
Definition SpellMgr.cpp:377
std::pair< SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator > SpellSpellGroupMapBounds
Definition SpellMgr.h:354
bool IsProfessionSkill(uint32 skill)
Definition SpellMgr.h:620
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:533
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:537
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:591
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:616
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:606
SpellGroup
Definition SpellMgr.h:331
@ SPELL_GROUP_NONE
Definition SpellMgr.h:332
@ SPELL_GROUP_CORE_RANGE_MAX
Definition SpellMgr.h:335
@ SPELL_GROUP_ELIXIR_BATTLE
Definition SpellMgr.h:333
@ SPELL_GROUP_ELIXIR_GUARDIAN
Definition SpellMgr.h:334
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition SpellMgr.h:540
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:552
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:302
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:639
ProcAttributes
Definition SpellMgr.h:275
@ PROC_ATTR_REQ_MANA_COST
Definition SpellMgr.h:278
@ PROC_ATTR_CANT_PROC_FROM_ITEM_CAST
Definition SpellMgr.h:282
@ PROC_ATTR_USE_STACKS_FOR_CHARGES
Definition SpellMgr.h:280
@ PROC_ATTR_REDUCE_PROC_60
Definition SpellMgr.h:281
@ PROC_ATTR_REQ_EXP_OR_HONOR
Definition SpellMgr.h:276
@ PROC_ATTR_TRIGGERED_CAN_PROC
Definition SpellMgr.h:277
@ PROC_ATTR_REQ_SPELLMOD
Definition SpellMgr.h:279
std::multimap< uint32, SpellArea const * > SpellAreaForAreaMap
Definition SpellMgr.h:536
std::unordered_map< uint32, SpellThreatEntry > SpellThreatMap
Definition SpellMgr.h:381
SpellGroupStackRule
Definition SpellMgr.h:361
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_FROM_SAME_CASTER
Definition SpellMgr.h:364
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE
Definition SpellMgr.h:363
@ SPELL_GROUP_STACK_RULE_DEFAULT
Definition SpellMgr.h:362
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_SAME_EFFECT
Definition SpellMgr.h:365
@ SPELL_GROUP_STACK_RULE_EXCLUSIVE_HIGHEST
Definition SpellMgr.h:366
@ SPELL_GROUP_STACK_RULE_MAX
Definition SpellMgr.h:367
std::unordered_multimap< uint32, SpellGroup > SpellSpellGroupMap
Definition SpellMgr.h:353
std::pair< SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator > SpellRequiredMapBounds
Definition SpellMgr.h:556
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:585
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:507
ICCBuff
Definition SpellMgr.h:510
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:512
@ ICC_AREA
Definition SpellMgr.h:511
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:513
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:534
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:599
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:602
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
Definition SpellMgr.cpp:292
std::pair< SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator > SpellGroupSpellMapBounds
Definition SpellMgr.h:358
std::vector< uint32 > SpellCustomAttribute
Definition SpellMgr.h:601
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:583
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:539
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:586
@ PROC_SPELL_TYPE_NONE
Definition SpellMgr.h:238
@ PROC_SPELL_TYPE_HEAL
Definition SpellMgr.h:240
@ PROC_SPELL_TYPE_MASK_ALL
Definition SpellMgr.h:242
@ PROC_SPELL_TYPE_DAMAGE
Definition SpellMgr.h:239
@ PROC_SPELL_TYPE_NO_DMG_HEAL
Definition SpellMgr.h:241
std::unordered_map< uint32, SpellBonusEntry > SpellBonusMap
Definition SpellMgr.h:328
std::map< uint32, PetLevelupSpellSet > PetLevelupSpellMap
Definition SpellMgr.h:589
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:311
EffectRadiusIndex
Definition SpellMgr.h:398
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:451
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:428
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:404
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:448
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:401
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:442
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:406
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:403
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:399
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:445
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:450
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:443
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:410
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:453
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:449
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:402
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:408
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:434
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:439
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:440
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:446
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:418
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:436
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:438
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:400
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:415
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:417
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:437
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:407
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:447
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:444
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:411
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:405
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:427
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:454
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:432
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:455
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:452
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:441
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:435
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:425
ProcFlagsSpellPhase
Definition SpellMgr.h:246
@ PROC_SPELL_PHASE_FINISH
Definition SpellMgr.h:250
@ PROC_SPELL_PHASE_NONE
Definition SpellMgr.h:247
@ PROC_SPELL_PHASE_CAST
Definition SpellMgr.h:248
@ PROC_SPELL_PHASE_HIT
Definition SpellMgr.h:249
@ PROC_SPELL_PHASE_MASK_ALL
Definition SpellMgr.h:251
std::multimap< uint32, uint32 > SpellsRequiringSpellMap
Definition SpellMgr.h:559
EnchantProcAttributes
Definition SpellMgr.h:305
@ ENCHANT_PROC_ATTR_WHITE_HIT
Definition SpellMgr.h:307
@ ENCHANT_PROC_ATTR_EXCLUSIVE
Definition SpellMgr.h:306
std::multimap< uint32, uint32 > SpellRequiredMap
Definition SpellMgr.h:555
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:604
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:538
std::unordered_map< SpellGroup, SpellGroupStackRule > SpellGroupStackMap
Definition SpellMgr.h:370
std::unordered_map< int32, CreatureImmunities > CreatureImmunitiesMap
Definition SpellMgr.h:574
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:588
DiminishingLevels
Definition Unit.h:268
Utility class to enable range for loop syntax for multimap.equal_range uses.
Definition IteratorPair.h:32
Definition SpellMgr.h:460
int32 damage
Definition SpellMgr.h:505
int32 GetDamage() const
Definition SpellMgr.h:497
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:462
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:476
PetAura()
Definition SpellMgr.h:465
bool removeOnChangePet
Definition SpellMgr.h:504
PetAuraMap auras
Definition SpellMgr.h:503
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:492
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:487
Definition SpellInfo.h:340
Definition SpellMgr.h:642
SpellRequiredMap mSpellReq
Definition SpellMgr.h:807
CreatureImmunities const * GetCreatureImmunities(int32 creatureImmunitiesId) const
Definition SpellMgr.cpp:58
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:820
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:735
void LoadSpellLinked()
Definition SpellMgr.cpp:2465
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:828
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1007
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:833
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:822
void SetSpellDifficultyId(uint32 spellId, uint32 id)
Definition SpellMgr.cpp:531
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:417
PetLevelupSpellSet const * GetPetLevelupSpellList(uint32 petFamily) const
Definition SpellMgr.cpp:990
void LoadSpellInfoStore()
Definition SpellMgr.cpp:2903
uint32 GetSpellIdForDifficulty(uint32 spellId, Unit const *caster) const
Definition SpellMgr.cpp:536
void LoadSpellBonuses()
Definition SpellMgr.cpp:2176
SpellAreaForQuestMapBounds GetSpellAreaForQuestEndMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1017
SpellAreaForAuraMap mSpellAreaForAuraMap
Definition SpellMgr.h:826
SpellChainMap mSpellChains
Definition SpellMgr.h:805
void LoadEnchantCustomAttr()
Definition SpellMgr.cpp:2379
void UnloadSpellInfoStore()
Definition SpellMgr.cpp:2976
void LoadSpellAreas()
Definition SpellMgr.cpp:2692
uint32 GetNextSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:617
static SpellMgr * instance()
Definition SpellMgr.cpp:410
SpellPetAuraMap mSpellPetAuraMap
Definition SpellMgr.h:819
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:808
void LoadSpellCooldownOverrides()
Definition SpellMgr.cpp:2934
SpellAreaForQuestMapBounds GetSpellAreaForQuestMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1012
SpellBonusEntry const * GetSpellBonusData(uint32 spellId) const
Definition SpellMgr.cpp:917
void LoadSkillLineAbilityMap()
Definition SpellMgr.cpp:2294
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:957
static bool CheckSpellValid(SpellInfo const *spellInfo, uint32 spellId, bool isTalent)
Definition SpellMgr.cpp:506
float GetSpellMixologyBonus(uint32 spellId) const
Definition SpellMgr.cpp:948
SpellAreaForQuestMap mSpellAreaForQuestEndMap
Definition SpellMgr.h:825
SpellGroupSpellMapBounds GetSpellGroupSpellMapBounds(SpellGroup group_id) const
Definition SpellMgr.cpp:715
PetDefaultSpellsMap mPetDefaultSpellsMap
Definition SpellMgr.h:830
void LoadCreatureImmunities()
Definition SpellMgr.cpp:63
uint32 GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict=false) const
Definition SpellMgr.cpp:643
SpellLearnSkillNode const * GetSpellLearnSkill(uint32 spell_id) const
Definition SpellMgr.cpp:681
bool IsSpellMemberOfSpellGroup(uint32 spell_id, SpellGroup group_id) const
Definition SpellMgr.cpp:704
SpellMixologyMap mSpellMixologyMap
Definition SpellMgr.h:818
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:3047
const std::vector< int32 > * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:984
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:733
uint32 GetPrevSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:626
bool IsSpellRequiringSpell(uint32 spellid, uint32 req_spellid) const
Definition SpellMgr.cpp:665
void LoadSpellThreats()
Definition SpellMgr.cpp:2217
SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1022
void LoadSpellRequired()
Definition SpellMgr.cpp:1358
SpellInfo const * GetSpellForDifficultyFromSpell(SpellInfo const *spell, Unit const *caster) const
Definition SpellMgr.cpp:578
void LoadSpellJumpDistances()
Definition SpellMgr.cpp:3011
void LoadSpellTargetPositions()
Definition SpellMgr.cpp:1476
SpellDifficultySearcherMap mSpellDifficultySearcherMap
Definition SpellMgr.h:804
void GetSetOfSpellsInSpellGroup(SpellGroup group_id, std::set< uint32 > &foundSpells) const
Definition SpellMgr.cpp:720
void LoadSpellInfoImmunities()
Definition SpellMgr.cpp:3769
void LoadSpellLearnSkills()
Definition SpellMgr.cpp:1423
uint32 GetLastSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:609
Acore::IteratorPair< SpellRequiredMap::const_iterator > GetSpellsRequiredForSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:655
void LoadSpellTalentRanks()
Definition SpellMgr.cpp:1186
SpellGroupStackRule GetSpellGroupStackRule(SpellGroup group_id) const
Definition SpellMgr.cpp:828
SpellThreatEntry const * GetSpellThreatEntry(uint32 spellID) const
Definition SpellMgr.cpp:933
void LoadSpellGroupStackRules()
Definition SpellMgr.cpp:1662
static bool IsSpellValid(SpellInfo const *spellInfo)
Definition SpellMgr.cpp:488
SpellGroupStackMap mSpellGroupStack
Definition SpellMgr.h:812
uint32 GetFirstSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:601
bool CanSpellTriggerProcOnEvent(SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
Definition SpellMgr.cpp:845
SpellEnchantProcEventMap mSpellEnchantProcEventMap
Definition SpellMgr.h:821
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2612
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:829
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:743
SpellGroupStackRule CheckSpellGroupStackRules(SpellInfo const *spellInfo1, SpellInfo const *spellInfo2) const
Definition SpellMgr.cpp:781
bool IsAdditionalTalentSpell(uint32 spellId) const
Definition SpellMgr.cpp:676
SpellProcMap mSpellProcMap
Definition SpellMgr.h:814
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:806
CreatureImmunitiesMap mCreatureImmunities
Definition SpellMgr.h:815
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:809
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2970
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:837
SpellGroupSpellMap mSpellGroupSpell
Definition SpellMgr.h:811
void LoadSpellSpecificAndAuraState()
Definition SpellMgr.cpp:2993
PetDefaultSpellsEntry const * GetPetDefaultSpellsEntry(int32 id) const
Definition SpellMgr.cpp:999
SpellTargetPosition const * GetSpellTargetPosition(uint32 spell_id, SpellEffIndex effIndex) const
Definition SpellMgr.cpp:690
SameEffectStackMap mSpellSameEffectStack
Definition SpellMgr.h:813
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:832
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:971
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:827
uint32 GetSpellDifficultyId(uint32 spellId) const
Definition SpellMgr.cpp:525
uint8 GetSpellRank(uint32 spell_id) const
Definition SpellMgr.cpp:635
void LoadSpellPetAuras()
Definition SpellMgr.cpp:2316
void UnloadSpellInfoImplicitTargetConditionLists()
Definition SpellMgr.cpp:2984
SpellSpellGroupMapBounds GetSpellSpellGroupMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:698
SpellAreaMap mSpellAreaMap
Definition SpellMgr.h:823
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2420
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:758
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:816
SpellMgr()
Definition SpellMgr.cpp:401
SpellChainNode const * GetSpellChainNode(uint32 spell_id) const
Definition SpellMgr.cpp:592
SpellsRequiringSpellMapBounds GetSpellsRequiringSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:660
void LoadSpellRanks()
Definition SpellMgr.cpp:1247
bool AddSameEffectStackRuleSpellGroups(SpellInfo const *spellInfo, uint32 auraType, int32 amount, std::map< SpellGroup, int32 > &groups) const
Definition SpellMgr.cpp:747
void LoadSpellGroups()
Definition SpellMgr.cpp:1581
void LoadPetLevelupSpellMap()
Definition SpellMgr.cpp:2518
SpellSpellGroupMap mSpellSpellGroup
Definition SpellMgr.h:810
PetAura const * GetPetAura(uint32 spell_id, uint8 eff) const
Definition SpellMgr.cpp:962
void LoadSpellMixology()
Definition SpellMgr.cpp:2258
SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const
Definition SpellMgr.cpp:1027
bool IsArenaAllowedEnchancment(uint32 ench_id) const
Definition SpellMgr.cpp:979
SpellThreatMap mSpellThreatMap
Definition SpellMgr.h:817
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:824
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:831
void LoadSpellProcs()
Definition SpellMgr.cpp:1887
~SpellMgr()
Definition SpellMgr.cpp:405
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:767
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1178
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2965
Definition SpellMgr.h:564
std::bitset< MAX_MECHANIC > Mechanic
Definition SpellMgr.h:567
bool ImmuneAoE
Definition SpellMgr.h:570
std::bitset< MAX_SPELL_SCHOOL > School
Definition SpellMgr.h:565
std::vector< SpellEffects > Effect
Definition SpellMgr.h:568
bool ImmuneChain
Definition SpellMgr.h:571
std::bitset< DISPEL_MAX > DispelType
Definition SpellMgr.h:566
std::vector< AuraType > Aura
Definition SpellMgr.h:569
Definition SpellMgr.h:594
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:595
Definition SpellMgr.h:517
uint32 questEnd
Definition SpellMgr.h:521
bool autocast
Definition SpellMgr.h:527
uint32 raceMask
Definition SpellMgr.h:523
uint32 questStartStatus
Definition SpellMgr.h:525
uint32 spellId
Definition SpellMgr.h:518
uint32 questEndStatus
Definition SpellMgr.h:526
int32 auraSpell
Definition SpellMgr.h:522
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1032
Gender gender
Definition SpellMgr.h:524
uint32 areaId
Definition SpellMgr.h:519
uint32 questStart
Definition SpellMgr.h:520
Definition SpellMgr.h:321
float ap_dot_bonus
Definition SpellMgr.h:325
float dot_damage
Definition SpellMgr.h:323
float ap_bonus
Definition SpellMgr.h:324
float direct_damage
Definition SpellMgr.h:322
Definition SpellMgr.h:544
SpellInfo const * last
Definition SpellMgr.h:548
SpellInfo const * next
Definition SpellMgr.h:546
uint8 rank
Definition SpellMgr.h:549
SpellInfo const * first
Definition SpellMgr.h:547
SpellInfo const * prev
Definition SpellMgr.h:545
Definition SpellMgr.h:609
uint32 StartRecoveryTime
Definition SpellMgr.h:612
uint32 CategoryRecoveryTime
Definition SpellMgr.h:611
uint32 StartRecoveryCategory
Definition SpellMgr.h:613
uint32 RecoveryTime
Definition SpellMgr.h:610
Definition SpellMgr.h:311
uint32 procEx
Definition SpellMgr.h:314
uint32 attributeMask
Definition SpellMgr.h:315
uint32 customChance
Definition SpellMgr.h:312
float PPMChance
Definition SpellMgr.h:313
Definition SpellMgr.h:576
uint16 value
Definition SpellMgr.h:579
uint16 step
Definition SpellMgr.h:578
uint16 maxvalue
Definition SpellMgr.h:580
uint16 skill
Definition SpellMgr.h:577
Definition SpellMgr.h:286
uint32 SpellFamilyName
Definition SpellMgr.h:288
float ProcsPerMinute
Definition SpellMgr.h:296
Milliseconds Cooldown
Definition SpellMgr.h:298
uint32 Charges
Definition SpellMgr.h:299
uint32 AttributesMask
Definition SpellMgr.h:294
flag96 SpellFamilyMask
Definition SpellMgr.h:289
uint32 HitMask
Definition SpellMgr.h:293
uint32 SpellTypeMask
Definition SpellMgr.h:291
uint32 ProcFlags
Definition SpellMgr.h:290
uint32 SpellPhaseMask
Definition SpellMgr.h:292
uint32 SchoolMask
Definition SpellMgr.h:287
uint32 DisableEffectsMask
Definition SpellMgr.h:295
float Chance
Definition SpellMgr.h:297
Definition SpellMgr.h:386
float target_Z
Definition SpellMgr.h:390
uint32 target_mapId
Definition SpellMgr.h:387
float target_Y
Definition SpellMgr.h:389
float target_Orientation
Definition SpellMgr.h:391
float target_X
Definition SpellMgr.h:388
Definition SpellMgr.h:375
int32 flatMod
Definition SpellMgr.h:376
float apPctMod
Definition SpellMgr.h:378
float pctMod
Definition SpellMgr.h:377