fix(Core/Spells): Multi-Shot should not be affected by Glyph of Aimed… (#9897)

* fix(Core/Spells): Multi-Shot should not be affected by Glyph of Aimed Shot.

Fixes #9707

* Update.
This commit is contained in:
UltraNix
2022-01-03 19:15:24 +01:00
committed by GitHub
parent 855e031284
commit d8712455c7
3 changed files with 31 additions and 2 deletions

View File

@@ -10274,7 +10274,7 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
// category spells
if (cat && catrec > 0)
{
_AddSpellCooldown(spellInfo->Id, cat, itemId, useSpellCooldown? recTime : catrecTime, true, true);
_AddSpellCooldown(spellInfo->Id, cat, itemId, useSpellCooldown ? recTime : catrecTime, true, true);
if (needsCooldownPacket)
{
WorldPacket data;
@@ -10282,6 +10282,8 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
SendDirectMessage(&data);
}
PacketCooldowns forcedCategoryCooldowns;
SpellCategoryStore::const_iterator i_scstore = sSpellsByCategoryStore.find(cat);
if (i_scstore != sSpellsByCategoryStore.end())
{
@@ -10306,8 +10308,20 @@ void Player::AddSpellAndCategoryCooldowns(SpellInfo const* spellInfo, uint32 ite
}
_AddSpellCooldown(i_scset->second, cat, itemId, catrecTime, !spellInfo->IsCooldownStartedOnEvent() && catrec && rec && catrec != rec);
if (spellInfo->HasAttribute(SPELL_ATTR0_CU_FORCE_SEND_CATEGORY_COOLDOWNS))
{
forcedCategoryCooldowns[i_scset->second] = catrecTime;
}
}
}
if (!forcedCategoryCooldowns.empty())
{
WorldPacket data;
BuildCooldownPacket(data, SPELL_COOLDOWN_FLAG_NONE, forcedCategoryCooldowns);
SendDirectMessage(&data);
}
}
else
{