From 19762189917849b3bfc86234283d518ac61b97cd Mon Sep 17 00:00:00 2001 From: Chomp Date: Thu, 1 May 2025 17:41:54 +0100 Subject: [PATCH] Updated locations where we parse a number stored as a string into a double to use `CultureInfo.InvariantCulture`, this resolves errors with languages that don't use commas instead of periods in numbers --- .../Generators/BotEquipmentModGenerator.cs | 3 ++- Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs | 3 ++- Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs index 0b526f79..ea539bb5 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/BotEquipmentModGenerator.cs @@ -1,4 +1,5 @@ using System.Collections.Frozen; +using System.Globalization; using SPTarkov.Common.Annotations; using SPTarkov.Server.Core.Helpers; using SPTarkov.Server.Core.Models.Common; @@ -305,7 +306,7 @@ public class BotEquipmentModGenerator( var platesFromDb = existingPlateTplPool.Select(plateTpl => _itemHelper.GetItem(plateTpl).Value); // Filter plates to the chosen level based on its armorClass property - var platesOfDesiredLevel = platesFromDb.Where(item => item.Properties.ArmorClass.Value == double.Parse(chosenArmorPlateLevelString)); + var platesOfDesiredLevel = platesFromDb.Where(item => item.Properties.ArmorClass.Value == double.Parse(chosenArmorPlateLevelString, CultureInfo.InvariantCulture)); if (platesOfDesiredLevel.Any()) { // Plates found diff --git a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs index b6c3f7db..63503b11 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/QuestHelper.cs @@ -1,3 +1,4 @@ +using System.Globalization; using SPTarkov.Common.Annotations; using SPTarkov.Common.Extensions; using SPTarkov.Server.Core.Models.Eft.Common; @@ -67,7 +68,7 @@ public class QuestHelper( return true; } - var conditionValue = double.Parse(condition.Value.ToString()); + var conditionValue = double.Parse(condition.Value.ToString(), CultureInfo.InvariantCulture); switch (condition.CompareMethod) { case ">=": diff --git a/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs b/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs index 4d5b4b75..3402f48e 100644 --- a/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs +++ b/Libraries/SPTarkov.Server.Core/Helpers/RewardHelper.cs @@ -1,3 +1,4 @@ +using System.Globalization; using SPTarkov.Common.Annotations; using SPTarkov.Server.Core.Models.Eft.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; @@ -85,7 +86,7 @@ public class RewardHelper( _traderHelper.AddStandingToTrader( sessionId, reward.Target, - double.Parse(reward.Value.ToString()) + double.Parse(reward.Value.ToString(), CultureInfo.InvariantCulture) ); break; case RewardType.TraderUnlock: