mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Auras: Implement SPELL_AURA_IGNORE_SPELL_COOLDOWN (#29157)
This commit is contained in:
@@ -474,7 +474,7 @@ enum AuraType : uint32
|
||||
SPELL_AURA_380 = 380,
|
||||
SPELL_AURA_MOD_DAMAGE_TAKEN_FROM_CASTER_PET = 381, // NYI
|
||||
SPELL_AURA_MOD_PET_STAT_PCT = 382, // NYI
|
||||
SPELL_AURA_IGNORE_SPELL_COOLDOWN = 383, // NYI
|
||||
SPELL_AURA_IGNORE_SPELL_COOLDOWN = 383,
|
||||
SPELL_AURA_384 = 384,
|
||||
SPELL_AURA_385 = 385,
|
||||
SPELL_AURA_386 = 386,
|
||||
|
||||
@@ -450,7 +450,7 @@ NonDefaultConstructible<pAuraEffectHandler> AuraEffectHandler[TOTAL_AURAS]=
|
||||
&AuraEffect::HandleNULL, //380
|
||||
&AuraEffect::HandleNULL, //381 SPELL_AURA_MOD_DAMAGE_TAKEN_FROM_CASTER_PET
|
||||
&AuraEffect::HandleNULL, //382 SPELL_AURA_MOD_PET_STAT_PCT
|
||||
&AuraEffect::HandleNULL, //383 SPELL_AURA_IGNORE_SPELL_COOLDOWN
|
||||
&AuraEffect::HandleNoImmediateEffect, //383 SPELL_AURA_IGNORE_SPELL_COOLDOWN implemented in SpellHistory::HasCooldown
|
||||
&AuraEffect::HandleNULL, //384
|
||||
&AuraEffect::HandleNULL, //385
|
||||
&AuraEffect::HandleNULL, //386
|
||||
|
||||
@@ -668,6 +668,9 @@ void SpellHistory::ResetAllCooldowns()
|
||||
|
||||
bool SpellHistory::HasCooldown(SpellInfo const* spellInfo, uint32 itemId /*= 0*/) const
|
||||
{
|
||||
if (_owner->HasAuraTypeWithAffectMask(SPELL_AURA_IGNORE_SPELL_COOLDOWN, spellInfo))
|
||||
return false;
|
||||
|
||||
if (_spellCooldowns.count(spellInfo->Id) != 0)
|
||||
return true;
|
||||
|
||||
|
||||
@@ -1608,7 +1608,8 @@ void SpellMgr::LoadSpellProcs()
|
||||
continue;
|
||||
|
||||
if (spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_PCT_MODIFIER || spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_FLAT_MODIFIER
|
||||
|| spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL || spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL)
|
||||
|| spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_PCT_MODIFIER_BY_SPELL_LABEL || spellEffectInfo.ApplyAuraName == SPELL_AURA_ADD_FLAT_MODIFIER_BY_SPELL_LABEL
|
||||
|| spellEffectInfo.ApplyAuraName == SPELL_AURA_IGNORE_SPELL_COOLDOWN)
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
@@ -1706,6 +1707,7 @@ void SpellMgr::LoadSpellProcs()
|
||||
isTriggerAura[SPELL_AURA_MOD_WEAPON_CRIT_PERCENT] = true;
|
||||
isTriggerAura[SPELL_AURA_MOD_BLOCK_PERCENT] = true;
|
||||
isTriggerAura[SPELL_AURA_MOD_ROOT_2] = true;
|
||||
isTriggerAura[SPELL_AURA_IGNORE_SPELL_COOLDOWN] = true;
|
||||
|
||||
isAlwaysTriggeredAura[SPELL_AURA_OVERRIDE_CLASS_SCRIPTS] = true;
|
||||
isAlwaysTriggeredAura[SPELL_AURA_MOD_STEALTH] = true;
|
||||
|
||||
Reference in New Issue
Block a user