From 384381f57e8c7228b9e6ac2519d1d154f3929815 Mon Sep 17 00:00:00 2001 From: Archangel Date: Thu, 24 Jul 2025 22:46:23 +0200 Subject: [PATCH] Make ItemLacksSlotsCartridgesAndChambers more robust, migrate to extension --- .../Extensions/TemplateItemExtensions.cs | 18 +++++++++++++++++ .../Generators/BotEquipmentModGenerator.cs | 20 +------------------ 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs b/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs index e566a958..1580ee09 100644 --- a/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs +++ b/Libraries/SPTarkov.Server.Core/Extensions/TemplateItemExtensions.cs @@ -63,5 +63,23 @@ namespace SPTarkov.Server.Core.Extensions return relatedItemDbModSlot?.Props?.Filters?.FirstOrDefault()?.Plate; } + + /// + /// Does the passed in lack slots, cartridges or chambers + /// + /// Item to check + /// True if it lacks cartridges/chamber slots, False if not + public static bool HasNoSlotsCartridgesOrChambers(this TemplateItem item) + { + if (item.Properties is null) + { + return true; + } + + return item.Properties.Slots is null + || !item.Properties.Slots.Any() + && (item.Properties.Cartridges is null || !item.Properties.Cartridges.Any()) + && (item.Properties.Chambers is null || !item.Properties.Chambers.Any()); + } } } diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs index bed7a56d..c2fe45ac 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs @@ -509,7 +509,7 @@ public class BotEquipmentModGenerator( /// Weapon + mods array public List GenerateModsForWeapon(MongoId sessionId, GenerateWeaponRequest request) { - if (ItemLacksSlotsCartridgesAndChambers(request.ParentTemplate)) + if (request.ParentTemplate.HasNoSlotsCartridgesOrChambers()) { logger.Error( serverLocalisationService.GetText( @@ -830,24 +830,6 @@ public class BotEquipmentModGenerator( return request.Weapon; } - /// - /// Does the passed in db item lack slot cartridges or chambers - /// - /// Item to check - /// True it lacks cartridges/chamber slots - protected bool ItemLacksSlotsCartridgesAndChambers(TemplateItem item) - { - if (item.Properties is null) - { - return true; - } - - return item.Properties.Slots is null - || !item.Properties.Slots.Any() - && !item.Properties.Cartridges.Any() - && !item.Properties.Chambers.Any(); - } - /// /// Should the provided bot have its stock chance values altered to 100% ///