Проблема с обновлением общих параметров защиты при добавлении предмета в уже существующий инвентарь в C#

Я разрабатываю консольную игру на C# и столкнулся с проблемой при использовании метода AddItemInInventory в конструктореInventory. У меня есть конструктор, который принимает готовый список предметов и успешно добавляет их в инвентарь, обновляя при этом общие параметры защиты. Однако, когда я пытаюсь добавить предмет в уже существующий инвентарь с помощью метода AddItemInInventory, общие параметры защиты не обновляются.

Вот код моего конструктора:

public Inventory(List<Item> items)
{
    _items = new List<Item>();
    foreach (var item in items)
    {
        _items.Add(item);

        _totalProtection += item.Protection;
        _totalProtectionQuality += item.ProtectionQuality;
    }
}

И вот код метода AddItemInInventory:

public void AddItemInInventory(Item item)
{
    _items.Add(item);

    _totalProtection += item.Protection;
    _totalProtectionQuality += item.ProtectionQuality;
}

Я добавляю предметы в инвентарь так:

Item item = new("Новый предмет", 10000, 456, 987, ItemType.Weapon, ItemSize.Large);

_player.Inventory.PrintInventory();
Console.WriteLine();
_player.Inventory.AddItemInInventory(item);
_player.Inventory.PrintInventory();
Console.WriteLine($"Protection { _player.Inventory.TotalProtection}");
Console.WriteLine($"ProtectionQuality { _player.Inventory.TotalProtectionQuality}");

Вот вывод в консоль, который я получаю

Name New Item For Test
Cost 500
Protection 12
Protection Quality 34
Size Small
Type Weapon


Name New Item For Test
Cost 500
Protection 12
Protection Quality 34
Size Small
Type Weapon

Name Новый предмет
Cost 10000
Protection 456
Protection Quality 987
Size Large
Type Weapon


Protection 12
ProtectionQuality 34

Я думаю, что Protection и ProtectionQuality будут иметь значения 468 и 1021 соответственно.

Я ожидаю, что общие параметры защиты будут обновляться при добавлении предмета в инвентарь независимо от способа - при создании инвентаря с готовым списком предметов или при добавлении предмета в уже существующий инвентарь. Однако, обновление общих параметров защиты происходит только при использовании конструктора.

Пожалуйста, помогите мне разобраться, как обновить общие параметры защиты при добавлении предмета в уже существующий инвентарь с помощью метода AddItemInInventory.

Заранее благодарю за помощь и рекомендации!


Ответы (0 шт):