From 2eb7b798c37b0f6555512c7c68e505f8fea925ff Mon Sep 17 00:00:00 2001 From: Chomp Date: Thu, 5 Jun 2025 15:04:52 +0100 Subject: [PATCH] Fixed issues with `ReplaceBotHostility` --- .../Assets/configs/location.json | 2 +- .../Services/SeasonalEventService.cs | 17 +++++++---------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Libraries/SPTarkov.Server.Assets/Assets/configs/location.json b/Libraries/SPTarkov.Server.Assets/Assets/configs/location.json index c484a42f..5da282cf 100644 --- a/Libraries/SPTarkov.Server.Assets/Assets/configs/location.json +++ b/Libraries/SPTarkov.Server.Assets/Assets/configs/location.json @@ -510,5 +510,5 @@ "63a898a328e385334e0640a5", "634959225289190e5e773b3b" ], - "nonMaps": ["base", "develop", "hideout", "privatearea", "suburbs", "terminal", "town"] + "nonMaps": ["Base", "Develop", "Hideout", "PrivateArea", "Suburbs", "Terminal", "Town"] } diff --git a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs index 71f5ebc0..0c24a52e 100644 --- a/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs +++ b/Libraries/SPTarkov.Server.Core/Services/SeasonalEventService.cs @@ -587,29 +587,26 @@ public class SeasonalEventService( private void ReplaceBotHostility(Dictionary> hostilitySettings) { - var locations = _databaseService.GetLocations(); + var locations = _databaseService.GetLocations().GetDictionary(); var ignoreList = _locationConfig.NonMaps; - var props = locations.GetType().GetProperties(); - - foreach (var locationProp in props) + foreach (var (locationName, locationBase) in locations) { - if (ignoreList.Contains(locationProp.Name)) + if (ignoreList.Contains(locationName)) { continue; } - var location = (Location) locationProp.GetValue(locations); - if (location?.Base?.BotLocationModifier?.AdditionalHostilitySettings is null) + if (locationBase?.Base?.BotLocationModifier?.AdditionalHostilitySettings is null) { continue; } // Try to get map 'default' first if it exists - if (!hostilitySettings.TryGetValue("Default", out var newHostilitySettings)) + if (!hostilitySettings.TryGetValue("default", out var newHostilitySettings)) { // No 'default', try for location name - if (!hostilitySettings.TryGetValue(locationProp.Name, out newHostilitySettings)) + if (!hostilitySettings.TryGetValue(locationName, out newHostilitySettings)) { // no settings for map by name, skip map continue; @@ -618,7 +615,7 @@ public class SeasonalEventService( foreach (var settings in newHostilitySettings) { - var matchingBaseSettings = location.Base.BotLocationModifier.AdditionalHostilitySettings.FirstOrDefault(x => x.BotRole == settings.BotRole); + var matchingBaseSettings = locationBase.Base.BotLocationModifier.AdditionalHostilitySettings.FirstOrDefault(x => x.BotRole == settings.BotRole); if (matchingBaseSettings is null) { continue;