mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-23 21:56:22 +00:00
fix(Core/Cooldown): Implement spell cooldown overrides to address cha… (#15143)
This commit is contained in:
@@ -596,6 +596,16 @@ typedef std::vector<SpellInfo*> SpellInfoMap;
|
||||
|
||||
typedef std::map<int32, std::vector<int32> > SpellLinkedMap;
|
||||
|
||||
struct SpellCooldownOverride
|
||||
{
|
||||
uint32 RecoveryTime;
|
||||
uint32 CategoryRecoveryTime;
|
||||
uint32 StartRecoveryTime;
|
||||
uint32 StartRecoveryCategory;
|
||||
};
|
||||
|
||||
typedef std::map<uint32, SpellCooldownOverride> SpellCooldownOverrideMap;
|
||||
|
||||
bool IsPrimaryProfessionSkill(uint32 skill);
|
||||
|
||||
inline bool IsProfessionSkill(uint32 skill)
|
||||
@@ -736,6 +746,9 @@ public:
|
||||
// Talent Additional Set
|
||||
[[nodiscard]] bool IsAdditionalTalentSpell(uint32 spellId) const;
|
||||
|
||||
[[nodiscard]] bool HasSpellCooldownOverride(uint32 spellId) const;
|
||||
[[nodiscard]] SpellCooldownOverride GetSpellCooldownOverride(uint32 spellId) const;
|
||||
|
||||
private:
|
||||
SpellInfo* _GetSpellInfo(uint32 spellId) { return spellId < GetSpellInfoStoreSize() ? mSpellInfoMap[spellId] : nullptr; }
|
||||
|
||||
@@ -764,6 +777,7 @@ public:
|
||||
void LoadPetDefaultSpells();
|
||||
void LoadSpellAreas();
|
||||
void LoadSpellInfoStore();
|
||||
void LoadSpellCooldownOverrides();
|
||||
void UnloadSpellInfoStore();
|
||||
void UnloadSpellInfoImplicitTargetConditionLists();
|
||||
void LoadSpellInfoCustomAttributes();
|
||||
@@ -797,6 +811,7 @@ private:
|
||||
PetLevelupSpellMap mPetLevelupSpellMap;
|
||||
PetDefaultSpellsMap mPetDefaultSpellsMap; // only spells not listed in related mPetLevelupSpellMap entry
|
||||
SpellInfoMap mSpellInfoMap;
|
||||
SpellCooldownOverrideMap mSpellCooldownOverrideMap;
|
||||
TalentAdditionalSet mTalentSpellAdditionalSet;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user