fix(Core/Items): armor type requirement for needing items in LFG grou… (#7523)

- Closes #7467
This commit is contained in:
UltraNix
2021-09-02 10:39:57 +02:00
committed by GitHub
parent fb0c3b4cb2
commit 2f9f95221b
3 changed files with 111 additions and 30 deletions

View File

@@ -290,6 +290,70 @@ void WorldSession::HandleDestroyItemOpcode(WorldPacket& recvData)
_player->DestroyItem(bag, slot, true);
}
bool ItemTemplate::HasStat(ItemModType stat) const
{
for (uint8 i = 0; i < MAX_ITEM_PROTO_STATS; ++i)
{
if (i >= StatsCount)
{
break;
}
if (ItemStat[i].ItemStatType == stat)
{
return true;
}
}
return false;
}
bool ItemTemplate::HasSpellPowerStat() const
{
bool invalid = false;
for (uint8 i = 0; i < MAX_ITEM_PROTO_SPELLS; ++i)
{
_Spell const& spellData = Spells[i];
if (!spellData.SpellId)
{
continue;
}
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellData.SpellId);
if (!spellInfo)
{
continue;
}
for (uint8 j = EFFECT_0; j <= EFFECT_2; ++j)
{
switch (spellInfo->Effects[j].ApplyAuraName)
{
case SPELL_AURA_MOD_HEALING_DONE:
case SPELL_AURA_MOD_SPELL_HEALING_OF_STAT_PERCENT:
case SPELL_AURA_MOD_SPELL_HEALING_OF_ATTACK_POWER:
case SPELL_AURA_MOD_HEALING:
invalid = true;
break;
case SPELL_AURA_MOD_DAMAGE_DONE:
case SPELL_AURA_MOD_SPELL_DAMAGE_OF_STAT_PERCENT:
case SPELL_AURA_MOD_SPELL_DAMAGE_OF_ATTACK_POWER:
case SPELL_AURA_MOD_DAMAGE_TAKEN:
if (!(spellInfo->Effects[j].MiscValue & SPELL_SCHOOL_MASK_SPELL))
{
return false;
}
invalid = true;
break;
default:
break;
}
}
}
return invalid;
}
void ItemTemplate::InitializeQueryData()
{
queryData.Initialize(SMSG_ITEM_QUERY_SINGLE_RESPONSE, 1);