Core/Players: Fix SPELLMOD_PCT on login (#30179)

This commit is contained in:
Ghaster
2024-08-22 23:29:45 +02:00
committed by GitHub
parent d34d27a0b5
commit 6904dfc20b

View File

@@ -22577,13 +22577,13 @@ void Player::SendSpellModifiers() const
case SPELLMOD_PCT:
if (!pctModifier || pctModifier->ModIndex != uint8(mod->op))
{
pctModifier = &flatMods.Modifiers.emplace_back();
pctModifier = &pctMods.Modifiers.emplace_back();
pctModifier->ModIndex = uint8(mod->op);
}
boost::from_block_range(&static_cast<SpellModifierByClassMask const*>(mod)->mask[0], &static_cast<SpellModifierByClassMask const*>(mod)->mask[0] + 4, mask);
for (std::size_t classIndex = mask.find_first(); classIndex != decltype(mask)::npos; classIndex = mask.find_next(classIndex))
{
float& modifierValue = getOrCreateModifierData(pctModifier->ModifierData, classIndex, 0.0f);
float& modifierValue = getOrCreateModifierData(pctModifier->ModifierData, classIndex, 1.0f);
modifierValue *= 1.0f + CalculatePct(1.0f, static_cast<SpellModifierByClassMask const*>(mod)->value);
}
break;