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
374
376{
380};
381
382typedef std::unordered_map<uint32, SpellThreatEntry>
SpellThreatMap;
384
385
387{
393};
394
396
398{
400};
401
403
404
406{
464};
465
466
468{
469private:
470 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
471
472public:
474 {
476 }
477
480 {
481 auras[petEntry] = aura;
482 }
483
485 {
486 PetAuraMap::const_iterator itr =
auras.find(petEntry);
487 if (itr !=
auras.end())
488 return itr->second;
489 PetAuraMap::const_iterator itr2 =
auras.find(0);
490 if (itr2 !=
auras.end())
491 return itr2->second;
492 return 0;
493 }
494
496 {
497 auras[petEntry] = aura;
498 }
499
501 {
503 }
504
506 {
508 }
509
510private:
514};
516
518{
522};
523
525{
536
537
539};
540
545typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
549
550
552{
558};
559
560typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
561
562
564typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
565
566
569
570
572{
573 std::bitset<MAX_SPELL_SCHOOL>
School;
576 std::vector<SpellEffects>
Effect;
577 std::vector<AuraType>
Aura;
580};
581
584{
589};
590
592
595
598
600
602{
604};
605
606
608
611
613
615
617{
622};
623
625
627
629{
631}
632
634{
636}
637
639
640
646
648
650{
651
652private:
655
656
657public:
659
660
662
663
667
668
673
674
681
683
684
688
689
692
693
696
697
700
704
705
707 int32 amount, std::map<SpellGroup, int32>& groups)
const;
710
711
714
715
717
718
720
721
723
725
727
730
732
735
736
742
743
745
747 {
751 return spellInfo;
752 }
753
755 {
757 {
759 return nullptr;
760 }
762 if (!spellInfo)
763 {
764 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
765 return nullptr;
766 }
767 return spellInfo;
768 }
770
771
773
776
777private:
779
780
781public:
782
814
815private:
848};
849
850#define sSpellMgr SpellMgr::instance()
851
852#endif
#define MAX_CREATURE_SPELL_DATA_SLOT
Definition DBCStructure.h:834
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:145
SpellEffIndex
Definition SharedDefines.h:30
DiminishingGroup
Definition SharedDefines.h:3490
Gender
Definition SharedDefines.h:60
DiminishingReturnsType
Definition SharedDefines.h:3482
@ SKILL_COOKING
Definition SharedDefines.h:3151
@ SKILL_FISHING
Definition SharedDefines.h:3190
@ SKILL_RIDING
Definition SharedDefines.h:3224
@ SKILL_FIRST_AID
Definition SharedDefines.h:3125
std::unordered_map< SpellGroup, std::set< std::pair< uint32, int32 > > > SameEffectStackSharedMiscMap
Definition SpellMgr.h:374
bool IsPrimaryProfessionSkill(uint32 skill)
Definition SpellMgr.cpp:38
bool IsPartOfSkillLine(uint32 skillId, uint32 spellId)
Definition SpellMgr.cpp:50
std::unordered_map< uint32, SpellEnchantProcEntry > SpellEnchantProcEventMap
Definition SpellMgr.h:318
std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
Definition SpellMgr.h:544
std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
Definition SpellMgr.h:372
std::map< uint32, SpellCone > SpellConeMap
Definition SpellMgr.h:403
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:634
std::unordered_multimap< SpellGroup, int32 > SpellGroupSpellMap
Definition SpellMgr.h:357
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const *spellproto)
Definition SpellMgr.cpp:324
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:384
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:107
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:569
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:396
bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group)
Definition SpellMgr.cpp:379
std::pair< SpellSpellGroupMap::const_iterator, SpellSpellGroupMap::const_iterator > SpellSpellGroupMapBounds
Definition SpellMgr.h:354
bool IsProfessionSkill(uint32 skill)
Definition SpellMgr.h:629
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:542
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:546
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:600
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:625
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:615
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:549
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:561
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:302
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:648
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:545
std::unordered_map< uint32, SpellThreatEntry > SpellThreatMap
Definition SpellMgr.h:383
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:565
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:594
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:516
ICCBuff
Definition SpellMgr.h:519
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:521
@ ICC_AREA
Definition SpellMgr.h:520
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:522
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:543
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:608
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:611
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
Definition SpellMgr.cpp:294
std::pair< SpellGroupSpellMap::const_iterator, SpellGroupSpellMap::const_iterator > SpellGroupSpellMapBounds
Definition SpellMgr.h:358
std::vector< uint32 > SpellCustomAttribute
Definition SpellMgr.h:610
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:592
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:548
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:595
@ 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:598
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:313
EffectRadiusIndex
Definition SpellMgr.h:407
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:460
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:418
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:437
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:457
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:432
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:410
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:451
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:415
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:439
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:408
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:454
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:459
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:452
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:462
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:435
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:425
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:458
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:411
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:417
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:440
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:443
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:448
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:449
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:455
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:427
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:445
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:447
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:446
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:456
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:438
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:428
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:453
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:436
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:463
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:441
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:464
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:461
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:442
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:450
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:444
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:434
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:568
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:564
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:613
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:547
std::unordered_map< SpellGroup, SpellGroupStackRule > SpellGroupStackMap
Definition SpellMgr.h:370
std::unordered_map< int32, CreatureImmunities > CreatureImmunitiesMap
Definition SpellMgr.h:583
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:597
DiminishingLevels
Definition Unit.h:276
Utility class to enable range for loop syntax for multimap.equal_range uses.
Definition IteratorPair.h:32
Definition SpellMgr.h:469
int32 damage
Definition SpellMgr.h:514
int32 GetDamage() const
Definition SpellMgr.h:506
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:471
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:485
PetAura()
Definition SpellMgr.h:474
bool removeOnChangePet
Definition SpellMgr.h:513
PetAuraMap auras
Definition SpellMgr.h:512
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:501
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:496
Definition SpellInfo.h:340
Definition SpellMgr.h:651
SpellRequiredMap mSpellReq
Definition SpellMgr.h:820
CreatureImmunities const * GetCreatureImmunities(int32 creatureImmunitiesId) const
Definition SpellMgr.cpp:60
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:835
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:747
void LoadSpellLinked()
Definition SpellMgr.cpp:2625
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:843
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1049
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:848
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:837
void SetSpellDifficultyId(uint32 spellId, uint32 id)
Definition SpellMgr.cpp:533
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:419
PetLevelupSpellSet const * GetPetLevelupSpellList(uint32 petFamily) const
Definition SpellMgr.cpp:1032
void LoadSpellInfoStore()
Definition SpellMgr.cpp:3063
void LoadSpellBonuses()
Definition SpellMgr.cpp:2336
SpellAreaForQuestMapBounds GetSpellAreaForQuestEndMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1059
SpellAreaForAuraMap mSpellAreaForAuraMap
Definition SpellMgr.h:841
SpellChainMap mSpellChains
Definition SpellMgr.h:818
void LoadEnchantCustomAttr()
Definition SpellMgr.cpp:2539
void LoadSpellCones()
Definition SpellMgr.cpp:1625
void UnloadSpellInfoStore()
Definition SpellMgr.cpp:3136
void LoadSpellAreas()
Definition SpellMgr.cpp:2852
uint32 GetNextSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:619
static SpellMgr * instance()
Definition SpellMgr.cpp:412
SpellPetAuraMap mSpellPetAuraMap
Definition SpellMgr.h:834
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:821
void LoadSpellCooldownOverrides()
Definition SpellMgr.cpp:3094
SpellInfo const * GetSpellForDifficultyFromSpell(SpellInfo const *spell, WorldObject const *caster) const
Definition SpellMgr.cpp:580
SpellAreaForQuestMapBounds GetSpellAreaForQuestMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1054
SpellBonusEntry const * GetSpellBonusData(uint32 spellId) const
Definition SpellMgr.cpp:959
void LoadSkillLineAbilityMap()
Definition SpellMgr.cpp:2454
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:999
static bool CheckSpellValid(SpellInfo const *spellInfo, uint32 spellId, bool isTalent)
Definition SpellMgr.cpp:508
float GetSpellMixologyBonus(uint32 spellId) const
Definition SpellMgr.cpp:990
std::vector< uint32 > GetSkillRankSpells(uint32 skillId) const
Definition SpellMgr.cpp:692
SpellAreaForQuestMap mSpellAreaForQuestEndMap
Definition SpellMgr.h:840
SpellGroupSpellMapBounds GetSpellGroupSpellMapBounds(SpellGroup group_id) const
Definition SpellMgr.cpp:745
PetDefaultSpellsMap mPetDefaultSpellsMap
Definition SpellMgr.h:845
void LoadCreatureImmunities()
Definition SpellMgr.cpp:65
uint32 GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict=false) const
Definition SpellMgr.cpp:645
SpellLearnSkillNode const * GetSpellLearnSkill(uint32 spell_id) const
Definition SpellMgr.cpp:683
bool IsSpellMemberOfSpellGroup(uint32 spell_id, SpellGroup group_id) const
Definition SpellMgr.cpp:734
SpellMixologyMap mSpellMixologyMap
Definition SpellMgr.h:833
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:3207
SpellCone const * GetSpellCone(uint32 spell_id) const
Definition SpellMgr.cpp:718
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:745
uint32 GetPrevSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:628
bool IsSpellRequiringSpell(uint32 spellid, uint32 req_spellid) const
Definition SpellMgr.cpp:667
void LoadSpellThreats()
Definition SpellMgr.cpp:2377
SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1064
void LoadSpellRequired()
Definition SpellMgr.cpp:1402
void LoadSpellJumpDistances()
Definition SpellMgr.cpp:3171
void LoadSpellTargetPositions()
Definition SpellMgr.cpp:1520
SpellDifficultySearcherMap mSpellDifficultySearcherMap
Definition SpellMgr.h:817
void GetSetOfSpellsInSpellGroup(SpellGroup group_id, std::set< uint32 > &foundSpells) const
Definition SpellMgr.cpp:750
void LoadSpellInfoImmunities()
Definition SpellMgr.cpp:3660
void LoadSpellLearnSkills()
Definition SpellMgr.cpp:1467
uint32 GetLastSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:611
Acore::IteratorPair< SpellRequiredMap::const_iterator > GetSpellsRequiredForSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:657
void LoadSpellTalentRanks()
Definition SpellMgr.cpp:1230
SpellGroupStackRule GetSpellGroupStackRule(SpellGroup group_id) const
Definition SpellMgr.cpp:870
SpellThreatEntry const * GetSpellThreatEntry(uint32 spellID) const
Definition SpellMgr.cpp:975
void LoadSpellGroupStackRules()
Definition SpellMgr.cpp:1793
static bool IsSpellValid(SpellInfo const *spellInfo)
Definition SpellMgr.cpp:490
SpellGroupStackMap mSpellGroupStack
Definition SpellMgr.h:826
uint32 GetSpellIdForDifficulty(uint32 spellId, WorldObject const *caster) const
Definition SpellMgr.cpp:538
uint32 GetFirstSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:603
bool CanSpellTriggerProcOnEvent(SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
Definition SpellMgr.cpp:887
SpellEnchantProcEventMap mSpellEnchantProcEventMap
Definition SpellMgr.h:836
SpellConeMap mSpellCones
Definition SpellMgr.h:823
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2772
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:844
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:755
SpellGroupStackRule CheckSpellGroupStackRules(SpellInfo const *spellInfo1, SpellInfo const *spellInfo2) const
Definition SpellMgr.cpp:823
bool IsAdditionalTalentSpell(uint32 spellId) const
Definition SpellMgr.cpp:678
SpellProcMap mSpellProcMap
Definition SpellMgr.h:829
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:819
CreatureImmunitiesMap mCreatureImmunities
Definition SpellMgr.h:830
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:822
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:3130
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:879
SpellGroupSpellMap mSpellGroupSpell
Definition SpellMgr.h:825
void LoadSpellSpecificAndAuraState()
Definition SpellMgr.cpp:3153
PetDefaultSpellsEntry const * GetPetDefaultSpellsEntry(int32 id) const
Definition SpellMgr.cpp:1041
SpellTargetPosition const * GetSpellTargetPosition(uint32 spell_id, SpellEffIndex effIndex) const
Definition SpellMgr.cpp:710
SameEffectStackMap mSpellSameEffectStack
Definition SpellMgr.h:827
std::vector< int32 > const * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:1026
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:847
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:1013
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:842
uint32 GetSpellDifficultyId(uint32 spellId) const
Definition SpellMgr.cpp:527
uint8 GetSpellRank(uint32 spell_id) const
Definition SpellMgr.cpp:637
void LoadSpellPetAuras()
Definition SpellMgr.cpp:2476
void UnloadSpellInfoImplicitTargetConditionLists()
Definition SpellMgr.cpp:3144
SpellSpellGroupMapBounds GetSpellSpellGroupMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:728
SpellAreaMap mSpellAreaMap
Definition SpellMgr.h:838
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2580
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:770
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:831
SpellMgr()
Definition SpellMgr.cpp:403
SpellChainNode const * GetSpellChainNode(uint32 spell_id) const
Definition SpellMgr.cpp:594
SpellsRequiringSpellMapBounds GetSpellsRequiringSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:662
void LoadSpellRanks()
Definition SpellMgr.cpp:1291
SameEffectStackSharedMiscMap mSpellSameEffectSharedMisc
Definition SpellMgr.h:828
void LoadSpellGroups()
Definition SpellMgr.cpp:1712
void LoadPetLevelupSpellMap()
Definition SpellMgr.cpp:2678
SpellSpellGroupMap mSpellSpellGroup
Definition SpellMgr.h:824
PetAura const * GetPetAura(uint32 spell_id, uint8 eff) const
Definition SpellMgr.cpp:1004
void LoadSpellMixology()
Definition SpellMgr.cpp:2418
SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const
Definition SpellMgr.cpp:1069
bool IsArenaAllowedEnchancment(uint32 ench_id) const
Definition SpellMgr.cpp:1021
SpellThreatMap mSpellThreatMap
Definition SpellMgr.h:832
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:839
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:846
void LoadSpellProcs()
Definition SpellMgr.cpp:2047
~SpellMgr()
Definition SpellMgr.cpp:407
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:779
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1222
bool AddSameEffectStackRuleSpellGroups(SpellInfo const *spellInfo, uint32 auraType, int32 miscValue, int32 amount, std::map< SpellGroup, int32 > &groups) const
Definition SpellMgr.cpp:777
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:3125
Definition SpellMgr.h:573
std::bitset< MAX_MECHANIC > Mechanic
Definition SpellMgr.h:576
bool ImmuneAoE
Definition SpellMgr.h:579
std::bitset< MAX_SPELL_SCHOOL > School
Definition SpellMgr.h:574
std::vector< SpellEffects > Effect
Definition SpellMgr.h:577
bool ImmuneChain
Definition SpellMgr.h:580
std::bitset< DISPEL_MAX > DispelType
Definition SpellMgr.h:575
std::vector< AuraType > Aura
Definition SpellMgr.h:578
Definition SpellMgr.h:603
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:604
Definition SpellMgr.h:526
uint32 questEnd
Definition SpellMgr.h:530
bool autocast
Definition SpellMgr.h:536
uint32 raceMask
Definition SpellMgr.h:532
uint32 questStartStatus
Definition SpellMgr.h:534
uint32 spellId
Definition SpellMgr.h:527
uint32 questEndStatus
Definition SpellMgr.h:535
int32 auraSpell
Definition SpellMgr.h:531
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1074
Gender gender
Definition SpellMgr.h:533
uint32 areaId
Definition SpellMgr.h:528
uint32 questStart
Definition SpellMgr.h:529
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:553
SpellInfo const * last
Definition SpellMgr.h:557
SpellInfo const * next
Definition SpellMgr.h:555
uint8 rank
Definition SpellMgr.h:558
SpellInfo const * first
Definition SpellMgr.h:556
SpellInfo const * prev
Definition SpellMgr.h:554
Definition SpellMgr.h:399
int16_t cone_degrees
Definition SpellMgr.h:400
Definition SpellMgr.h:618
uint32 StartRecoveryTime
Definition SpellMgr.h:621
uint32 CategoryRecoveryTime
Definition SpellMgr.h:620
uint32 StartRecoveryCategory
Definition SpellMgr.h:622
uint32 RecoveryTime
Definition SpellMgr.h:619
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:585
uint16 value
Definition SpellMgr.h:588
uint16 step
Definition SpellMgr.h:587
uint16 maxvalue
Definition SpellMgr.h:589
uint16 skill
Definition SpellMgr.h:586
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: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