diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-03-18 18:01:09 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2025-03-18 18:01:09 +0100 |
commit | e0d3781989c3e9339bfc14981a57683d3010f4e0 (patch) | |
tree | 4a32fb0771000830c0ebfb37b167a2cfaf2bed59 /src | |
parent | 0c198938005bb22f20a0d150a6505324a2d941de (diff) |
Core/Auras: Implemented SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Spells/SpellHistory.cpp | 3 |
3 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Spells/Auras/SpellAuraDefines.h b/src/server/game/Spells/Auras/SpellAuraDefines.h index de69713eccc..662f7d3a07f 100644 --- a/src/server/game/Spells/Auras/SpellAuraDefines.h +++ b/src/server/game/Spells/Auras/SpellAuraDefines.h @@ -591,7 +591,7 @@ enum AuraType : uint32 SPELL_AURA_MOD_ANIMA_GAIN = 497, // NYI SPELL_AURA_CURRENCY_LOSS_PCT_ON_DEATH = 498, // NYI SPELL_AURA_MOD_RESTED_XP_CONSUMPTION = 499, - SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN = 500, // NYI + SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN = 500, SPELL_AURA_MOD_CRITICAL_DAMAGE_TAKEN_FROM_CASTER = 501, SPELL_AURA_MOD_VERSATILITY_DAMAGE_DONE_BENEFIT = 502, // NYI SPELL_AURA_MOD_VERSATILITY_HEALING_DONE_BENEFIT = 503, // NYI diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 2b455e8fba5..061a55c5002 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -569,7 +569,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]= &AuraEffect::HandleNULL, //497 SPELL_AURA_MOD_ANIMA_GAIN &AuraEffect::HandleNULL, //498 SPELL_AURA_CURRENCY_LOSS_PCT_ON_DEATH &AuraEffect::HandleNULL, //499 SPELL_AURA_MOD_RESTED_XP_CONSUMPTION - &AuraEffect::HandleNULL, //500 SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN + &AuraEffect::HandleNoImmediateEffect, //500 SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN implemented in SpellHistory::ConsumeCharge &AuraEffect::HandleNULL, //501 SPELL_AURA_MOD_CRITICAL_DAMAGE_TAKEN_FROM_CASTER &AuraEffect::HandleNULL, //502 SPELL_AURA_MOD_VERSATILITY_DAMAGE_DONE_BENEFIT &AuraEffect::HandleNULL, //503 SPELL_AURA_MOD_VERSATILITY_HEALING_DONE_BENEFIT diff --git a/src/server/game/Spells/SpellHistory.cpp b/src/server/game/Spells/SpellHistory.cpp index 707018891c1..b6e7160ebaa 100644 --- a/src/server/game/Spells/SpellHistory.cpp +++ b/src/server/game/Spells/SpellHistory.cpp @@ -859,6 +859,9 @@ bool SpellHistory::ConsumeCharge(uint32 chargeCategoryId) int32 chargeRecovery = GetChargeRecoveryTime(chargeCategoryId); if (chargeRecovery > 0 && GetMaxCharges(chargeCategoryId) > 0) { + if (_owner->HasAuraTypeWithMiscvalue(SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN, chargeCategoryId)) + return true; + TimePoint recoveryStart; std::deque<ChargeEntry>& charges = _categoryCharges[chargeCategoryId]; if (charges.empty()) |