Core/Items: Added correct context and bonus calculation for character loadout items

Port From (https://github.com/TrinityCore/TrinityCore/commit/b4d2166f0c7a61f5a9b159da80e478c5ae7aaa16)
This commit is contained in:
hondacrx
2022-09-24 13:53:55 -04:00
parent 91e844e9dc
commit 53689df7fa
+7 -2
View File
@@ -1222,6 +1222,10 @@ namespace Game.Entities
bool StoreNewItemInBestSlots(uint titem_id, uint titem_amount)
{
Log.outDebug(LogFilter.Player, "STORAGE: Creating initial item, itemId = {0}, count = {1}", titem_id, titem_amount);
ItemContext itemContext = ItemContext.NewCharacter;
var bonusListIDs = Global.DB2Mgr.GetDefaultItemBonusTree(titem_id, itemContext);
InventoryResult msg;
// attempt equip by one
while (titem_amount > 0)
@@ -1230,7 +1234,8 @@ namespace Game.Entities
if (msg != InventoryResult.Ok)
break;
EquipNewItem(eDest, titem_id, ItemContext.None, true);
Item item = EquipNewItem(eDest, titem_id, itemContext, true);
item.SetBonuses(bonusListIDs);
AutoUnequipOffhandIfNeed();
titem_amount--;
}
@@ -1244,7 +1249,7 @@ namespace Game.Entities
msg = CanStoreNewItem(InventorySlots.Bag0, ItemConst.NullSlot, sDest, titem_id, titem_amount);
if (msg == InventoryResult.Ok)
{
StoreNewItem(sDest, titem_id, true, ItemEnchantmentManager.GenerateItemRandomBonusListId(titem_id));
StoreNewItem(sDest, titem_id, true, ItemEnchantmentManager.GenerateItemRandomBonusListId(titem_id), null, itemContext, bonusListIDs);
return true; // stored
}