Core/Auras: Implemented SPELL_AURA_IGNORE_SPELL_CHARGE_COOLDOWN

This commit is contained in:
Shauren
2025-03-18 18:01:09 +01:00
parent 0c19893800
commit e0d3781989
3 changed files with 5 additions and 2 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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())