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{
350
352};
353
355{
363
364
367};
368
370{
372};
373
375{
378};
379
382
384{
388};
389
390typedef std::unordered_map<uint32, SpellThreatEntry>
SpellThreatMap;
392
393
395{
401};
402
404
405
407{
465};
466
467
469{
470private:
471 typedef std::unordered_map<uint32, uint32>
PetAuraMap;
472
473public:
475 {
477 }
478
481 {
482 auras[petEntry] = aura;
483 }
484
486 {
487 PetAuraMap::const_iterator itr =
auras.find(petEntry);
488 if (itr !=
auras.end())
489 return itr->second;
490 PetAuraMap::const_iterator itr2 =
auras.find(0);
491 if (itr2 !=
auras.end())
492 return itr2->second;
493 return 0;
494 }
495
497 {
498 auras[petEntry] = aura;
499 }
500
502 {
504 }
505
507 {
509 }
510
511private:
515};
517
519{
523};
524
526{
537
538
540};
541
546typedef std::pair<SpellAreaMap::const_iterator, SpellAreaMap::const_iterator>
SpellAreaMapBounds;
550
551
553{
559};
560
561typedef std::unordered_map<uint32, SpellChainNode>
SpellChainMap;
562
563
565typedef std::pair<SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator>
SpellRequiredMapBounds;
566
567
570
571
573{
578};
579
581
584
587
589
591{
593};
594
595
597
600
602
604
606{
611};
612
614
616
618{
620}
621
623{
625}
626
628
629
635
637
639{
640
641private:
644
645
646public:
648
649
653
654
659
660
667
669
670
674
675
677
678
680
681
687
688
691
692
695
696
698
699
701
702
704
706
708
711
713
716
717
723
724
726
728 {
732 return spellInfo;
733 }
734
736 {
738 {
740 return nullptr;
741 }
743 if (!spellInfo)
744 {
745 LOG_ERROR(
"server",
"spellId {} has invalid spellInfo", spellId);
746 return nullptr;
747 }
748 return spellInfo;
749 }
751
752
754
757
758private:
760
761
762public:
763
792
793private:
822};
823
824#define sSpellMgr SpellMgr::instance()
825
826#endif
#define MAX_CREATURE_SPELL_DATA_SLOT
Definition DBCStructure.h:806
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:157
SpellEffIndex
Definition SharedDefines.h:30
DiminishingGroup
Definition SharedDefines.h:3257
Gender
Definition SharedDefines.h:60
DiminishingReturnsType
Definition SharedDefines.h:3249
@ SKILL_COOKING
Definition SharedDefines.h:2918
@ SKILL_FISHING
Definition SharedDefines.h:2957
@ SKILL_RIDING
Definition SharedDefines.h:2991
@ SKILL_FIRST_AID
Definition SharedDefines.h:2892
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:321
std::unordered_map< uint32, SpellProcEventEntry > SpellProcEventMap
Definition SpellMgr.h:287
std::multimap< uint32, SpellArea const * > SpellAreaForAuraMap
Definition SpellMgr.h:545
bool IsProfessionOrRidingSkill(uint32 skill)
Definition SpellMgr.h:623
int32 GetDiminishingReturnsLimitDuration(DiminishingGroup group, SpellInfo const *spellproto)
Definition SpellMgr.cpp:275
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:392
SpellGroupStackFlags
Definition SpellMgr.h:356
@ SPELL_GROUP_STACK_FLAG_FLAGGED
Definition SpellMgr.h:360
@ SPELL_GROUP_STACK_FLAG_EXCLUSIVE
Definition SpellMgr.h:358
@ SPELL_GROUP_STACK_FLAG_FORCED_WEAKEST
Definition SpellMgr.h:367
@ SPELL_GROUP_STACK_FLAG_FORCED_STRONGEST
Definition SpellMgr.h:366
@ SPELL_GROUP_STACK_FLAG_MAX
Definition SpellMgr.h:363
@ SPELL_GROUP_STACK_FLAG_NOT_SAME_CASTER
Definition SpellMgr.h:359
@ SPELL_GROUP_STACK_FLAG_NONE
Definition SpellMgr.h:357
@ SPELL_GROUP_STACK_FLAG_NEVER_STACK
Definition SpellMgr.h:361
@ SPELL_GROUP_STACK_FLAG_EFFECT_EXCLUSIVE
Definition SpellMgr.h:362
DiminishingGroup GetDiminishingReturnsGroupForSpell(SpellInfo const *spellproto, bool triggered)
Definition SpellMgr.cpp:58
std::pair< SpellsRequiringSpellMap::const_iterator, SpellsRequiringSpellMap::const_iterator > SpellsRequiringSpellMapBounds
Definition SpellMgr.h:570
std::map< std::pair< uint32, SpellEffIndex >, SpellTargetPosition > SpellTargetPositionMap
Definition SpellMgr.h:404
bool IsDiminishingReturnsGroupDurationLimited(DiminishingGroup group)
Definition SpellMgr.cpp:330
bool IsProfessionSkill(uint32 skill)
Definition SpellMgr.h:618
std::multimap< uint32, SpellArea > SpellAreaMap
Definition SpellMgr.h:543
std::pair< SpellAreaMap::const_iterator, SpellAreaMap::const_iterator > SpellAreaMapBounds
Definition SpellMgr.h:547
std::map< uint32, uint32 > SpellDifficultySearcherMap
Definition SpellMgr.h:589
std::map< uint32, SpellCooldownOverride > SpellCooldownOverrideMap
Definition SpellMgr.h:614
std::map< int32, std::vector< int32 > > SpellLinkedMap
Definition SpellMgr.h:604
std::pair< SpellAreaForAreaMap::const_iterator, SpellAreaForAreaMap::const_iterator > SpellAreaForAreaMapBounds
Definition SpellMgr.h:550
std::unordered_map< uint32, SpellChainNode > SpellChainMap
Definition SpellMgr.h:562
std::unordered_map< uint32, SpellProcEntry > SpellProcMap
Definition SpellMgr.h:305
std::set< uint32 > TalentAdditionalSet
Definition SpellMgr.h:637
ProcAttributes
Definition SpellMgr.h:270
@ PROC_ATTR_REQ_EXP_OR_HONOR
Definition SpellMgr.h:271
std::multimap< uint32, SpellArea const * > SpellAreaForAreaMap
Definition SpellMgr.h:546
std::unordered_map< uint32, SpellThreatEntry > SpellThreatMap
Definition SpellMgr.h:391
std::pair< SpellRequiredMap::const_iterator, SpellRequiredMap::const_iterator > SpellRequiredMapBounds
Definition SpellMgr.h:566
SpellGroupIDs
Definition SpellMgr.h:371
@ SPELL_GROUP_GUARDIAN_AND_BATTLE_ELIXIRS
Definition SpellMgr.h:372
std::multimap< uint32, SkillLineAbilityEntry const * > SkillLineAbilityMap
Definition SpellMgr.h:583
std::map< uint32, PetAura > SpellPetAuraMap
Definition SpellMgr.h:517
ICCBuff
Definition SpellMgr.h:520
@ ICC_RACEMASK_HORDE
Definition SpellMgr.h:522
@ ICC_AREA
Definition SpellMgr.h:521
@ ICC_RACEMASK_ALLIANCE
Definition SpellMgr.h:523
std::multimap< uint32, SpellArea const * > SpellAreaForQuestMap
Definition SpellMgr.h:544
std::map< int32, PetDefaultSpellsEntry > PetDefaultSpellsMap
Definition SpellMgr.h:597
std::vector< bool > EnchantCustomAttribute
Definition SpellMgr.h:600
DiminishingReturnsType GetDiminishingReturnsGroupType(DiminishingGroup group)
Definition SpellMgr.cpp:245
SpellGroupSpecialFlags
Definition SpellMgr.h:334
@ SPELL_GROUP_SPECIAL_FLAG_PRIORITY1
Definition SpellMgr.h:344
@ SPELL_GROUP_SPECIAL_FLAG_PRIORITY3
Definition SpellMgr.h:346
@ SPELL_GROUP_SPECIAL_FLAG_SKIP_STRONGER_CHECK
Definition SpellMgr.h:342
@ SPELL_GROUP_SPECIAL_FLAG_FORCED_STRONGEST
Definition SpellMgr.h:341
@ SPELL_GROUP_SPECIAL_FLAG_PRIORITY2
Definition SpellMgr.h:345
@ SPELL_GROUP_SPECIAL_FLAG_MAX
Definition SpellMgr.h:350
@ SPELL_GROUP_SPECIAL_FLAG_ELIXIR_SHATTRATH
Definition SpellMgr.h:339
@ SPELL_GROUP_SPECIAL_FLAG_SAME_SPELL_CHECK
Definition SpellMgr.h:348
@ SPELL_GROUP_SPECIAL_FLAG_STACK_EXCLUSIVE_MAX
Definition SpellMgr.h:340
@ SPELL_GROUP_SPECIAL_FLAG_BASE_AMOUNT_CHECK
Definition SpellMgr.h:343
@ SPELL_GROUP_SPECIAL_FLAG_SKIP_STRONGER_SAME_SPELL
Definition SpellMgr.h:349
@ SPELL_GROUP_SPECIAL_FLAG_PRIORITY4
Definition SpellMgr.h:347
@ SPELL_GROUP_SPECIAL_FLAG_ELIXIR_BATTLE
Definition SpellMgr.h:336
@ SPELL_GROUP_SPECIAL_FLAG_ELIXIR_GUARDIAN
Definition SpellMgr.h:337
@ SPELL_GROUP_SPECIAL_FLAG_FLASK
Definition SpellMgr.h:352
@ SPELL_GROUP_SPECIAL_FLAG_ELIXIR_UNSTABLE
Definition SpellMgr.h:338
@ SPELL_GROUP_SPECIAL_FLAG_NONE
Definition SpellMgr.h:335
std::vector< uint32 > SpellCustomAttribute
Definition SpellMgr.h:599
std::unordered_map< uint32, SpellLearnSkillNode > SpellLearnSkillMap
Definition SpellMgr.h:581
std::pair< SpellAreaForAuraMap::const_iterator, SpellAreaForAuraMap::const_iterator > SpellAreaForAuraMapBounds
Definition SpellMgr.h:549
std::map< uint32, SpellStackInfo > SpellGroupMap
Definition SpellMgr.h:381
std::pair< SkillLineAbilityMap::const_iterator, SkillLineAbilityMap::const_iterator > SkillLineAbilityMapBounds
Definition SpellMgr.h:584
@ 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:587
DiminishingLevels GetDiminishingReturnsMaxLevel(DiminishingGroup group)
Definition SpellMgr.cpp:264
EffectRadiusIndex
Definition SpellMgr.h:408
@ EFFECT_RADIUS_14_YARDS
Definition SpellMgr.h:461
@ EFFECT_RADIUS_500_YARDS
Definition SpellMgr.h:432
@ EFFECT_RADIUS_13_YARDS
Definition SpellMgr.h:419
@ EFFECT_RADIUS_7_YARDS
Definition SpellMgr.h:438
@ EFFECT_RADIUS_100_YARDS
Definition SpellMgr.h:414
@ EFFECT_RADIUS_45_YARDS_2
Definition SpellMgr.h:458
@ EFFECT_RADIUS_80_YARDS
Definition SpellMgr.h:433
@ EFFECT_RADIUS_20_YARDS
Definition SpellMgr.h:411
@ EFFECT_RADIUS_60_YARDS_2
Definition SpellMgr.h:452
@ EFFECT_RADIUS_8_YARDS
Definition SpellMgr.h:416
@ EFFECT_RADIUS_34_YARDS
Definition SpellMgr.h:440
@ EFFECT_RADIUS_45_YARDS
Definition SpellMgr.h:413
@ EFFECT_RADIUS_2_YARDS
Definition SpellMgr.h:409
@ EFFECT_RADIUS_50000_YARDS_2
Definition SpellMgr.h:455
@ EFFECT_RADIUS_44_YARDS
Definition SpellMgr.h:460
@ EFFECT_RADIUS_5_YARDS_3
Definition SpellMgr.h:453
@ EFFECT_RADIUS_15_YARDS
Definition SpellMgr.h:420
@ EFFECT_RADIUS_23_YARDS
Definition SpellMgr.h:463
@ EFFECT_RADIUS_55_YARDS
Definition SpellMgr.h:436
@ EFFECT_RADIUS_65_YARDS
Definition SpellMgr.h:426
@ EFFECT_RADIUS_32_YARDS
Definition SpellMgr.h:459
@ EFFECT_RADIUS_30_YARDS
Definition SpellMgr.h:412
@ EFFECT_RADIUS_1_YARD
Definition SpellMgr.h:418
@ EFFECT_RADIUS_9_YARDS
Definition SpellMgr.h:441
@ EFFECT_RADIUS_16_YARDS
Definition SpellMgr.h:444
@ EFFECT_RADIUS_60_YARDS
Definition SpellMgr.h:449
@ EFFECT_RADIUS_90_YARDS
Definition SpellMgr.h:450
@ EFFECT_RADIUS_130_YARDS
Definition SpellMgr.h:456
@ EFFECT_RADIUS_4_YARDS
Definition SpellMgr.h:428
@ EFFECT_RADIUS_25_YARDS
Definition SpellMgr.h:422
@ EFFECT_RADIUS_10_YARDS_2
Definition SpellMgr.h:446
@ EFFECT_RADIUS_15_YARDS_2
Definition SpellMgr.h:448
@ EFFECT_RADIUS_5_YARDS
Definition SpellMgr.h:410
@ EFFECT_RADIUS_40_YARDS
Definition SpellMgr.h:425
@ EFFECT_RADIUS_70_YARDS
Definition SpellMgr.h:427
@ EFFECT_RADIUS_5_YARDS_2
Definition SpellMgr.h:447
@ EFFECT_RADIUS_3_YARDS
Definition SpellMgr.h:417
@ EFFECT_RADIUS_38_YARDS
Definition SpellMgr.h:457
@ EFFECT_RADIUS_21_YARDS
Definition SpellMgr.h:439
@ EFFECT_RADIUS_50_YARDS
Definition SpellMgr.h:429
@ EFFECT_RADIUS_50000_YARDS
Definition SpellMgr.h:430
@ EFFECT_RADIUS_60_YARDS_3
Definition SpellMgr.h:454
@ EFFECT_RADIUS_18_YARDS
Definition SpellMgr.h:421
@ EFFECT_RADIUS_200_YARDS
Definition SpellMgr.h:424
@ EFFECT_RADIUS_12_YARDS
Definition SpellMgr.h:434
@ EFFECT_RADIUS_10_YARDS
Definition SpellMgr.h:415
@ EFFECT_RADIUS_0_YARDS
Definition SpellMgr.h:437
@ EFFECT_RADIUS_3_5_YARDS
Definition SpellMgr.h:464
@ EFFECT_RADIUS_150_YARDS
Definition SpellMgr.h:442
@ EFFECT_RADIUS_80_YARDS_2
Definition SpellMgr.h:465
@ EFFECT_RADIUS_35_YARDS
Definition SpellMgr.h:423
@ EFFECT_RADIUS_47_YARDS
Definition SpellMgr.h:462
@ EFFECT_RADIUS_6_YARDS
Definition SpellMgr.h:431
@ EFFECT_RADIUS_11_YARDS
Definition SpellMgr.h:443
@ EFFECT_RADIUS_15_YARDS_3
Definition SpellMgr.h:451
@ EFFECT_RADIUS_0_5_YARDS
Definition SpellMgr.h:445
@ EFFECT_RADIUS_99_YARDS
Definition SpellMgr.h:435
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:569
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:565
std::vector< SpellInfo * > SpellInfoMap
Definition SpellMgr.h:602
std::pair< SpellAreaForQuestMap::const_iterator, SpellAreaForQuestMap::const_iterator > SpellAreaForQuestMapBounds
Definition SpellMgr.h:548
std::map< uint32, SpellGroupStackFlags > SpellGroupStackMap
Definition SpellMgr.h:382
std::multimap< uint32, uint32 > PetLevelupSpellSet
Definition SpellMgr.h:586
DiminishingLevels
Definition Unit.h:262
Definition SpellMgr.h:470
int32 damage
Definition SpellMgr.h:515
int32 GetDamage() const
Definition SpellMgr.h:507
std::unordered_map< uint32, uint32 > PetAuraMap
Definition SpellMgr.h:472
uint32 GetAura(uint32 petEntry) const
Definition SpellMgr.h:486
PetAura()
Definition SpellMgr.h:475
bool removeOnChangePet
Definition SpellMgr.h:514
PetAuraMap auras
Definition SpellMgr.h:513
bool IsRemovedOnChangePet() const
Definition SpellMgr.h:502
void AddAura(uint32 petEntry, uint32 aura)
Definition SpellMgr.h:497
Definition SpellInfo.h:316
Definition SpellMgr.h:640
SpellRequiredMap mSpellReq
Definition SpellMgr.h:798
SpellLinkedMap mSpellLinkedMap
Definition SpellMgr.h:809
SpellInfo const * AssertSpellInfo(uint32 spellId) const
Definition SpellMgr.h:728
void LoadSpellLinked()
Definition SpellMgr.cpp:2252
SkillLineAbilityMap mSkillLineAbilityMap
Definition SpellMgr.h:817
SpellAreaMapBounds GetSpellAreaMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1052
TalentAdditionalSet mTalentSpellAdditionalSet
Definition SpellMgr.h:822
void GetSetOfSpellsInSpellGroupWithFlag(uint32 group_id, SpellGroupSpecialFlags flag, std::set< uint32 > &availableElixirs) const
Definition SpellMgr.cpp:722
EnchantCustomAttribute mEnchantCustomAttr
Definition SpellMgr.h:811
void SetSpellDifficultyId(uint32 spellId, uint32 id)
Definition SpellMgr.cpp:484
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:370
PetLevelupSpellSet const * GetPetLevelupSpellList(uint32 petFamily) const
Definition SpellMgr.cpp:1035
void LoadSpellInfoStore()
Definition SpellMgr.cpp:2690
uint32 GetSpellIdForDifficulty(uint32 spellId, Unit const *caster) const
Definition SpellMgr.cpp:489
void LoadSpellBonuses()
Definition SpellMgr.cpp:1963
SpellAreaForQuestMapBounds GetSpellAreaForQuestEndMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1062
SpellAreaForAuraMap mSpellAreaForAuraMap
Definition SpellMgr.h:815
SpellProcEventEntry const * GetSpellProcEvent(uint32 spellId) const
Definition SpellMgr.cpp:729
SpellChainMap mSpellChains
Definition SpellMgr.h:796
void LoadEnchantCustomAttr()
Definition SpellMgr.cpp:2166
void UnloadSpellInfoStore()
Definition SpellMgr.cpp:2761
void LoadSpellAreas()
Definition SpellMgr.cpp:2479
uint32 GetNextSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:570
static SpellMgr * instance()
Definition SpellMgr.cpp:363
SpellPetAuraMap mSpellPetAuraMap
Definition SpellMgr.h:808
SpellLearnSkillMap mSpellLearnSkills
Definition SpellMgr.h:799
void LoadSpellCooldownOverrides()
Definition SpellMgr.cpp:2719
SpellAreaForQuestMapBounds GetSpellAreaForQuestMapBounds(uint32 quest_id) const
Definition SpellMgr.cpp:1057
SpellBonusEntry const * GetSpellBonusData(uint32 spellId) const
Definition SpellMgr.cpp:962
void LoadSkillLineAbilityMap()
Definition SpellMgr.cpp:2081
SkillLineAbilityMapBounds GetSkillLineAbilityMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1002
SpellProcEventMap mSpellProcEventMap
Definition SpellMgr.h:803
static bool CheckSpellValid(SpellInfo const *spellInfo, uint32 spellId, bool isTalent)
Definition SpellMgr.cpp:459
float GetSpellMixologyBonus(uint32 spellId) const
Definition SpellMgr.cpp:993
SpellAreaForQuestMap mSpellAreaForQuestEndMap
Definition SpellMgr.h:814
SpellGroupStackFlags CheckSpellGroupStackRules(SpellInfo const *spellInfo1, SpellInfo const *spellInfo2, bool remove, bool areaAura) const
Definition SpellMgr.cpp:680
bool IsSpellProcEventCanTriggeredBy(SpellInfo const *spellProto, SpellProcEventEntry const *spellProcEvent, uint32 EventProcFlag, ProcEventInfo const &eventInfo, bool active) const
Definition SpellMgr.cpp:737
PetDefaultSpellsMap mPetDefaultSpellsMap
Definition SpellMgr.h:819
uint32 GetSpellWithRank(uint32 spell_id, uint32 rank, bool strict=false) const
Definition SpellMgr.cpp:596
SpellLearnSkillNode const * GetSpellLearnSkill(uint32 spell_id) const
Definition SpellMgr.cpp:634
SpellMixologyMap mSpellMixologyMap
Definition SpellMgr.h:807
void LoadSpellInfoCustomAttributes()
Definition SpellMgr.cpp:2796
const std::vector< int32 > * GetSpellLinked(int32 spell_id) const
Definition SpellMgr.cpp:1029
SpellRequiredMapBounds GetSpellsRequiredForSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:608
SpellInfo const * GetSpellInfo(uint32 spellId) const
Definition SpellMgr.h:726
SpellGroupStackMap mSpellGroupStackMap
Definition SpellMgr.h:802
uint32 GetPrevSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:579
bool IsSpellRequiringSpell(uint32 spellid, uint32 req_spellid) const
Definition SpellMgr.cpp:618
void LoadSpellThreats()
Definition SpellMgr.cpp:2004
SpellAreaForAuraMapBounds GetSpellAreaForAuraMapBounds(uint32 spell_id) const
Definition SpellMgr.cpp:1067
uint32 GetSpellGroup(uint32 spellid) const
Definition SpellMgr.cpp:660
void LoadSpellRequired()
Definition SpellMgr.cpp:1403
SpellInfo const * GetSpellForDifficultyFromSpell(SpellInfo const *spell, Unit const *caster) const
Definition SpellMgr.cpp:531
SpellGroupStackFlags GetGroupStackFlags(uint32 groupid) const
Definition SpellMgr.cpp:651
void LoadSpellTargetPositions()
Definition SpellMgr.cpp:1521
SpellDifficultySearcherMap mSpellDifficultySearcherMap
Definition SpellMgr.h:795
void LoadSpellLearnSkills()
Definition SpellMgr.cpp:1468
uint32 GetLastSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:562
SpellGroupMap mSpellGroupMap
Definition SpellMgr.h:801
void LoadSpellTalentRanks()
Definition SpellMgr.cpp:1231
SpellThreatEntry const * GetSpellThreatEntry(uint32 spellID) const
Definition SpellMgr.cpp:978
void LoadSpellGroupStackRules()
Definition SpellMgr.cpp:1686
static bool IsSpellValid(SpellInfo const *spellInfo)
Definition SpellMgr.cpp:441
uint32 GetFirstSpellInChain(uint32 spell_id) const
Definition SpellMgr.cpp:554
bool CanSpellTriggerProcOnEvent(SpellProcEntry const &procEntry, ProcEventInfo &eventInfo) const
Definition SpellMgr.cpp:897
SpellEnchantProcEventMap mSpellEnchantProcEventMap
Definition SpellMgr.h:810
void LoadPetDefaultSpells()
Definition SpellMgr.cpp:2399
PetLevelupSpellMap mPetLevelupSpellMap
Definition SpellMgr.h:818
SpellInfo const * CheckSpellInfo(uint32 spellId) const
Definition SpellMgr.h:736
bool IsAdditionalTalentSpell(uint32 spellId) const
Definition SpellMgr.cpp:629
SpellProcMap mSpellProcMap
Definition SpellMgr.h:804
SpellsRequiringSpellMap mSpellsReqSpell
Definition SpellMgr.h:797
void LoadSpellInfoCorrections()
Definition SpellInfoCorrections.cpp:39
SpellTargetPositionMap mSpellTargetPositions
Definition SpellMgr.h:800
SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2755
SpellProcEntry const * GetSpellProcEntry(uint32 spellId) const
Definition SpellMgr.cpp:889
void LoadSpellSpecificAndAuraState()
Definition SpellMgr.cpp:2778
PetDefaultSpellsEntry const * GetPetDefaultSpellsEntry(int32 id) const
Definition SpellMgr.cpp:1044
SpellTargetPosition const * GetSpellTargetPosition(uint32 spell_id, SpellEffIndex effIndex) const
Definition SpellMgr.cpp:643
SpellCooldownOverrideMap mSpellCooldownOverrideMap
Definition SpellMgr.h:821
SpellEnchantProcEntry const * GetSpellEnchantProcEvent(uint32 enchId) const
Definition SpellMgr.cpp:1016
SpellAreaForAreaMap mSpellAreaForAreaMap
Definition SpellMgr.h:816
uint32 GetSpellDifficultyId(uint32 spellId) const
Definition SpellMgr.cpp:478
void LoadSpellProcEvents()
Definition SpellMgr.cpp:1737
uint8 GetSpellRank(uint32 spell_id) const
Definition SpellMgr.cpp:588
void LoadSpellPetAuras()
Definition SpellMgr.cpp:2103
void UnloadSpellInfoImplicitTargetConditionLists()
Definition SpellMgr.cpp:2769
SpellAreaMap mSpellAreaMap
Definition SpellMgr.h:812
void LoadSpellEnchantProcData()
Definition SpellMgr.cpp:2207
uint32 GetSpellInfoStoreSize() const
Definition SpellMgr.h:751
SpellBonusMap mSpellBonusMap
Definition SpellMgr.h:805
SpellMgr()
Definition SpellMgr.cpp:354
SpellChainNode const * GetSpellChainNode(uint32 spell_id) const
Definition SpellMgr.cpp:545
SpellsRequiringSpellMapBounds GetSpellsRequiringSpellBounds(uint32 spell_id) const
Definition SpellMgr.cpp:613
void LoadSpellRanks()
Definition SpellMgr.cpp:1292
void LoadSpellGroups()
Definition SpellMgr.cpp:1626
void LoadPetLevelupSpellMap()
Definition SpellMgr.cpp:2305
PetAura const * GetPetAura(uint32 spell_id, uint8 eff) const
Definition SpellMgr.cpp:1007
void LoadSpellMixology()
Definition SpellMgr.cpp:2045
SpellAreaForAreaMapBounds GetSpellAreaForAreaMapBounds(uint32 area_id) const
Definition SpellMgr.cpp:1072
bool IsArenaAllowedEnchancment(uint32 ench_id) const
Definition SpellMgr.cpp:1024
SpellThreatMap mSpellThreatMap
Definition SpellMgr.h:806
SpellAreaForQuestMap mSpellAreaForQuestMap
Definition SpellMgr.h:813
SpellInfoMap mSpellInfoMap
Definition SpellMgr.h:820
void LoadSpellProcs()
Definition SpellMgr.cpp:1831
~SpellMgr()
Definition SpellMgr.cpp:358
SpellInfo * _GetSpellInfo(uint32 spellId)
Definition SpellMgr.h:760
void UnloadSpellInfoChains()
Definition SpellMgr.cpp:1223
bool HasSpellCooldownOverride(uint32 spellId) const
Definition SpellMgr.cpp:2750
SpellGroupSpecialFlags GetSpellGroupSpecialFlags(uint32 spell_id) const
Definition SpellMgr.cpp:670
Definition SpellMgr.h:592
uint32 spellid[MAX_CREATURE_SPELL_DATA_SLOT]
Definition SpellMgr.h:593
Definition SpellMgr.h:527
uint32 questEnd
Definition SpellMgr.h:531
bool autocast
Definition SpellMgr.h:537
uint32 raceMask
Definition SpellMgr.h:533
uint32 questStartStatus
Definition SpellMgr.h:535
uint32 spellId
Definition SpellMgr.h:528
uint32 questEndStatus
Definition SpellMgr.h:536
int32 auraSpell
Definition SpellMgr.h:532
bool IsFitToRequirements(Player const *player, uint32 newZone, uint32 newArea) const
Definition SpellMgr.cpp:1077
Gender gender
Definition SpellMgr.h:534
uint32 areaId
Definition SpellMgr.h:529
uint32 questStart
Definition SpellMgr.h:530
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:554
SpellInfo const * last
Definition SpellMgr.h:558
SpellInfo const * next
Definition SpellMgr.h:556
uint8 rank
Definition SpellMgr.h:559
SpellInfo const * first
Definition SpellMgr.h:557
SpellInfo const * prev
Definition SpellMgr.h:555
Definition SpellMgr.h:607
uint32 StartRecoveryTime
Definition SpellMgr.h:610
uint32 CategoryRecoveryTime
Definition SpellMgr.h:609
uint32 StartRecoveryCategory
Definition SpellMgr.h:611
uint32 RecoveryTime
Definition SpellMgr.h:608
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:574
uint16 value
Definition SpellMgr.h:577
uint16 step
Definition SpellMgr.h:576
uint16 maxvalue
Definition SpellMgr.h:578
uint16 skill
Definition SpellMgr.h:575
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:376
SpellGroupSpecialFlags specialFlags
Definition SpellMgr.h:378
uint32 groupId
Definition SpellMgr.h:377
Definition SpellMgr.h:396
float target_Z
Definition SpellMgr.h:400
uint32 target_mapId
Definition SpellMgr.h:397
float target_Y
Definition SpellMgr.h:399
float target_Orientation
Definition SpellMgr.h:401
float target_X
Definition SpellMgr.h:398
Definition SpellMgr.h:385
int32 flatMod
Definition SpellMgr.h:386
float apPctMod
Definition SpellMgr.h:388
float pctMod
Definition SpellMgr.h:387