aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/ItemHandler.cpp
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2023-11-25 23:39:20 +0100
committerOvahlord <dreadkiller@gmx.de>2023-11-25 23:39:20 +0100
commit50a4f6ec36a176cef5cd956b04bddddd6079e737 (patch)
tree7e85929e95da633b766877147da4b937bfbd3e20 /src/server/game/Handlers/ItemHandler.cpp
parentbee9294901dde5f87640c76d31cc8e0de529eb30 (diff)
Core/Items: fixed gem socket bonus checks
Diffstat (limited to 'src/server/game/Handlers/ItemHandler.cpp')
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 60481b71068..be4f8d813ca 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -1054,7 +1054,7 @@ void WorldSession::HandleSocketGems(WorldPackets::Item::SocketGems& socketGems)
}
}
- bool SocketBonusActivated = itemTarget->GemsFitSockets(); //save state of socketbonus
+ bool hadSocketBonusActive = itemTarget->HasAllSocketsFilledWithMatchingColors(); //save state of socketbonus
_player->ToggleMetaGemsActive(slot, false); //turn off all metagems (except for the target item)
//if a meta gem is being equipped, all information has to be written to the item before testing if the conditions for the gem are met
@@ -1080,11 +1080,11 @@ void WorldSession::HandleSocketGems(WorldPackets::Item::SocketGems& socketGems)
for (uint32 enchantmentSlot = SOCK_ENCHANTMENT_SLOT; enchantmentSlot < SOCK_ENCHANTMENT_SLOT + MAX_GEM_SOCKETS; ++enchantmentSlot)
_player->ApplyEnchantment(itemTarget, EnchantmentSlot(enchantmentSlot), true);
- bool SocketBonusToBeActivated = itemTarget->GemsFitSockets();//current socketbonus state
- if (SocketBonusActivated ^ SocketBonusToBeActivated) //if there was a change...
+ bool socketBonusToBeActivated = itemTarget->HasAllSocketsFilledWithMatchingColors();//current socketbonus state
+ if (hadSocketBonusActive != socketBonusToBeActivated) //if there was a change...
{
_player->ApplyEnchantment(itemTarget, BONUS_ENCHANTMENT_SLOT, false);
- itemTarget->SetEnchantment(BONUS_ENCHANTMENT_SLOT, (SocketBonusToBeActivated ? itemTarget->GetTemplate()->GetSocketBonus() : 0), 0, 0, _player->GetGUID());
+ itemTarget->SetEnchantment(BONUS_ENCHANTMENT_SLOT, (socketBonusToBeActivated ? itemTarget->GetTemplate()->GetSocketBonus() : 0), 0, 0, _player->GetGUID());
_player->ApplyEnchantment(itemTarget, BONUS_ENCHANTMENT_SLOT, true);
//it is not displayed, client has an inbuilt system to determine if the bonus is activated
}