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
396{
398};
399
401
402
404{
462};
463
464
466{
467private:
468 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
469
470public:
472 {
474 }
475
478 {
479 auras[petEntry] = aura;
480 }
481
483 {
484 PetAuraMap::const_iterator itr =
auras.find(petEntry);
485 if (itr !=
auras.end())
486 return itr->second;
487 PetAuraMap::const_iterator itr2 =
auras.find(0);
488 if (itr2 !=
auras.end())
489 return itr2->second;
490 return 0;
491 }
492
494 {
495 auras[petEntry] = aura;
496 }
497
499 {
501 }
502
504 {
506 }
507
508private:
512};
514
516{
520};
521
523{
534
535
537};
538
543typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
547
548
550{
556};
557
558typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
559
560
562typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
563
564
567
568
570{
571 std::bitset<MAX_SPELL_SCHOOL>
School;
574 std::vector<SpellEffects>
Effect;
575 std::vector<AuraType>
Aura;
578};
579
582{
587};
588
590
593
596
598
600{
602};
603
604
606
609
611
613
615{
620};
621
623
625
627{
629}
630
632{
634}
635
637
638
644
646
648{
649
650private:
653
654
655public:
657
658
660
661
665
666
671
672
679
681
682
686
687
690
691
694
695
698
702
703
707
708
711
712
714
715
717
718
720
722
724
727
729
732
733
739
740
742
744 {
748 return spellInfo;
749 }
750
752 {
754 {
756 return nullptr;
757 }
759 if (!spellInfo)
760 {
761 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
762 return nullptr;
763 }
764 return spellInfo;
765 }
767
768
770
773
774private:
776
777
778public:
779
811
812private:
844};
845
846#define sSpellMgr SpellMgr::instance()
847
848#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: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
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:542
std::unordered_map< SpellGroup, std::unordered_set< uint32 > > SameEffectStackMap
Definition SpellMgr.h:372
std::map< uint32, SpellCone > SpellConeMap
Definition SpellMgr.h:401
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:632
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:382
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:107
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:567
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:394
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:627
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:540
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:544
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:598
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:623
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:613
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:547
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:559
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:302
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:646
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:543
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:563
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:592
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:514
ICCBuff
Definition SpellMgr.h:517
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:519
@ ICC_AREA
Definition SpellMgr.h:518
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:520
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:541
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:606
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:609
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:608
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:590
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:546
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:593
@ 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:596
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:313
EffectRadiusIndex
Definition SpellMgr.h:405
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:458
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:435
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:411
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:455
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:408
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:449
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:437
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:410
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:406
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:452
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:457
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:450
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:417
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:460
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:456
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:415
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:438
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:441
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:446
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:447
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:453
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:425
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:443
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:445
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:407
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:444
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:454
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:436
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:427
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:451
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:418
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:434
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:461
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:439
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:462
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:459
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:428
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:440
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:448
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:442
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:432
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:566
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:562
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:611
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:545
std::unordered_map< SpellGroup, SpellGroupStackRule > SpellGroupStackMap
Definition SpellMgr.h:370
std::unordered_map< int32, CreatureImmunities > CreatureImmunitiesMap
Definition SpellMgr.h:581
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:595
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:467
int32 damage
Definition SpellMgr.h:512
int32 GetDamage() const
Definition SpellMgr.h:504
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:469
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:483
PetAura()
Definition SpellMgr.h:472
bool removeOnChangePet
Definition SpellMgr.h:511
PetAuraMap auras
Definition SpellMgr.h:510
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:499
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:494
Definition SpellInfo.h:340
Definition SpellMgr.h:649
SpellRequiredMap mSpellReq
Definition SpellMgr.h:817
CreatureImmunities const * GetCreatureImmunities(int32 creatureImmunitiesId) const
Definition SpellMgr.cpp:60
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:831
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:744
void LoadSpellLinked()
Definition SpellMgr.cpp:2584
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:839
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1037
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:844
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:833
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:1020
void LoadSpellInfoStore()
Definition SpellMgr.cpp:3022
uint32 GetSpellIdForDifficulty(uint32 spellId, Unit const *caster) const
Definition SpellMgr.cpp:538
void LoadSpellBonuses()
Definition SpellMgr.cpp:2295
SpellAreaForQuestMapBounds GetSpellAreaForQuestEndMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1047
SpellAreaForAuraMap mSpellAreaForAuraMap
Definition SpellMgr.h:837
SpellChainMap mSpellChains
Definition SpellMgr.h:815
void LoadEnchantCustomAttr()
Definition SpellMgr.cpp:2498
void LoadSpellCones()
Definition SpellMgr.cpp:1613
void UnloadSpellInfoStore()
Definition SpellMgr.cpp:3095
void LoadSpellAreas()
Definition SpellMgr.cpp:2811
uint32 GetNextSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:619
static SpellMgr * instance()
Definition SpellMgr.cpp:412
SpellPetAuraMap mSpellPetAuraMap
Definition SpellMgr.h:830
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:818
void LoadSpellCooldownOverrides()
Definition SpellMgr.cpp:3053
SpellAreaForQuestMapBounds GetSpellAreaForQuestMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1042
SpellBonusEntry const * GetSpellBonusData(uint32 spellId) const
Definition SpellMgr.cpp:947
void LoadSkillLineAbilityMap()
Definition SpellMgr.cpp:2413
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:987
static bool CheckSpellValid(SpellInfo const *spellInfo, uint32 spellId, bool isTalent)
Definition SpellMgr.cpp:508
float GetSpellMixologyBonus(uint32 spellId) const
Definition SpellMgr.cpp:978
std::vector< uint32 > GetSkillRankSpells(uint32 skillId) const
Definition SpellMgr.cpp:692
SpellAreaForQuestMap mSpellAreaForQuestEndMap
Definition SpellMgr.h:836
SpellGroupSpellMapBounds GetSpellGroupSpellMapBounds(SpellGroup group_id) const
Definition SpellMgr.cpp:745
PetDefaultSpellsMap mPetDefaultSpellsMap
Definition SpellMgr.h:841
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:829
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:3166
const std::vector< int32 > * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:1014
SpellCone const * GetSpellCone(uint32 spell_id) const
Definition SpellMgr.cpp:718
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:742
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:2336
SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1052
void LoadSpellRequired()
Definition SpellMgr.cpp:1390
SpellInfo const * GetSpellForDifficultyFromSpell(SpellInfo const *spell, Unit const *caster) const
Definition SpellMgr.cpp:580
void LoadSpellJumpDistances()
Definition SpellMgr.cpp:3130
void LoadSpellTargetPositions()
Definition SpellMgr.cpp:1508
SpellDifficultySearcherMap mSpellDifficultySearcherMap
Definition SpellMgr.h:814
void GetSetOfSpellsInSpellGroup(SpellGroup group_id, std::set< uint32 > &foundSpells) const
Definition SpellMgr.cpp:750
void LoadSpellInfoImmunities()
Definition SpellMgr.cpp:3890
void LoadSpellLearnSkills()
Definition SpellMgr.cpp:1455
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:1218
SpellGroupStackRule GetSpellGroupStackRule(SpellGroup group_id) const
Definition SpellMgr.cpp:858
SpellThreatEntry const * GetSpellThreatEntry(uint32 spellID) const
Definition SpellMgr.cpp:963
void LoadSpellGroupStackRules()
Definition SpellMgr.cpp:1781
static bool IsSpellValid(SpellInfo const *spellInfo)
Definition SpellMgr.cpp:490
SpellGroupStackMap mSpellGroupStack
Definition SpellMgr.h:823
uint32 GetFirstSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:603
bool CanSpellTriggerProcOnEvent(SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
Definition SpellMgr.cpp:875
SpellEnchantProcEventMap mSpellEnchantProcEventMap
Definition SpellMgr.h:832
SpellConeMap mSpellCones
Definition SpellMgr.h:820
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2731
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:840
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:752
SpellGroupStackRule CheckSpellGroupStackRules(SpellInfo const *spellInfo1, SpellInfo const *spellInfo2) const
Definition SpellMgr.cpp:811
bool IsAdditionalTalentSpell(uint32 spellId) const
Definition SpellMgr.cpp:678
SpellProcMap mSpellProcMap
Definition SpellMgr.h:825
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:816
CreatureImmunitiesMap mCreatureImmunities
Definition SpellMgr.h:826
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:819
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:3089
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:867
SpellGroupSpellMap mSpellGroupSpell
Definition SpellMgr.h:822
void LoadSpellSpecificAndAuraState()
Definition SpellMgr.cpp:3112
PetDefaultSpellsEntry const * GetPetDefaultSpellsEntry(int32 id) const
Definition SpellMgr.cpp:1029
SpellTargetPosition const * GetSpellTargetPosition(uint32 spell_id, SpellEffIndex effIndex) const
Definition SpellMgr.cpp:710
SameEffectStackMap mSpellSameEffectStack
Definition SpellMgr.h:824
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:843
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:1001
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:838
uint32 GetSpellDifficultyId(uint32 spellId) const
Definition SpellMgr.cpp:527
uint8 GetSpellRank(uint32 spell_id) const
Definition SpellMgr.cpp:637
void LoadSpellPetAuras()
Definition SpellMgr.cpp:2435
void UnloadSpellInfoImplicitTargetConditionLists()
Definition SpellMgr.cpp:3103
SpellSpellGroupMapBounds GetSpellSpellGroupMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:728
SpellAreaMap mSpellAreaMap
Definition SpellMgr.h:834
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2539
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:767
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:827
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:1279
bool AddSameEffectStackRuleSpellGroups(SpellInfo const *spellInfo, uint32 auraType, int32 amount, std::map< SpellGroup, int32 > &groups) const
Definition SpellMgr.cpp:777
void LoadSpellGroups()
Definition SpellMgr.cpp:1700
void LoadPetLevelupSpellMap()
Definition SpellMgr.cpp:2637
SpellSpellGroupMap mSpellSpellGroup
Definition SpellMgr.h:821
PetAura const * GetPetAura(uint32 spell_id, uint8 eff) const
Definition SpellMgr.cpp:992
void LoadSpellMixology()
Definition SpellMgr.cpp:2377
SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const
Definition SpellMgr.cpp:1057
bool IsArenaAllowedEnchancment(uint32 ench_id) const
Definition SpellMgr.cpp:1009
SpellThreatMap mSpellThreatMap
Definition SpellMgr.h:828
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:835
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:842
void LoadSpellProcs()
Definition SpellMgr.cpp:2006
~SpellMgr()
Definition SpellMgr.cpp:407
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:776
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1210
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:3084
Definition SpellMgr.h:571
std::bitset< MAX_MECHANIC > Mechanic
Definition SpellMgr.h:574
bool ImmuneAoE
Definition SpellMgr.h:577
std::bitset< MAX_SPELL_SCHOOL > School
Definition SpellMgr.h:572
std::vector< SpellEffects > Effect
Definition SpellMgr.h:575
bool ImmuneChain
Definition SpellMgr.h:578
std::bitset< DISPEL_MAX > DispelType
Definition SpellMgr.h:573
std::vector< AuraType > Aura
Definition SpellMgr.h:576
Definition SpellMgr.h:601
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:602
Definition SpellMgr.h:524
uint32 questEnd
Definition SpellMgr.h:528
bool autocast
Definition SpellMgr.h:534
uint32 raceMask
Definition SpellMgr.h:530
uint32 questStartStatus
Definition SpellMgr.h:532
uint32 spellId
Definition SpellMgr.h:525
uint32 questEndStatus
Definition SpellMgr.h:533
int32 auraSpell
Definition SpellMgr.h:529
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1062
Gender gender
Definition SpellMgr.h:531
uint32 areaId
Definition SpellMgr.h:526
uint32 questStart
Definition SpellMgr.h:527
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:551
SpellInfo const * last
Definition SpellMgr.h:555
SpellInfo const * next
Definition SpellMgr.h:553
uint8 rank
Definition SpellMgr.h:556
SpellInfo const * first
Definition SpellMgr.h:554
SpellInfo const * prev
Definition SpellMgr.h:552
Definition SpellMgr.h:397
int16_t cone_degrees
Definition SpellMgr.h:398
Definition SpellMgr.h:616
uint32 StartRecoveryTime
Definition SpellMgr.h:619
uint32 CategoryRecoveryTime
Definition SpellMgr.h:618
uint32 StartRecoveryCategory
Definition SpellMgr.h:620
uint32 RecoveryTime
Definition SpellMgr.h:617
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:583
uint16 value
Definition SpellMgr.h:586
uint16 step
Definition SpellMgr.h:585
uint16 maxvalue
Definition SpellMgr.h:587
uint16 skill
Definition SpellMgr.h:584
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