public void ForceAddItem_ItemMergeTest() { var acc = new RpgAccount(); acc.ForceAddItemById(itemId: 2, amount: 5); Assert.True(acc.InventorySlots.Count == 1); acc.ForceAddItemById(itemId: 2, amount: 5); Assert.True(acc.InventorySlots.Count == 1); Assert.True(acc.InventorySlots.First().Amount == 10); Assert.True(acc.InventorySlots.First().Item.Id == 2); }
/// <summary> /// Adds an item based on item ID. /// </summary> public static void AddItemById(this RpgAccount account, uint itemId, uint amount) { var targetSlot = account.InventorySlots.FirstOrDefault(s => s.Item.Id == itemId); if (targetSlot is null) { account.ForceAddItemById(itemId, amount); return; } targetSlot.Amount += amount; }