Core/Spells: Corrected haste affecting GCDs to match 3.3.5 client logic

This commit is contained in:
Shauren authored and Ovahlord committed 2022-09-12 09:15:21 +02:00
1 parent dc8bf301bb
commit 5ceba73504
1 file changed
+7 -2
+7 -2
View File
@@ -8469,11 +8469,16 @@ void Spell::TriggerGlobalCooldown()
if (!CanHaveGlobalCooldown(m_caster))
return;
int32 gcd = m_spellInfo->StartRecoveryTime;
if (!gcd || !m_spellInfo->StartRecoveryCategory)
if (!m_spellInfo->StartRecoveryCategory)
return;
if (m_caster->GetTypeId() == TYPEID_PLAYER)
if (m_caster->ToPlayer()->GetCommandStatus(CHEAT_COOLDOWN))
return;
// Global cooldown can't leave range 1..1.5 secs
int32 gcd = m_spellInfo->StartRecoveryTime;
// gcd modifier auras are applied only to own spells and only players have such mods
if (Player* modOwner = m_caster->GetSpellModOwner())
modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_GLOBAL_COOLDOWN, gcd, this);