Merge pull request #512 from sp-tarkov/dev

Make ItemLacksSlotsCartridgesAndChambers more robust, migrate to extension
This commit is contained in:
Chomp
2025-07-24 20:51:41 +00:00
committed by GitHub
2 changed files with 19 additions and 19 deletions
@@ -63,5 +63,23 @@ namespace SPTarkov.Server.Core.Extensions
return relatedItemDbModSlot?.Props?.Filters?.FirstOrDefault()?.Plate;
}
/// <summary>
/// Does the passed in <see cref="TemplateItem"/> lack slots, cartridges or chambers
/// </summary>
/// <param name="item">Item to check</param>
/// <returns>True if it lacks cartridges/chamber slots, False if not</returns>
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());
}
}
}
@@ -509,7 +509,7 @@ public class BotEquipmentModGenerator(
/// <returns>Weapon + mods array</returns>
public List<Item> 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;
}
/// <summary>
/// Does the passed in db item lack slot cartridges or chambers
/// </summary>
/// <param name="item">Item to check</param>
/// <returns>True it lacks cartridges/chamber slots</returns>
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();
}
/// <summary>
/// Should the provided bot have its stock chance values altered to 100%
/// </summary>